mirror of
https://github.com/exogen/t2-mapper.git
synced 2026-03-17 11:21:09 +00:00
38 lines
No EOL
20 KiB
JavaScript
38 lines
No EOL
20 KiB
JavaScript
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,13876,79473,43595,58647,e=>{"use strict";var t=e.i(932),r=e.i(8155);let n=e=>(t,r,n)=>{let i=n.subscribe;return n.subscribe=(e,t,r)=>{let o=e;if(t){let i=(null==r?void 0:r.equalityFn)||Object.is,a=e(n.getState());o=r=>{let n=e(r);if(!i(a,n)){let e=a;t(a=n,e)}},(null==r?void 0:r.fireImmediately)&&t(a,a)}return i(o)},e(t,r,n)};e.s(["subscribeWithSelector",()=>n],79473);var i=e.i(66748);function o(e){let t=new Map;for(let r of e.state.datablocks.values()){if("tsshapeconstructor"!==r._class)continue;let e=r.baseshape;if("string"!=typeof e)continue;let n=e.toLowerCase(),i=n.replace(/\.dts$/i,"")+"_",o=new Map;for(let e=0;e<=127;e++){let t=r[`sequence${e}`];if("string"!=typeof t)continue;let n=t.indexOf(" ");if(-1===n)continue;let a=t.slice(0,n).toLowerCase(),l=t.slice(n+1).trim().toLowerCase();if(!l||!a.startsWith(i)||!a.endsWith(".dsq"))continue;let s=a.slice(i.length,-4);s&&o.set(l,s)}o.size>0&&t.set(n,o)}return t}function a(e,t,r){let n=new Map;for(let r of e){let e=t.clipAction(r);n.set(r.name.toLowerCase(),e)}if(r)for(let[e,t]of r){let r=n.get(t);r&&!n.has(e)&&n.set(e,r)}return n}function l(e){return e.toLowerCase()}function s(e){let t=l(e.trim());return t.startsWith("$")?t.slice(1):t}e.s(["buildSequenceAliasMap",()=>o,"getAliasedActions",()=>a],43595);let c={runtime:{runtime:null,sequenceAliases:new Map,objectVersionById:{},globalVersionByName:{},objectIdsByName:{},datablockIdsByName:{},lastRuntimeTick:0},playback:{recording:null,status:"stopped",timeMs:0,rate:1,durationMs:0,streamSnapshot:null}},u=(0,r.createStore)()(n(e=>({...c,setRuntime(t){let r=function(e){let t={},r={},n={},i={};for(let r of e.state.objectsById.values())t[r._id]=0,r._name&&(n[l(r._name)]=r._id,r._isDatablock&&(i[l(r._name)]=r._id));for(let t of e.state.globals.keys())r[s(t)]=0;return{objectVersionById:t,globalVersionByName:r,objectIdsByName:n,datablockIdsByName:i}}(t),n=o(t);e(e=>({...e,runtime:{runtime:t,sequenceAliases:n,objectVersionById:r.objectVersionById,globalVersionByName:r.globalVersionByName,objectIdsByName:r.objectIdsByName,datablockIdsByName:r.datablockIdsByName,lastRuntimeTick:0}}))},clearRuntime(){e(e=>({...e,runtime:{runtime:null,sequenceAliases:new Map,objectVersionById:{},globalVersionByName:{},objectIdsByName:{},datablockIdsByName:{},lastRuntimeTick:0}}))},applyRuntimeBatch(t,r){0!==t.length&&e(e=>{let n={...e.runtime.objectVersionById},i={...e.runtime.globalVersionByName},o={...e.runtime.objectIdsByName},a={...e.runtime.datablockIdsByName},c=e=>{null!=e&&(n[e]=(n[e]??0)+1)};for(let e of t){if("object.created"===e.type){let t=e.object;if(c(e.objectId),t._name){let r=l(t._name);o[r]=e.objectId,t._isDatablock&&(a[r]=e.objectId)}c(t._parent?._id);continue}if("object.deleted"===e.type){let t=e.object;if(delete n[e.objectId],t?._name){let e=l(t._name);delete o[e],t._isDatablock&&delete a[e]}c(t?._parent?._id);continue}if("field.changed"===e.type){c(e.objectId);continue}if("global.changed"===e.type){let t=s(e.name);i[t]=(i[t]??0)+1;continue}}let u=r?.tick??(e.runtime.lastRuntimeTick>0?e.runtime.lastRuntimeTick+1:1);return{...e,runtime:{...e.runtime,objectVersionById:n,globalVersionByName:i,objectIdsByName:o,datablockIdsByName:a,lastRuntimeTick:u}}})},setDemoRecording(t){let r=Math.max(0,(t?.duration??0)*1e3);e(e=>({...e,playback:{recording:t,status:"stopped",timeMs:0,rate:1,durationMs:r,streamSnapshot:null}}))},setPlaybackTime(t){e(e=>{var r,n,i;let o=(r=t,n=0,i=e.playback.durationMs,r<0?0:r>i?i:r);return{...e,playback:{...e.playback,timeMs:o}}})},setPlaybackStatus(t){e(e=>({...e,playback:{...e.playback,status:t}}))},setPlaybackRate(t){var r,n,i;let o=Number.isFinite(t)?(n=.01,i=16,(r=t)<.01?.01:r>16?16:r):1;e(e=>({...e,playback:{...e.playback,rate:o}}))},setPlaybackStreamSnapshot(t){e(e=>({...e,playback:{...e.playback,streamSnapshot:t}}))}}))),d=0;function m(){return d}function f(e,t){d+=e*t*1e3}function y(){return u}function p(e,t){return(0,i.useStoreWithEqualityFn)(u,e,t)}function h(e){let r,n,i,o=(0,t.c)(7),a=p(b);o[0]!==e?(r=t=>null==e?-1:t.runtime.objectVersionById[e]??-1,o[0]=e,o[1]=r):r=o[1];let l=p(r);if(null==e||!a||-1===l)return;o[2]!==e||o[3]!==a.state.objectsById?(n=a.state.objectsById.get(e),o[2]=e,o[3]=a.state.objectsById,o[4]=n):n=o[4];let s=n;return o[5]!==s?(i=s?{...s}:void 0,o[5]=s,o[6]=i):i=o[6],i}function b(e){return e.runtime.runtime}function v(e){let r,n,i,o,a,s=(0,t.c)(11),c=p(g);s[0]!==e?(r=e?l(e):"",s[0]=e,s[1]=r):r=s[1];let u=r;s[2]!==u?(n=e=>u?e.runtime.objectIdsByName[u]:void 0,s[2]=u,s[3]=n):n=s[3];let d=p(n);s[4]!==d?(i=e=>null==d?-1:e.runtime.objectVersionById[d]??-1,s[4]=d,s[5]=i):i=s[5];let m=p(i);if(!c||!u||null==d||-1===m)return;s[6]!==d||s[7]!==c.state.objectsById?(o=c.state.objectsById.get(d),s[6]=d,s[7]=c.state.objectsById,s[8]=o):o=s[8];let f=o;return s[9]!==f?(a=f?{...f}:void 0,s[9]=f,s[10]=a):a=s[10],a}function g(e){return e.runtime.runtime}function x(e){let r,n,i,o,a,s=(0,t.c)(11),c=p(M);s[0]!==e?(r=e?l(e):"",s[0]=e,s[1]=r):r=s[1];let u=r;s[2]!==u?(n=e=>u?e.runtime.datablockIdsByName[u]:void 0,s[2]=u,s[3]=n):n=s[3];let d=p(n);s[4]!==d?(i=e=>null==d?-1:e.runtime.objectVersionById[d]??-1,s[4]=d,s[5]=i):i=s[5];let m=p(i);if(!c||!u||null==d||-1===m)return;s[6]!==d||s[7]!==c.state.objectsById?(o=c.state.objectsById.get(d),s[6]=d,s[7]=c.state.objectsById,s[8]=o):o=s[8];let f=o;return s[9]!==f?(a=f?{...f}:void 0,s[9]=f,s[10]=a):a=s[10],a}function M(e){return e.runtime.runtime}function j(e,r){let n,i,o,a,l=(0,t.c)(13);l[0]!==r?(n=void 0===r?[]:r,l[0]=r,l[1]=n):n=l[1];let s=n,c=p(I);l[2]!==e?(i=t=>null==e?-1:t.runtime.objectVersionById[e]??-1,l[2]=e,l[3]=i):i=l[3];let u=p(i);if(null==e){let e;return l[4]!==s?(e=s.map(w),l[4]=s,l[5]=e):e=l[5],e}if(!c||-1===u){let e;return l[6]!==s?(e=s.map(k),l[6]=s,l[7]=e):e=l[7],e}let d=c.state.objectsById;if(l[8]!==e||l[9]!==c.state.objectsById){a=Symbol.for("react.early_return_sentinel");e:{let t=d.get(e);if(!t?._children){let e;l[12]===Symbol.for("react.memo_cache_sentinel")?(e=[],l[12]=e):e=l[12],a=e;break e}o=t._children.map(B)}l[8]=e,l[9]=c.state.objectsById,l[10]=o,l[11]=a}else o=l[10],a=l[11];return a!==Symbol.for("react.early_return_sentinel")?a:o}function B(e){return e._id}function k(e){return e._id}function w(e){return e._id}function I(e){return e.runtime.runtime}u.subscribe(e=>e.playback.status,e=>{"stopped"===e&&(d=0)}),e.s(["advanceEffectClock",()=>f,"demoEffectNow",()=>m,"engineStore",0,u,"useDatablockByName",()=>x,"useEngineSelector",()=>p,"useEngineStoreApi",()=>y,"useRuntimeChildIds",()=>j,"useRuntimeObjectById",()=>h,"useRuntimeObjectByName",()=>v],58647),e.s([],13876)},67191,e=>{e.v({Label:"FloatingLabel-module__8y09Ka__Label"})},89887,60099,e=>{"use strict";let t,r;var n=e.i(43476),i=e.i(932),o=e.i(71645),a=e.i(90072),l=e.i(71753),s=e.i(31067),c=e.i(88014),u=e.i(15080);let d=new a.Vector3,m=new a.Vector3,f=new a.Vector3,y=new a.Vector2;function p(e,t,r){let n=d.setFromMatrixPosition(e.matrixWorld);n.project(t);let i=r.width/2,o=r.height/2;return[n.x*i+i,-(n.y*o)+o]}let h=e=>1e-10>Math.abs(e)?0:e;function b(e,t,r=""){let n="matrix3d(";for(let r=0;16!==r;r++)n+=h(t[r]*e.elements[r])+(15!==r?",":")");return r+n}let v=(t=[1,-1,1,1,1,-1,1,1,1,-1,1,1,1,-1,1,1],e=>b(e,t)),g=(r=e=>[1/e,1/e,1/e,1,-1/e,-1/e,-1/e,-1,1/e,1/e,1/e,1,1,1,1,1],(e,t)=>b(e,r(t),"translate(-50%,-50%)")),x=o.forwardRef(({children:e,eps:t=.001,style:r,className:n,prepend:i,center:b,fullscreen:x,portal:M,distanceFactor:j,sprite:B=!1,transform:k=!1,occlude:w,onOcclude:I,castShadow:P,receiveShadow:S,material:R,geometry:_,zIndexRange:T=[0x1000037,0],calculatePosition:A=p,as:E="div",wrapperClass:W,pointerEvents:D="auto",...N},F)=>{let{gl:V,camera:L,scene:C,size:$,raycaster:z,events:O,viewport:q}=(0,u.useThree)(),[H]=o.useState(()=>document.createElement(E)),G=o.useRef(null),U=o.useRef(null),K=o.useRef(0),Z=o.useRef([0,0]),J=o.useRef(null),Q=o.useRef(null),X=(null==M?void 0:M.current)||O.connected||V.domElement.parentNode,Y=o.useRef(null),ee=o.useRef(!1),et=o.useMemo(()=>{var e;return w&&"blending"!==w||Array.isArray(w)&&w.length&&(e=w[0])&&"object"==typeof e&&"current"in e},[w]);o.useLayoutEffect(()=>{let e=V.domElement;w&&"blending"===w?(e.style.zIndex=`${Math.floor(T[0]/2)}`,e.style.position="absolute",e.style.pointerEvents="none"):(e.style.zIndex=null,e.style.position=null,e.style.pointerEvents=null)},[w]),o.useLayoutEffect(()=>{if(U.current){let e=G.current=c.createRoot(H);if(C.updateMatrixWorld(),k)H.style.cssText="position:absolute;top:0;left:0;pointer-events:none;overflow:hidden;";else{let e=A(U.current,L,$);H.style.cssText=`position:absolute;top:0;left:0;transform:translate3d(${e[0]}px,${e[1]}px,0);transform-origin:0 0;`}return X&&(i?X.prepend(H):X.appendChild(H)),()=>{X&&X.removeChild(H),e.unmount()}}},[X,k]),o.useLayoutEffect(()=>{W&&(H.className=W)},[W]);let er=o.useMemo(()=>k?{position:"absolute",top:0,left:0,width:$.width,height:$.height,transformStyle:"preserve-3d",pointerEvents:"none"}:{position:"absolute",transform:b?"translate3d(-50%,-50%,0)":"none",...x&&{top:-$.height/2,left:-$.width/2,width:$.width,height:$.height},...r},[r,b,x,$,k]),en=o.useMemo(()=>({position:"absolute",pointerEvents:D}),[D]);o.useLayoutEffect(()=>{var t,i;ee.current=!1,k?null==(t=G.current)||t.render(o.createElement("div",{ref:J,style:er},o.createElement("div",{ref:Q,style:en},o.createElement("div",{ref:F,className:n,style:r,children:e})))):null==(i=G.current)||i.render(o.createElement("div",{ref:F,style:er,className:n,children:e}))});let ei=o.useRef(!0);(0,l.useFrame)(e=>{if(U.current){L.updateMatrixWorld(),U.current.updateWorldMatrix(!0,!1);let e=k?Z.current:A(U.current,L,$);if(k||Math.abs(K.current-L.zoom)>t||Math.abs(Z.current[0]-e[0])>t||Math.abs(Z.current[1]-e[1])>t){var r;let t,n,i,o,l=(r=U.current,t=d.setFromMatrixPosition(r.matrixWorld),n=m.setFromMatrixPosition(L.matrixWorld),i=t.sub(n),o=L.getWorldDirection(f),i.angleTo(o)>Math.PI/2),s=!1;et&&(Array.isArray(w)?s=w.map(e=>e.current):"blending"!==w&&(s=[C]));let c=ei.current;s?ei.current=function(e,t,r,n){let i=d.setFromMatrixPosition(e.matrixWorld),o=i.clone();o.project(t),y.set(o.x,o.y),r.setFromCamera(y,t);let a=r.intersectObjects(n,!0);if(a.length){let e=a[0].distance;return i.distanceTo(r.ray.origin)<e}return!0}(U.current,L,z,s)&&!l:ei.current=!l,c!==ei.current&&(I?I(!ei.current):H.style.display=ei.current?"block":"none");let u=Math.floor(T[0]/2),p=w?et?[T[0],u]:[u-1,0]:T;if(H.style.zIndex=`${function(e,t,r){if(t instanceof a.PerspectiveCamera||t instanceof a.OrthographicCamera){let n=d.setFromMatrixPosition(e.matrixWorld),i=m.setFromMatrixPosition(t.matrixWorld),o=n.distanceTo(i),a=(r[1]-r[0])/(t.far-t.near),l=r[1]-a*t.far;return Math.round(a*o+l)}}(U.current,L,p)}`,k){let[e,t]=[$.width/2,$.height/2],r=L.projectionMatrix.elements[5]*t,{isOrthographicCamera:n,top:i,left:o,bottom:a,right:l}=L,s=v(L.matrixWorldInverse),c=n?`scale(${r})translate(${h(-(l+o)/2)}px,${h((i+a)/2)}px)`:`translateZ(${r}px)`,u=U.current.matrixWorld;B&&((u=L.matrixWorldInverse.clone().transpose().copyPosition(u).scale(U.current.scale)).elements[3]=u.elements[7]=u.elements[11]=0,u.elements[15]=1),H.style.width=$.width+"px",H.style.height=$.height+"px",H.style.perspective=n?"":`${r}px`,J.current&&Q.current&&(J.current.style.transform=`${c}${s}translate(${e}px,${t}px)`,Q.current.style.transform=g(u,1/((j||10)/400)))}else{let t=void 0===j?1:function(e,t){if(t instanceof a.OrthographicCamera)return t.zoom;if(!(t instanceof a.PerspectiveCamera))return 1;{let r=d.setFromMatrixPosition(e.matrixWorld),n=m.setFromMatrixPosition(t.matrixWorld);return 1/(2*Math.tan(t.fov*Math.PI/180/2)*r.distanceTo(n))}}(U.current,L)*j;H.style.transform=`translate3d(${e[0]}px,${e[1]}px,0) scale(${t})`}Z.current=e,K.current=L.zoom}}if(!et&&Y.current&&!ee.current)if(k){if(J.current){let e=J.current.children[0];if(null!=e&&e.clientWidth&&null!=e&&e.clientHeight){let{isOrthographicCamera:t}=L;if(t||_)N.scale&&(Array.isArray(N.scale)?N.scale instanceof a.Vector3?Y.current.scale.copy(N.scale.clone().divideScalar(1)):Y.current.scale.set(1/N.scale[0],1/N.scale[1],1/N.scale[2]):Y.current.scale.setScalar(1/N.scale));else{let t=(j||10)/400,r=e.clientWidth*t,n=e.clientHeight*t;Y.current.scale.set(r,n,1)}ee.current=!0}}}else{let t=H.children[0];if(null!=t&&t.clientWidth&&null!=t&&t.clientHeight){let e=1/q.factor,r=t.clientWidth*e,n=t.clientHeight*e;Y.current.scale.set(r,n,1),ee.current=!0}Y.current.lookAt(e.camera.position)}});let eo=o.useMemo(()=>({vertexShader:k?void 0:`
|
|
/*
|
|
This shader is from the THREE's SpriteMaterial.
|
|
We need to turn the backing plane into a Sprite
|
|
(make it always face the camera) if "transfrom"
|
|
is false.
|
|
*/
|
|
#include <common>
|
|
|
|
void main() {
|
|
vec2 center = vec2(0., 1.);
|
|
float rotation = 0.0;
|
|
|
|
// This is somewhat arbitrary, but it seems to work well
|
|
// Need to figure out how to derive this dynamically if it even matters
|
|
float size = 0.03;
|
|
|
|
vec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );
|
|
vec2 scale;
|
|
scale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );
|
|
scale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );
|
|
|
|
bool isPerspective = isPerspectiveMatrix( projectionMatrix );
|
|
if ( isPerspective ) scale *= - mvPosition.z;
|
|
|
|
vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale * size;
|
|
vec2 rotatedPosition;
|
|
rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;
|
|
rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;
|
|
mvPosition.xy += rotatedPosition;
|
|
|
|
gl_Position = projectionMatrix * mvPosition;
|
|
}
|
|
`,fragmentShader:`
|
|
void main() {
|
|
gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);
|
|
}
|
|
`}),[k]);return o.createElement("group",(0,s.default)({},N,{ref:U}),w&&!et&&o.createElement("mesh",{castShadow:P,receiveShadow:S,ref:Y},_||o.createElement("planeGeometry",null),R||o.createElement("shaderMaterial",{side:a.DoubleSide,vertexShader:eo.vertexShader,fragmentShader:eo.fragmentShader})))});e.s(["Html",()=>x],60099);var M=e.i(67191);let j=[0,0,0],B=new a.Vector3,k=(0,o.memo)(function(e){let t,r,a,s=(0,i.c)(11),{children:c,color:u,position:d,opacity:m}=e,f=void 0===u?"white":u,y=void 0===d?j:d,p=void 0===m?"fadeWithDistance":m,h="fadeWithDistance"===p,b=(0,o.useRef)(null),[v,g]=(0,o.useState)(0!==p),k=(0,o.useRef)(null);return s[0]!==h||s[1]!==v||s[2]!==p?(t=e=>{var t,r,n;let i,{camera:o}=e,a=b.current;if(!a)return;a.getWorldPosition(B);let l=(t=B.x,r=B.y,n=B.z,-((t-(i=o.matrixWorld.elements)[12])*i[8])+-((r-i[13])*i[9])+-((n-i[14])*i[10])<0);if(h){let e=l?1/0:o.position.distanceTo(B),t=e<200;if(v!==t&&g(t),k.current&&t){let t=Math.max(0,Math.min(1,1-e/200));k.current.style.opacity=t.toString()}}else{let e=!l&&0!==p;v!==e&&g(e),k.current&&(k.current.style.opacity=p.toString())}},s[0]=h,s[1]=v,s[2]=p,s[3]=t):t=s[3],(0,l.useFrame)(t),s[4]!==c||s[5]!==f||s[6]!==v||s[7]!==y?(r=v?(0,n.jsx)(x,{position:y,center:!0,children:(0,n.jsx)("div",{ref:k,className:M.default.Label,style:{color:f},children:c})}):null,s[4]=c,s[5]=f,s[6]=v,s[7]=y,s[8]=r):r=s[8],s[9]!==r?(a=(0,n.jsx)("group",{ref:b,children:r}),s[9]=r,s[10]=a):a=s[10],a});e.s(["FloatingLabel",0,k],89887)},29055,51434,e=>{"use strict";var t=e.i(43476),r=e.i(71645),n=e.i(15080),i=e.i(71753),o=e.i(90072),a=e.i(62395),l=e.i(12979),s=e.i(932);e.i(13876);var c=e.i(58647);let u=(0,r.createContext)(void 0);function d(e){let i,a,l,d,y=(0,s.c)(7),{children:p}=e,{camera:h}=(0,n.useThree)();y[0]===Symbol.for("react.memo_cache_sentinel")?(i={audioLoader:null,audioListener:null},y[0]=i):i=y[0];let[b,v]=(0,r.useState)(i);return y[1]!==h?(a=()=>{let e=new o.AudioLoader,t=h.children.find(f);t||(t=new o.AudioListener,h.add(t)),v({audioLoader:e,audioListener:t});let r=c.engineStore.subscribe(m,e=>{let r=t?.context;r&&("paused"===e?r.suspend():"playing"===e&&"suspended"===r.state&&r.resume())});return()=>{r()}},l=[h],y[1]=h,y[2]=a,y[3]=l):(a=y[2],l=y[3]),(0,r.useEffect)(a,l),y[4]!==b||y[5]!==p?(d=(0,t.jsx)(u.Provider,{value:b,children:p}),y[4]=b,y[5]=p,y[6]=d):d=y[6],d}function m(e){return e.playback.status}function f(e){return e instanceof o.AudioListener}function y(){let e=(0,r.useContext)(u);if(void 0===e)throw Error("useAudio must be used within AudioProvider");return e}e.s(["AudioProvider",()=>d,"useAudio",()=>y],51434);var p=e.i(79123),h=e.i(89887);let b=new Map,v=new Map;function g(e,t=1){v.set(e,t)}function x(e){v.delete(e)}function M(e,t){let r=t(e),n=r?.filename;if(!n)return null;let i=n.endsWith(".wav")?n:`${n}.wav`,o=r.description,a=null!=o?t(o):void 0,l=a?.is3D??!0,s=a?.isLooping??!1,c=a?.referenceDistance??20;return{filename:i,is3D:l,isLooping:s,refDist:c,maxDist:a?.maxDistance??100,volume:a?.volume??1}}function j(e,t,r,n,i){let a;try{a=(0,l.audioToUrl)(e.filename)}catch{return}let s=c.engineStore.getState().playback.rate;B(a,r,r=>{try{if(e.is3D&&i){let a=new o.PositionalAudio(t);a.setBuffer(r),a.setDistanceModel("inverse"),a.setRefDistance(e.refDist),a.setMaxDistance(e.maxDist),a.setRolloffFactor(1),a.setVolume(e.volume),a.setPlaybackRate(s),n&&a.position.copy(n),i.add(a),v.set(a,1),a.play(),a.source.onended=()=>{v.delete(a),a.disconnect(),i.remove(a)}}else{let n=new o.Audio(t);n.setBuffer(r),n.setVolume(e.volume),n.setPlaybackRate(s),v.set(n,1),n.play(),n.source.onended=()=>{v.delete(n),n.disconnect()}}}catch{}})}function B(e,t,r){b.has(e)?r(b.get(e)):t.load(e,t=>{b.set(e,t),r(t)},void 0,t=>{console.error("Audio load error",e,t)})}c.engineStore.subscribe(e=>e.playback.rate,e=>{for(let[t,r]of v)try{t.setPlaybackRate(r*e)}catch{}});let k=(0,r.memo)(function({object:e}){let{debugMode:s}=(0,p.useDebug)(),c=(0,a.getProperty)(e,"fileName")??"",u=(0,a.getFloat)(e,"volume")??1,d=(0,a.getFloat)(e,"minDistance")??1,m=(0,a.getFloat)(e,"maxDistance")??1,f=(0,a.getFloat)(e,"minLoopGap")??0,b=(0,a.getFloat)(e,"maxLoopGap")??0,v=(0,a.getInt)(e,"is3D")??0,[g,x,M]=(0,a.getPosition)(e),{scene:j,camera:k}=(0,n.useThree)(),{audioLoader:w,audioListener:I}=y(),{audioEnabled:P}=(0,p.useSettings)(),S=(0,r.useRef)(null),R=(0,r.useRef)(null),_=(0,r.useRef)(null),T=(0,r.useRef)(!1),A=(0,r.useRef)(!1),E=(0,r.useRef)(new o.Vector3(g,x,M)),W=()=>{R.current&&clearTimeout(R.current),_.current&&clearTimeout(_.current)};(0,r.useEffect)(()=>{let e;if(w&&I){if(v){let t=new o.PositionalAudio(I);t.position.copy(E.current),t.setDistanceModel("inverse"),t.setRefDistance(d),t.setMaxDistance(m),t.setRolloffFactor(1),t.setVolume(u),e=t,j.add(e)}else(e=new o.Audio(I)).setVolume(u);return S.current=e,()=>{W();try{e.stop()}catch{}e.disconnect(),v&&j.remove(e),T.current=!1,A.current=!1}}},[w,I,v,d,m,u,j]);let D=e=>{if(f>0||b>0){let t=Math.max(0,f),r=Math.max(t,b),n=t===r?t:Math.random()*(r-t)+t;e.loop=!1;let i=()=>{!1===e.isPlaying?R.current=setTimeout(()=>{try{e.play(),D(e)}catch{}},n):_.current=setTimeout(i,100)};_.current=setTimeout(i,100)}else e.setLoop(!0)},N=e=>{if(T.current)try{e.isPlaying||(e.play(),D(e))}catch{}else B((0,l.audioToUrl)(c),w,t=>{if(!e.buffer){e.setBuffer(t),T.current=!0;try{e.play(),D(e)}catch{}}})};return(0,r.useEffect)(()=>{let e=S.current;e&&!v&&P&&c&&N(e)},[P,v,c,w,I]),(0,i.useFrame)(()=>{let e=S.current;if(!e||!v||!P||!c)return;let t=k.position.distanceTo(E.current),r=A.current,n=t<=m;if(n&&!r)A.current=!0,N(e);else if(!n&&r){A.current=!1,W();try{e.stop()}catch{}}}),(0,r.useEffect)(()=>{let e=S.current;if(e&&!P){W();try{e.stop()}catch{}}},[P]),s?(0,t.jsxs)("mesh",{position:E.current,children:[(0,t.jsx)("sphereGeometry",{args:[d,12,12]}),(0,t.jsx)("meshBasicMaterial",{color:"#00ff00",wireframe:!0,opacity:.05,transparent:!0,toneMapped:!1}),(0,t.jsx)(h.FloatingLabel,{color:"#00ff00",position:[0,d+1,0],children:c})]}):null});e.s(["AudioEmitter",0,k,"audioBufferCache",0,b,"getCachedAudioBuffer",()=>B,"playOneShotSound",()=>j,"resolveAudioProfile",()=>M,"trackDemoSound",()=>g,"untrackDemoSound",()=>x],29055)}]); |