mirror of
https://github.com/exogen/t2-mapper.git
synced 2026-03-13 17:30:56 +00:00
1 line
No EOL
5.3 KiB
JavaScript
1 line
No EOL
5.3 KiB
JavaScript
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,60505,e=>{"use strict";var t=e.i(932),r=e.i(71645),n=e.i(71753),c=e.i(15080),i=e.i(90072),o=e.i(12631),a=e.i(98755),u=e.i(58647),l=e.i(93784),m=e.i(5729),s=e.i(79123),d=e.i(51475),v=e.i(89119);let p=1/d.TICK_RATE,y=new i.Vector3,E=new i.Vector3;function h(){let e,i,h,w,T,b,M,P,L,_,O,R,I,A,C=(0,t.c)(27),k=(0,a.useLiveSelector)(S),K=(0,a.useLiveSelector)(g),z=(0,a.useLiveSelector)(f),X=(0,u.useEngineStoreApi)(),{speedMultiplier:Y}=(0,s.useControls)(),N=(0,r.useRef)(null),{gl:x}=(0,c.useThree)(),[,H]=(0,o.useKeyboardControls)(),D=(0,r.useRef)(0),U=(0,r.useRef)(0);C[0]===Symbol.for("react.memo_cache_sentinel")?(e={yaw:0,pitch:0,prevYaw:0,prevPitch:0,initialized:!1,lastSyncedCamera:null},C[0]=e):e=C[0];let V=(0,r.useRef)(e),W=(0,r.useRef)(0);return C[1]!==k||C[2]!==K||C[3]!==X?(i=()=>{k&&("connected"===K||"authenticating"===K)?N.current!==k&&(console.log("[LiveObserver] wiring adapter to engine store"),X.getState().setRecording({source:"live",duration:1/0,missionName:null,gameType:null,streamingPlayback:k}),X.getState().setPlaybackStatus("playing"),N.current=k,V.current.initialized=!1,V.current.lastSyncedCamera=null):!k&&N.current&&(X.getState().setRecording(null),N.current=null,V.current.initialized=!1)},h=[k,K,X],C[1]=k,C[2]=K,C[3]=X,C[4]=i,C[5]=h):(i=C[4],h=C[5]),(0,r.useEffect)(i,h),C[6]!==x.domElement?(w=()=>{let e=!1,t=t=>{document.pointerLockElement?(D.current=D.current+.002*t.movementX,U.current=U.current+.002*t.movementY):e&&(D.current=D.current+t.movementX*m.MOUSE_SENSITIVITY,U.current=U.current+t.movementY*m.MOUSE_SENSITIVITY)},r=t=>{document.pointerLockElement||t.target!==x.domElement||(e=!0)},n=()=>{e=!1};return document.addEventListener("mousemove",t),document.addEventListener("mousedown",r),document.addEventListener("mouseup",n),()=>{document.removeEventListener("mousemove",t),document.removeEventListener("mousedown",r),document.removeEventListener("mouseup",n)}},T=[x.domElement],C[6]=x.domElement,C[7]=w,C[8]=T):(w=C[7],T=C[8]),(0,r.useEffect)(w,T),C[9]===Symbol.for("react.memo_cache_sentinel")?(b=()=>{let e=e=>{document.pointerLockElement&&N.current&&"follow"===N.current.observerMode&&(e.stopImmediatePropagation(),N.current.cycleObserveNext())};return document.addEventListener("click",e,{capture:!0}),()=>{document.removeEventListener("click",e,{capture:!0})}},C[9]=b):b=C[9],C[10]!==x.domElement?(M=[x.domElement],C[10]=x.domElement,C[11]=M):M=C[11],(0,r.useEffect)(b,M),C[12]===Symbol.for("react.memo_cache_sentinel")?(P=()=>{let e=e=>{if("KeyO"!==e.code||e.metaKey||e.ctrlKey||e.altKey)return;let t=e.target;"INPUT"===t.tagName||"TEXTAREA"===t.tagName||t.isContentEditable||N.current&&(N.current.toggleObserverMode(),console.log(`[LiveObserver] observer mode: ${N.current.observerMode}`))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},L=[],C[12]=P,C[13]=L):(P=C[12],L=C[13]),(0,r.useEffect)(P,L),C[14]!==K||C[15]!==H?(_=(e,t)=>{if(!N.current||"connected"!==K)return;let{lookUp:r,lookDown:n,lookLeft:c,lookRight:i}=H();i&&(D.current=D.current+m.ARROW_LOOK_SPEED*t),c&&(D.current=D.current-m.ARROW_LOOK_SPEED*t),n&&(U.current=U.current+m.ARROW_LOOK_SPEED*t),r&&(U.current=U.current-m.ARROW_LOOK_SPEED*t)},C[14]=K,C[15]=H,C[16]=_):_=C[16],(0,n.useFrame)(_),C[17]!==K||C[18]!==H||C[19]!==z||C[20]!==Y?(O=()=>{if(!N.current||"connected"!==K)return;let{forward:e,backward:t,left:r,right:n,up:c,down:i}=H(),o=0,a=0,u=0;e&&(a=1),t&&(a-=1),r&&(o=-1),n&&(o+=1),c&&(u=1),i&&(u-=1);let l=D.current,m=U.current;D.current=0,U.current=0;let s=V.current;s.prevYaw=s.yaw,s.prevPitch=s.pitch,s.yaw=s.yaw+l,s.pitch=Math.max(-v.MAX_PITCH,Math.min(v.MAX_PITCH,s.pitch+m)),W.current=0;let d=Math.min(1,Y);z({x:o*d,y:a*d,z:u*d,yaw:l,pitch:m,roll:0,trigger:[!1,!0,!1,!1,!1,!1],freeLook:!1})},C[17]=K,C[18]=H,C[19]=z,C[20]=Y,C[21]=O):O=C[21],(0,d.useTick)(O),C[22]!==K?(R=(e,t)=>{if(!N.current||"connected"!==K)return;let r=V.current,n=N.current.getSnapshot(),c=n?.camera;if(c&&c!==r.lastSyncedCamera&&"number"==typeof c.yaw&&"number"==typeof c.pitch){let e=D.current,t=U.current;r.prevYaw=r.initialized?r.yaw:c.yaw,r.prevPitch=r.initialized?r.pitch:c.pitch,r.yaw=c.yaw+e,r.pitch=Math.max(-v.MAX_PITCH,Math.min(v.MAX_PITCH,c.pitch+t)),r.lastSyncedCamera=c,r.initialized=!0}if(!r.initialized)return;W.current=W.current+t;let i=Math.min(1,W.current/p),o=r.prevYaw+(r.yaw-r.prevYaw)*i+D.current,a=Math.max(-v.MAX_PITCH,Math.min(v.MAX_PITCH,r.prevPitch+(r.pitch-r.prevPitch)*i+U.current)),[u,m,s,d]=(0,v.yawPitchToQuaternion)(o,a);if(c?.mode==="third-person"&&c.orbitTargetId){let t=l.streamPlaybackStore.getState().root,r=t?.children.find(e=>e.name===c.orbitTargetId);if(r){E.copy(r.position);let t=l.streamPlaybackStore.getState().entities.get(c.orbitTargetId);t?.renderType==="Player"&&(E.y=E.y+1);let n=Math.sin(a),i=Math.cos(a),u=Math.sin(o),m=Math.cos(o);if(y.set(-m*i,-n,u*i),y.lengthSq()>1e-8){y.normalize();let t=Math.max(.1,c.orbitDistance??4);e.camera.position.copy(E).addScaledVector(y,t),e.camera.lookAt(E)}}}else e.camera.quaternion.set(u,m,s,d)},C[22]=K,C[23]=R):R=C[23],(0,n.useFrame)(R,1),C[24]!==X?(I=()=>()=>{N.current&&(X.getState().setRecording(null),N.current=null)},A=[X],C[24]=X,C[25]=I,C[26]=A):(I=C[25],A=C[26]),(0,r.useEffect)(I,A),null}function f(e){return e.sendMove}function g(e){return e.gameStatus}function S(e){return e.adapter}e.s(["LiveObserver",()=>h])}]); |