angry-pixel 2.0.16 → 2.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2 @@
1
+ "use strict";var i;function t(i,t,e,s){var o,r=arguments.length,n=r<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(i,t,e,s);else for(var h=i.length-1;h>=0;h--)(o=i[h])&&(n=(r<3?o(n):r>3?o(t,e,n):o(t,e))||n);return r>3&&n&&Object.defineProperty(t,e,n),n}function e(i,t){return function(e,s){t(e,s,i)}}!function(i){i[i.QuadTree=0]="QuadTree",i[i.SpartialGrid=1]="SpartialGrid"}(i||(i={})),"function"==typeof SuppressedError&&SuppressedError;class s{constructor(i=0,t=0){this._x=i,this._y=t}get x(){return this._x}set x(i){this._x=i}get y(){return this._y}set y(i){this._y=i}get magnitude(){return Math.sqrt(Math.pow(this._x,2)+Math.pow(this._y,2))}get direction(){return this._direction||(this._direction=new s),s.unit(this._direction,this)}set(i,t){this._x=i,this._y=t}copy(i){this.set(i.x,i.y)}equals(i){return this._x===i.x&&this._y===i.y}clone(){return new s(this._x,this._y)}distance(i){return Math.sqrt(Math.pow(this._x-i.x,2)+Math.pow(this._y-i.y,2))}static add(i,t,e){return i.set(t.x+e.x,t.y+e.y),i}static subtract(i,t,e){return i.set(t.x-e.x,t.y-e.y),i}static unit(i,t){return 0===t.magnitude?i.set(0,0):i.set(t.x/t.magnitude,t.y/t.magnitude),i}static normal(i,t){return i.set(-t.y,t.x),this.unit(i,i)}static scale(i,t,e){return i.set(t.x*e,t.y*e),i}static dot(i,t){return i.x*t.x+i.y*t.y}static cross(i,t){return i.x*t.y-i.y*t.x}static round(i,t){return i.set(Math.round(t.x),Math.round(t.y)),i}toString(){return`(${this._x}, ${this._y})`}}class o{constructor(i=0,t=0,e=0,o=0){this.width=0,this.height=0,this._position=new s,this._center=new s,this.set(i,t,e,o)}get x(){return this._position.x}set x(i){this._position.set(i,this._position.y)}get y(){return this._position.y}set y(i){this._position.set(this._position.x,i)}get x1(){return this._position.x+this.width}get y1(){return this._position.y+this.height}get position(){return this._position}set position(i){this._position.set(i.x,i.y)}get center(){return this._center.set(this.x+this.width/2,this.y+this.height/2),this._center}set(i,t,e,s){this._position.set(i,t),this.width=e,this.height=s}equals(i){return this.position.equals(i.position)&&this.width===i.width&&this.height===i.height}copy(i){this.set(i.x,i.y,i.width,i.height)}overlaps(i){return this.x1>=i.x&&this.x<i.x1&&this.y1>=i.y&&this.y<i.y1}contains(i){return i instanceof o?i.x1<=this.x1&&i.x>=this.x&&i.y1<=this.y1&&i.y>=this.y:i instanceof s&&!(i.x<this.x||i.y<this.y||i.x>=this.x1||i.y>=this.y1)}}const r=(i,t,e)=>Math.min(e,Math.max(t,i));function n(i){return function(t){t.prototype.__ioc_injectable&&t.prototype.__ioc_injectable===i||(t.prototype.__ioc_injectable=i)}}function h(i){return function(t,e,s){void 0!==s?(t.prototype.__ioc_inject_constructor||(t.prototype.__ioc_inject_constructor=[]),t.prototype.__ioc_inject_constructor[s]=i):void 0!==e&&(t.constructor.prototype.__ioc_inject_prop||(t.constructor.prototype.__ioc_inject_prop=[]),t.constructor.prototype.__ioc_inject_prop.push([e,i]))}}const a={AssetManager:Symbol.for("AssetManager"),CanvasElement:Symbol.for("CanvasElement"),CollisionRepository:Symbol.for("CollisionRepository"),CollisionBroadphaseResolver:Symbol.for("CollisionBroadphaseResolver"),CollisionResolutionMethod:Symbol.for("CollisionResolutionMethod"),CollisionAABBResolver:Symbol.for("CollisionAABBResolver"),CollisionCircumferenceAABBResolver:Symbol.for("CollisionCircumferenceAABBResolver"),CollisionCircumferenceResolver:Symbol.for("CollisionCircumferenceResolver"),CollisionSatResolver:Symbol.for("CollisionSatResolver"),CollisionMatrix:Symbol.for("CollisionMatrix"),CreateSystemService:Symbol.for("CreateSystemService"),EntityManager:Symbol.for("EntityManager"),GameConfig:Symbol.for("GameConfig"),InputManager:Symbol.for("InputManager"),LoopManager:Symbol.for("LoopManager"),RenderManager:Symbol.for("RenderManager"),SceneManager:Symbol.for("SceneManager"),SystemManager:Symbol.for("SystemManager"),TimeManager:Symbol.for("TimeManager"),WebGLManager:Symbol.for("WebGLManager")};var c;let l=c=class{constructor(i=new o,t=0){this.children=[],this.shapes=[],this.minArea=new s,this.maxArea=new s,this.area=i,this.depth=t}clear(){this.shapes=[],this.children=[]}update(i){this.clear(),this.resizeArea(i),i.forEach((({id:i,boundingBox:t})=>this.insert(i,t)))}resizeArea(i){this.minArea.set(0,0),this.maxArea.set(0,0),i.forEach((({boundingBox:i})=>{this.minArea.set(Math.min(i.x,this.minArea.x),Math.min(i.y,this.minArea.y)),this.maxArea.set(Math.max(i.x1,this.maxArea.x),Math.max(i.y1,this.maxArea.y))})),this.area.set(this.minArea.x,this.minArea.y,this.maxArea.x-this.minArea.x,this.maxArea.y-this.minArea.y)}retrieve(i){const t=[];return this.children.length>0?this.getChildrenForBox(i).forEach((e=>t.push(...e.retrieve(i).filter((i=>!t.includes(i)))))):this.shapes.forEach((i=>t.push(i[0]))),t}insert(i,t){0===this.children.length&&this.shapes.length>16&&this.depth<8&&this.split(),this.children.length>0?this.insertItemIntoChildren(i,t):this.shapes.push([i,t])}split(){const i=this.area.width/2,t=this.area.height/2;this.children=[new o(this.area.x,this.area.y,i,t),new o(this.area.x,this.area.y+t,i,t),new o(this.area.x+i,this.area.y+t,i,t),new o(this.area.x+i,this.area.y,i,t)].map((i=>new c(i,this.depth+1))),this.shapes.forEach((i=>this.insertItemIntoChildren(i[0],i[1]))),this.shapes=[]}insertItemIntoChildren(i,t){this.getChildrenForBox(t).forEach((e=>e.insert(i,t)))}getChildrenForBox(i){const t=[];return i.x<=this.area.center.x&&i.y<=this.area.center.y&&t.push(this.children[0]),i.x<=this.area.center.x&&i.y1>=this.area.center.y&&t.push(this.children[1]),i.x1>=this.area.center.x&&i.y1>=this.area.center.y&&t.push(this.children[2]),i.x1>=this.area.center.x&&i.y<=this.area.center.y&&t.push(this.children[3]),t}};l=c=t([n(a.CollisionBroadphaseResolver)],l);const d=(i,t,e,s)=>Math.min((i-t)/e|0,s-1);let u=class{constructor(){this.area=new o,this.colliders=[],this.subdivisions=0,this.coordinates={x0:0,x1:0,y0:0,y1:0},this.minArea=new s,this.maxArea=new s}clear(){for(let i=0;i<this.subdivisions;i++)for(let t=0;t<this.subdivisions;t++)this.colliders[i][t]=[]}update(i){this.resizeArea(i),this.updateSubdivisions(i.length),i.forEach((({id:i,boundingBox:t})=>this.insert(i,t)))}resizeArea(i){this.minArea.set(0,0),this.maxArea.set(0,0),i.forEach((({boundingBox:i})=>{this.minArea.set(Math.min(i.x,this.minArea.x),Math.min(i.y,this.minArea.y)),this.maxArea.set(Math.max(i.x1,this.maxArea.x),Math.max(i.y1,this.maxArea.y))})),this.area.set(this.minArea.x,this.minArea.y,this.maxArea.x-this.minArea.x,this.maxArea.y-this.minArea.y)}updateSubdivisions(i){this.subdivisions=1+(i/10|0),this.cellWidth=Math.ceil(this.area.width/this.subdivisions),this.cellHeight=Math.ceil(this.area.height/this.subdivisions),this.colliders=[];for(let i=0;i<this.subdivisions;i++){this.colliders[i]=[];for(let t=0;t<this.subdivisions;t++)this.colliders[i][t]=[]}}insert(i,t){this.updateCoordinates(t);for(let t=this.coordinates.x0;t<=this.coordinates.x1;t++)for(let e=this.coordinates.y0;e<=this.coordinates.y1;e++)this.colliders[t][e].push(i)}retrieve(i){const t=[];this.updateCoordinates(i);for(let i=this.coordinates.x0;i<=this.coordinates.x1;i++)for(let e=this.coordinates.y0;e<=this.coordinates.y1;e++)this.colliders[i][e].forEach((i=>t.includes(i)?void 0:t.push(i)));return t}updateCoordinates(i){this.coordinates.x0=d(i.x,this.area.x,this.cellWidth,this.subdivisions),this.coordinates.x1=d(i.x1,this.area.x,this.cellWidth,this.subdivisions),this.coordinates.y0=d(i.y,this.area.y,this.cellHeight,this.subdivisions),this.coordinates.y1=d(i.y1,this.area.y,this.cellHeight,this.subdivisions)}};u=t([n(a.CollisionBroadphaseResolver)],u);class x{get vertexModel(){return this._vertexModel}set vertexModel(i){if(this._vertexModel=i,2===i.length)return this.vertices=[new s,new s],void(this.projectionAxes=[new s]);this.vertices=[],this.projectionAxes=[],this._vertexModel.forEach((()=>{this.vertices.push(new s),this.projectionAxes.push(new s)}))}constructor(i,t=0){this.rotation=t,this.boundingBox=new o,this.collider=void 0,this.entity=void 0,this.id=void 0,this.ignoreCollisionsWithLayers=void 0,this.layer=void 0,this.position=new s,this.projectionAxes=[],this.radius=0,this.vertices=[],this.updateCollisions=!0,this._vertexModel=[],this.vertexModel=i}}class p{constructor(i){this.radius=i,this.boundingBox=new o,this.collider=void 0,this.entity=void 0,this.id=void 0,this.ignoreCollisionsWithLayers=void 0,this.layer=void 0,this.position=new s,this.projectionAxes=[new s],this.rotation=0,this.vertexModel=[],this.vertices=[new s,new s],this.updateCollisions=!0}}let y=class{constructor(i,t,e){this.AABBResolver=i,this.circumferenceAABBResolver=t,this.circumferenceResolver=e}findCollision(i,t){return i instanceof x&&t instanceof x?this.AABBResolver.resolve(i,t):i instanceof p&&t instanceof x?this.circumferenceAABBResolver.resolve(i,t):i instanceof x&&t instanceof p?this.circumferenceAABBResolver.resolve(t,i,!0):i instanceof p&&t instanceof p?this.circumferenceResolver.resolve(i,t):void 0}};var m;y=t([n(a.CollisionResolutionMethod),e(0,h(a.CollisionAABBResolver)),e(1,h(a.CollisionCircumferenceAABBResolver)),e(2,h(a.CollisionCircumferenceResolver))],y),function(i){i[i.AABB=0]="AABB",i[i.SAT=1]="SAT"}(m||(m={}));let v=class{constructor(i,t){this.circumferenceResolver=i,this.satResolver=t}findCollision(i,t){return i instanceof p&&t instanceof p?this.circumferenceResolver.resolve(i,t):this.satResolver.resolve(i,t)}};v=t([n(a.CollisionResolutionMethod),e(0,h(a.CollisionCircumferenceResolver)),e(1,h(a.CollisionSatResolver))],v);let f=class{constructor(){this.direction=new s,this.resolutionDirection=new s}resolve({boundingBox:i},{boundingBox:t}){if(this.overlapX=Math.min(i.x1,t.x1)-Math.max(i.x,t.x),this.overlapY=Math.min(i.y1,t.y1)-Math.max(i.y,t.y),!(this.overlapX<0||this.overlapY<0))return this.checkOverlapForLines(i,t),this.direction.set(Math.sign(t.center.x-i.center.x),Math.sign(t.center.y-i.center.y)),this.preventContainment(i,t),this.overlapY<this.overlapX?(this.minOverlap=this.overlapY,this.resolutionDirection.set(0,this.direction.y)):(this.minOverlap=this.overlapX,this.resolutionDirection.set(this.direction.x,this.overlapY===this.overlapX?this.direction.y:0)),{direction:s.unit(new s,this.resolutionDirection),penetration:this.minOverlap}}checkOverlapForLines(i,t){0!==i.width&&0!==t.width||0!==this.overlapX||(this.overlapX=Math.min(Math.abs(i.x-t.x),Math.abs(i.x1-t.x1))),0!==i.height&&0!==t.height||0!==this.overlapY||(this.overlapY=Math.min(Math.abs(i.y-t.y),Math.abs(i.y1-t.y1)))}preventContainment(i,t){if(this.overlapY>0&&(i.y1>t.y1&&i.y<t.y||i.y1<t.y1&&i.y>t.y)){const e=Math.abs(i.y-t.y),s=Math.abs(i.y1-t.y1);this.overlapY+=e<s?e:s}if(this.overlapX>0&&(i.x1>t.x1&&i.x<t.x||i.x1<t.x1&&i.x>t.x)){const e=Math.abs(i.x-t.x),s=Math.abs(i.x1-t.x1);this.overlapX+=e<s?e:s}}};f=t([n(a.CollisionAABBResolver)],f);let A=class{constructor(){this.closestPoint=new s,this.distance=new s,this.direction=new s}resolve(i,t,e=!1){if(this.closestPoint.set(r(i.position.x,t.boundingBox.x,t.boundingBox.x1),r(i.position.y,t.boundingBox.y,t.boundingBox.y1)),s.subtract(this.distance,this.closestPoint,i.position),!(this.distance.magnitude>i.radius))return s.unit(this.direction,this.distance),{direction:e?s.scale(new s,this.direction,-1):this.direction.clone(),penetration:i.radius-this.distance.magnitude}}};A=t([n(a.CollisionCircumferenceAABBResolver)],A);let g=class{constructor(){this.distance=new s,this.direction=new s}resolve(i,t){if(s.subtract(this.distance,t.position,i.position),!(this.distance.magnitude>i.radius+t.radius))return s.unit(this.direction,this.distance),{direction:this.direction.clone(),penetration:i.radius+t.radius-this.distance.magnitude}}};g=t([n(a.CollisionCircumferenceResolver)],g);let M=class{constructor(){this.projA={min:0,max:0},this.projB={min:0,max:0},this.smallestAxis=new s,this.distance=new s(1/0,1/0),this.cache=new s}resolve(i,t){this.minOverlap=1/0,i instanceof p?this.setCircumferenceAxis(i,t):t instanceof p&&this.setCircumferenceAxis(t,i),this.axes=[...i.projectionAxes],t.projectionAxes.forEach((i=>this.axes.some((t=>t.equals(i)))?void 0:this.axes.push(i)));for(let e=0;e<this.axes.length;e++){if(i instanceof p?this.setCircumferenceVertices(i,this.axes[e]):t instanceof p&&this.setCircumferenceVertices(t,this.axes[e]),this.projectShapeOntoAxis(this.projA,i,this.axes[e]),this.projectShapeOntoAxis(this.projB,t,this.axes[e]),this.currentOverlap=Math.min(this.projA.max,this.projB.max)-Math.max(this.projA.min,this.projB.min),this.currentOverlap<0)return;if(this.invertAxis=!0,this.projA.max>this.projB.max&&this.projA.min<this.projB.min||this.projA.max<this.projB.max&&this.projA.min>this.projB.min){const i=Math.abs(this.projA.min-this.projB.min),t=Math.abs(this.projA.max-this.projB.max);i<t?this.currentOverlap+=i:(this.currentOverlap+=t,s.scale(this.axes[e],this.axes[e],-1),this.invertAxis=!1)}this.currentOverlap<this.minOverlap&&(this.minOverlap=this.currentOverlap,this.smallestAxis.copy(this.axes[e]),this.invertAxis&&this.projA.max<this.projB.max&&s.scale(this.smallestAxis,this.axes[e],-1))}return{direction:s.scale(new s,this.smallestAxis,-1),penetration:this.minOverlap}}projectShapeOntoAxis(i,t,e){return i.min=1/0,i.max=-1/0,t.vertices.forEach((t=>{i.min=Math.min(s.dot(e,t),i.min),i.max=Math.max(s.dot(e,t),i.max)})),i}setCircumferenceAxis(i,t){this.distance.set(1/0,1/0),t.vertices.forEach((t=>{s.subtract(this.cache,t,i.position),this.cache.magnitude<this.distance.magnitude&&this.distance.copy(this.cache)})),s.unit(i.projectionAxes[0],this.distance)}setCircumferenceVertices(i,t){s.add(i.vertices[0],i.position,s.scale(this.cache,s.unit(this.cache,t),-i.radius)),s.add(i.vertices[1],i.position,s.scale(this.cache,s.unit(this.cache,t),i.radius))}};M=t([n(a.CollisionSatResolver)],M);let _=class{constructor(){this.collisions=[]}findCollisionsForCollider(i){return this.collisions.filter((t=>t.localCollider===i))}findCollisionsForColliderAndLayer(i,t){return this.collisions.filter((e=>e.localCollider===i&&e.remoteCollider.layer===t))}findAll(){return this.collisions}persist(i){this.collisions.push(i)}removeAll(){this.collisions=[]}};_=t([n(a.CollisionRepository)],_);const C=new u;self.onmessage=i=>{const{type:t,data:e}=i.data;if("update"===t)C.update(e.map((i=>(i.boundingBox=b(i.boundingBox),i)))),self.postMessage(!0);else if("retrieve"===t){const i=C.retrieve(b(e));self.postMessage(i)}};const b=i=>new o(i._position._x,i._position._y,i.width,i.height);
2
+ //# sourceMappingURL=broadPhaseWorker.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadPhaseWorker.cjs.js","sources":["../../../packages/engine/src/utils/collisions2d/broadPhase/IBroadPhaseResolver.ts","../../../node_modules/tslib/tslib.es6.js","../../../packages/engine/src/utils/math/Vector2.ts","../../../packages/engine/src/utils/math/Rectangle.ts","../../../packages/engine/src/utils/math/Utils.ts","../../../packages/engine/src/utils/ioc/container.ts","../../../packages/engine/src/config/types.ts","../../../packages/engine/src/utils/collisions2d/broadPhase/QuadTree.ts","../../../packages/engine/src/utils/collisions2d/broadPhase/SpartialGrid.ts","../../../packages/engine/src/utils/collisions2d/Shape.ts","../../../packages/engine/src/utils/collisions2d/method/AABBMethod.ts","../../../packages/engine/src/utils/collisions2d/method/CollisionMethod.ts","../../../packages/engine/src/utils/collisions2d/method/SatMethod.ts","../../../packages/engine/src/utils/collisions2d/resolver/AABBResolver.ts","../../../packages/engine/src/utils/collisions2d/resolver/CircumferenceAABBResolver.ts","../../../packages/engine/src/utils/collisions2d/resolver/CircumferenceResolver.ts","../../../packages/engine/src/utils/collisions2d/resolver/SatResolver.ts","../../../packages/engine/src/utils/collisions2d/CollisionRepository.ts","../../../packages/engine/src/worker/broadPhaseWorker.ts"],"sourcesContent":[null,"/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["BroadPhaseMethods","__decorate","decorators","target","key","desc","d","c","arguments","length","r","Object","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__param","paramIndex","decorator","SuppressedError","Vector2","constructor","x","y","this","_x","_y","magnitude","Math","sqrt","pow","direction","_direction","unit","set","copy","vector","equals","clone","distance","add","out","a","b","subtract","normal","scale","scalar","dot","cross","round","toString","Rectangle","width","height","_position","_center","value","x1","y1","position","center","rectangle","rect","overlaps","contains","object","clamp","min","max","injectable","name","prototype","__ioc_injectable","inject","propertyKey","parameterIndex","undefined","__ioc_inject_constructor","__ioc_inject_prop","push","TYPES","AssetManager","Symbol","for","CanvasElement","CollisionRepository","CollisionBroadphaseResolver","CollisionResolutionMethod","CollisionAABBResolver","CollisionCircumferenceAABBResolver","CollisionCircumferenceResolver","CollisionSatResolver","CollisionMatrix","CreateSystemService","EntityManager","GameConfig","InputManager","LoopManager","RenderManager","SceneManager","SystemManager","TimeManager","WebGLManager","QuadTree","QuadTree_1","area","depth","children","shapes","minArea","maxArea","clear","update","resizeArea","forEach","id","boundingBox","insert","box","retrieve","items","getChildrenForBox","child","filter","includes","item","split","insertItemIntoChildren","childWidth","childHeight","map","quadrant","cell","subdivisions","SpartialGrid","colliders","coordinates","x0","y0","updateSubdivisions","cellWidth","ceil","cellHeight","updateCoordinates","Polygon","vertexModel","_vertexModel","vertices","projectionAxes","rotation","collider","entity","ignoreCollisionsWithLayers","layer","radius","updateCollisions","Circumference","AABBMethod","AABBResolver","circumferenceAABBResolver","circumferenceResolver","findCollision","shapeA","shapeB","resolve","CollisionMethods","SatMethod","satResolver","resolutionDirection","boxA","boxB","overlapX","overlapY","checkOverlapForLines","sign","preventContainment","minOverlap","penetration","abs","minSep","maxSep","CircumferenceAABBResolver","closestPoint","invert","CircumferenceResolver","SatResolver","projA","projB","smallestAxis","Infinity","cache","setCircumferenceAxis","axes","pa","some","setCircumferenceVertices","projectShapeOntoAxis","currentOverlap","invertAxis","mins","maxs","projection","shape","axis","vertex","s","collisions","findCollisionsForCollider","localCollider","findCollisionsForColliderAndLayer","remoteCollider","findAll","persist","collision","removeAll","broadPhaseResolver","self","onmessage","event","type","data","fixRectangle","postMessage","result"],"mappings":"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","x_google_ignoreList":[1]}
@@ -0,0 +1,2 @@
1
+ var i;function t(i,t,e,s){var o,r=arguments.length,n=r<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(i,t,e,s);else for(var h=i.length-1;h>=0;h--)(o=i[h])&&(n=(r<3?o(n):r>3?o(t,e,n):o(t,e))||n);return r>3&&n&&Object.defineProperty(t,e,n),n}function e(i,t){return function(e,s){t(e,s,i)}}!function(i){i[i.QuadTree=0]="QuadTree",i[i.SpartialGrid=1]="SpartialGrid"}(i||(i={})),"function"==typeof SuppressedError&&SuppressedError;class s{constructor(i=0,t=0){this._x=i,this._y=t}get x(){return this._x}set x(i){this._x=i}get y(){return this._y}set y(i){this._y=i}get magnitude(){return Math.sqrt(Math.pow(this._x,2)+Math.pow(this._y,2))}get direction(){return this._direction||(this._direction=new s),s.unit(this._direction,this)}set(i,t){this._x=i,this._y=t}copy(i){this.set(i.x,i.y)}equals(i){return this._x===i.x&&this._y===i.y}clone(){return new s(this._x,this._y)}distance(i){return Math.sqrt(Math.pow(this._x-i.x,2)+Math.pow(this._y-i.y,2))}static add(i,t,e){return i.set(t.x+e.x,t.y+e.y),i}static subtract(i,t,e){return i.set(t.x-e.x,t.y-e.y),i}static unit(i,t){return 0===t.magnitude?i.set(0,0):i.set(t.x/t.magnitude,t.y/t.magnitude),i}static normal(i,t){return i.set(-t.y,t.x),this.unit(i,i)}static scale(i,t,e){return i.set(t.x*e,t.y*e),i}static dot(i,t){return i.x*t.x+i.y*t.y}static cross(i,t){return i.x*t.y-i.y*t.x}static round(i,t){return i.set(Math.round(t.x),Math.round(t.y)),i}toString(){return`(${this._x}, ${this._y})`}}class o{constructor(i=0,t=0,e=0,o=0){this.width=0,this.height=0,this._position=new s,this._center=new s,this.set(i,t,e,o)}get x(){return this._position.x}set x(i){this._position.set(i,this._position.y)}get y(){return this._position.y}set y(i){this._position.set(this._position.x,i)}get x1(){return this._position.x+this.width}get y1(){return this._position.y+this.height}get position(){return this._position}set position(i){this._position.set(i.x,i.y)}get center(){return this._center.set(this.x+this.width/2,this.y+this.height/2),this._center}set(i,t,e,s){this._position.set(i,t),this.width=e,this.height=s}equals(i){return this.position.equals(i.position)&&this.width===i.width&&this.height===i.height}copy(i){this.set(i.x,i.y,i.width,i.height)}overlaps(i){return this.x1>=i.x&&this.x<i.x1&&this.y1>=i.y&&this.y<i.y1}contains(i){return i instanceof o?i.x1<=this.x1&&i.x>=this.x&&i.y1<=this.y1&&i.y>=this.y:i instanceof s&&!(i.x<this.x||i.y<this.y||i.x>=this.x1||i.y>=this.y1)}}const r=(i,t,e)=>Math.min(e,Math.max(t,i));function n(i){return function(t){t.prototype.__ioc_injectable&&t.prototype.__ioc_injectable===i||(t.prototype.__ioc_injectable=i)}}function h(i){return function(t,e,s){void 0!==s?(t.prototype.__ioc_inject_constructor||(t.prototype.__ioc_inject_constructor=[]),t.prototype.__ioc_inject_constructor[s]=i):void 0!==e&&(t.constructor.prototype.__ioc_inject_prop||(t.constructor.prototype.__ioc_inject_prop=[]),t.constructor.prototype.__ioc_inject_prop.push([e,i]))}}const a={AssetManager:Symbol.for("AssetManager"),CanvasElement:Symbol.for("CanvasElement"),CollisionRepository:Symbol.for("CollisionRepository"),CollisionBroadphaseResolver:Symbol.for("CollisionBroadphaseResolver"),CollisionResolutionMethod:Symbol.for("CollisionResolutionMethod"),CollisionAABBResolver:Symbol.for("CollisionAABBResolver"),CollisionCircumferenceAABBResolver:Symbol.for("CollisionCircumferenceAABBResolver"),CollisionCircumferenceResolver:Symbol.for("CollisionCircumferenceResolver"),CollisionSatResolver:Symbol.for("CollisionSatResolver"),CollisionMatrix:Symbol.for("CollisionMatrix"),CreateSystemService:Symbol.for("CreateSystemService"),EntityManager:Symbol.for("EntityManager"),GameConfig:Symbol.for("GameConfig"),InputManager:Symbol.for("InputManager"),LoopManager:Symbol.for("LoopManager"),RenderManager:Symbol.for("RenderManager"),SceneManager:Symbol.for("SceneManager"),SystemManager:Symbol.for("SystemManager"),TimeManager:Symbol.for("TimeManager"),WebGLManager:Symbol.for("WebGLManager")};var c;let l=c=class{constructor(i=new o,t=0){this.children=[],this.shapes=[],this.minArea=new s,this.maxArea=new s,this.area=i,this.depth=t}clear(){this.shapes=[],this.children=[]}update(i){this.clear(),this.resizeArea(i),i.forEach((({id:i,boundingBox:t})=>this.insert(i,t)))}resizeArea(i){this.minArea.set(0,0),this.maxArea.set(0,0),i.forEach((({boundingBox:i})=>{this.minArea.set(Math.min(i.x,this.minArea.x),Math.min(i.y,this.minArea.y)),this.maxArea.set(Math.max(i.x1,this.maxArea.x),Math.max(i.y1,this.maxArea.y))})),this.area.set(this.minArea.x,this.minArea.y,this.maxArea.x-this.minArea.x,this.maxArea.y-this.minArea.y)}retrieve(i){const t=[];return this.children.length>0?this.getChildrenForBox(i).forEach((e=>t.push(...e.retrieve(i).filter((i=>!t.includes(i)))))):this.shapes.forEach((i=>t.push(i[0]))),t}insert(i,t){0===this.children.length&&this.shapes.length>16&&this.depth<8&&this.split(),this.children.length>0?this.insertItemIntoChildren(i,t):this.shapes.push([i,t])}split(){const i=this.area.width/2,t=this.area.height/2;this.children=[new o(this.area.x,this.area.y,i,t),new o(this.area.x,this.area.y+t,i,t),new o(this.area.x+i,this.area.y+t,i,t),new o(this.area.x+i,this.area.y,i,t)].map((i=>new c(i,this.depth+1))),this.shapes.forEach((i=>this.insertItemIntoChildren(i[0],i[1]))),this.shapes=[]}insertItemIntoChildren(i,t){this.getChildrenForBox(t).forEach((e=>e.insert(i,t)))}getChildrenForBox(i){const t=[];return i.x<=this.area.center.x&&i.y<=this.area.center.y&&t.push(this.children[0]),i.x<=this.area.center.x&&i.y1>=this.area.center.y&&t.push(this.children[1]),i.x1>=this.area.center.x&&i.y1>=this.area.center.y&&t.push(this.children[2]),i.x1>=this.area.center.x&&i.y<=this.area.center.y&&t.push(this.children[3]),t}};l=c=t([n(a.CollisionBroadphaseResolver)],l);const d=(i,t,e,s)=>Math.min((i-t)/e|0,s-1);let u=class{constructor(){this.area=new o,this.colliders=[],this.subdivisions=0,this.coordinates={x0:0,x1:0,y0:0,y1:0},this.minArea=new s,this.maxArea=new s}clear(){for(let i=0;i<this.subdivisions;i++)for(let t=0;t<this.subdivisions;t++)this.colliders[i][t]=[]}update(i){this.resizeArea(i),this.updateSubdivisions(i.length),i.forEach((({id:i,boundingBox:t})=>this.insert(i,t)))}resizeArea(i){this.minArea.set(0,0),this.maxArea.set(0,0),i.forEach((({boundingBox:i})=>{this.minArea.set(Math.min(i.x,this.minArea.x),Math.min(i.y,this.minArea.y)),this.maxArea.set(Math.max(i.x1,this.maxArea.x),Math.max(i.y1,this.maxArea.y))})),this.area.set(this.minArea.x,this.minArea.y,this.maxArea.x-this.minArea.x,this.maxArea.y-this.minArea.y)}updateSubdivisions(i){this.subdivisions=1+(i/10|0),this.cellWidth=Math.ceil(this.area.width/this.subdivisions),this.cellHeight=Math.ceil(this.area.height/this.subdivisions),this.colliders=[];for(let i=0;i<this.subdivisions;i++){this.colliders[i]=[];for(let t=0;t<this.subdivisions;t++)this.colliders[i][t]=[]}}insert(i,t){this.updateCoordinates(t);for(let t=this.coordinates.x0;t<=this.coordinates.x1;t++)for(let e=this.coordinates.y0;e<=this.coordinates.y1;e++)this.colliders[t][e].push(i)}retrieve(i){const t=[];this.updateCoordinates(i);for(let i=this.coordinates.x0;i<=this.coordinates.x1;i++)for(let e=this.coordinates.y0;e<=this.coordinates.y1;e++)this.colliders[i][e].forEach((i=>t.includes(i)?void 0:t.push(i)));return t}updateCoordinates(i){this.coordinates.x0=d(i.x,this.area.x,this.cellWidth,this.subdivisions),this.coordinates.x1=d(i.x1,this.area.x,this.cellWidth,this.subdivisions),this.coordinates.y0=d(i.y,this.area.y,this.cellHeight,this.subdivisions),this.coordinates.y1=d(i.y1,this.area.y,this.cellHeight,this.subdivisions)}};u=t([n(a.CollisionBroadphaseResolver)],u);class x{get vertexModel(){return this._vertexModel}set vertexModel(i){if(this._vertexModel=i,2===i.length)return this.vertices=[new s,new s],void(this.projectionAxes=[new s]);this.vertices=[],this.projectionAxes=[],this._vertexModel.forEach((()=>{this.vertices.push(new s),this.projectionAxes.push(new s)}))}constructor(i,t=0){this.rotation=t,this.boundingBox=new o,this.collider=void 0,this.entity=void 0,this.id=void 0,this.ignoreCollisionsWithLayers=void 0,this.layer=void 0,this.position=new s,this.projectionAxes=[],this.radius=0,this.vertices=[],this.updateCollisions=!0,this._vertexModel=[],this.vertexModel=i}}class p{constructor(i){this.radius=i,this.boundingBox=new o,this.collider=void 0,this.entity=void 0,this.id=void 0,this.ignoreCollisionsWithLayers=void 0,this.layer=void 0,this.position=new s,this.projectionAxes=[new s],this.rotation=0,this.vertexModel=[],this.vertices=[new s,new s],this.updateCollisions=!0}}let y=class{constructor(i,t,e){this.AABBResolver=i,this.circumferenceAABBResolver=t,this.circumferenceResolver=e}findCollision(i,t){return i instanceof x&&t instanceof x?this.AABBResolver.resolve(i,t):i instanceof p&&t instanceof x?this.circumferenceAABBResolver.resolve(i,t):i instanceof x&&t instanceof p?this.circumferenceAABBResolver.resolve(t,i,!0):i instanceof p&&t instanceof p?this.circumferenceResolver.resolve(i,t):void 0}};var m;y=t([n(a.CollisionResolutionMethod),e(0,h(a.CollisionAABBResolver)),e(1,h(a.CollisionCircumferenceAABBResolver)),e(2,h(a.CollisionCircumferenceResolver))],y),function(i){i[i.AABB=0]="AABB",i[i.SAT=1]="SAT"}(m||(m={}));let v=class{constructor(i,t){this.circumferenceResolver=i,this.satResolver=t}findCollision(i,t){return i instanceof p&&t instanceof p?this.circumferenceResolver.resolve(i,t):this.satResolver.resolve(i,t)}};v=t([n(a.CollisionResolutionMethod),e(0,h(a.CollisionCircumferenceResolver)),e(1,h(a.CollisionSatResolver))],v);let f=class{constructor(){this.direction=new s,this.resolutionDirection=new s}resolve({boundingBox:i},{boundingBox:t}){if(this.overlapX=Math.min(i.x1,t.x1)-Math.max(i.x,t.x),this.overlapY=Math.min(i.y1,t.y1)-Math.max(i.y,t.y),!(this.overlapX<0||this.overlapY<0))return this.checkOverlapForLines(i,t),this.direction.set(Math.sign(t.center.x-i.center.x),Math.sign(t.center.y-i.center.y)),this.preventContainment(i,t),this.overlapY<this.overlapX?(this.minOverlap=this.overlapY,this.resolutionDirection.set(0,this.direction.y)):(this.minOverlap=this.overlapX,this.resolutionDirection.set(this.direction.x,this.overlapY===this.overlapX?this.direction.y:0)),{direction:s.unit(new s,this.resolutionDirection),penetration:this.minOverlap}}checkOverlapForLines(i,t){0!==i.width&&0!==t.width||0!==this.overlapX||(this.overlapX=Math.min(Math.abs(i.x-t.x),Math.abs(i.x1-t.x1))),0!==i.height&&0!==t.height||0!==this.overlapY||(this.overlapY=Math.min(Math.abs(i.y-t.y),Math.abs(i.y1-t.y1)))}preventContainment(i,t){if(this.overlapY>0&&(i.y1>t.y1&&i.y<t.y||i.y1<t.y1&&i.y>t.y)){const e=Math.abs(i.y-t.y),s=Math.abs(i.y1-t.y1);this.overlapY+=e<s?e:s}if(this.overlapX>0&&(i.x1>t.x1&&i.x<t.x||i.x1<t.x1&&i.x>t.x)){const e=Math.abs(i.x-t.x),s=Math.abs(i.x1-t.x1);this.overlapX+=e<s?e:s}}};f=t([n(a.CollisionAABBResolver)],f);let A=class{constructor(){this.closestPoint=new s,this.distance=new s,this.direction=new s}resolve(i,t,e=!1){if(this.closestPoint.set(r(i.position.x,t.boundingBox.x,t.boundingBox.x1),r(i.position.y,t.boundingBox.y,t.boundingBox.y1)),s.subtract(this.distance,this.closestPoint,i.position),!(this.distance.magnitude>i.radius))return s.unit(this.direction,this.distance),{direction:e?s.scale(new s,this.direction,-1):this.direction.clone(),penetration:i.radius-this.distance.magnitude}}};A=t([n(a.CollisionCircumferenceAABBResolver)],A);let g=class{constructor(){this.distance=new s,this.direction=new s}resolve(i,t){if(s.subtract(this.distance,t.position,i.position),!(this.distance.magnitude>i.radius+t.radius))return s.unit(this.direction,this.distance),{direction:this.direction.clone(),penetration:i.radius+t.radius-this.distance.magnitude}}};g=t([n(a.CollisionCircumferenceResolver)],g);let M=class{constructor(){this.projA={min:0,max:0},this.projB={min:0,max:0},this.smallestAxis=new s,this.distance=new s(1/0,1/0),this.cache=new s}resolve(i,t){this.minOverlap=1/0,i instanceof p?this.setCircumferenceAxis(i,t):t instanceof p&&this.setCircumferenceAxis(t,i),this.axes=[...i.projectionAxes],t.projectionAxes.forEach((i=>this.axes.some((t=>t.equals(i)))?void 0:this.axes.push(i)));for(let e=0;e<this.axes.length;e++){if(i instanceof p?this.setCircumferenceVertices(i,this.axes[e]):t instanceof p&&this.setCircumferenceVertices(t,this.axes[e]),this.projectShapeOntoAxis(this.projA,i,this.axes[e]),this.projectShapeOntoAxis(this.projB,t,this.axes[e]),this.currentOverlap=Math.min(this.projA.max,this.projB.max)-Math.max(this.projA.min,this.projB.min),this.currentOverlap<0)return;if(this.invertAxis=!0,this.projA.max>this.projB.max&&this.projA.min<this.projB.min||this.projA.max<this.projB.max&&this.projA.min>this.projB.min){const i=Math.abs(this.projA.min-this.projB.min),t=Math.abs(this.projA.max-this.projB.max);i<t?this.currentOverlap+=i:(this.currentOverlap+=t,s.scale(this.axes[e],this.axes[e],-1),this.invertAxis=!1)}this.currentOverlap<this.minOverlap&&(this.minOverlap=this.currentOverlap,this.smallestAxis.copy(this.axes[e]),this.invertAxis&&this.projA.max<this.projB.max&&s.scale(this.smallestAxis,this.axes[e],-1))}return{direction:s.scale(new s,this.smallestAxis,-1),penetration:this.minOverlap}}projectShapeOntoAxis(i,t,e){return i.min=1/0,i.max=-1/0,t.vertices.forEach((t=>{i.min=Math.min(s.dot(e,t),i.min),i.max=Math.max(s.dot(e,t),i.max)})),i}setCircumferenceAxis(i,t){this.distance.set(1/0,1/0),t.vertices.forEach((t=>{s.subtract(this.cache,t,i.position),this.cache.magnitude<this.distance.magnitude&&this.distance.copy(this.cache)})),s.unit(i.projectionAxes[0],this.distance)}setCircumferenceVertices(i,t){s.add(i.vertices[0],i.position,s.scale(this.cache,s.unit(this.cache,t),-i.radius)),s.add(i.vertices[1],i.position,s.scale(this.cache,s.unit(this.cache,t),i.radius))}};M=t([n(a.CollisionSatResolver)],M);let _=class{constructor(){this.collisions=[]}findCollisionsForCollider(i){return this.collisions.filter((t=>t.localCollider===i))}findCollisionsForColliderAndLayer(i,t){return this.collisions.filter((e=>e.localCollider===i&&e.remoteCollider.layer===t))}findAll(){return this.collisions}persist(i){this.collisions.push(i)}removeAll(){this.collisions=[]}};_=t([n(a.CollisionRepository)],_);const C=new u;self.onmessage=i=>{const{type:t,data:e}=i.data;if("update"===t)C.update(e.map((i=>(i.boundingBox=b(i.boundingBox),i)))),self.postMessage(!0);else if("retrieve"===t){const i=C.retrieve(b(e));self.postMessage(i)}};const b=i=>new o(i._position._x,i._position._y,i.width,i.height);
2
+ //# sourceMappingURL=broadPhaseWorker.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadPhaseWorker.esm.js","sources":["../../../packages/engine/src/utils/collisions2d/broadPhase/IBroadPhaseResolver.ts","../../../node_modules/tslib/tslib.es6.js","../../../packages/engine/src/utils/math/Vector2.ts","../../../packages/engine/src/utils/math/Rectangle.ts","../../../packages/engine/src/utils/math/Utils.ts","../../../packages/engine/src/utils/ioc/container.ts","../../../packages/engine/src/config/types.ts","../../../packages/engine/src/utils/collisions2d/broadPhase/QuadTree.ts","../../../packages/engine/src/utils/collisions2d/broadPhase/SpartialGrid.ts","../../../packages/engine/src/utils/collisions2d/Shape.ts","../../../packages/engine/src/utils/collisions2d/method/AABBMethod.ts","../../../packages/engine/src/utils/collisions2d/method/CollisionMethod.ts","../../../packages/engine/src/utils/collisions2d/method/SatMethod.ts","../../../packages/engine/src/utils/collisions2d/resolver/AABBResolver.ts","../../../packages/engine/src/utils/collisions2d/resolver/CircumferenceAABBResolver.ts","../../../packages/engine/src/utils/collisions2d/resolver/CircumferenceResolver.ts","../../../packages/engine/src/utils/collisions2d/resolver/SatResolver.ts","../../../packages/engine/src/utils/collisions2d/CollisionRepository.ts","../../../packages/engine/src/worker/broadPhaseWorker.ts"],"sourcesContent":[null,"/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["BroadPhaseMethods","__decorate","decorators","target","key","desc","d","c","arguments","length","r","Object","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__param","paramIndex","decorator","SuppressedError","Vector2","constructor","x","y","this","_x","_y","magnitude","Math","sqrt","pow","direction","_direction","unit","set","copy","vector","equals","clone","distance","add","out","a","b","subtract","normal","scale","scalar","dot","cross","round","toString","Rectangle","width","height","_position","_center","value","x1","y1","position","center","rectangle","rect","overlaps","contains","object","clamp","min","max","injectable","name","prototype","__ioc_injectable","inject","propertyKey","parameterIndex","undefined","__ioc_inject_constructor","__ioc_inject_prop","push","TYPES","AssetManager","Symbol","for","CanvasElement","CollisionRepository","CollisionBroadphaseResolver","CollisionResolutionMethod","CollisionAABBResolver","CollisionCircumferenceAABBResolver","CollisionCircumferenceResolver","CollisionSatResolver","CollisionMatrix","CreateSystemService","EntityManager","GameConfig","InputManager","LoopManager","RenderManager","SceneManager","SystemManager","TimeManager","WebGLManager","QuadTree","QuadTree_1","area","depth","children","shapes","minArea","maxArea","clear","update","resizeArea","forEach","id","boundingBox","insert","box","retrieve","items","getChildrenForBox","child","filter","includes","item","split","insertItemIntoChildren","childWidth","childHeight","map","quadrant","cell","subdivisions","SpartialGrid","colliders","coordinates","x0","y0","updateSubdivisions","cellWidth","ceil","cellHeight","updateCoordinates","Polygon","vertexModel","_vertexModel","vertices","projectionAxes","rotation","collider","entity","ignoreCollisionsWithLayers","layer","radius","updateCollisions","Circumference","AABBMethod","AABBResolver","circumferenceAABBResolver","circumferenceResolver","findCollision","shapeA","shapeB","resolve","CollisionMethods","SatMethod","satResolver","resolutionDirection","boxA","boxB","overlapX","overlapY","checkOverlapForLines","sign","preventContainment","minOverlap","penetration","abs","minSep","maxSep","CircumferenceAABBResolver","closestPoint","invert","CircumferenceResolver","SatResolver","projA","projB","smallestAxis","Infinity","cache","setCircumferenceAxis","axes","pa","some","setCircumferenceVertices","projectShapeOntoAxis","currentOverlap","invertAxis","mins","maxs","projection","shape","axis","vertex","s","collisions","findCollisionsForCollider","localCollider","findCollisionsForColliderAndLayer","remoteCollider","findAll","persist","collision","removeAll","broadPhaseResolver","self","onmessage","event","type","data","fixRectangle","postMessage","result"],"mappings":"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","x_google_ignoreList":[1]}
@@ -0,0 +1,2 @@
1
+ !function(i){"function"==typeof define&&define.amd?define(i):i()}((function(){"use strict";var i;function t(i,t,e,s){var o,r=arguments.length,n=r<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(i,t,e,s);else for(var h=i.length-1;h>=0;h--)(o=i[h])&&(n=(r<3?o(n):r>3?o(t,e,n):o(t,e))||n);return r>3&&n&&Object.defineProperty(t,e,n),n}function e(i,t){return function(e,s){t(e,s,i)}}!function(i){i[i.QuadTree=0]="QuadTree",i[i.SpartialGrid=1]="SpartialGrid"}(i||(i={})),"function"==typeof SuppressedError&&SuppressedError;class s{constructor(i=0,t=0){this._x=i,this._y=t}get x(){return this._x}set x(i){this._x=i}get y(){return this._y}set y(i){this._y=i}get magnitude(){return Math.sqrt(Math.pow(this._x,2)+Math.pow(this._y,2))}get direction(){return this._direction||(this._direction=new s),s.unit(this._direction,this)}set(i,t){this._x=i,this._y=t}copy(i){this.set(i.x,i.y)}equals(i){return this._x===i.x&&this._y===i.y}clone(){return new s(this._x,this._y)}distance(i){return Math.sqrt(Math.pow(this._x-i.x,2)+Math.pow(this._y-i.y,2))}static add(i,t,e){return i.set(t.x+e.x,t.y+e.y),i}static subtract(i,t,e){return i.set(t.x-e.x,t.y-e.y),i}static unit(i,t){return 0===t.magnitude?i.set(0,0):i.set(t.x/t.magnitude,t.y/t.magnitude),i}static normal(i,t){return i.set(-t.y,t.x),this.unit(i,i)}static scale(i,t,e){return i.set(t.x*e,t.y*e),i}static dot(i,t){return i.x*t.x+i.y*t.y}static cross(i,t){return i.x*t.y-i.y*t.x}static round(i,t){return i.set(Math.round(t.x),Math.round(t.y)),i}toString(){return`(${this._x}, ${this._y})`}}class o{constructor(i=0,t=0,e=0,o=0){this.width=0,this.height=0,this._position=new s,this._center=new s,this.set(i,t,e,o)}get x(){return this._position.x}set x(i){this._position.set(i,this._position.y)}get y(){return this._position.y}set y(i){this._position.set(this._position.x,i)}get x1(){return this._position.x+this.width}get y1(){return this._position.y+this.height}get position(){return this._position}set position(i){this._position.set(i.x,i.y)}get center(){return this._center.set(this.x+this.width/2,this.y+this.height/2),this._center}set(i,t,e,s){this._position.set(i,t),this.width=e,this.height=s}equals(i){return this.position.equals(i.position)&&this.width===i.width&&this.height===i.height}copy(i){this.set(i.x,i.y,i.width,i.height)}overlaps(i){return this.x1>=i.x&&this.x<i.x1&&this.y1>=i.y&&this.y<i.y1}contains(i){return i instanceof o?i.x1<=this.x1&&i.x>=this.x&&i.y1<=this.y1&&i.y>=this.y:i instanceof s&&!(i.x<this.x||i.y<this.y||i.x>=this.x1||i.y>=this.y1)}}const r=(i,t,e)=>Math.min(e,Math.max(t,i));function n(i){return function(t){t.prototype.__ioc_injectable&&t.prototype.__ioc_injectable===i||(t.prototype.__ioc_injectable=i)}}function h(i){return function(t,e,s){void 0!==s?(t.prototype.__ioc_inject_constructor||(t.prototype.__ioc_inject_constructor=[]),t.prototype.__ioc_inject_constructor[s]=i):void 0!==e&&(t.constructor.prototype.__ioc_inject_prop||(t.constructor.prototype.__ioc_inject_prop=[]),t.constructor.prototype.__ioc_inject_prop.push([e,i]))}}const a={AssetManager:Symbol.for("AssetManager"),CanvasElement:Symbol.for("CanvasElement"),CollisionRepository:Symbol.for("CollisionRepository"),CollisionBroadphaseResolver:Symbol.for("CollisionBroadphaseResolver"),CollisionResolutionMethod:Symbol.for("CollisionResolutionMethod"),CollisionAABBResolver:Symbol.for("CollisionAABBResolver"),CollisionCircumferenceAABBResolver:Symbol.for("CollisionCircumferenceAABBResolver"),CollisionCircumferenceResolver:Symbol.for("CollisionCircumferenceResolver"),CollisionSatResolver:Symbol.for("CollisionSatResolver"),CollisionMatrix:Symbol.for("CollisionMatrix"),CreateSystemService:Symbol.for("CreateSystemService"),EntityManager:Symbol.for("EntityManager"),GameConfig:Symbol.for("GameConfig"),InputManager:Symbol.for("InputManager"),LoopManager:Symbol.for("LoopManager"),RenderManager:Symbol.for("RenderManager"),SceneManager:Symbol.for("SceneManager"),SystemManager:Symbol.for("SystemManager"),TimeManager:Symbol.for("TimeManager"),WebGLManager:Symbol.for("WebGLManager")};var c;let l=c=class{constructor(i=new o,t=0){this.children=[],this.shapes=[],this.minArea=new s,this.maxArea=new s,this.area=i,this.depth=t}clear(){this.shapes=[],this.children=[]}update(i){this.clear(),this.resizeArea(i),i.forEach((({id:i,boundingBox:t})=>this.insert(i,t)))}resizeArea(i){this.minArea.set(0,0),this.maxArea.set(0,0),i.forEach((({boundingBox:i})=>{this.minArea.set(Math.min(i.x,this.minArea.x),Math.min(i.y,this.minArea.y)),this.maxArea.set(Math.max(i.x1,this.maxArea.x),Math.max(i.y1,this.maxArea.y))})),this.area.set(this.minArea.x,this.minArea.y,this.maxArea.x-this.minArea.x,this.maxArea.y-this.minArea.y)}retrieve(i){const t=[];return this.children.length>0?this.getChildrenForBox(i).forEach((e=>t.push(...e.retrieve(i).filter((i=>!t.includes(i)))))):this.shapes.forEach((i=>t.push(i[0]))),t}insert(i,t){0===this.children.length&&this.shapes.length>16&&this.depth<8&&this.split(),this.children.length>0?this.insertItemIntoChildren(i,t):this.shapes.push([i,t])}split(){const i=this.area.width/2,t=this.area.height/2;this.children=[new o(this.area.x,this.area.y,i,t),new o(this.area.x,this.area.y+t,i,t),new o(this.area.x+i,this.area.y+t,i,t),new o(this.area.x+i,this.area.y,i,t)].map((i=>new c(i,this.depth+1))),this.shapes.forEach((i=>this.insertItemIntoChildren(i[0],i[1]))),this.shapes=[]}insertItemIntoChildren(i,t){this.getChildrenForBox(t).forEach((e=>e.insert(i,t)))}getChildrenForBox(i){const t=[];return i.x<=this.area.center.x&&i.y<=this.area.center.y&&t.push(this.children[0]),i.x<=this.area.center.x&&i.y1>=this.area.center.y&&t.push(this.children[1]),i.x1>=this.area.center.x&&i.y1>=this.area.center.y&&t.push(this.children[2]),i.x1>=this.area.center.x&&i.y<=this.area.center.y&&t.push(this.children[3]),t}};l=c=t([n(a.CollisionBroadphaseResolver)],l);const d=(i,t,e,s)=>Math.min((i-t)/e|0,s-1);let u=class{constructor(){this.area=new o,this.colliders=[],this.subdivisions=0,this.coordinates={x0:0,x1:0,y0:0,y1:0},this.minArea=new s,this.maxArea=new s}clear(){for(let i=0;i<this.subdivisions;i++)for(let t=0;t<this.subdivisions;t++)this.colliders[i][t]=[]}update(i){this.resizeArea(i),this.updateSubdivisions(i.length),i.forEach((({id:i,boundingBox:t})=>this.insert(i,t)))}resizeArea(i){this.minArea.set(0,0),this.maxArea.set(0,0),i.forEach((({boundingBox:i})=>{this.minArea.set(Math.min(i.x,this.minArea.x),Math.min(i.y,this.minArea.y)),this.maxArea.set(Math.max(i.x1,this.maxArea.x),Math.max(i.y1,this.maxArea.y))})),this.area.set(this.minArea.x,this.minArea.y,this.maxArea.x-this.minArea.x,this.maxArea.y-this.minArea.y)}updateSubdivisions(i){this.subdivisions=1+(i/10|0),this.cellWidth=Math.ceil(this.area.width/this.subdivisions),this.cellHeight=Math.ceil(this.area.height/this.subdivisions),this.colliders=[];for(let i=0;i<this.subdivisions;i++){this.colliders[i]=[];for(let t=0;t<this.subdivisions;t++)this.colliders[i][t]=[]}}insert(i,t){this.updateCoordinates(t);for(let t=this.coordinates.x0;t<=this.coordinates.x1;t++)for(let e=this.coordinates.y0;e<=this.coordinates.y1;e++)this.colliders[t][e].push(i)}retrieve(i){const t=[];this.updateCoordinates(i);for(let i=this.coordinates.x0;i<=this.coordinates.x1;i++)for(let e=this.coordinates.y0;e<=this.coordinates.y1;e++)this.colliders[i][e].forEach((i=>t.includes(i)?void 0:t.push(i)));return t}updateCoordinates(i){this.coordinates.x0=d(i.x,this.area.x,this.cellWidth,this.subdivisions),this.coordinates.x1=d(i.x1,this.area.x,this.cellWidth,this.subdivisions),this.coordinates.y0=d(i.y,this.area.y,this.cellHeight,this.subdivisions),this.coordinates.y1=d(i.y1,this.area.y,this.cellHeight,this.subdivisions)}};u=t([n(a.CollisionBroadphaseResolver)],u);class x{get vertexModel(){return this._vertexModel}set vertexModel(i){if(this._vertexModel=i,2===i.length)return this.vertices=[new s,new s],void(this.projectionAxes=[new s]);this.vertices=[],this.projectionAxes=[],this._vertexModel.forEach((()=>{this.vertices.push(new s),this.projectionAxes.push(new s)}))}constructor(i,t=0){this.rotation=t,this.boundingBox=new o,this.collider=void 0,this.entity=void 0,this.id=void 0,this.ignoreCollisionsWithLayers=void 0,this.layer=void 0,this.position=new s,this.projectionAxes=[],this.radius=0,this.vertices=[],this.updateCollisions=!0,this._vertexModel=[],this.vertexModel=i}}class p{constructor(i){this.radius=i,this.boundingBox=new o,this.collider=void 0,this.entity=void 0,this.id=void 0,this.ignoreCollisionsWithLayers=void 0,this.layer=void 0,this.position=new s,this.projectionAxes=[new s],this.rotation=0,this.vertexModel=[],this.vertices=[new s,new s],this.updateCollisions=!0}}let y=class{constructor(i,t,e){this.AABBResolver=i,this.circumferenceAABBResolver=t,this.circumferenceResolver=e}findCollision(i,t){return i instanceof x&&t instanceof x?this.AABBResolver.resolve(i,t):i instanceof p&&t instanceof x?this.circumferenceAABBResolver.resolve(i,t):i instanceof x&&t instanceof p?this.circumferenceAABBResolver.resolve(t,i,!0):i instanceof p&&t instanceof p?this.circumferenceResolver.resolve(i,t):void 0}};var m;y=t([n(a.CollisionResolutionMethod),e(0,h(a.CollisionAABBResolver)),e(1,h(a.CollisionCircumferenceAABBResolver)),e(2,h(a.CollisionCircumferenceResolver))],y),function(i){i[i.AABB=0]="AABB",i[i.SAT=1]="SAT"}(m||(m={}));let v=class{constructor(i,t){this.circumferenceResolver=i,this.satResolver=t}findCollision(i,t){return i instanceof p&&t instanceof p?this.circumferenceResolver.resolve(i,t):this.satResolver.resolve(i,t)}};v=t([n(a.CollisionResolutionMethod),e(0,h(a.CollisionCircumferenceResolver)),e(1,h(a.CollisionSatResolver))],v);let f=class{constructor(){this.direction=new s,this.resolutionDirection=new s}resolve({boundingBox:i},{boundingBox:t}){if(this.overlapX=Math.min(i.x1,t.x1)-Math.max(i.x,t.x),this.overlapY=Math.min(i.y1,t.y1)-Math.max(i.y,t.y),!(this.overlapX<0||this.overlapY<0))return this.checkOverlapForLines(i,t),this.direction.set(Math.sign(t.center.x-i.center.x),Math.sign(t.center.y-i.center.y)),this.preventContainment(i,t),this.overlapY<this.overlapX?(this.minOverlap=this.overlapY,this.resolutionDirection.set(0,this.direction.y)):(this.minOverlap=this.overlapX,this.resolutionDirection.set(this.direction.x,this.overlapY===this.overlapX?this.direction.y:0)),{direction:s.unit(new s,this.resolutionDirection),penetration:this.minOverlap}}checkOverlapForLines(i,t){0!==i.width&&0!==t.width||0!==this.overlapX||(this.overlapX=Math.min(Math.abs(i.x-t.x),Math.abs(i.x1-t.x1))),0!==i.height&&0!==t.height||0!==this.overlapY||(this.overlapY=Math.min(Math.abs(i.y-t.y),Math.abs(i.y1-t.y1)))}preventContainment(i,t){if(this.overlapY>0&&(i.y1>t.y1&&i.y<t.y||i.y1<t.y1&&i.y>t.y)){const e=Math.abs(i.y-t.y),s=Math.abs(i.y1-t.y1);this.overlapY+=e<s?e:s}if(this.overlapX>0&&(i.x1>t.x1&&i.x<t.x||i.x1<t.x1&&i.x>t.x)){const e=Math.abs(i.x-t.x),s=Math.abs(i.x1-t.x1);this.overlapX+=e<s?e:s}}};f=t([n(a.CollisionAABBResolver)],f);let A=class{constructor(){this.closestPoint=new s,this.distance=new s,this.direction=new s}resolve(i,t,e=!1){if(this.closestPoint.set(r(i.position.x,t.boundingBox.x,t.boundingBox.x1),r(i.position.y,t.boundingBox.y,t.boundingBox.y1)),s.subtract(this.distance,this.closestPoint,i.position),!(this.distance.magnitude>i.radius))return s.unit(this.direction,this.distance),{direction:e?s.scale(new s,this.direction,-1):this.direction.clone(),penetration:i.radius-this.distance.magnitude}}};A=t([n(a.CollisionCircumferenceAABBResolver)],A);let g=class{constructor(){this.distance=new s,this.direction=new s}resolve(i,t){if(s.subtract(this.distance,t.position,i.position),!(this.distance.magnitude>i.radius+t.radius))return s.unit(this.direction,this.distance),{direction:this.direction.clone(),penetration:i.radius+t.radius-this.distance.magnitude}}};g=t([n(a.CollisionCircumferenceResolver)],g);let M=class{constructor(){this.projA={min:0,max:0},this.projB={min:0,max:0},this.smallestAxis=new s,this.distance=new s(1/0,1/0),this.cache=new s}resolve(i,t){this.minOverlap=1/0,i instanceof p?this.setCircumferenceAxis(i,t):t instanceof p&&this.setCircumferenceAxis(t,i),this.axes=[...i.projectionAxes],t.projectionAxes.forEach((i=>this.axes.some((t=>t.equals(i)))?void 0:this.axes.push(i)));for(let e=0;e<this.axes.length;e++){if(i instanceof p?this.setCircumferenceVertices(i,this.axes[e]):t instanceof p&&this.setCircumferenceVertices(t,this.axes[e]),this.projectShapeOntoAxis(this.projA,i,this.axes[e]),this.projectShapeOntoAxis(this.projB,t,this.axes[e]),this.currentOverlap=Math.min(this.projA.max,this.projB.max)-Math.max(this.projA.min,this.projB.min),this.currentOverlap<0)return;if(this.invertAxis=!0,this.projA.max>this.projB.max&&this.projA.min<this.projB.min||this.projA.max<this.projB.max&&this.projA.min>this.projB.min){const i=Math.abs(this.projA.min-this.projB.min),t=Math.abs(this.projA.max-this.projB.max);i<t?this.currentOverlap+=i:(this.currentOverlap+=t,s.scale(this.axes[e],this.axes[e],-1),this.invertAxis=!1)}this.currentOverlap<this.minOverlap&&(this.minOverlap=this.currentOverlap,this.smallestAxis.copy(this.axes[e]),this.invertAxis&&this.projA.max<this.projB.max&&s.scale(this.smallestAxis,this.axes[e],-1))}return{direction:s.scale(new s,this.smallestAxis,-1),penetration:this.minOverlap}}projectShapeOntoAxis(i,t,e){return i.min=1/0,i.max=-1/0,t.vertices.forEach((t=>{i.min=Math.min(s.dot(e,t),i.min),i.max=Math.max(s.dot(e,t),i.max)})),i}setCircumferenceAxis(i,t){this.distance.set(1/0,1/0),t.vertices.forEach((t=>{s.subtract(this.cache,t,i.position),this.cache.magnitude<this.distance.magnitude&&this.distance.copy(this.cache)})),s.unit(i.projectionAxes[0],this.distance)}setCircumferenceVertices(i,t){s.add(i.vertices[0],i.position,s.scale(this.cache,s.unit(this.cache,t),-i.radius)),s.add(i.vertices[1],i.position,s.scale(this.cache,s.unit(this.cache,t),i.radius))}};M=t([n(a.CollisionSatResolver)],M);let _=class{constructor(){this.collisions=[]}findCollisionsForCollider(i){return this.collisions.filter((t=>t.localCollider===i))}findCollisionsForColliderAndLayer(i,t){return this.collisions.filter((e=>e.localCollider===i&&e.remoteCollider.layer===t))}findAll(){return this.collisions}persist(i){this.collisions.push(i)}removeAll(){this.collisions=[]}};_=t([n(a.CollisionRepository)],_);const C=new u;self.onmessage=i=>{const{type:t,data:e}=i.data;if("update"===t)C.update(e.map((i=>(i.boundingBox=b(i.boundingBox),i)))),self.postMessage(!0);else if("retrieve"===t){const i=C.retrieve(b(e));self.postMessage(i)}};const b=i=>new o(i._position._x,i._position._y,i.width,i.height)}));
2
+ //# sourceMappingURL=broadPhaseWorker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadPhaseWorker.js","sources":["../../../packages/engine/src/utils/collisions2d/broadPhase/IBroadPhaseResolver.ts","../../../node_modules/tslib/tslib.es6.js","../../../packages/engine/src/utils/math/Vector2.ts","../../../packages/engine/src/utils/math/Rectangle.ts","../../../packages/engine/src/utils/math/Utils.ts","../../../packages/engine/src/utils/ioc/container.ts","../../../packages/engine/src/config/types.ts","../../../packages/engine/src/utils/collisions2d/broadPhase/QuadTree.ts","../../../packages/engine/src/utils/collisions2d/broadPhase/SpartialGrid.ts","../../../packages/engine/src/utils/collisions2d/Shape.ts","../../../packages/engine/src/utils/collisions2d/method/AABBMethod.ts","../../../packages/engine/src/utils/collisions2d/method/CollisionMethod.ts","../../../packages/engine/src/utils/collisions2d/method/SatMethod.ts","../../../packages/engine/src/utils/collisions2d/resolver/AABBResolver.ts","../../../packages/engine/src/utils/collisions2d/resolver/CircumferenceAABBResolver.ts","../../../packages/engine/src/utils/collisions2d/resolver/CircumferenceResolver.ts","../../../packages/engine/src/utils/collisions2d/resolver/SatResolver.ts","../../../packages/engine/src/utils/collisions2d/CollisionRepository.ts","../../../packages/engine/src/worker/broadPhaseWorker.ts"],"sourcesContent":[null,"/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["BroadPhaseMethods","__decorate","decorators","target","key","desc","d","c","arguments","length","r","Object","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__param","paramIndex","decorator","SuppressedError","Vector2","constructor","x","y","this","_x","_y","magnitude","Math","sqrt","pow","direction","_direction","unit","set","copy","vector","equals","clone","distance","add","out","a","b","subtract","normal","scale","scalar","dot","cross","round","toString","Rectangle","width","height","_position","_center","value","x1","y1","position","center","rectangle","rect","overlaps","contains","object","clamp","min","max","injectable","name","prototype","__ioc_injectable","inject","propertyKey","parameterIndex","undefined","__ioc_inject_constructor","__ioc_inject_prop","push","TYPES","AssetManager","Symbol","for","CanvasElement","CollisionRepository","CollisionBroadphaseResolver","CollisionResolutionMethod","CollisionAABBResolver","CollisionCircumferenceAABBResolver","CollisionCircumferenceResolver","CollisionSatResolver","CollisionMatrix","CreateSystemService","EntityManager","GameConfig","InputManager","LoopManager","RenderManager","SceneManager","SystemManager","TimeManager","WebGLManager","QuadTree","QuadTree_1","area","depth","children","shapes","minArea","maxArea","clear","update","resizeArea","forEach","id","boundingBox","insert","box","retrieve","items","getChildrenForBox","child","filter","includes","item","split","insertItemIntoChildren","childWidth","childHeight","map","quadrant","cell","subdivisions","SpartialGrid","colliders","coordinates","x0","y0","updateSubdivisions","cellWidth","ceil","cellHeight","updateCoordinates","Polygon","vertexModel","_vertexModel","vertices","projectionAxes","rotation","collider","entity","ignoreCollisionsWithLayers","layer","radius","updateCollisions","Circumference","AABBMethod","AABBResolver","circumferenceAABBResolver","circumferenceResolver","findCollision","shapeA","shapeB","resolve","CollisionMethods","SatMethod","satResolver","resolutionDirection","boxA","boxB","overlapX","overlapY","checkOverlapForLines","sign","preventContainment","minOverlap","penetration","abs","minSep","maxSep","CircumferenceAABBResolver","closestPoint","invert","CircumferenceResolver","SatResolver","projA","projB","smallestAxis","Infinity","cache","setCircumferenceAxis","axes","pa","some","setCircumferenceVertices","projectShapeOntoAxis","currentOverlap","invertAxis","mins","maxs","projection","shape","axis","vertex","s","collisions","findCollisionsForCollider","localCollider","findCollisionsForColliderAndLayer","remoteCollider","findAll","persist","collision","removeAll","broadPhaseResolver","self","onmessage","event","type","data","fixRectangle","postMessage","result"],"mappings":"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","x_google_ignoreList":[1]}