lingo3d-vanilla
Version:
Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor
1 lines • 2.11 kB
JavaScript
;(self.webpackChunklingo3d_vanilla=self.webpackChunklingo3d_vanilla||[]).push([[911],{1836:(e,t,n)=>{n.r(t),n.d(t,{default:()=>v});var o=n(1852),i=n(9694),c=n(4661),r=n(7736),s=n(6928),d=n(5359);function v(){this.done||(this.createEffect((()=>{if((0,r.T8)()!==this.camera||!this.mouseControlState.get())return;if((0,i.D)()===this.camera){const e=e=>this.gyrate(e.movementX,e.movementY);return document.addEventListener("mousemove",e),()=>{document.removeEventListener("mousemove",e)}}let e,t,n,d=!1;const v=()=>{d=!0,[t,n]=[void 0,void 0]},a=()=>d=!1,u=e=>{void 0===t&&(t=e.clientX),void 0===n&&(n=e.clientY);const[o,i]=[e.clientX-t,e.clientY-n];[t,n]=[e.clientX,e.clientY],d&&this.gyrate(o/window.innerWidth*3e3,i/window.innerHeight*3e3)};if(s.Z){const t=t=>{void 0===e&&(e=t.changedTouches[t.changedTouches.length-1].identifier,v())};o.n.addEventListener("touchstart",t);const n=t=>{void 0!==e&&t.changedTouches[t.changedTouches.length-1].identifier===e&&(e=void 0,a())};o.n.addEventListener("touchend",n);const i=t=>{if(void 0===e)return;let n;for(let o=0;o<t.changedTouches.length;++o){const i=t.changedTouches[o];if(i.identifier===e){n=i;break}}n&&u(n)};return o.n.addEventListener("touchmove",i),()=>{o.n.removeEventListener("touchstart",t),o.n.removeEventListener("touchend",n),o.n.removeEventListener("touchmove",i),e=void 0,d=!1}}const h=c.ag.on("down",v),l=c.ag.on("up",a);return o.n.addEventListener("mousemove",u),()=>{h.cancel(),l.cancel(),o.n.removeEventListener("mousemove",u),e=void 0,d=!1}}),[this.mouseControlState.get,r.T8,i.D]),this.createEffect((()=>{const e=(0,r.T8)();if(!0!==this.mouseControlState.get()||e!==this.camera||(0,d.J)())return;const t=()=>{var e;return null===(e=o.n.requestPointerLock)||void 0===e?void 0:e.call(o.n)},n=()=>{document.pointerLockElement===o.n?(0,i.F)(e):(0,i.F)(void 0)};return o.n.addEventListener("click",t),document.addEventListener("pointerlockchange",n),()=>{o.n.removeEventListener("click",t),document.removeEventListener("pointerlockchange",n),document.exitPointerLock(),(0,i.F)(void 0)}}),[this.mouseControlState.get,r.T8,d.J]))}}}]);