UNPKG

lingo3d-vanilla

Version:

Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor

1 lines 2.88 kB
"use strict";(self.webpackChunklingo3d_vanilla=self.webpackChunklingo3d_vanilla||[]).push([[892],{4243:(t,e,n)=>{function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}n.d(e,{Z:()=>s});class s{constructor(){i(this,"x",!1),i(this,"y",!1),i(this,"z",!1)}updateX(){this.x=!0}updateY(){this.x=!0}updateZ(){this.x=!0}updateXYZ(){this.x=this.y=this.z=!0}updateXZ(){this.x=this.z=!0}reset(){this.x=this.y=this.z=!1}}},6938:(t,e,n)=>{n.d(e,{S:()=>i});const i=new WeakMap},27:(t,e,n)=>{n.r(e),n.d(e,{default:()=>O});var i=n(7002),s=n(6568),a=n(2275),o=n(1757);const h=new Set;var d=n(5394),r=n(6721),c=n(8155),l=n(9401),u=n(7398),p=n(4398),b=n(7996),v=n(8753),y=n(8832),f=n(5190),m=n(5359),x=n(6938),Z=n(2257),S=n(9318),g=n(8892);const z=()=>new WeakSet;(0,d.GW)((function(){if((0,m.J)()||!(0,S.P)()||(0,g.kq)())return;const t=(0,l.j0)();if(!t.length)return;const e=(0,p.X)(),n=(0,b.c)(),i=.02,s=(0,u.X)(),a=(0,c.W)((()=>{y.Z.clear();for(const a of h){const o=a.bvhVelocity,h=a.outerObject3d,d=a.bvhHalfHeight,c=s?d:a.bvhRadius;s?o.add(a.bvhOnGround||!1===a._gravity?v.FA:(0,f.Z)(h).normalize().multiplyScalar(i*-e*Z.RF[0])):o.y+=a.bvhOnGround||!1===a._gravity?0:i*-e*Z.RF[0];const l=a.positionUpdate;l.x&&(o.x=0),l.y&&(o.y=0),l.z&&(o.z=0),l.reset(),h.position.addScaledVector(o,i),h.updateMatrixWorld();const{start:u,end:p}=v.V;p.copy(u.copy(h.position));const b=Math.max(d-c,0);p.y+=b,u.y-=b;const m=u.clone();v.PK.setFromCenterAndSize(h.position,v.Ry.set(2*c,2*d,2*c));const S=v.dW,g=v.cA;let w,O,P=0,k=!1;for(const e of t)O=x.S.get(e),e.shapecast({intersectsBounds:t=>t.intersectsBox(v.PK),intersectsTriangle:t=>{P=t.closestPointToSegment(v.V,S,g),P<c&&(k=!0,w=g.sub(S).normalize().multiplyScalar(c-P),u.add(w),p.add(w))}});k&&O&&(0,r.Ze)(y.Z,a,z).add(O);const M=u.sub(m);s?a.bvhOnGround=k:(a.bvhOnGround=M.y>Math.abs(i*o.y*.25),n&&a.bvhOnGround&&Math.abs(M.y/(M.x+M.z+Number.EPSILON))<n&&(a.bvhOnGround=!1));const G=Math.max(0,M.length()-1e-5);M.normalize().multiplyScalar(G),h.position.add(M),a.bvhOnGround?o.set(0,0,0):(M.normalize(),o.addScaledVector(M,-M.dot(o)))}}));return()=>{a.cancel()}}),[l.j0,p.X,b.c,u.X,m.J,S.P,g.kq]);var w=n(4243);function O(t){if(t.done)return;s.Z.attach(this.outerObject3d),this instanceof o.Z&&(this.width=this.depth=Math.min(this.width,this.depth)),this.rotationUpdate=new w.Z,this.positionUpdate=new w.Z;const e=(0,a.Z)(this).multiplyScalar(.5);this.bvhHalfHeight=Math.max(e.y,.5),this.bvhRadius=Math.max(e.x,.5),this.bvhVelocity=new i.Pa4,h.add(this),t.then((()=>{h.delete(this),this.rotationUpdate=void 0,this.positionUpdate=void 0}))}},8892:(t,e,n)=>{n.d(e,{Io:()=>o,_n:()=>h,kq:()=>a});var i=n(5394);const[s,a]=(0,i.ZP)(0),o=()=>s(a()+1),h=()=>s(a()-1)},9401:(t,e,n)=>{n.d(e,{ES:()=>o,Pf:()=>h,j0:()=>a});var i=n(5394);const[s,a]=(0,i.ZP)([]),o=(0,i.VF)(s,a),h=(0,i.X4)(s,a)}}]);