bard-legends-framework 1.0.7 → 1.0.8
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.
- package/dist/index.js +3 -3
- package/dist/index.mjs +3 -3
- package/package.json +4 -3
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
'use strict';var actionsLib=require('actions-lib');require('reflect-metadata');var helpersLib=require('helpers-lib'),W=require('p2'),V=require('pixi.js'),scriptEngineLib=require('script-engine-lib');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var W__default=/*#__PURE__*/_interopDefault(W);var V__namespace=/*#__PURE__*/_interopNamespace(V);var cr=Object.defineProperty;var h=(o,t)=>cr(o,"name",{value:t,configurable:true});var G=class{static{h(this,"BardLegendsHardReset");}static{this.ƀer=new actionsLib.Action;}static{this.onHardReset=this.ƀer.notifier;}static hardReset(){actionsLib.ActionLib.hardReset(),this.ƀer.trigger();}};function d(){return function(o){let t=P.ƀeb(o);o.$meta={paramtypes:t,type:"service"};}}h(d,"ServiceDecorator");var P=class{static{h(this,"Service");}static{this.ƀiq=new Map;}static get(t){let e=this.ƀiq.get(t);if(!e){if(!t.$meta)throw new Error(`Service: service class is not decorated by @ServiceDecorator(), class: "${t.name}"`);let i=this.ƀic([],t.$meta.paramtypes);e=new t(...i),this.ƀiq.set(t,e);}return e}static ƀeb(t){let e=Reflect.getMetadata("design:paramtypes",t)||[];return e.some(i=>!i)&&console.error(`Circular dependency: ${t.name}`),e}static ƀic(t,e){let i=[...t];if(e.length>t.length){let s=e.slice(t.length).map(n=>{if(n&&n.$meta?.type==="service")return this.get(n)});i.push(...s);}return i}};G.onHardReset.subscribe(()=>{P.ƀiq=new Map;}).attachToRoot();var U=class{static{h(this,"ControllerLink");}constructor(){this.ƀbl=[],this.ƀib=[];}trigger(t,...e){let i=this.ƀbl.find(r=>!!r[t]);if(i)return i[t](...e);throw new Error(`ServiceLink: no defined function with the name: "${t}", found in the linked controllers!`)}registerController(t){Reflect.ownKeys(t.constructor.prototype).filter(e=>e!=="constructor").map(e=>e.toString()).forEach(e=>{if(this.ƀib.includes(e))throw new Error(`ServiceLink: the function is already registered, function name: "${e}"`);this.ƀib.push(e);}),this.ƀbl.push(t);}};function q(o){return function(t){let e=P.ƀeb(t);if(e.some(i=>!i))console.error(`Circular dependency: ${t.name}`);else {let i=P.ƀic([],e);i.some(s=>s===void 0)&&console.error(i,e,t.name);let r=new t(...i);o.controllerLink.registerController(r);}t.$meta={type:"controller"};}}h(q,"ControllerDecorator");var y=class o{static{h(this,"UpdateCycle");}static{this.ƀac=new actionsLib.Action;}static{this.beforeSceneUpdateAction=this.ƀac.notifier;}static{this.ƀii=new actionsLib.Action;}static{this.sceneUpdateAction=this.ƀii.notifier;}static{this.ƀf=new actionsLib.Action;}static{this.afterSceneUpdateAction=this.ƀf.notifier;}static{this.ƀju=0;}static{this.ƀkc=void 0;}static wait(t){let e=this.ƀju+t;return actionsLib.SingleEvent.create(i=>{let r=o.beforeSceneUpdateAction.subscribe(s=>{s.time>=e&&i();}).attachToRoot();return ()=>r.destroy()})}static registerUpdateModifier(t){if(!this.ƀkc)this.ƀkc=t;else throw new Error("UpdateCycle: There can only one update modifier!")}static cleanUpdateModifier(){this.ƀkc=void 0;}static triggerUpdateTick(t){this.ƀkc&&(t=this.ƀkc(this.ƀju,t)),this.ƀju+=t,this.ƀfq=t,t>0&&(o.ƀac.trigger({time:this.ƀju,delta:t}),o.ƀii.trigger({time:this.ƀju,delta:t}),o.ƀf.trigger({time:this.ƀju,delta:t}));}static get lastDelta(){return this.ƀfq}static{this.ƀfq=0;}};G.onHardReset.subscribe(()=>{y.ƀac.clear(),y.ƀii.clear(),y.ƀf.clear(),y.ƀkc=void 0,y.ƀju=0;}).attachToRoot();var _=class o{static{h(this,"EntityStoreHelper");}static{this.ƀav=new Map;}static registerEntityClass(t){this.ƀav.set(t.id,new Map);}static registerEntity(t){this.ƀav.get(t.classID).set(t.id,t);}static unregisterEntity(t,e){let i=t.id;this.ƀav.get(i)?.delete(e);}static getEntity(t,e){return this.ƀav.get(t.id)?.get(e)}static getSingleton(t){let e=o.getEntities(t);if(e.length>1)throw new Error(`EntityStoreHelper: selectSingleton is called with an entity that has multiple instances! Name: "${this.name}"`);return e[0]}static getSingletonOrFail(t){let e=this.getSingleton(t);if(!e)throw new Error(`EntityStoreHelper: selectSingleton is called with an entity that has no instance! Name: "${this.name}"`);return e}static getEntities(t){let e=this.ƀav.get(t.id);return Array.from(e.values())}};G.onHardReset.subscribe(()=>{_.ƀav.clear();}).attachToRoot();var rt=class o{static{h(this,"EntityViewsHelper");}static{this.ƀkl=new Map;}static registerView(t,e){o.ƀkl.has(e)||o.ƀkl.set(e,[]);let i=o.ƀkl.get(e);i&&i.push(t),_.getEntities(e).forEach(s=>{this.ƀcg(s,t);});}static ƀcg(t,e){try{let i=P.ƀic([this],e.$meta.paramtypes);o.entityID=t.id;let r=new e(t,...i.slice(1));t.destroyed?r.destroy():t.ƀkk.ƀkm.push(r);}catch(i){console.error(i);}}constructor(t){this.ƀcv=t,this.ƀkm=[];}createViews(){if(!this.ƀcv.destroyed){let t=o.ƀkl.get(this.ƀcv.constructor);t&&t.forEach(e=>{o.ƀcg(this.ƀcv,e);});}}updateViews(t,e){for(let i=0;i<this.ƀkm.length;i++){let r=this.ƀkm[i];r.destroyed||r.update(t,e);}}destroyViews(){this.ƀkm.forEach(t=>{t.destroy();});}};G.onHardReset.subscribe(()=>{rt.ƀkl=new Map;}).attachToRoot();function dt(){return function(o){o.$meta={type:"entity"},_.registerEntityClass(o);}}h(dt,"EntityDecorator");var $=class extends actionsLib.IDAttachable{static{h(this,"Entity");}static getInstanceByID(t){if(t)return _.getEntity(this,t)}static getInstanceByIDOrFail(t){let e=_.getEntity(this,t);if(!e)throw new Error(`Entity: entity is not found! Name: "${this.name}", id: "${t}"`);return e}static getEntities(){return _.getEntities(this)}constructor(){super(),this.ƀkk=new rt(this),_.registerEntity(this),y.sceneUpdateAction.subscribe(t=>{this.destroyed||(this.update(t.time,t.delta),this.ƀkk.updateViews(t.time,t.delta));}).attach(this);}destroy(){this.destroyed||(this.ƀkk.destroyViews(),_.unregisterEntity(this.constructor,this.id),super.destroy());}attach(t){return super.attach(t),this.ƀkk.createViews(),this}attachByID(t){return super.attachByID(t),this.ƀkk.createViews(),this}attachToRoot(){return super.attachToRoot(),this.ƀkk.createViews(),this}update(t,e){}};var ut=class extends ${static{h(this,"SingletonEntity");}static getInstance(){return _.getSingleton(this)}static getInstanceOrFail(){return _.getSingletonOrFail(this)}constructor(){if(super(),this.constructor.getEntities().length>1)throw this.attachToRoot(),new Error(`SingletonEntity: entity is decorated as singleton but multiple instances are created! "${this}"`)}};function wr(){return function(o){return o.$meta={paramtypes:P.ƀeb(o),type:"scene"},o}}h(wr,"SceneDecorator");var Pt=class o extends actionsLib.IDAttachable{static{h(this,"Scene");}static{this.ƀih=false;}static{this.ƀb=new actionsLib.Variable(void 0);}static{this.activeScene=this.ƀb.notifier;}static getActiveScene(){return o.ƀb.value}static getActiveSceneOrFail(){if(!o.ƀb.value)throw new Error("Scene: getActiveSceneOrFail is called when there is no active scene!");return o.ƀb.value}static isActive(){return o.ƀb.value instanceof this}static getInstance(){return o.ƀb.value instanceof this?o.ƀb.value:void 0}static getInstanceOrFail(){if(!o.ƀb.value)throw new Error("Scene: getInstance is called when there is no active scene!");if(!(o.ƀb.value instanceof this))throw new Error(`Scene: getInstance is called while "${this.name}" was not the active scene. Current scene is: "${o.ƀb.value}"!`);return o.ƀb.value}static open(...t){if(o.ƀih)throw new Error("Scene: you cannot open a scene while a scene is transitioning!");if(o.ƀb.value)throw new Error("Scene: you cannot open a scene while there is already another active scene!");let e=t[0];o.ƀih=true;let i=P.ƀic([],this.$meta.paramtypes),r=new this(...i).attachToRoot();return o.ƀb.set(r),r.init(e).map(()=>(o.ƀih=false,r)).chainToRoot()}constructor(){super(),this.ƀgm=new actionsLib.Action,this.onClose=this.ƀgm.notifier,y.sceneUpdateAction.subscribe(t=>this.update(t.time,t.delta)).attach(this);}close(...t){if(o.ƀb.value!==this)throw new Error("Internal Error: Scene instance is accessed while it is not the active scene!");if(o.ƀih)throw new Error("Scene: you cannot close a scene while a scene is transitioning!");o.ƀih=true;let e=t[0];return this.prepareToClose().map(()=>(super.destroy(),o.ƀb.set(void 0),o.ƀih=false,this.ƀgm.trigger(e),e)).chainToRoot()}destroy(){throw new Error('To close a scene use the "close()" function')}};G.onHardReset.subscribe(()=>{Pt.ƀb.set(void 0);}).attachToRoot();function Ye(o){return function(t){t.$meta={paramtypes:P.ƀeb(t),viewInstances:new Map,entity:o.entity,type:"view"},rt.registerView(t,o.entity);}}h(Ye,"ViewDecorator");var Ht=class extends actionsLib.IDAttachable{static{h(this,"View");}static getInstance(t){return this.$meta.entity.validateID(t)?this.$meta.viewInstances.get(t):void 0}static getInstanceOrFail(t){if(!this.$meta.entity.validateID(t))throw new Error(`View: getInstance is called with entity id: "${t}", that is not belonging to the class: "${this.$meta.entity}"`);let i=this.$meta.viewInstances.get(t);if(!i)throw new Error(`View: getInstanceOrFail is called with entity id: "${t}", that is not found!`);return i}constructor(){super(),this.attachToRoot(),this.ƀcw=rt.entityID,this.ƀeh().set(this.ƀcw,this);}destroy(){this.destroyed||(super.destroy(),this.ƀeh().delete(this.ƀcw));}update(t,e){}ƀeh(){return this.constructor.$meta.viewInstances}};var f=class o{static{h(this,"P2JSHelper");}static aabbToBoundingBox(t){return helpersLib.Rectangle.fromRect({topLeft:{x:t.lowerBound[0],y:t.lowerBound[1]},bottomRight:{x:t.upperBound[0],y:t.upperBound[1]}})}static arrayToVector(t){return new helpersLib.Vector(t[0],t[1])}static vectorToArray(t){return [t.x,t.y]}static arePhysicsGroupsCollidable(t,e,i,r){return (t&r)!==0&&(i&e)!==0}static canCollideWith(t,e){return t.shapes.some(i=>e.shapes.some(r=>o.arePhysicsGroupsCollidable(i.collisionGroup,i.collisionMask,r.collisionGroup,r.collisionMask)))}static cloneP2Body(t){let e=new W__default.default.Body({position:t.position,angle:t.angle,type:t.type});return e.shapes=t.shapes,e}};var Sr=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},J=new U,St=class{static{h(this,"PhysicsInternalGateway");}createBody(t,e,i,r,s){return J.trigger("createBody",t,e,i,r,s)}getMaterial(t,e){return J.trigger("getMaterial",t,e)}getMaterialDefinition(t,e){return J.trigger("getMaterialDefinition",t,e)}getGroupConstant(t,e){return J.trigger("getGroupConstant",t,e)}getMaskConstant(t,e){return J.trigger("getMaskConstant",t,e)}addBody(t,e,i,r,s){return J.trigger("addBody",t,e,i,r,s)}removeBody(t,e){return J.trigger("removeBody",t,e)}subscribeToPhysicsStep(t,e){return J.trigger("subscribeToPhysicsStep",t,e)}};St=Sr([d()],St);var b=class o extends ${static{h(this,"PhysicsEntity");}static{this.ƀha=new Map;}static{this.ƀhh=new Map;}static getFromP2BodyID(t){return o.ƀha.get(t)}static getFromP2BodyIDOrFail(t){let e=o.ƀha.get(t);if(!e)throw new Error(`PhysicsEntity with p2BodyID ${t} not found`);return e}static getPhysicsInstanceOrFail(t){let e=o.ƀhh.get(t);if(!e)throw new Error(`PhysicsEntity with id ${t} not found`);return e}static getPhysicsEntities(){return Array.from(o.ƀhh.values())}get area(){return this.ƀt}get mass(){return this.ƀgc}get collisions(){return this.ƀax}constructor(t,e,i){super(),this.ƀgn=new actionsLib.Action,this.onCollision=this.ƀgn.notifier,this.type="dynamic",this.ƀt=0,this.ƀgc=0,this.ƀax=[],this.physicsWorldID=t,this.ƀhj=P.get(St);let r=this.ƀhj.getMaterial(this.physicsWorldID,e.shapeDefinition.materialName),s=this.ƀhj.getMaterialDefinition(this.physicsWorldID,e.shapeDefinition.materialName);if(this.type=i,this.physicsBodyGroup=e.shapeDefinition.group,this.includeInPathfinding=e.includeOnPathfinding,this.ƀhi=this.ƀhj.getGroupConstant(this.physicsWorldID,this.physicsBodyGroup),this.ƀhk=this.ƀhj.getMaskConstant(this.physicsWorldID,this.physicsBodyGroup),this.p2Body=this.ƀhj.createBody(this.physicsWorldID,e,r,s,this.type),this.ƀt=this.p2Body.getArea(),this.ƀgc=this.p2Body.mass,this.p2Body.position=f.vectorToArray(e.position),this.p2Body.angle=e.rotation.value,!this.ƀhj.addBody(this.physicsWorldID,this.p2Body,e.addInEmptySpace,e.shapeDefinition.group,e.includeOnPathfinding))throw new Error("PhysicsEntity was not able to be added to the world!");o.ƀha.set(this.p2Body.id,this),o.ƀhh.set(this.id,this);}destroy(){this.destroyed||(super.destroy(),this.ƀhj.removeBody(this.physicsWorldID,this.p2Body),o.ƀha.delete(this.p2Body.id),o.ƀhh.delete(this.id));}canCollideWith(t){return f.arePhysicsGroupsCollidable(this.ƀhi,this.ƀhk,t.ƀhi,t.ƀhk)}ƀir(t){this.ƀax=t,t.length>0&&this.ƀgn.trigger(t);}};var Wt=class extends b{static{h(this,"ImmovablePhysicsEntity");}constructor(t,e){super(t,e,"static"),this.position=f.arrayToVector(this.p2Body.position),this.rotation=new helpersLib.Radian(this.p2Body.angle);}convertToDTO(){return {entityID:this.id,classID:this.classID,position:this.position,rotation:this.rotation,velocity:helpersLib.Vector.zero,rotationalSpeed:0}}};var Xe=class extends ${static{h(this,"MovableEntity");}constructor(){super(),this.position=new actionsLib.Variable(helpersLib.Vector.zero),this.rotation=new actionsLib.Variable(helpersLib.Radian.get0),this.velocity=new actionsLib.Variable(helpersLib.Vector.zero),this.rotationalSpeed=new actionsLib.Variable(0),y.beforeSceneUpdateAction.subscribe(({time:t,delta:e})=>{this.ƀjj(t,e);}).attach(this);}ƀjj(t,e){this.position.value=this.position.value.add(this.velocity.value.multiplyNumber(e)),this.rotation.value=new helpersLib.Radian(this.rotation.value.value+this.rotationalSpeed.value*e);}};var Ze=class extends b{static{h(this,"MovablePhysicsEntity");}constructor(t,e){super(t,e,"dynamic"),this.position=new actionsLib.Variable(helpersLib.Vector.zero),this.rotation=new actionsLib.Variable(helpersLib.Radian.get0),this.velocity=new actionsLib.Variable(helpersLib.Vector.zero),this.rotationalSpeed=new actionsLib.Variable(0),this.ƀey=false,this.ƀez=false,this.ƀfb=false,this.ƀfa=false,this.ƀhe(),this.ƀfw(),P.get(St).subscribeToPhysicsStep(t,({time:i,delta:r})=>this.ƀjj(i,r)).attach(this);}convertToDTO(){return {entityID:this.id,classID:this.classID,position:this.position.value,rotation:this.rotation.value,velocity:this.velocity.value,rotationalSpeed:this.rotationalSpeed.value}}ƀjj(t,e){this.ƀey=true,this.ƀez=true,this.ƀfb=true,this.ƀfa=true,this.ƀhe();}ƀhe(){this.position.value=f.arrayToVector(this.p2Body.position),this.rotation.value=new helpersLib.Radian(this.p2Body.angle),this.velocity.value=f.arrayToVector(this.p2Body.velocity),this.rotationalSpeed.value=this.p2Body.angularVelocity;}ƀfw(){this.position.subscribe(t=>{this.ƀey?this.ƀey=false:this.p2Body.position=[t.x,t.y];}).attach(this),this.rotation.subscribe(t=>{this.ƀez?this.ƀez=false:this.p2Body.angle=t.value;}).attach(this),this.velocity.subscribe(t=>{this.ƀfb?this.ƀfb=false:this.p2Body.velocity=[t.x,t.y];}).attach(this),this.rotationalSpeed.subscribe(t=>{this.ƀfa?this.ƀfa=false:this.p2Body.angularVelocity=t;}).attach(this);}};var Ke=10.8,Qe=10.01;exports.PhysicsShapeType=void 0;(function(o){o[o.Point=1]="Point",o[o.Circle=2]="Circle",o[o.Polygon=3]="Polygon",o[o.Rectangle=4]="Rectangle";})(exports.PhysicsShapeType||(exports.PhysicsShapeType={}));var st="border";var Y=class{static{h(this,"AnimationInterpolationFunctions");}static boomerangTime(t){return 1-Math.abs(t-.5)*2}static lineer(t){return t}static easeIn(t){return Math.pow(t,2)}static easeOut(t){return 1-Math.pow(1-t,2)}static easeInOut(t){return t<.5?2*t*t:(t-=1,1-2*t*t)}static easeInOutCubic(t){let e=2*t-2;return t<.5?4*Math.pow(t,3):(t-1)*Math.pow(e,2)+1}},Rr=class{static{h(this,"AnimationLineer");}start(){}multiplierFunction(t){return Y.lineer(t)}},Ir=class{static{h(this,"AnimationEaseIn");}start(){}multiplierFunction(t){return Y.easeIn(t)}},Ar=class{static{h(this,"AnimationEaseOut");}start(){}multiplierFunction(t){return Y.easeOut(t)}},Or=class{static{h(this,"AnimationEaseInOut");}start(){}multiplierFunction(t){return Y.easeInOut(t)}},Mr=class{static{h(this,"AnimationEaseInOutCubic");}start(){}multiplierFunction(t){return Y.easeInOutCubic(t)}},Ai=class{static{h(this,"AnimationFlicker");}start(){this.ƀjv=new Array(10).fill(0),helpersLib.Random.integerBetween(0,9),this.ƀjv[helpersLib.Random.integerBetween(0,9)]=Math.random(),Math.random()<.3&&(helpersLib.Random.integerBetween(0,9),this.ƀjv[helpersLib.Random.integerBetween(0,9)]=Math.random()),Math.random()<.2&&(helpersLib.Random.integerBetween(0,9),this.ƀjv[helpersLib.Random.integerBetween(0,9)]=Math.random());}multiplierFunction(t){let e=Math.floor(t*10);return this.ƀjv[e]}},S=class{static{h(this,"Animations");}static{this.lineer=new Rr;}static{this.easeIn=new Ir;}static{this.easeOut=new Ar;}static{this.easeInOut=new Or;}static{this.easeInOutCubic=new Mr;}};exports.ReAnimateHandlingType=void 0;(function(o){o[o.ThrowError=1]="ThrowError",o[o.IgnoreNewAnimation=2]="IgnoreNewAnimation",o[o.CompletePrevious=3]="CompletePrevious";})(exports.ReAnimateHandlingType||(exports.ReAnimateHandlingType={}));exports.AnimationsCompletionHandlingType=void 0;(function(o){o[o.ReturnToOriginal=1]="ReturnToOriginal",o[o.StayInCurrentState=2]="StayInCurrentState",o[o.JumpToEnd=3]="JumpToEnd",o[o.Loop=4]="Loop";})(exports.AnimationsCompletionHandlingType||(exports.AnimationsCompletionHandlingType={}));var A=class o{static{h(this,"Animator");}static{this.ƀj=new WeakMap;}static ƀdi(t){let e=o.ƀj.get(t);return e||(e=new helpersLib.MapToWeakRefs,o.ƀj.set(t,e)),e}get animating(){return this.ƀgw!==void 0}get target(){return this.ƀjm}get value(){return this.ƀke||(this.ƀke=new actionsLib.Variable(this.ƀjm)),this.ƀke.notifier}constructor(t,e,i){this.ƀfk=false,this.ƀiy=false,this.ƀjm=t,this.ƀgz={duration:200,animation:S.lineer,reAnimateHandling:exports.ReAnimateHandlingType.ThrowError,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState,...i},this.ƀk=helpersLib.Comparator.isArray(e)?e:[e],this.ƀfx(t,this.ƀk);}animate(t,e){let i={...this.ƀgz,...e};if(this.ƀgw)switch(i.reAnimateHandling){case exports.ReAnimateHandlingType.ThrowError:throw new Error("Animator: new animation triggered while another is not complete yet.");case exports.ReAnimateHandlingType.IgnoreNewAnimation:return actionsLib.SingleEvent.instant();case exports.ReAnimateHandlingType.CompletePrevious:this.ƀis(i.completionHandling,this.ƀgw.ƀht,true);break;default:{throw new Error(`Animator: unknown re-animate handling type: "${i.reAnimateHandling}"`)}}return actionsLib.SingleEvent.create(s=>{this.ƀfk&&(this.ƀiy=true);let n=this.ƀk.reduce((c,p)=>(c[p]={ƀjg:this.ƀjm[p],ƀjo:t[p]},c),{}),a={ƀcr:i.duration,ƀcs:0,ƀht:n,ƀbe:i.completionHandling,ƀl:i.animation,ƀbd:s};if(a.ƀbe!==exports.AnimationsCompletionHandlingType.Loop&&this.ƀfi(a)){this.ƀgw=void 0,s();return}else a.ƀl.start();let l=this.ƀgw;return this.ƀgw=a,this.ƀcu(),l?.ƀbd(),()=>{this.ƀgw===a&&(this.ƀjm instanceof actionsLib.Attachable&&this.ƀjm.destroyed||this.ƀis(a.ƀbe,a.ƀht,true),this.ƀgw=void 0,this.ƀkb?.destroy(),this.ƀkb=void 0);}})}set(t){let e=false;for(let i=0;i<this.ƀk.length;i++){let r=this.ƀk[i];this.ƀjm[r]!==t[r]&&(e=true,this.ƀjm[r]=t[r]);}e&&this.ƀke?.set(this.ƀjm),this.ƀgw?.ƀbd();}completeAnimation(t){if(this.ƀgw){t=t??this.ƀgw.ƀbe,this.ƀis(t,this.ƀgw.ƀht,true);let e=this.ƀgw.ƀbd;this.ƀgw=void 0,e();}}ƀcu(){this.ƀkb||(this.ƀkb=y.beforeSceneUpdateAction.subscribe(t=>{this.ƀfk=true;try{let e=this.ƀgw;if(!e)return;e.ƀcs+=t.delta;let i=e.ƀcs>=e.ƀcr;if(i)if(e.ƀbe===exports.AnimationsCompletionHandlingType.Loop)e.ƀcs%=e.ƀcr,e.ƀl.start(),i=!1;else {this.ƀis(e.ƀbe,e.ƀht,!1),this.ƀgw=void 0,e.ƀbd(),this.ƀgw||(this.ƀkb?.destroy(),this.ƀkb=void 0);return}if(!i){let r=e.ƀl.multiplierFunction(e.ƀcs/e.ƀcr),s=!1;for(let n=0;n<this.ƀk.length;n++){let a=this.ƀk[n],l=e.ƀht[a],p=(l.ƀjo-l.ƀjg)*r+l.ƀjg;p!==this.ƀjm[a]&&(s=!0,this.ƀjm[a]=p);}s&&this.ƀke?.set(this.ƀjm);}}finally{this.ƀfk=false,this.ƀiy&&(this.ƀiy=false,this.ƀkb?.destroy(),this.ƀkb=void 0,this.ƀcu());}}).attachToRoot());}ƀfi(t){for(let e=0;e<this.ƀk.length;e++){let i=this.ƀk[e];if(this.ƀjm[i]!==t.ƀht[i].ƀjo)return false}return true}ƀis(t,e,i){switch(t){case exports.AnimationsCompletionHandlingType.ReturnToOriginal:this.ƀie(e);break;case exports.AnimationsCompletionHandlingType.StayInCurrentState:i||this.ƀfn(e);break;case exports.AnimationsCompletionHandlingType.JumpToEnd:this.ƀfn(e);break;case exports.AnimationsCompletionHandlingType.Loop:this.ƀie(e);break;default:{throw new Error(`Animator: unknown completion handling type: "${t}"`)}}}ƀie(t){let e=false;for(let i=0;i<this.ƀk.length;i++){let r=this.ƀk[i];this.ƀjm[r]!==t[r].ƀjg&&(e=true,this.ƀjm[r]=t[r].ƀjg);}e&&this.ƀke?.set(this.ƀjm);}ƀfn(t){let e=false;for(let i=0;i<this.ƀk.length;i++){let r=this.ƀk[i];this.ƀjm[r]!==t[r].ƀjo&&(e=true,this.ƀjm[r]=t[r].ƀjo);}e&&this.ƀke?.set(this.ƀjm);}ƀfx(t,e){let i=o.ƀdi(t);for(let r of e){if(i.has(r))throw new Error(`Animator: target property is already animated! Target: "${JSON.stringify(t,void 0,2)}", Property: "${r}"`);i.set(r,this);}}};exports.ContainerEventType=void 0;(function(o){o.Click="click",o.MouseOver="mouseover",o.MouseOut="mouseout",o.PointerDown="pointerdown",o.PointerUp="pointerup",o.PointerUpOutside="pointerupoutside",o.PointerMove="pointermove",o.PointerCancel="pointercancel",o.PointerOver="pointerover",o.PointerOut="pointerout",o.PointerEnter="pointerenter",o.PointerLeave="pointerleave",o.Added="added",o.Removed="removed",o.Update="update",o.Change="change";})(exports.ContainerEventType||(exports.ContainerEventType={}));exports.Cursor=void 0;(function(o){o.Default="default",o.Pointer="pointer";})(exports.Cursor||(exports.Cursor={}));var ue=class extends actionsLib.IDAttachable{static{h(this,"ContainerAttributes");}constructor(){super(),this.ƀgg=false,this.ƀdb=false,this.ƀif=1,this.ƀv=1,this.pixiContainer=new V__namespace.Container;}get size(){return this.getSize()}set size(t){this.setSize(t);}getSize(){return new helpersLib.Vector(this.pixiContainer.width,this.pixiContainer.height)}setSize(t){return this.pixiContainer.width=t.x,this.pixiContainer.height=t.y,this}setPosition(t,e){if(e?.holdFrom){let i=this.pixiContainer.getLocalBounds(),r=new helpersLib.Vector(this.pixiContainer.scale.x,this.pixiContainer.scale.y),s=new helpersLib.Vector(i.x,i.y).multiply(r),n=new helpersLib.Vector(i.width,i.height).multiply(r),a=s.add(n.multiply(e.holdFrom));t=t.subtract(a);}return e?.round!==false&&(t=t.round({rollHalfsDown:true})),this.position=t,this}get position(){return new helpersLib.Vector(this.pixiContainer.x,this.pixiContainer.y)}set position(t){this.pixiContainer.position=t;}get x(){return this.pixiContainer.x}set x(t){this.pixiContainer.x=t;}get y(){return this.pixiContainer.y}set y(t){this.pixiContainer.y=t;}on(t,e){let i=h(r=>e(),"handle");return this.pixiContainer.on(t,i),new actionsLib.ActionSubscription(()=>{this.pixiContainer.off(t,i);})}setRotation(t){return this.rotation=t,this}get rotation(){return new helpersLib.Radian(this.pixiContainer.rotation)}set rotation(t){this.pixiContainer.rotation=t.value;}get rotationValue(){return this.rotation.value}set rotationValue(t){this.rotation=new helpersLib.Radian(t);}setZIndex(t){return this.zIndex=t,this}get zIndex(){return this.pixiContainer.zIndex}set zIndex(t){this.pixiContainer.zIndex=t;}setSkewX(t){return this.skewX=t,this}get skewX(){return new helpersLib.Radian(this.pixiContainer.skew.x)}set skewX(t){this.pixiContainer.skew.x=t.value;}setSkewY(t){return this.skewY=t,this}get skewY(){return new helpersLib.Radian(this.pixiContainer.skew.y)}set skewY(t){this.pixiContainer.skew.y=t.value;}setSortableChildren(t){return this.sortableChildren=t,this}get sortableChildren(){return this.pixiContainer.sortableChildren}set sortableChildren(t){this.pixiContainer.sortableChildren=t;}setAlpha(t){return this.pixiContainer.alpha=t,this}get alpha(){return this.pixiContainer.alpha}set alpha(t){this.pixiContainer.alpha=t;}setInteractive(t){return this.interactive=t,this}get interactive(){return this.pixiContainer.interactive}set interactive(t){t?this.pixiContainer.eventMode="dynamic":this.pixiContainer.eventMode="none";}setCursor(t){return this.cursor=t,this}get cursor(){return this.pixiContainer.cursor}set cursor(t){this.pixiContainer.cursor=t;}getMask(){throw new Error("ContainerAttributes: mask is not available!")}setMask(t){return t?(this.pixiContainer.addChild(t.pixiContainer),this.pixiContainer.mask=t.getMask(),this.ƀga=t):(this.ƀga&&this.pixiContainer.removeChild(this.ƀga.pixiContainer),this.pixiContainer.mask=null),this}hitTest(t){if(this.pixiContainer.parent)if(this.pixiContainer.hitArea){let e=this.pixiContainer.toLocal(t);return this.pixiContainer.hitArea.contains(e.x,e.y)}else return this.pixiContainer.getBounds().contains(t.x,t.y);else return false}setMirror(t=false){return this.mirror=t,this}get mirror(){return this.ƀgg}set mirror(t){this.ƀgg=t,this.ƀkd();}setFlip(t=false){return this.flip=t,this}get flip(){return this.ƀdb}set flip(t){this.ƀdb=t,this.ƀkd();}setScale(t){return this.scale=t,this}get scale(){return this.ƀif}set scale(t){this.ƀif=t,this.ƀkd();}setAspectRatio(t){return this.aspectRatio=t,this}get aspectRatio(){return this.ƀv}set aspectRatio(t){this.ƀv=t,this.ƀkd();}ƀkd(){this.pixiContainer.scale.set(this.ƀif,this.ƀif),this.ƀv<1?this.pixiContainer.scale.x*=this.ƀv:this.ƀv>1&&(this.pixiContainer.scale.y/=this.ƀv),this.ƀgg&&(this.pixiContainer.scale.x*=-1),this.ƀdb&&(this.pixiContainer.scale.y*=-1);}};var O=2;exports.BlendMode=void 0;(function(o){o[o.Normal=0]="Normal",o[o.Add=1]="Add",o[o.Screen=3]="Screen",o[o.Luminosity=16]="Luminosity",o[o.ColorDodge=7]="ColorDodge";})(exports.BlendMode||(exports.BlendMode={}));var fe=class{static{h(this,"GaussianValuesHelper");}static ƀdg(t,e){let i=e*e,r=1/(helpersLib.PI_360*i),s=-(t*t)/(2*i);return r*Math.exp(s)}static getValuesForLinearSamplingPascal(t){let e=t*2,i=Math.pow(2,e),r=.005*i,s=helpersLib.NumberHelper.pascalTriangleRow(e).slice(t).filter(l=>{if(l<r)i-=l*2;else return true}),n=1/i,a=s.map(l=>l*n);return this.ƀbq(a)}static getValuesForLinearSamplingGauss(t){if(t===0)return [{offset:0,multiplier:1}];if(t===1)return [{offset:0,multiplier:.5},{offset:1,multiplier:.25}];{let e=helpersLib.ArrayHelper.createIntegerArray(Math.ceil(t*.75)).map(r=>this.ƀdg(r,t*.4)),i=e.reduce((r,s)=>r+s,0);return i=i*2-e[0],e=e.map(r=>r/i),this.ƀbq(e)}}static ƀbq(t){let e=[{offset:0,multiplier:t[0]}];for(let i=1;i<t.length-1;i+=2){let r=t[i]+t[i+1],s=i+t[i+1]/r;e.push({offset:s,multiplier:r});}if(t.length%2===0){let i=t[t.length-1],r=t.length-1;e.push({offset:r,multiplier:i});}return e}};var Di=class ti extends V__namespace.Filter{static{h(this,"BlurFilterPass");}static ƀeg(){return `
|
|
1
|
+
'use strict';var actionsLib=require('actions-lib');require('reflect-metadata');var helpersLib=require('helpers-lib'),W=require('p2'),V=require('pixi.js'),scriptEngineLib=require('script-engine-lib');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var W__default=/*#__PURE__*/_interopDefault(W);var V__namespace=/*#__PURE__*/_interopNamespace(V);var cr=Object.defineProperty;var h=(o,t)=>cr(o,"name",{value:t,configurable:true});var G=class{static{h(this,"BardLegendsHardReset");}static{this.ƀer=new actionsLib.Action;}static{this.onHardReset=this.ƀer.notifier;}static hardReset(){actionsLib.ActionLib.hardReset(),this.ƀer.trigger();}};function d(){return function(o){let t=P.ƀeb(o);o.$meta={paramtypes:t,type:"service"};}}h(d,"ServiceDecorator");var P=class{static{h(this,"Service");}static{this.ƀiq=new Map;}static get(t){let e=this.ƀiq.get(t);if(!e){if(!t.$meta)throw new Error(`Service: service class is not decorated by @ServiceDecorator(), class: "${t.name}"`);let i=this.ƀic([],t.$meta.paramtypes);e=new t(...i),this.ƀiq.set(t,e);}return e}static ƀeb(t){let e=Reflect.getMetadata("design:paramtypes",t)||[];return e.some(i=>!i)&&console.error(`Circular dependency: ${t.name}`),e}static ƀic(t,e){let i=[...t];if(e.length>t.length){let s=e.slice(t.length).map(n=>{if(n&&n.$meta?.type==="service")return this.get(n)});i.push(...s);}return i}};G.onHardReset.subscribe(()=>{P.ƀiq=new Map;}).attachToRoot();var U=class{static{h(this,"ControllerLink");}constructor(){this.ƀbl=[],this.ƀib=[];}trigger(t,...e){let i=this.ƀbl.find(r=>!!r[t]);if(i)return i[t](...e);throw new Error(`ServiceLink: no defined function with the name: "${t}", found in the linked controllers!`)}registerController(t){Reflect.ownKeys(t.constructor.prototype).filter(e=>e!=="constructor").map(e=>e.toString()).forEach(e=>{if(this.ƀib.includes(e))throw new Error(`ServiceLink: the function is already registered, function name: "${e}"`);this.ƀib.push(e);}),this.ƀbl.push(t);}};function q(o){return function(t){let e=P.ƀeb(t);if(e.some(i=>!i))console.error(`Circular dependency: ${t.name}`);else {let i=P.ƀic([],e);i.some(s=>s===void 0)&&console.error(i,e,t.name);let r=new t(...i);o.controllerLink.registerController(r);}t.$meta={type:"controller"};}}h(q,"ControllerDecorator");var y=class o{static{h(this,"UpdateCycle");}static{this.ƀac=new actionsLib.Action;}static{this.beforeSceneUpdateAction=this.ƀac.notifier;}static{this.ƀii=new actionsLib.Action;}static{this.sceneUpdateAction=this.ƀii.notifier;}static{this.ƀf=new actionsLib.Action;}static{this.afterSceneUpdateAction=this.ƀf.notifier;}static{this.ƀju=0;}static{this.ƀkc=void 0;}static wait(t){let e=this.ƀju+t;return actionsLib.SingleEvent.create(i=>{let r=o.beforeSceneUpdateAction.subscribe(s=>{s.time>=e&&i();}).attachToRoot();return ()=>r.destroy()})}static registerUpdateModifier(t){if(!this.ƀkc)this.ƀkc=t;else throw new Error("UpdateCycle: There can only one update modifier!")}static cleanUpdateModifier(){this.ƀkc=void 0;}static triggerUpdateTick(t){this.ƀkc&&(t=this.ƀkc(this.ƀju,t)),this.ƀju+=t,this.ƀfq=t,t>0&&(o.ƀac.trigger({time:this.ƀju,delta:t}),o.ƀii.trigger({time:this.ƀju,delta:t}),o.ƀf.trigger({time:this.ƀju,delta:t}));}static get lastDelta(){return this.ƀfq}static{this.ƀfq=0;}};G.onHardReset.subscribe(()=>{y.ƀac.clear(),y.ƀii.clear(),y.ƀf.clear(),y.ƀkc=void 0,y.ƀju=0;}).attachToRoot();var _=class o{static{h(this,"EntityStoreHelper");}static{this.ƀav=new Map;}static registerEntityClass(t){this.ƀav.set(t.id,new Map);}static registerEntity(t){this.ƀav.get(t.classID).set(t.id,t);}static unregisterEntity(t,e){let i=t.id;this.ƀav.get(i)?.delete(e);}static getEntity(t,e){return this.ƀav.get(t.id)?.get(e)}static getSingleton(t){let e=o.getEntities(t);if(e.length>1)throw new Error(`EntityStoreHelper: selectSingleton is called with an entity that has multiple instances! Name: "${this.name}"`);return e[0]}static getSingletonOrFail(t){let e=this.getSingleton(t);if(!e)throw new Error(`EntityStoreHelper: selectSingleton is called with an entity that has no instance! Name: "${this.name}"`);return e}static getEntities(t){let e=this.ƀav.get(t.id);return Array.from(e.values())}};G.onHardReset.subscribe(()=>{_.ƀav.clear();}).attachToRoot();var rt=class o{static{h(this,"EntityViewsHelper");}static{this.ƀkl=new Map;}static registerView(t,e){o.ƀkl.has(e)||o.ƀkl.set(e,[]);let i=o.ƀkl.get(e);i&&i.push(t),_.getEntities(e).forEach(s=>{this.ƀcg(s,t);});}static ƀcg(t,e){try{let i=P.ƀic([this],e.$meta.paramtypes);o.entityID=t.id;let r=new e(t,...i.slice(1));t.destroyed?r.destroy():t.ƀkk.ƀkm.push(r);}catch(i){console.error(i);}}constructor(t){this.ƀcv=t,this.ƀkm=[];}createViews(){if(!this.ƀcv.destroyed){let t=o.ƀkl.get(this.ƀcv.constructor);t&&t.forEach(e=>{o.ƀcg(this.ƀcv,e);});}}updateViews(t,e){for(let i=0;i<this.ƀkm.length;i++){let r=this.ƀkm[i];r.destroyed||r.update(t,e);}}destroyViews(){this.ƀkm.forEach(t=>{t.destroy();});}};G.onHardReset.subscribe(()=>{rt.ƀkl=new Map;}).attachToRoot();function dt(){return function(o){o.$meta={type:"entity"},_.registerEntityClass(o);}}h(dt,"EntityDecorator");var $=class extends actionsLib.IDAttachable{static{h(this,"Entity");}static getInstanceByID(t){if(t)return _.getEntity(this,t)}static getInstanceByIDOrFail(t){let e=_.getEntity(this,t);if(!e)throw new Error(`Entity: entity is not found! Name: "${this.name}", id: "${t}"`);return e}static getEntities(){return _.getEntities(this)}constructor(){super(),this.ƀkk=new rt(this),_.registerEntity(this),y.sceneUpdateAction.subscribe(t=>{this.destroyed||(this.update(t.time,t.delta),this.ƀkk.updateViews(t.time,t.delta));}).attach(this);}destroy(){this.destroyed||(this.ƀkk.destroyViews(),_.unregisterEntity(this.constructor,this.id),super.destroy());}attach(t){return super.attach(t),this.ƀkk.createViews(),this}attachByID(t){return super.attachByID(t),this.ƀkk.createViews(),this}attachToRoot(){return super.attachToRoot(),this.ƀkk.createViews(),this}update(t,e){}};var ut=class extends ${static{h(this,"SingletonEntity");}static getInstance(){return _.getSingleton(this)}static getInstanceOrFail(){return _.getSingletonOrFail(this)}constructor(){if(super(),this.constructor.getEntities().length>1)throw this.attachToRoot(),new Error(`SingletonEntity: entity is decorated as singleton but multiple instances are created! "${this}"`)}};function wr(){return function(o){return o.$meta={paramtypes:P.ƀeb(o),type:"scene"},o}}h(wr,"SceneDecorator");var Pt=class o extends actionsLib.IDAttachable{static{h(this,"Scene");}static{this.ƀih=false;}static{this.ƀb=new actionsLib.Variable(void 0);}static{this.activeScene=this.ƀb.notifier;}static getActiveScene(){return o.ƀb.value}static getActiveSceneOrFail(){if(!o.ƀb.value)throw new Error("Scene: getActiveSceneOrFail is called when there is no active scene!");return o.ƀb.value}static isActive(){return o.ƀb.value instanceof this}static getInstance(){return o.ƀb.value instanceof this?o.ƀb.value:void 0}static getInstanceOrFail(){if(!o.ƀb.value)throw new Error("Scene: getInstance is called when there is no active scene!");if(!(o.ƀb.value instanceof this))throw new Error(`Scene: getInstance is called while "${this.name}" was not the active scene. Current scene is: "${o.ƀb.value}"!`);return o.ƀb.value}static open(...t){if(o.ƀih)throw new Error("Scene: you cannot open a scene while a scene is transitioning!");if(o.ƀb.value)throw new Error("Scene: you cannot open a scene while there is already another active scene!");let e=t[0];o.ƀih=true;let i=P.ƀic([],this.$meta.paramtypes),r=new this(...i).attachToRoot();return o.ƀb.set(r),r.init(e).map(()=>(o.ƀih=false,r)).chainToRoot()}constructor(){super(),this.ƀgm=new actionsLib.Action,this.onClose=this.ƀgm.notifier,y.sceneUpdateAction.subscribe(t=>this.update(t.time,t.delta)).attach(this);}close(...t){if(o.ƀb.value!==this)throw new Error("Internal Error: Scene instance is accessed while it is not the active scene!");if(o.ƀih)throw new Error("Scene: you cannot close a scene while a scene is transitioning!");o.ƀih=true;let e=t[0];return this.prepareToClose().map(()=>(super.destroy(),o.ƀb.set(void 0),o.ƀih=false,this.ƀgm.trigger(e),e)).chainToRoot()}destroy(){throw new Error('To close a scene use the "close()" function')}};G.onHardReset.subscribe(()=>{Pt.ƀb.set(void 0);}).attachToRoot();function Ye(o){return function(t){t.$meta={paramtypes:P.ƀeb(t),viewInstances:new Map,entity:o.entity,type:"view"},rt.registerView(t,o.entity);}}h(Ye,"ViewDecorator");var Ht=class extends actionsLib.IDAttachable{static{h(this,"View");}static getInstance(t){return this.$meta.entity.validateID(t)?this.$meta.viewInstances.get(t):void 0}static getInstanceOrFail(t){if(!this.$meta.entity.validateID(t))throw new Error(`View: getInstance is called with entity id: "${t}", that is not belonging to the class: "${this.$meta.entity}"`);let i=this.$meta.viewInstances.get(t);if(!i)throw new Error(`View: getInstanceOrFail is called with entity id: "${t}", that is not found!`);return i}constructor(){super(),this.attachToRoot(),this.ƀcw=rt.entityID,this.ƀeh().set(this.ƀcw,this);}destroy(){this.destroyed||(super.destroy(),this.ƀeh().delete(this.ƀcw));}update(t,e){}ƀeh(){return this.constructor.$meta.viewInstances}};var f=class o{static{h(this,"P2JSHelper");}static aabbToBoundingBox(t){return helpersLib.Rectangle.fromRect({topLeft:{x:t.lowerBound[0],y:t.lowerBound[1]},bottomRight:{x:t.upperBound[0],y:t.upperBound[1]}})}static arrayToVector(t){return new helpersLib.Vector(t[0],t[1])}static vectorToArray(t){return [t.x,t.y]}static arePhysicsGroupsCollidable(t,e,i,r){return (t&r)!==0&&(i&e)!==0}static canCollideWith(t,e){return t.shapes.some(i=>e.shapes.some(r=>o.arePhysicsGroupsCollidable(i.collisionGroup,i.collisionMask,r.collisionGroup,r.collisionMask)))}static cloneP2Body(t){let e=new W__default.default.Body({position:t.position,angle:t.angle,type:t.type});return e.shapes=t.shapes,e}};var Sr=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},J=new U,St=class{static{h(this,"PhysicsInternalGateway");}createBody(t,e,i,r,s){return J.trigger("createBody",t,e,i,r,s)}getMaterial(t,e){return J.trigger("getMaterial",t,e)}getMaterialDefinition(t,e){return J.trigger("getMaterialDefinition",t,e)}getGroupConstant(t,e){return J.trigger("getGroupConstant",t,e)}getMaskConstant(t,e){return J.trigger("getMaskConstant",t,e)}addBody(t,e,i,r,s){return J.trigger("addBody",t,e,i,r,s)}removeBody(t,e){return J.trigger("removeBody",t,e)}subscribeToPhysicsStep(t,e){return J.trigger("subscribeToPhysicsStep",t,e)}};St=Sr([d()],St);var b=class o extends ${static{h(this,"PhysicsEntity");}static{this.ƀha=new Map;}static{this.ƀhh=new Map;}static getFromP2BodyID(t){return o.ƀha.get(t)}static getFromP2BodyIDOrFail(t){let e=o.ƀha.get(t);if(!e)throw new Error(`PhysicsEntity with p2BodyID ${t} not found`);return e}static getPhysicsInstanceOrFail(t){let e=o.ƀhh.get(t);if(!e)throw new Error(`PhysicsEntity with id ${t} not found`);return e}static getPhysicsEntities(){return Array.from(o.ƀhh.values())}get area(){return this.ƀt}get mass(){return this.ƀgc}get collisions(){return this.ƀax}constructor(t,e,i){super(),this.ƀgn=new actionsLib.Action,this.onCollision=this.ƀgn.notifier,this.type="dynamic",this.ƀt=0,this.ƀgc=0,this.ƀax=[],this.physicsWorldID=t,this.ƀhj=P.get(St);let r=this.ƀhj.getMaterial(this.physicsWorldID,e.shapeDefinition.materialName),s=this.ƀhj.getMaterialDefinition(this.physicsWorldID,e.shapeDefinition.materialName);if(this.type=i,this.physicsBodyGroup=e.shapeDefinition.group,this.includeInPathfinding=e.includeOnPathfinding,this.ƀhi=this.ƀhj.getGroupConstant(this.physicsWorldID,this.physicsBodyGroup),this.ƀhk=this.ƀhj.getMaskConstant(this.physicsWorldID,this.physicsBodyGroup),this.p2Body=this.ƀhj.createBody(this.physicsWorldID,e,r,s,this.type),this.ƀt=this.p2Body.getArea(),this.ƀgc=this.p2Body.mass,this.p2Body.position=f.vectorToArray(e.position),this.p2Body.angle=e.rotation.value,!this.ƀhj.addBody(this.physicsWorldID,this.p2Body,e.addInEmptySpace,e.shapeDefinition.group,e.includeOnPathfinding))throw new Error("PhysicsEntity was not able to be added to the world!");o.ƀha.set(this.p2Body.id,this),o.ƀhh.set(this.id,this);}destroy(){this.destroyed||(super.destroy(),this.ƀhj.removeBody(this.physicsWorldID,this.p2Body),o.ƀha.delete(this.p2Body.id),o.ƀhh.delete(this.id));}canCollideWith(t){return f.arePhysicsGroupsCollidable(this.ƀhi,this.ƀhk,t.ƀhi,t.ƀhk)}ƀir(t){this.ƀax=t,t.length>0&&this.ƀgn.trigger(t);}};var Wt=class extends b{static{h(this,"ImmovablePhysicsEntity");}constructor(t,e){super(t,e,"static"),this.position=f.arrayToVector(this.p2Body.position),this.rotation=new helpersLib.Radian(this.p2Body.angle);}convertToDTO(){return {entityID:this.id,classID:this.classID,position:this.position,rotation:this.rotation,velocity:helpersLib.Vector.zero,rotationalSpeed:0}}};var Xe=class extends ${static{h(this,"MovableEntity");}constructor(){super(),this.position=new actionsLib.Variable(helpersLib.Vector.zero),this.rotation=new actionsLib.Variable(helpersLib.Radian.get0),this.velocity=new actionsLib.Variable(helpersLib.Vector.zero),this.rotationalSpeed=new actionsLib.Variable(0),y.beforeSceneUpdateAction.subscribe(({time:t,delta:e})=>{this.ƀjj(t,e);}).attach(this);}ƀjj(t,e){this.position.value=this.position.value.add(this.velocity.value.multiplyNumber(e)),this.rotation.value=new helpersLib.Radian(this.rotation.value.value+this.rotationalSpeed.value*e);}};var Ke=class extends b{static{h(this,"MovablePhysicsEntity");}constructor(t,e){super(t,e,"dynamic"),this.position=new actionsLib.Variable(helpersLib.Vector.zero),this.rotation=new actionsLib.Variable(helpersLib.Radian.get0),this.velocity=new actionsLib.Variable(helpersLib.Vector.zero),this.rotationalSpeed=new actionsLib.Variable(0),this.ƀey=false,this.ƀez=false,this.ƀfb=false,this.ƀfa=false,this.ƀhe(),this.ƀfw(),P.get(St).subscribeToPhysicsStep(t,({time:i,delta:r})=>this.ƀjj(i,r)).attach(this);}convertToDTO(){return {entityID:this.id,classID:this.classID,position:this.position.value,rotation:this.rotation.value,velocity:this.velocity.value,rotationalSpeed:this.rotationalSpeed.value}}ƀjj(t,e){this.ƀey=true,this.ƀez=true,this.ƀfb=true,this.ƀfa=true,this.ƀhe();}ƀhe(){this.position.value=f.arrayToVector(this.p2Body.position),this.rotation.value=new helpersLib.Radian(this.p2Body.angle),this.velocity.value=f.arrayToVector(this.p2Body.velocity),this.rotationalSpeed.value=this.p2Body.angularVelocity;}ƀfw(){this.position.subscribe(t=>{this.ƀey?this.ƀey=false:this.p2Body.position=[t.x,t.y];}).attach(this),this.rotation.subscribe(t=>{this.ƀez?this.ƀez=false:this.p2Body.angle=t.value;}).attach(this),this.velocity.subscribe(t=>{this.ƀfb?this.ƀfb=false:this.p2Body.velocity=[t.x,t.y];}).attach(this),this.rotationalSpeed.subscribe(t=>{this.ƀfa?this.ƀfa=false:this.p2Body.angularVelocity=t;}).attach(this);}};var Ze=10.8,Qe=10.01;exports.PhysicsShapeType=void 0;(function(o){o[o.Point=1]="Point",o[o.Circle=2]="Circle",o[o.Polygon=3]="Polygon",o[o.Rectangle=4]="Rectangle";})(exports.PhysicsShapeType||(exports.PhysicsShapeType={}));var st="border";var Y=class{static{h(this,"AnimationInterpolationFunctions");}static boomerangTime(t){return 1-Math.abs(t-.5)*2}static lineer(t){return t}static easeIn(t){return Math.pow(t,2)}static easeOut(t){return 1-Math.pow(1-t,2)}static easeInOut(t){return t<.5?2*t*t:(t-=1,1-2*t*t)}static easeInOutCubic(t){let e=2*t-2;return t<.5?4*Math.pow(t,3):(t-1)*Math.pow(e,2)+1}},Rr=class{static{h(this,"AnimationLineer");}start(){}multiplierFunction(t){return Y.lineer(t)}},Ir=class{static{h(this,"AnimationEaseIn");}start(){}multiplierFunction(t){return Y.easeIn(t)}},Ar=class{static{h(this,"AnimationEaseOut");}start(){}multiplierFunction(t){return Y.easeOut(t)}},Or=class{static{h(this,"AnimationEaseInOut");}start(){}multiplierFunction(t){return Y.easeInOut(t)}},Mr=class{static{h(this,"AnimationEaseInOutCubic");}start(){}multiplierFunction(t){return Y.easeInOutCubic(t)}},Ai=class{static{h(this,"AnimationFlicker");}start(){this.ƀjv=new Array(10).fill(0),helpersLib.Random.integerBetween(0,9),this.ƀjv[helpersLib.Random.integerBetween(0,9)]=Math.random(),Math.random()<.3&&(helpersLib.Random.integerBetween(0,9),this.ƀjv[helpersLib.Random.integerBetween(0,9)]=Math.random()),Math.random()<.2&&(helpersLib.Random.integerBetween(0,9),this.ƀjv[helpersLib.Random.integerBetween(0,9)]=Math.random());}multiplierFunction(t){let e=Math.floor(t*10);return this.ƀjv[e]}},S=class{static{h(this,"Animations");}static{this.lineer=new Rr;}static{this.easeIn=new Ir;}static{this.easeOut=new Ar;}static{this.easeInOut=new Or;}static{this.easeInOutCubic=new Mr;}};exports.ReAnimateHandlingType=void 0;(function(o){o[o.ThrowError=1]="ThrowError",o[o.IgnoreNewAnimation=2]="IgnoreNewAnimation",o[o.CompletePrevious=3]="CompletePrevious";})(exports.ReAnimateHandlingType||(exports.ReAnimateHandlingType={}));exports.AnimationsCompletionHandlingType=void 0;(function(o){o[o.ReturnToOriginal=1]="ReturnToOriginal",o[o.StayInCurrentState=2]="StayInCurrentState",o[o.JumpToEnd=3]="JumpToEnd",o[o.Loop=4]="Loop";})(exports.AnimationsCompletionHandlingType||(exports.AnimationsCompletionHandlingType={}));var A=class o{static{h(this,"Animator");}static{this.ƀj=new WeakMap;}static ƀdi(t){let e=o.ƀj.get(t);return e||(e=new helpersLib.MapToWeakRefs,o.ƀj.set(t,e)),e}get animating(){return this.ƀgw!==void 0}get target(){return this.ƀjm}get value(){return this.ƀke||(this.ƀke=new actionsLib.Variable(this.ƀjm)),this.ƀke.notifier}constructor(t,e,i){this.ƀfk=false,this.ƀiy=false,this.ƀjm=t,this.ƀgz={duration:200,animation:S.lineer,reAnimateHandling:exports.ReAnimateHandlingType.ThrowError,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState,...i},this.ƀk=helpersLib.Comparator.isArray(e)?e:[e],this.ƀfx(t,this.ƀk);}animate(t,e){let i={...this.ƀgz,...e};if(this.ƀgw)switch(i.reAnimateHandling){case exports.ReAnimateHandlingType.ThrowError:throw new Error("Animator: new animation triggered while another is not complete yet.");case exports.ReAnimateHandlingType.IgnoreNewAnimation:return actionsLib.SingleEvent.instant();case exports.ReAnimateHandlingType.CompletePrevious:this.ƀis(i.completionHandling,this.ƀgw.ƀht,true);break;default:{throw new Error(`Animator: unknown re-animate handling type: "${i.reAnimateHandling}"`)}}return actionsLib.SingleEvent.create(s=>{this.ƀfk&&(this.ƀiy=true);let n=this.ƀk.reduce((c,p)=>(c[p]={ƀjg:this.ƀjm[p],ƀjo:t[p]},c),{}),a={ƀcr:i.duration,ƀcs:0,ƀht:n,ƀbe:i.completionHandling,ƀl:i.animation,ƀbd:s};if(a.ƀbe!==exports.AnimationsCompletionHandlingType.Loop&&this.ƀfi(a)){this.ƀgw=void 0,s();return}else a.ƀl.start();let l=this.ƀgw;return this.ƀgw=a,this.ƀcu(),l?.ƀbd(),()=>{this.ƀgw===a&&(this.ƀjm instanceof actionsLib.Attachable&&this.ƀjm.destroyed||this.ƀis(a.ƀbe,a.ƀht,true),this.ƀgw=void 0,this.ƀkb?.destroy(),this.ƀkb=void 0);}})}set(t){let e=false;for(let i=0;i<this.ƀk.length;i++){let r=this.ƀk[i];this.ƀjm[r]!==t[r]&&(e=true,this.ƀjm[r]=t[r]);}e&&this.ƀke?.set(this.ƀjm),this.ƀgw?.ƀbd();}completeAnimation(t){if(this.ƀgw){t=t??this.ƀgw.ƀbe,this.ƀis(t,this.ƀgw.ƀht,true);let e=this.ƀgw.ƀbd;this.ƀgw=void 0,e();}}ƀcu(){this.ƀkb||(this.ƀkb=y.beforeSceneUpdateAction.subscribe(t=>{this.ƀfk=true;try{let e=this.ƀgw;if(!e)return;e.ƀcs+=t.delta;let i=e.ƀcs>=e.ƀcr;if(i)if(e.ƀbe===exports.AnimationsCompletionHandlingType.Loop)e.ƀcs%=e.ƀcr,e.ƀl.start(),i=!1;else {this.ƀis(e.ƀbe,e.ƀht,!1),this.ƀgw=void 0,e.ƀbd(),this.ƀgw||(this.ƀkb?.destroy(),this.ƀkb=void 0);return}if(!i){let r=e.ƀl.multiplierFunction(e.ƀcs/e.ƀcr),s=!1;for(let n=0;n<this.ƀk.length;n++){let a=this.ƀk[n],l=e.ƀht[a],p=(l.ƀjo-l.ƀjg)*r+l.ƀjg;p!==this.ƀjm[a]&&(s=!0,this.ƀjm[a]=p);}s&&this.ƀke?.set(this.ƀjm);}}finally{this.ƀfk=false,this.ƀiy&&(this.ƀiy=false,this.ƀkb?.destroy(),this.ƀkb=void 0,this.ƀcu());}}).attachToRoot());}ƀfi(t){for(let e=0;e<this.ƀk.length;e++){let i=this.ƀk[e];if(this.ƀjm[i]!==t.ƀht[i].ƀjo)return false}return true}ƀis(t,e,i){switch(t){case exports.AnimationsCompletionHandlingType.ReturnToOriginal:this.ƀie(e);break;case exports.AnimationsCompletionHandlingType.StayInCurrentState:i||this.ƀfn(e);break;case exports.AnimationsCompletionHandlingType.JumpToEnd:this.ƀfn(e);break;case exports.AnimationsCompletionHandlingType.Loop:this.ƀie(e);break;default:{throw new Error(`Animator: unknown completion handling type: "${t}"`)}}}ƀie(t){let e=false;for(let i=0;i<this.ƀk.length;i++){let r=this.ƀk[i];this.ƀjm[r]!==t[r].ƀjg&&(e=true,this.ƀjm[r]=t[r].ƀjg);}e&&this.ƀke?.set(this.ƀjm);}ƀfn(t){let e=false;for(let i=0;i<this.ƀk.length;i++){let r=this.ƀk[i];this.ƀjm[r]!==t[r].ƀjo&&(e=true,this.ƀjm[r]=t[r].ƀjo);}e&&this.ƀke?.set(this.ƀjm);}ƀfx(t,e){let i=o.ƀdi(t);for(let r of e){if(i.has(r))throw new Error(`Animator: target property is already animated! Target: "${JSON.stringify(t,void 0,2)}", Property: "${r}"`);i.set(r,this);}}};exports.ContainerEventType=void 0;(function(o){o.Click="click",o.MouseOver="mouseover",o.MouseOut="mouseout",o.PointerDown="pointerdown",o.PointerUp="pointerup",o.PointerUpOutside="pointerupoutside",o.PointerMove="pointermove",o.PointerCancel="pointercancel",o.PointerOver="pointerover",o.PointerOut="pointerout",o.PointerEnter="pointerenter",o.PointerLeave="pointerleave",o.Added="added",o.Removed="removed",o.Update="update",o.Change="change";})(exports.ContainerEventType||(exports.ContainerEventType={}));exports.Cursor=void 0;(function(o){o.Default="default",o.Pointer="pointer";})(exports.Cursor||(exports.Cursor={}));var ue=class extends actionsLib.IDAttachable{static{h(this,"ContainerAttributes");}constructor(){super(),this.ƀgg=false,this.ƀdb=false,this.ƀif=1,this.ƀv=1,this.pixiContainer=new V__namespace.Container;}get size(){return this.getSize()}set size(t){this.setSize(t);}getSize(){return new helpersLib.Vector(this.pixiContainer.width,this.pixiContainer.height)}setSize(t){return this.pixiContainer.width=t.x,this.pixiContainer.height=t.y,this}setPosition(t,e){if(e?.holdFrom){let i=this.pixiContainer.getLocalBounds(),r=new helpersLib.Vector(this.pixiContainer.scale.x,this.pixiContainer.scale.y),s=new helpersLib.Vector(i.x,i.y).multiply(r),n=new helpersLib.Vector(i.width,i.height).multiply(r),a=s.add(n.multiply(e.holdFrom));t=t.subtract(a);}return e?.round!==false&&(t=t.round({rollHalfsDown:true})),this.position=t,this}get position(){return new helpersLib.Vector(this.pixiContainer.x,this.pixiContainer.y)}set position(t){this.pixiContainer.position=t;}get x(){return this.pixiContainer.x}set x(t){this.pixiContainer.x=t;}get y(){return this.pixiContainer.y}set y(t){this.pixiContainer.y=t;}on(t,e){let i=h(r=>e(),"handle");return this.pixiContainer.on(t,i),new actionsLib.ActionSubscription(()=>{this.pixiContainer.off(t,i);})}setRotation(t){return this.rotation=t,this}get rotation(){return new helpersLib.Radian(this.pixiContainer.rotation)}set rotation(t){this.pixiContainer.rotation=t.value;}get rotationValue(){return this.rotation.value}set rotationValue(t){this.rotation=new helpersLib.Radian(t);}setZIndex(t){return this.zIndex=t,this}get zIndex(){return this.pixiContainer.zIndex}set zIndex(t){this.pixiContainer.zIndex=t;}setSkewX(t){return this.skewX=t,this}get skewX(){return new helpersLib.Radian(this.pixiContainer.skew.x)}set skewX(t){this.pixiContainer.skew.x=t.value;}setSkewY(t){return this.skewY=t,this}get skewY(){return new helpersLib.Radian(this.pixiContainer.skew.y)}set skewY(t){this.pixiContainer.skew.y=t.value;}setSortableChildren(t){return this.sortableChildren=t,this}get sortableChildren(){return this.pixiContainer.sortableChildren}set sortableChildren(t){this.pixiContainer.sortableChildren=t;}setAlpha(t){return this.pixiContainer.alpha=t,this}get alpha(){return this.pixiContainer.alpha}set alpha(t){this.pixiContainer.alpha=t;}setInteractive(t){return this.interactive=t,this}get interactive(){return this.pixiContainer.interactive}set interactive(t){t?this.pixiContainer.eventMode="dynamic":this.pixiContainer.eventMode="none";}setCursor(t){return this.cursor=t,this}get cursor(){return this.pixiContainer.cursor}set cursor(t){this.pixiContainer.cursor=t;}getMask(){throw new Error("ContainerAttributes: mask is not available!")}setMask(t){return t?(this.pixiContainer.addChild(t.pixiContainer),this.pixiContainer.mask=t.getMask(),this.ƀga=t):(this.ƀga&&this.pixiContainer.removeChild(this.ƀga.pixiContainer),this.pixiContainer.mask=null),this}hitTest(t){if(this.pixiContainer.parent)if(this.pixiContainer.hitArea){let e=this.pixiContainer.toLocal(t);return this.pixiContainer.hitArea.contains(e.x,e.y)}else return this.pixiContainer.getBounds().contains(t.x,t.y);else return false}setMirror(t=false){return this.mirror=t,this}get mirror(){return this.ƀgg}set mirror(t){this.ƀgg=t,this.ƀkd();}setFlip(t=false){return this.flip=t,this}get flip(){return this.ƀdb}set flip(t){this.ƀdb=t,this.ƀkd();}setScale(t){return this.scale=t,this}get scale(){return this.ƀif}set scale(t){this.ƀif=t,this.ƀkd();}setAspectRatio(t){return this.aspectRatio=t,this}get aspectRatio(){return this.ƀv}set aspectRatio(t){this.ƀv=t,this.ƀkd();}ƀkd(){this.pixiContainer.scale.set(this.ƀif,this.ƀif),this.ƀv<1?this.pixiContainer.scale.x*=this.ƀv:this.ƀv>1&&(this.pixiContainer.scale.y/=this.ƀv),this.ƀgg&&(this.pixiContainer.scale.x*=-1),this.ƀdb&&(this.pixiContainer.scale.y*=-1);}};var O=2;exports.BlendMode=void 0;(function(o){o[o.Normal=0]="Normal",o[o.Add=1]="Add",o[o.Screen=3]="Screen",o[o.Luminosity=16]="Luminosity",o[o.ColorDodge=7]="ColorDodge";})(exports.BlendMode||(exports.BlendMode={}));var fe=class{static{h(this,"GaussianValuesHelper");}static ƀdg(t,e){let i=e*e,r=1/(helpersLib.PI_360*i),s=-(t*t)/(2*i);return r*Math.exp(s)}static getValuesForLinearSamplingPascal(t){let e=t*2,i=Math.pow(2,e),r=.005*i,s=helpersLib.NumberHelper.pascalTriangleRow(e).slice(t).filter(l=>{if(l<r)i-=l*2;else return true}),n=1/i,a=s.map(l=>l*n);return this.ƀbq(a)}static getValuesForLinearSamplingGauss(t){if(t===0)return [{offset:0,multiplier:1}];if(t===1)return [{offset:0,multiplier:.5},{offset:1,multiplier:.25}];{let e=helpersLib.ArrayHelper.createIntegerArray(Math.ceil(t*.75)).map(r=>this.ƀdg(r,t*.4)),i=e.reduce((r,s)=>r+s,0);return i=i*2-e[0],e=e.map(r=>r/i),this.ƀbq(e)}}static ƀbq(t){let e=[{offset:0,multiplier:t[0]}];for(let i=1;i<t.length-1;i+=2){let r=t[i]+t[i+1],s=i+t[i+1]/r;e.push({offset:s,multiplier:r});}if(t.length%2===0){let i=t[t.length-1],r=t.length-1;e.push({offset:r,multiplier:i});}return e}};var Di=class ti extends V__namespace.Filter{static{h(this,"BlurFilterPass");}static ƀeg(){return `
|
|
2
2
|
attribute vec2 aVertexPosition;
|
|
3
3
|
attribute vec2 aTextureCoord;
|
|
4
4
|
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
iterate(${s}, ${helpersLib.NumberHelper.toFloatString(t[r].multiplier)}, gl_FragColor);
|
|
30
30
|
iterate(${s} * -1.0, ${helpersLib.NumberHelper.toFloatString(t[r].multiplier)}, gl_FragColor);`;}return i+=`
|
|
31
31
|
}
|
|
32
|
-
`,i}constructor(t,e){super(ti.ƀeg(),ti.ƀdp(fe.getValuesForLinearSamplingGauss(t),e)),this.ƀeu=e,this.resolution=O;}apply(t,e,i,r){this.uniforms.pixelSize=this.ƀeu?1/(e.width*O):1/(e.height*O),t.applyFilter(this,e,i,r);}},Et=class extends V__namespace.Filter{static{h(this,"BlurFilter");}constructor(t=new helpersLib.Vector(2,2)){if(super(),this.ƀjk=t,this.resolution=O,this.ƀjk=t.multiplyNumber(O).floor(),this.ƀjk.x<0||this.ƀjk.y<0)throw new Error("BlurFilterLinearSampling: Strength * Resolution must be greater than 0");if(this.ƀjk.x>100||this.ƀjk.y>100)throw new Error("BlurFilterLinearSampling: Strength * Resolution cannot be higher than 100");this.ƀew=new Di(this.ƀjk.x,true),this.ƀki=new Di(this.ƀjk.y,false),this.padding=Math.max(this.ƀjk.x,this.ƀjk.y);}apply(t,e,i,r){let s=t.getFilterTexture();this.ƀki.apply(t,e,s,V__namespace.CLEAR_MODES.CLEAR),this.ƀew.apply(t,s,i,r),t.returnFilterTexture(s);}get blendMode(){return this.ƀew.blendMode}set blendMode(t){this.ƀew.blendMode=t,this.ƀki.blendMode=t;}};var ge=class{static{h(this,"Filters");}get red(){return this.ƀhx}set red(t){this.ƀhx=t,this.ƀhy();}get green(){return this.ƀek}set green(t){this.ƀek=t,this.ƀhy();}get blue(){return this.ƀaf}set blue(t){this.ƀaf=t,this.ƀhy();}get brightness(){return this.ƀak}set brightness(t){this.ƀak=t,this.ƀhy();}get contrast(){return this.ƀbk}set contrast(t){this.ƀbk=t,this.ƀhy();}get blur(){return this.ƀag}set blur(t){let e=helpersLib.Comparator.isNumber(t)?new helpersLib.Vector(t,t):t;(this.ƀag&&e&&!this.ƀag.isEqual(e)||this.ƀag&&!e||!this.ƀag&&e)&&(this.ƀag=e,this.ƀah&&(this.ƀah.destroy(),this.ƀah=void 0),e&&(this.ƀah=new Et(e),this.ƀgq()));}constructor(t){this.ƀbg=t,this.ƀhx=1,this.ƀek=1,this.ƀaf=1,this.ƀak=1,this.ƀbk=1,this.ƀgq();}removeColorFilter(){this.ƀaz?.destroy(),this.ƀaz=void 0,this.ƀgq();}ƀhy(){this.ƀhx===1&&this.ƀek===1&&this.ƀaf===1&&this.ƀak===1&&this.ƀbk===1?this.ƀaz&&(this.ƀaz.destroy(),this.ƀaz=void 0,this.ƀgq()):(this.ƀaz||(this.ƀaz=new V__namespace.ColorMatrixFilter,this.ƀaz.resolution=O,this.ƀgq()),this.ƀaz.matrix=[this.ƀhx*this.ƀbk,0,0,0,this.ƀak-1,0,this.ƀek*this.ƀbk,0,0,this.ƀak-1,0,0,this.ƀaf*this.ƀbk,0,this.ƀak-1,0,0,0,1,0]);}ƀgq(){let t=[];this.ƀah&&t.push(this.ƀah),this.ƀaz&&t.push(this.ƀaz),this.ƀbg.filters=t;}};var u=class o extends ue{static{h(this,"Container");}static{this.allContainers=new Map;}constructor(){super(),this.addChildTo=this,this.defaultChildOptions={addUnder:false,cropOverflowingParts:false},o.allContainers.set(this.id,this),this.filters=new ge(this.pixiContainer);}destroy(){this.destroyed||(super.destroy(),o.allContainers.delete(this.id),!this.pixiContainer.destroyed&&this.pixiContainer.destroy());}getBoundingMask(){if(this.addChildTo!==this)return this.addChildTo.getBoundingMask();throw new Error(`Container: bounding mask cannot be used without bounding shapes. Display Object: "${this.id}"!`)}displayParent(t,e){let i;if(helpersLib.Comparator.isNumber(t)){if(i=o.allContainers.get(t),!i)throw new Error(`Container: parent not found! id: ${t}`)}else i=t;let r={addUnder:i.defaultChildOptions.addUnder,cropOverflowingParts:i.defaultChildOptions.cropOverflowingParts,...e};if(r.addUnder?i.addChildTo.pixiContainer.addChildAt(this.pixiContainer,0):i.addChildTo.pixiContainer.addChild(this.pixiContainer),r.cropOverflowingParts)if(i)this.pixiContainer.mask=i.getBoundingMask().pixiSprite;else throw new Error("Container: cropOverflowingParts can only be used with Container parent!");return this}get boundingBox(){let t=this.pixiContainer.getLocalBounds();return new helpersLib.Rectangle(new helpersLib.Vector(t.x,t.y),new helpersLib.Vector(t.x+t.width,t.y+t.height))}};var M=class{static{h(this,"GameAssets");}static{this.ƀid=new Map;}static{this.ƀo=0;}static getAsset(t){let e=this.ƀid.get(t);if(e)return e;throw new Error(`Game Assets: Resource not found! Key: "${t}"`)}static insertAsset(t,e){return e||(e=`a-${this.ƀo++}`),this.ƀid.set(e,t),e}static destroyAsset(t){let e=this.ƀid.get(t);e&&(e.destroy(true),this.ƀid.delete(t));}static async loadGameAssets(t){let e=new Map,i=[];t.forEach(s=>{if(!helpersLib.Comparator.isString(s.url))throw new Error(`GameAssets: source url should be a string: ${s.url}`);let n=e.get(s.url);n?n.push(s.id):(e.set(s.url,[s.id]),i.push({url:s.url,callback:h(a=>{if(a instanceof V__namespace.Texture&&(a.id=s.id),n=e.get(s.url),n)n.forEach(l=>{this.ƀid.set(l,a);});else throw new Error(`GameAssets: unexpected error, nameGroup is not found! "./"! ${s}`)},"callback")}));});let r=performance.now();return Promise.all(i.map(s=>V__namespace.Assets.load(s.url))).then(s=>{let n=performance.now();console.info("Asset load completed in: ",Math.round(n-r)/1e3," seconds"),s.forEach((a,l)=>{i[l].callback(a);});}).catch(s=>{throw new Error(`GameAssets: during asset loading, an error occured: ${s}`)})}};var kt=class{static{h(this,"PositionConversionHelper");}static includeScaleInScreenPosition(t,e,i){if(e!==1){let r=helpersLib.Vector.fromTo(i,t).multiplyNumber(1/e);return i.add(r)}else return t}static normalizePolygonByAnchor(t,e,i){let r=new helpersLib.Vector(e.x*i.x,e.y*i.y);return t.map(s=>s.map(n=>r.to(helpersLib.Vector.fromVec2(n))))}},we=class{static{h(this,"CompositeHitArea");}constructor(t,e,i){this.ƀix=t.map(r=>new V__namespace.Polygon(r.map(s=>new V__namespace.Point(s.x,s.y))));}contains(t,e){return this.ƀix.some(i=>i.contains(t,e))}};var Jr=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},ft=new U;exports.CameraGateway=class Rt{static{h(this,"CameraGateway");}createCamera(){return ft.trigger("createCamera")}update(t,e){return ft.trigger("update",t,e)}setPosition(t){return ft.trigger("setPosition",t)}setTransition(t){return ft.trigger("setTransition",t)}getCameraPosition(){return ft.trigger("getCameraPosition")}};exports.CameraGateway=Jr([d()],exports.CameraGateway);var Yr=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},ve=new U,Jt=class{static{h(this,"CameraViewGateway");}getLayers(){return ve.trigger("getLayers")}appear(t,e){return ve.trigger("appear",t,e)}};Jt=Yr([d()],Jt);var _i;(function(o){o.BackgroundScreen="backgroundScreen",o.Background="background",o.Main="main",o.Foreground="foreground",o.ForegroundScreen="foregroundScreen";})(_i||(_i={}));exports.FocusingAnimation=void 0;(function(o){o[o.Instant=1]="Instant",o[o.EaseInOut=2]="EaseInOut",o[o.EaseOut=3]="EaseOut";})(exports.FocusingAnimation||(exports.FocusingAnimation={}));var Xr=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},L=class extends ut{static{h(this,"CameraEntity");}constructor(){super(...arguments),this.position=new actionsLib.Variable(helpersLib.Vector.zero),this.offset=new actionsLib.Variable(helpersLib.Vector.zero),this.targetPosition=new actionsLib.Variable(void 0),this.focusingNewTargetInfo=new actionsLib.Variable(void 0);}};L=Xr([dt()],L);var Zr=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Kr=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},It=class extends Ht{static{h(this,"CameraView");}constructor(t){super(),this.ƀcv=t,this.ƀig=new u().setAlpha(0).displayParent(w.instance.stage).attach(this),this.ƀad=T.createRectangle(new helpersLib.Vector(1,1),helpersLib.ColorHelper.black).toSprite({cache:true}).setAlpha(0).displayParent(w.instance.stage).attach(this),this.ƀab=new u().displayParent(this.ƀig).attach(this),this.ƀap=new u().displayParent(this.ƀig).attach(this),this.ƀdf=new u().setSortableChildren(true).displayParent(this.ƀig).attach(this),this.ƀao=new u().setSortableChildren(true).displayParent(this.ƀap).attach(this),this.ƀde=new u().setSortableChildren(true).setZIndex(20).displayParent(this.ƀao).attach(this),this.ƀfz=new u().setSortableChildren(true).setZIndex(10).displayParent(this.ƀao).attach(this),this.ƀaa=new u().setZIndex(0).displayParent(this.ƀao).attach(this),this.ƀh=new A(this.ƀig,"alpha",{duration:500,animation:S.easeInOutCubic,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀae=new A(this.ƀad,"alpha",{duration:500,animation:S.easeInOutCubic,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),w.instance.screenSize.subscribe(e=>{this.ƀad.aspectRatio=e.x/e.y,this.ƀad.scale=Math.max(e.x,e.y),this.ƀad.setPosition(helpersLib.Vector.zero,{holdFrom:helpersLib.Vector.zero});}).attach(this),w.instance.setScreenPositionToStagePositionFunction(e=>new helpersLib.Vector(e.x-this.ƀao.position.x-this.ƀap.position.x,e.y-this.ƀao.position.y-this.ƀap.position.y)),this.ƀcv.position.subscribe(e=>{this.ƀao.position=this.ƀbp(e);}).attach(this),this.ƀcv.offset.subscribe(e=>{this.ƀap.position=e;}).attach(this),this.appear(true,"alpha");}destroy(){this.destroyed||(super.destroy(),w.instance.resetScreenPositionToStagePositionFunction());}getLayers(){return {backgroundScreen:this.ƀab.id,background:this.ƀaa.id,main:this.ƀfz.id,foreground:this.ƀde.id,foregroundScreen:this.ƀdf.id}}appear(t,e){switch(e){case "alpha":return this.ƀae.set({alpha:0}),this.ƀh.set({alpha:t?0:1}),this.ƀh.animate({alpha:t?1:0}).chain(this);case "pureBlack":return this.ƀh.set({alpha:1}),this.ƀae.set({alpha:t?1:0}),this.ƀae.animate({alpha:t?0:1}).chain(this);case "instant":return this.ƀh.set({alpha:t?1:0}),this.ƀae.set({alpha:t?0:1}),actionsLib.SingleEvent.instant();default:{throw new Error('Switch ended with value "never".')}}}ƀbp(t){return helpersLib.Vector.fromTo(t,w.instance.getScreenSizeCenter())}};It=Zr([Ye({entity:L}),Kr("design:paramtypes",[L])],It);var ts=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},es=1500,Pe=class{static{h(this,"CameraService");}createCamera(){return new L().attachToRoot()}getCameraPosition(){let t=L.getInstanceOrFail();return helpersLib.Vector.fromTo(t.offset.value,t.position.value)}setPosition(t){let e=L.getInstanceOrFail();e.targetPosition.value=t;}setTransition(t){let e=L.getInstanceOrFail();e.focusingNewTargetInfo.value={time:w.time,duration:t?.duration??es,position:e.position.value,roundPosition:t?.roundPosition??false,roundPositionThreshold:t?.roundPositionThreshold??0,focusingAnimation:t?.animation??exports.FocusingAnimation.Instant};}update(t,e){let i=L.getInstanceOrFail(),r=i.targetPosition.value;r&&(i.focusingNewTargetInfo.value?this.ƀfl(i,r,t):i.position.value=r);}ƀfl(t,e,i){let r=t.focusingNewTargetInfo.value;if(r.focusingAnimation===exports.FocusingAnimation.Instant)this.ƀbb(t,e);else {let s=(i-r.time)/r.duration;if(s>=1)this.ƀbb(t,e);else {let n;r.focusingAnimation===exports.FocusingAnimation.EaseInOut?n=Y.easeInOut(s):r.focusingAnimation===exports.FocusingAnimation.EaseOut?n=Y.easeOut(s):n=1;let a=r.position.lerp(e,n);r.roundPosition&&(Math.abs(a.x-r.position.x)>=r.roundPositionThreshold&&(a=new helpersLib.Vector(Math.round(a.x),a.y)),Math.abs(a.y-r.position.y)>=r.roundPositionThreshold&&(a=new helpersLib.Vector(a.x,Math.round(a.y)))),t.position.value=a;}}}ƀbb(t,e){t.position.value=e,t.focusingNewTargetInfo.value=void 0;}};Pe=ts([d()],Pe);var is=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},rs=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},ri=class{static{h(this,"CameraController");}constructor(t){this.ƀaq=t;}createCamera(){return this.ƀaq.createCamera().id}update(t,e){this.ƀaq.update(t,e);}setPosition(t){this.ƀaq.setPosition(t);}setTransition(t){this.ƀaq.setTransition(t);}getCameraPosition(){return this.ƀaq.getCameraPosition()}};ri=is([q({controllerLink:ft}),rs("design:paramtypes",[Pe])],ri);var ss=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},si=class{static{h(this,"CameraViewController");}getLayers(){let t=L.getInstanceOrFail().id;return It.getInstanceOrFail(t).getLayers()}appear(t,e){let i=L.getInstanceOrFail().id;return It.getInstanceOrFail(i).appear(t,e)}};si=ss([q({controllerLink:ve})],si);var Xt=class{static{h(this,"Camera");}get position(){return this.ƀan.getCameraPosition()}constructor(){this.ƀan=P.get(exports.CameraGateway),this.ƀar=P.get(Jt),this.ƀan.createCamera(),this.layers=this.ƀar.getLayers();}setPosition(t){this.ƀan.setPosition(t);}setTransition(t){this.ƀan.setTransition(t);}appear(t,e="alpha"){return this.ƀar.appear(t,e)}};var w=class o{static{h(this,"Game");}static get instance(){return this.ƀfh}static{this.pause=actionsLib.Reducer.createOr();}static get camera(){return this.ƀam}static get time(){return y.ƀju}static get setupOptions(){return this.ƀiv}getScreenSize(){return this.ƀil.value}getScreenSizeCenter(){return this.ƀim.value}constructor(t){if(this.ƀil=new actionsLib.Variable(helpersLib.Vector.zero),this.screenSize=this.ƀil.notifier,this.ƀim=new actionsLib.Variable(helpersLib.Vector.zero),this.screenSizeCenter=this.ƀim.notifier,this.devMode=false,this.resetScreenPositionToStagePositionFunction(),o.ƀfh)throw new Error("There can be only one Game instance!");this.ƀbf={screenResolution:void 0,devMode:false,backgroundColor:helpersLib.ColorHelper.black,antialias:false,resolution:1,...t},this.devMode=this.ƀbf.devMode||false,this.ƀho=new V__namespace.Application({backgroundColor:this.ƀbf.backgroundColor,autoStart:false,antialias:this.ƀbf.antialias,resolution:this.ƀbf.resolution,width:this.ƀbf.screenResolution?.width,height:this.ƀbf.screenResolution?.height,resizeTo:this.ƀbf.screenResolution===void 0?window:void 0});}async setup(t){o.ƀiv=t,document.body.appendChild(this.ƀho.view),await Promise.all([M.loadGameAssets(t.assetDefinitions)]),o.ƀfh=this,this.stage=new u().attachToRoot(),this.stage.pixiContainer=this.ƀho.stage,this.renderer=this.ƀho.renderer,this.ƀiu(),this.stage.sortableChildren=true,globalThis.ƀa=this.ƀho,window.addEventListener("resize",e=>{setTimeout(()=>this.ƀiu());}),o.ƀam=new Xt,this.ƀho.start(),this.ƀho.ticker.add(()=>{y.triggerUpdateTick(this.ƀho.ticker.deltaMS);});}setResolution(t){this.ƀho.renderer.resolution!==t&&(this.ƀho.renderer.resolution=t,this.ƀho.renderer.resize(this.ƀho.screen.width,this.ƀho.screen.height));}screenPositonToStagePosition(t){let e=kt.includeScaleInScreenPosition(t,o.instance.stage.scale,o.instance.getScreenSizeCenter());return this.ƀik(e)}setScreenPositionToStagePositionFunction(t){this.ƀik=t;}resetScreenPositionToStagePositionFunction(){this.ƀik=t=>t;}destroyAsset(t){M.destroyAsset(t);}ƀiu(){let t=new helpersLib.Vector(this.ƀho.screen.width,this.ƀho.screen.height);this.ƀil.value=t,this.ƀim.value=t.multiplyNumber(.5).round();}};var Ce=class o extends V__namespace.Filter{static{h(this,"ExpandWithColorFilter");}static ƀeg(){return `
|
|
32
|
+
`,i}constructor(t,e){super(ti.ƀeg(),ti.ƀdp(fe.getValuesForLinearSamplingGauss(t),e)),this.ƀeu=e,this.resolution=O;}apply(t,e,i,r){this.uniforms.pixelSize=this.ƀeu?1/(e.width*O):1/(e.height*O),t.applyFilter(this,e,i,r);}},Et=class extends V__namespace.Filter{static{h(this,"BlurFilter");}constructor(t=new helpersLib.Vector(2,2)){if(super(),this.ƀjk=t,this.resolution=O,this.ƀjk=t.multiplyNumber(O).floor(),this.ƀjk.x<0||this.ƀjk.y<0)throw new Error("BlurFilterLinearSampling: Strength * Resolution must be greater than 0");if(this.ƀjk.x>100||this.ƀjk.y>100)throw new Error("BlurFilterLinearSampling: Strength * Resolution cannot be higher than 100");this.ƀew=new Di(this.ƀjk.x,true),this.ƀki=new Di(this.ƀjk.y,false),this.padding=Math.max(this.ƀjk.x,this.ƀjk.y);}apply(t,e,i,r){let s=t.getFilterTexture();this.ƀki.apply(t,e,s,V__namespace.CLEAR_MODES.CLEAR),this.ƀew.apply(t,s,i,r),t.returnFilterTexture(s);}get blendMode(){return this.ƀew.blendMode}set blendMode(t){this.ƀew.blendMode=t,this.ƀki.blendMode=t;}};var ge=class{static{h(this,"Filters");}get red(){return this.ƀhx}set red(t){this.ƀhx=t,this.ƀhy();}get green(){return this.ƀek}set green(t){this.ƀek=t,this.ƀhy();}get blue(){return this.ƀaf}set blue(t){this.ƀaf=t,this.ƀhy();}get brightness(){return this.ƀak}set brightness(t){this.ƀak=t,this.ƀhy();}get contrast(){return this.ƀbk}set contrast(t){this.ƀbk=t,this.ƀhy();}get blur(){return this.ƀag}set blur(t){let e=helpersLib.Comparator.isNumber(t)?new helpersLib.Vector(t,t):t;(this.ƀag&&e&&!this.ƀag.isEqual(e)||this.ƀag&&!e||!this.ƀag&&e)&&(this.ƀag=e,this.ƀah&&(this.ƀah.destroy(),this.ƀah=void 0),e&&(this.ƀah=new Et(e),this.ƀgq()));}constructor(t){this.ƀbg=t,this.ƀhx=1,this.ƀek=1,this.ƀaf=1,this.ƀak=1,this.ƀbk=1,this.ƀgq();}removeColorFilter(){this.ƀaz?.destroy(),this.ƀaz=void 0,this.ƀgq();}ƀhy(){this.ƀhx===1&&this.ƀek===1&&this.ƀaf===1&&this.ƀak===1&&this.ƀbk===1?this.ƀaz&&(this.ƀaz.destroy(),this.ƀaz=void 0,this.ƀgq()):(this.ƀaz||(this.ƀaz=new V__namespace.ColorMatrixFilter,this.ƀaz.resolution=O,this.ƀgq()),this.ƀaz.matrix=[this.ƀhx*this.ƀbk,0,0,0,this.ƀak-1,0,this.ƀek*this.ƀbk,0,0,this.ƀak-1,0,0,this.ƀaf*this.ƀbk,0,this.ƀak-1,0,0,0,1,0]);}ƀgq(){let t=[];this.ƀah&&t.push(this.ƀah),this.ƀaz&&t.push(this.ƀaz),this.ƀbg.filters=t;}};var u=class o extends ue{static{h(this,"Container");}static{this.allContainers=new Map;}constructor(){super(),this.addChildTo=this,this.defaultChildOptions={addUnder:false,cropOverflowingParts:false},o.allContainers.set(this.id,this),this.filters=new ge(this.pixiContainer);}destroy(){this.destroyed||(super.destroy(),o.allContainers.delete(this.id),!this.pixiContainer.destroyed&&this.pixiContainer.destroy());}getBoundingMask(){if(this.addChildTo!==this)return this.addChildTo.getBoundingMask();throw new Error(`Container: bounding mask cannot be used without bounding shapes. Display Object: "${this.id}"!`)}displayParent(t,e){let i;if(helpersLib.Comparator.isNumber(t)){if(i=o.allContainers.get(t),!i)throw new Error(`Container: parent not found! id: ${t}`)}else i=t;let r={addUnder:i.defaultChildOptions.addUnder,cropOverflowingParts:i.defaultChildOptions.cropOverflowingParts,...e};if(r.addUnder?i.addChildTo.pixiContainer.addChildAt(this.pixiContainer,0):i.addChildTo.pixiContainer.addChild(this.pixiContainer),r.cropOverflowingParts)if(i)this.pixiContainer.mask=i.getBoundingMask().pixiSprite;else throw new Error("Container: cropOverflowingParts can only be used with Container parent!");return this}get boundingBox(){let t=this.pixiContainer.getLocalBounds();return new helpersLib.Rectangle(new helpersLib.Vector(t.x,t.y),new helpersLib.Vector(t.x+t.width,t.y+t.height))}};var M=class{static{h(this,"GameAssets");}static{this.ƀid=new Map;}static{this.ƀo=0;}static getAsset(t){let e=this.ƀid.get(t);if(e)return e;throw new Error(`Game Assets: Resource not found! Key: "${t}"`)}static insertAsset(t,e){return e||(e=`a-${this.ƀo++}`),this.ƀid.set(e,t),e}static destroyAsset(t){let e=this.ƀid.get(t);e&&(e.destroy(true),this.ƀid.delete(t));}static async loadGameAssets(t){let e=new Map,i=[];t.forEach(s=>{if(!helpersLib.Comparator.isString(s.url))throw new Error(`GameAssets: source url should be a string: ${s.url}`);let n=e.get(s.url);n?n.push(s.id):(e.set(s.url,[s.id]),i.push({url:s.url,callback:h(a=>{if(a instanceof V__namespace.Texture&&(a.id=s.id),n=e.get(s.url),n)n.forEach(l=>{this.ƀid.set(l,a);});else throw new Error(`GameAssets: unexpected error, nameGroup is not found! "./"! ${s}`)},"callback")}));});let r=performance.now();return Promise.all(i.map(s=>V__namespace.Assets.load(s.url))).then(s=>{let n=performance.now();console.info("Asset load completed in: ",Math.round(n-r)/1e3," seconds"),s.forEach((a,l)=>{i[l].callback(a);});}).catch(s=>{throw new Error(`GameAssets: during asset loading, an error occured: ${s}`)})}};var kt=class{static{h(this,"PositionConversionHelper");}static includeScaleInScreenPosition(t,e,i){if(e!==1){let r=helpersLib.Vector.fromTo(i,t).multiplyNumber(1/e);return i.add(r)}else return t}static normalizePolygonByAnchor(t,e,i){let r=new helpersLib.Vector(e.x*i.x,e.y*i.y);return t.map(s=>s.map(n=>r.to(helpersLib.Vector.fromVec2(n))))}},we=class{static{h(this,"CompositeHitArea");}constructor(t,e,i){this.ƀix=t.map(r=>new V__namespace.Polygon(r.map(s=>new V__namespace.Point(s.x,s.y))));}contains(t,e){return this.ƀix.some(i=>i.contains(t,e))}};var Jr=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},ft=new U;exports.CameraGateway=class Rt{static{h(this,"CameraGateway");}createCamera(){return ft.trigger("createCamera")}update(t,e){return ft.trigger("update",t,e)}setPosition(t){return ft.trigger("setPosition",t)}setTransition(t){return ft.trigger("setTransition",t)}getCameraPosition(){return ft.trigger("getCameraPosition")}};exports.CameraGateway=Jr([d()],exports.CameraGateway);var Yr=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},ve=new U,Jt=class{static{h(this,"CameraViewGateway");}getLayers(){return ve.trigger("getLayers")}appear(t,e){return ve.trigger("appear",t,e)}};Jt=Yr([d()],Jt);var _i;(function(o){o.BackgroundScreen="backgroundScreen",o.Background="background",o.Main="main",o.Foreground="foreground",o.ForegroundScreen="foregroundScreen";})(_i||(_i={}));exports.FocusingAnimation=void 0;(function(o){o[o.Instant=1]="Instant",o[o.EaseInOut=2]="EaseInOut",o[o.EaseOut=3]="EaseOut";})(exports.FocusingAnimation||(exports.FocusingAnimation={}));var Xr=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},L=class extends ut{static{h(this,"CameraEntity");}constructor(){super(...arguments),this.position=new actionsLib.Variable(helpersLib.Vector.zero),this.offset=new actionsLib.Variable(helpersLib.Vector.zero),this.targetPosition=new actionsLib.Variable(void 0),this.focusingNewTargetInfo=new actionsLib.Variable(void 0);}};L=Xr([dt()],L);var Kr=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Zr=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},It=class extends Ht{static{h(this,"CameraView");}constructor(t){super(),this.ƀcv=t,this.ƀig=new u().setAlpha(0).displayParent(w.instance.stage).attach(this),this.ƀad=T.createRectangle(new helpersLib.Vector(1,1),helpersLib.ColorHelper.black).toSprite({cache:true}).setAlpha(0).displayParent(w.instance.stage).attach(this),this.ƀab=new u().displayParent(this.ƀig).attach(this),this.ƀap=new u().displayParent(this.ƀig).attach(this),this.ƀdf=new u().setSortableChildren(true).displayParent(this.ƀig).attach(this),this.ƀao=new u().setSortableChildren(true).displayParent(this.ƀap).attach(this),this.ƀde=new u().setSortableChildren(true).setZIndex(20).displayParent(this.ƀao).attach(this),this.ƀfz=new u().setSortableChildren(true).setZIndex(10).displayParent(this.ƀao).attach(this),this.ƀaa=new u().setZIndex(0).displayParent(this.ƀao).attach(this),this.ƀh=new A(this.ƀig,"alpha",{duration:500,animation:S.easeInOutCubic,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀae=new A(this.ƀad,"alpha",{duration:500,animation:S.easeInOutCubic,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),w.instance.screenSize.subscribe(e=>{this.ƀad.aspectRatio=e.x/e.y,this.ƀad.scale=Math.max(e.x,e.y),this.ƀad.setPosition(helpersLib.Vector.zero,{holdFrom:helpersLib.Vector.zero});}).attach(this),w.instance.setScreenPositionToStagePositionFunction(e=>new helpersLib.Vector(e.x-this.ƀao.position.x-this.ƀap.position.x,e.y-this.ƀao.position.y-this.ƀap.position.y)),this.ƀcv.position.subscribe(e=>{this.ƀao.position=this.ƀbp(e);}).attach(this),this.ƀcv.offset.subscribe(e=>{this.ƀap.position=e;}).attach(this),this.appear(true,"alpha");}destroy(){this.destroyed||(super.destroy(),w.instance.resetScreenPositionToStagePositionFunction());}getLayers(){return {backgroundScreen:this.ƀab.id,background:this.ƀaa.id,main:this.ƀfz.id,foreground:this.ƀde.id,foregroundScreen:this.ƀdf.id}}appear(t,e){switch(e){case "alpha":return this.ƀae.set({alpha:0}),this.ƀh.set({alpha:t?0:1}),this.ƀh.animate({alpha:t?1:0}).chain(this);case "pureBlack":return this.ƀh.set({alpha:1}),this.ƀae.set({alpha:t?1:0}),this.ƀae.animate({alpha:t?0:1}).chain(this);case "instant":return this.ƀh.set({alpha:t?1:0}),this.ƀae.set({alpha:t?0:1}),actionsLib.SingleEvent.instant();default:{throw new Error('Switch ended with value "never".')}}}ƀbp(t){return helpersLib.Vector.fromTo(t,w.instance.getScreenSizeCenter())}};It=Kr([Ye({entity:L}),Zr("design:paramtypes",[L])],It);var ts=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},es=1500,Pe=class{static{h(this,"CameraService");}createCamera(){return new L().attachToRoot()}getCameraPosition(){let t=L.getInstanceOrFail();return helpersLib.Vector.fromTo(t.offset.value,t.position.value)}setPosition(t){let e=L.getInstanceOrFail();e.targetPosition.value=t;}setTransition(t){let e=L.getInstanceOrFail();e.focusingNewTargetInfo.value={time:w.time,duration:t?.duration??es,position:e.position.value,roundPosition:t?.roundPosition??false,roundPositionThreshold:t?.roundPositionThreshold??0,focusingAnimation:t?.animation??exports.FocusingAnimation.Instant};}update(t,e){let i=L.getInstanceOrFail(),r=i.targetPosition.value;r&&(i.focusingNewTargetInfo.value?this.ƀfl(i,r,t):i.position.value=r);}ƀfl(t,e,i){let r=t.focusingNewTargetInfo.value;if(r.focusingAnimation===exports.FocusingAnimation.Instant)this.ƀbb(t,e);else {let s=(i-r.time)/r.duration;if(s>=1)this.ƀbb(t,e);else {let n;r.focusingAnimation===exports.FocusingAnimation.EaseInOut?n=Y.easeInOut(s):r.focusingAnimation===exports.FocusingAnimation.EaseOut?n=Y.easeOut(s):n=1;let a=r.position.lerp(e,n);r.roundPosition&&(Math.abs(a.x-r.position.x)>=r.roundPositionThreshold&&(a=new helpersLib.Vector(Math.round(a.x),a.y)),Math.abs(a.y-r.position.y)>=r.roundPositionThreshold&&(a=new helpersLib.Vector(a.x,Math.round(a.y)))),t.position.value=a;}}}ƀbb(t,e){t.position.value=e,t.focusingNewTargetInfo.value=void 0;}};Pe=ts([d()],Pe);var is=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},rs=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},ri=class{static{h(this,"CameraController");}constructor(t){this.ƀaq=t;}createCamera(){return this.ƀaq.createCamera().id}update(t,e){this.ƀaq.update(t,e);}setPosition(t){this.ƀaq.setPosition(t);}setTransition(t){this.ƀaq.setTransition(t);}getCameraPosition(){return this.ƀaq.getCameraPosition()}};ri=is([q({controllerLink:ft}),rs("design:paramtypes",[Pe])],ri);var ss=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},si=class{static{h(this,"CameraViewController");}getLayers(){let t=L.getInstanceOrFail().id;return It.getInstanceOrFail(t).getLayers()}appear(t,e){let i=L.getInstanceOrFail().id;return It.getInstanceOrFail(i).appear(t,e)}};si=ss([q({controllerLink:ve})],si);var Xt=class{static{h(this,"Camera");}get position(){return this.ƀan.getCameraPosition()}constructor(){this.ƀan=P.get(exports.CameraGateway),this.ƀar=P.get(Jt),this.ƀan.createCamera(),this.layers=this.ƀar.getLayers();}setPosition(t){this.ƀan.setPosition(t);}setTransition(t){this.ƀan.setTransition(t);}appear(t,e="alpha"){return this.ƀar.appear(t,e)}};var w=class o{static{h(this,"Game");}static get instance(){return this.ƀfh}static{this.pause=actionsLib.Reducer.createOr();}static get camera(){return this.ƀam}static get time(){return y.ƀju}static get setupOptions(){return this.ƀiv}getScreenSize(){return this.ƀil.value}getScreenSizeCenter(){return this.ƀim.value}constructor(t){if(this.ƀil=new actionsLib.Variable(helpersLib.Vector.zero),this.screenSize=this.ƀil.notifier,this.ƀim=new actionsLib.Variable(helpersLib.Vector.zero),this.screenSizeCenter=this.ƀim.notifier,this.devMode=false,this.resetScreenPositionToStagePositionFunction(),o.ƀfh)throw new Error("There can be only one Game instance!");this.ƀbf={screenResolution:void 0,devMode:false,backgroundColor:helpersLib.ColorHelper.black,antialias:false,resolution:1,...t},this.devMode=this.ƀbf.devMode||false,this.ƀho=new V__namespace.Application({backgroundColor:this.ƀbf.backgroundColor,autoStart:false,antialias:this.ƀbf.antialias,resolution:this.ƀbf.resolution,width:this.ƀbf.screenResolution?.width,height:this.ƀbf.screenResolution?.height,resizeTo:this.ƀbf.screenResolution===void 0?window:void 0});}async setup(t){o.ƀiv=t,document.body.appendChild(this.ƀho.view),await Promise.all([M.loadGameAssets(t.assetDefinitions)]),o.ƀfh=this,this.stage=new u().attachToRoot(),this.stage.pixiContainer=this.ƀho.stage,this.renderer=this.ƀho.renderer,this.ƀiu(),this.stage.sortableChildren=true,globalThis.ƀa=this.ƀho,window.addEventListener("resize",e=>{setTimeout(()=>this.ƀiu());}),o.ƀam=new Xt,this.ƀho.start(),this.ƀho.ticker.add(()=>{y.triggerUpdateTick(this.ƀho.ticker.deltaMS);});}setResolution(t){this.ƀho.renderer.resolution!==t&&(this.ƀho.renderer.resolution=t,this.ƀho.renderer.resize(this.ƀho.screen.width,this.ƀho.screen.height));}screenPositonToStagePosition(t){let e=kt.includeScaleInScreenPosition(t,o.instance.stage.scale,o.instance.getScreenSizeCenter());return this.ƀik(e)}setScreenPositionToStagePositionFunction(t){this.ƀik=t;}resetScreenPositionToStagePositionFunction(){this.ƀik=t=>t;}destroyAsset(t){M.destroyAsset(t);}ƀiu(){let t=new helpersLib.Vector(this.ƀho.screen.width,this.ƀho.screen.height);this.ƀil.value=t,this.ƀim.value=t.multiplyNumber(.5).round();}};var Ce=class o extends V__namespace.Filter{static{h(this,"ExpandWithColorFilter");}static ƀeg(){return `
|
|
33
33
|
attribute vec2 aVertexPosition;
|
|
34
34
|
attribute vec2 aTextureCoord;
|
|
35
35
|
|
|
@@ -64,4 +64,4 @@
|
|
|
64
64
|
highestAlpha = centerColor.a;`,e+=`
|
|
65
65
|
|
|
66
66
|
gl_FragColor = vec4(color, 1.0) * highestAlpha;
|
|
67
|
-
}`,e}constructor(t,e){if(super(o.ƀeg(),o.ƀdp(t*O)),this.ƀcx=t,this.resolution=O,this.ƀcx=t*O,this.ƀcx<0)throw new Error("ExpandWithColorFilter: Expand * resolution cannot be smaller than 0");if(this.ƀcx>10)throw new Error("ExpandWithColorFilter: Expand * resolution cannot be higher than 10");helpersLib.Comparator.isInteger(this.ƀcx)||(this.ƀcx=Math.floor(this.ƀcx));let i=helpersLib.ColorHelper.normalize(e);this.uniforms.color=new Float32Array([i.red,i.green,i.blue]),this.uniforms.expandSquared=this.ƀcx*this.ƀcx,this.padding=this.ƀcx;}apply(t,e,i,r){this.uniforms.pixelSize=new Float32Array([1/(e.width*O),1/(e.height*O)]),t.applyFilter(this,e,i,r);}};var Te=class extends V__namespace.Filter{static{h(this,"GlowFilter");}constructor(t){super(),this.resolution=O;let e={blurRadius:1,expand:0,color:helpersLib.ColorHelper.white,blendMode:exports.BlendMode.Screen,...t};this.ƀcy=new Ce(e.expand,e.color);let i=helpersLib.Comparator.isNumber(e.blurRadius)?new helpersLib.Vector(e.blurRadius,e.blurRadius):e.blurRadius;this.ƀah=new Et(i),this.padding=Math.max(i.x,i.y)+e.expand,this.ƀah.blendMode=V__namespace.BLEND_MODES.SCREEN;}apply(t,e,i,r){let s=t.getFilterTexture();this.ƀcy.apply(t,e,s,V__namespace.CLEAR_MODES.CLEAR),this.ƀah.apply(t,s,i,r),t.returnFilterTexture(s);}};var Kt=class o{static{h(this,"GlowSpriteGenerator");}static{this.ƀej=new Map;}static createGlowSpriteFromSprite(t,e,i){let r=this.ƀbc(e),s=helpersLib.Comparator.isNumber(r.blurRadius)?new helpersLib.Vector(r.blurRadius,r.blurRadius):r.blurRadius,n=this.ƀdr(t.texture,s,r.expand,r.color,i),a=new V__namespace.Sprite(n);return this.ƀit(a,helpersLib.Vector.fromVec2(t.anchor),Math.max(s.x,s.y)+r.expand),a.alpha=r.glowAlpha,a.blendMode=r.blendMode,a}static ƀdr(t,e,i,r,s){if(!t.id)throw new Error("GlowSpriteGenerator: baseTexture should have an id");if(s){let n=`${t.id}-${i}-${e.x}-${e.y}-${r.r}-${r.g}-${r.b}`;if(o.ƀej.has(n))return o.ƀej.get(n);{let a=this.ƀds(t,e,i,r);return o.ƀej.set(n,a),a}}else return this.ƀds(t,e,i,r)}static ƀds(t,e,i,r){let s=new V__namespace.Sprite(t);this.ƀda(s,Math.max(e.x,e.y)+i),s.filters=[new Te({blurRadius:e,expand:i,color:r})];let n=w.instance.renderer.generateTexture(s);return n.id=M.insertAsset(n),s.destroy(),n}static ƀit(t,e,i){let r=(i+(t.width-i*2)*e.x)/t.width,s=(i+(t.height-i*2)*e.y)/t.height;t.anchor.set(r,s);}static ƀda(t,e){if(t.isSprite){let s=new V__namespace.Graphics;t.addChild(s);}let i=t.width,r=t.height;t.calculateBounds=function(){this._bounds.clear(),this._bounds.addFrame(this.transform,-e,-e,i+e,r+e);};}static ƀbc(t){let e={glowAlpha:1,blurRadius:5,expand:0,color:helpersLib.ColorHelper.white,blendMode:exports.BlendMode.Add};return t&&(e={...e,...t}),e}};G.onHardReset.subscribe(()=>{Kt.ƀej.clear();}).attachToRoot();var X=class o extends u{static{h(this,"Sprite");}static createByName(t){let e=w.setupOptions.spriteDefinitions[t];if(!e)throw new Error(`Sprite: Could not find sprite definition with name ${t}.`);return new o(e)}static createSnapshotSprite(t){let e=t.pixiContainer,i=e.parent;i&&i.removeChild(e);let r=w.instance.renderer.generateTexture(e,{resolution:2,scaleMode:V__namespace.SCALE_MODES.LINEAR,multisample:V__namespace.MSAA_QUALITY.HIGH});i&&i.addChild(e);let n={id:M.insertAsset(r),scale:t.scale,size:t.size,anchor:helpersLib.Vector.zero,boundingShapes:void 0,destroyAssetOnDestroy:true};return new o(n,{ignoreAnchor:true})}constructor(t,e={}){if(super(),this.ƀjt=1,!t)throw new Error("Sprite: spriteDefinition cannot be nullish!");this.ƀjc=t,this.pixiSprite=new V__namespace.Sprite(M.getAsset(t.id)),this.pixiContainer.addChild(this.pixiSprite),this.setTextureScale(t.scale),e.textureSize&&(this.pixiSprite.width=e.textureSize.x,this.pixiSprite.height=e.textureSize.y),e.texturePosition&&this.pixiSprite.position.set(e.texturePosition.x,e.texturePosition.y),e.ignoreAnchor||this.pixiSprite.anchor.set(t.anchor.x,t.anchor.y);}destroy(){this.destroyed||(super.destroy(),this.ƀgb?.destroy(),this.ƀaj?.destroy(),this.ƀjc.destroyAssetOnDestroy&&(M.destroyAsset(this.ƀjc.id),this.ƀhp&&M.destroyAsset(this.ƀhp.texture.id)),this.ƀhp&&!this.ƀhp.destroyed&&this.ƀhp.destroy());}setTextureScale(t){return this.textureScale=t,this}get textureScale(){return this.ƀjt}set textureScale(t){this.ƀjt=t,this.pixiSprite.scale.set(t);}get size(){return new helpersLib.Vector(this.pixiSprite.width,this.pixiSprite.height)}getMask(){return this.pixiSprite}set interactive(t){super.interactive=t,t&&this.ƀjc.boundingShapes&&!this.pixiContainer.hitArea&&(this.pixiContainer.hitArea=new we(this.ƀjc.boundingShapes,this.size,helpersLib.Vector.fromVec2(this.ƀjc.anchor)));}setMipmap(t){return this.mipmap=t,this}get mipmap(){return this.pixiSprite.texture.baseTexture.mipmap===V__namespace.MIPMAP_MODES.ON}set mipmap(t){t?this.pixiSprite.texture.baseTexture.mipmap=V__namespace.MIPMAP_MODES.ON:this.pixiSprite.texture.baseTexture.mipmap=V__namespace.MIPMAP_MODES.OFF;}setBlendMode(t){return this.blendMode=t,this}get blendMode(){return this.pixiSprite.blendMode}set blendMode(t){this.pixiSprite.blendMode=t;}setTint(t){return this.tint=t,this}get tint(){return new V__namespace.Color(this.pixiSprite.tint).toRgb()}set tint(t){this.pixiSprite.tint=t;}setShapeAlpha(t){return this.pixiSprite.alpha=t,this}get shapeAlpha(){return this.pixiSprite.alpha}set shapeAlpha(t){this.pixiSprite.alpha=t;}setGlowAlpha(t){return this.glowAlpha=t,this}get glowAlpha(){if(this.ƀhp)return this.ƀhp.alpha;throw new Error("Sprite: getGlowFilterAlpha cannot be called before glow filter is added.")}set glowAlpha(t){if(this.ƀhp)this.ƀhp.alpha=t;else throw new Error("Sprite: setGlowFilterAlpha cannot be called before glow filter is added.")}getAlignmentVector(t){let e=helpersLib.Vector.fromVec2(this.ƀjc.anchor).to(t);return new helpersLib.Vector(this.size.x*e.x,this.size.y*e.y)}setGlowEffect(t){return this.ƀhp&&(this.ƀhp.destroy(),this.ƀhp=void 0),t&&(this.ƀhp=Kt.createGlowSpriteFromSprite(this.pixiSprite,t,!this.ƀjc.destroyAssetOnDestroy),this.ƀhp.position.set(this.pixiSprite.x,this.pixiSprite.y),this.ƀhp.scale.set(this.pixiSprite.scale.x,this.pixiSprite.scale.y),this.pixiContainer.addChild(this.ƀhp)),this}showBoundingShape(t){return t?this.ƀaj||(this.ƀaj=this.ƀbs().setAlpha(.3).setTint({r:0,g:0,b:200}).displayParent(this)):this.ƀaj&&(this.ƀaj.destroy(),this.ƀaj=void 0),this}getBoundingMask(){if(!this.ƀgb){if(!this.ƀjc.boundingShapes)throw new Error("Sprite: cropOverflowingParts cannot be used without polygonDefinition!");this.ƀgb=this.ƀbs(),this.ƀgb.pixiSprite._maskRefCount=Number.POSITIVE_INFINITY,this.ƀgb.pixiSprite.renderable=false,this.ƀgb.displayParent(this);}return this.ƀgb}ƀbs(){if(!this.ƀjc.boundingShapes)throw new Error("Sprite: bounding shape cannot be created without polygonDefinition!");return T.createPolygon(this.ƀjc.boundingShapes,helpersLib.ColorHelper.white).toSprite().attach(this)}download(){let t=w.instance.renderer.extract.canvas(this.pixiContainer);if(!t.toBlob)throw new Error("Sprite: canvas.toBlob is undefined!");return t.toBlob(e=>{if(!e)throw new Error("Sprite: blob is undefined!");let i=document.createElement("a");document.body.append(i),i.download="sprite.png",i.href=URL.createObjectURL(e),i.click(),i.remove();},"image/png"),this}};var Ee=class{static{h(this,"DashedLineHelper");}static getLines(t,e,i){let r=helpersLib.Vector.fromTo(t,e),s=r.normalize(),n=r.length-i.lineStartGap-i.lineEndGap,a=[];if(n<=0)return a;let l=t.add(s.normalize(i.lineStartGap));if(n<=i.dashGap+i.dashLength*.5)return a.push({from:l,to:l.add(s.normalize(n))}),a;let c=n-i.dashGap,p=i.dashLength+i.dashGap,m=Math.floor(c/p),g=c-p*m;m>=1&&g<i.dashLength&&(g+=p,m--);let E=s.normalize(g/2),vt=s.normalize(i.dashGap);if(a.push({from:l,to:l.add(E)}),l=l.add(E),m>0){let ne=s.normalize(i.dashLength);helpersLib.ArrayHelper.createEmptyArray(m).forEach(()=>{l=l.add(vt),a.push({from:l,to:l.add(ne)}),l=l.add(ne);});}return l=l.add(vt),a.push({from:l,to:l.add(E)}),a}};var T=class o extends u{static{h(this,"Graphics");}static{this.ƀcq=new Map;}static createArrow(t,e){let i=new V__namespace.Graphics,r=[[{x:0,y:-t/2},{x:t*3/8,y:-t/8},{x:t/4,y:0},{x:0,y:-t/4},{x:-t/4,y:0},{x:-t*3/8,y:-t/8}],[{x:0,y:-t/4},{x:t/8-t/30,y:-t/8-t/30},{x:t/8-t/30,y:t*7/16},{x:-t/8+t/30,y:t*7/16},{x:-t/8+t/30,y:-t/8-t/30}]];return i.beginFill(e),r.forEach(s=>{i.drawPolygon(s.map(n=>new V__namespace.Point(n.x,n.y)));}),i.endFill(),new o(i,JSON.stringify({type:"arrow",size:t,color:e}))}static createDashedLine(t,e,i){let r={width:2,dashLength:10,dashGap:4,lineStartGap:0,lineEndGap:0,color:helpersLib.ColorHelper.white,...i},s=new V__namespace.Graphics;return s.lineStyle(r.width,r.color),Ee.getLines(t,e,r).forEach(a=>{s.moveTo(a.from.x,a.from.y).lineTo(a.to.x,a.to.y);}),new o(s,JSON.stringify({type:"dashedLine",from:t,to:e,options:r}))}static createVector(t,e,i){let r=new V__namespace.Graphics;return r.lineStyle(2,i),r.moveTo(t.x,t.y),r.lineTo(e.x,e.y),r.lineStyle(1,i),r.beginFill(helpersLib.ColorHelper.white),r.drawCircle(t.x,t.y,3),r.endFill(),new o(r,JSON.stringify({type:"line",start:t,end:e,color:i}))}static createRectangleBorders(t,e,i){let r=new V__namespace.Graphics;return r.beginFill(i),r.drawRect(0,0,t.x,e),r.drawRect(0,e,e,t.y-e*2),r.drawRect(t.x-e,e,e,t.y-e*2),r.drawRect(0,t.y-e,t.x,e),r.endFill(),new o(r,JSON.stringify({type:"rectangle-borders",size:t,borderSize:e,color:i}))}static createRectangle(t,e=helpersLib.ColorHelper.white){let i=new V__namespace.Graphics;return i.beginFill(e),i.drawRect(0,0,t.x,t.y),i.endFill(),new o(i,JSON.stringify({type:"rectangle",size:t,color:e}))}static createCircle(t,e){let i=new V__namespace.Graphics;return i.beginFill(e),i.drawCircle(0,0,t),i.endFill(),new o(i,JSON.stringify({type:"circle",radius:t,color:e}))}static createElipse(t,e){let i=new V__namespace.Graphics;return i.beginFill(e),i.drawEllipse(0,0,t.x,t.y),i.endFill(),new o(i,JSON.stringify({type:"elipse",size:t,color:e}))}static createPolygon(t,e){let i=new V__namespace.Graphics,r=JSON.stringify({type:"polygon",polygon:t,color:e});return i.beginFill(e),t.forEach(s=>{i.drawPolygon(s.map(n=>new V__namespace.Point(n.x,n.y)));}),i.endFill(),new o(i,r)}static createRegularPolygon(t,e,i){let r=new V__namespace.Graphics,s=new helpersLib.Radian(helpersLib.PI_360/t);r.beginFill(i),r.moveTo(e,0);for(let n=1;n<=t;n++){let l=s.multiply(n).vector.normalize(e),c=e+l.x,p=e+l.y;r.lineTo(c,p);}return r.endFill(),new o(r,JSON.stringify({type:"regular-polygon",sides:t,radius:e,color:i}))}constructor(t,e){super(),this.pixiContainer.addChild(t),this.pixiGraphics=t,this.ƀal=e;}destroy(){this.destroyed||(super.destroy(),!this.pixiGraphics.destroyed&&this.pixiGraphics.destroy());}toSprite(t){let e={cacheName:this.ƀal,cache:false,...t},i=this.ƀed(e.cacheName,e.cache),r={id:i.assetID,scale:1,size:i.bounds,anchor:{x:0,y:0},boundingShapes:void 0,destroyAssetOnDestroy:!e.cache},s=new X(r,{texturePosition:i.bounds,ignoreAnchor:true});return this.attachToRoot(),this.destroy(),s}ƀed(t,e){if(e){let i=o.ƀcq.get(t);return i||(i=this.ƀce(),o.ƀcq.set(t,i)),i}else return this.ƀce()}ƀce(){let t=w.instance.renderer.generateTexture(this.pixiGraphics);t.id=M.insertAsset(t);let e=this.pixiGraphics.getBounds();return {assetID:t.id,bounds:new helpersLib.Vector(e.x,e.y)}}};var ai=class extends u{static{h(this,"Placeholder");}constructor(t){super(),this.ƀhq=new V__namespace.Graphics,this.ƀhq.beginFill(0,1e-9),this.ƀhq.drawRect(0,0,t.x,t.y),this.ƀhq.endFill(),this.pixiContainer.addChild(this.ƀhq);}destroy(){this.destroyed||(super.destroy(),this.ƀhq.destroy());}};var Ot=class{static{h(this,"TextStyleConverter");}static getPixiTextStyle(t){let e={color:helpersLib.ColorHelper.white,align:"center",fontFamily:"Arial",fontStyle:"normal",fontSize:18,lineHeight:void 0,wordWrapWidth:void 0,lineThrough:false,...t},i=t?.dropShadow===true?{}:t?.dropShadow,r={};if(i){let s={blur:4,angle:helpersLib.Radian.get60,distance:10,color:helpersLib.ColorHelper.black,alpha:.5,...i};r={dropShadow:true,dropShadowBlur:s.blur,dropShadowAngle:s.angle.value,dropShadowDistance:s.distance,dropShadowColor:helpersLib.ColorHelper.rgbToHex(s.color),dropShadowAlpha:s.alpha};}return {fontFamily:e.fontFamily,fill:helpersLib.ColorHelper.rgbToHex(e.color),align:e.align,fontSize:e.fontSize,fontStyle:e.fontStyle,lineHeight:e.lineHeight,wordWrapWidth:e.wordWrapWidth,wordWrap:e.wordWrapWidth!==void 0,lineThrough:e.lineThrough,...r}}};var Ie=class{static{h(this,"RichTextDataInConverter");}static process(t,e){let i=new Set(e.styles?Object.keys(e.styles):[]),r=scriptEngineLib.RichTextSeparator.process(t,i),s=this.ƀfd(r,e),n=this.ƀr(s);return this.ƀja(n)}static ƀfd(t,e){let i=new Map,r=new Map,s=h((a,l)=>{if(r.has(l))return r.get(l);let c=Ot.getPixiTextStyle(a);return r.set(l,c),c},"GetPixiStyle");return t.map(a=>{let{style:l,cacheKey:c}=this.ƀdn(a.tags,e,i),p=s(l,c),m=V__namespace.TextMetrics.measureText(" ",new V__namespace.TextStyle(p),false);return {text:a.text,cacheKey:c,style:l,pixiStyle:p,spaceWidth:m.width}})}static ƀdn(t,e,i){let r=t.join("+");if(i.has(r))return {style:i.get(r),cacheKey:r};let s=this.ƀba(t,e);return i.set(r,s),{style:s,cacheKey:r}}static ƀba(t,e){let i={...e.default};for(let l of t)e.styles&&e.styles[l]&&(i={...i,...e.styles[l]});let{wordWrapWidth:r,align:s,dropShadow:n,...a}=i;return a}static ƀr(t){let e=[],i=[];return t.forEach((r,s)=>{r.text.split(/\r?\n/).forEach((a,l)=>{l>0&&(e.push(i),i=[]),i.push({text:a,cacheKey:r.cacheKey,style:r.style,pixiStyle:r.pixiStyle,spaceWidth:r.spaceWidth});});}),e.push(i),e}static ƀja(t){let e=[];return t.forEach(i=>{if(i.length===0)throw new Error("Internal Error: Line is unexpectedly empty");let r=i.flatMap(s=>this.ƀjb(s.text).map(a=>{let l=new V__namespace.TextStyle(s.pixiStyle),c=V__namespace.TextMetrics.measureText(a,l,false);return {text:a,whitespace:a.trim()==="",style:{cacheKey:s.cacheKey,style:s.style,pixiStyle:l,height:c.height,ascent:c.fontProperties.ascent,descent:c.fontProperties.descent,width:c.width,spaceWidth:s.spaceWidth}}}));e.push(r);}),e}static ƀjb(t){if(t==="")return [""];let e=[],i="",r=t[0]===" ";for(let s=0;s<t.length;s++){let n=t[s],a=n===" ";a===r?i+=n:(e.push(i),i=n,r=a);}return i&&e.push(i),e}};var Ae=class{static{h(this,"ConsistentSpaceTextWrapper");}static wrapText(t,e){return t.forEach(i=>{i.forEach((r,s)=>{if(e.isSpaceAvailable(new helpersLib.Vector(r.style.width,r.style.height)))if(r.whitespace&&s===i.length-2){let n=i[i.length-1];e.isSpaceAvailable(new helpersLib.Vector(n.style.width+r.style.width,n.style.height))?e.insertWord(r):this.ƀkq(r,e);}else e.insertWord(r);else e.lineIsEmpty?e.insertWord(r):r.whitespace?this.ƀkq(r,e):(e.newLine(),e.insertWord(r));}),e.newLine();}),e.print()}static ƀkq(t,e){let i=Math.max(0,Math.floor(e.remainingWidth/t.style.spaceWidth)),r=Math.max(0,Math.min(i,t.text.length-1));if(r>0){let n={text:" ".repeat(r),whitespace:true,style:{...t.style,width:r*t.style.spaceWidth}};e.insertWord(n);}e.newLine();let s=t.text.length-r-1;if(s>0){let n={text:" ".repeat(s),whitespace:true,style:{...t.style,width:s*t.style.spaceWidth}};e.insertWord(n);}}};var Oe=class{static{h(this,"RichTextTypewriter");}get lineIsEmpty(){return this.ƀch.length===0}get remainingWidth(){return this.ƀkp-this.ƀcj}constructor(t,e){if(this.ƀkp=t,this.ƀft=[],this.ƀch=[],this.ƀcj=0,this.ƀfs=new helpersLib.Vector(0,0),this.ƀci=0,this.ƀev=e?.horizontalAlignment??"left",this.ƀkh=e?.verticalAlignment??"bottom",e?.rectangleCutOption){if(e.rectangleCutOption.position.x<0||e.rectangleCutOption.position.x>=this.ƀkp||e.rectangleCutOption.position.y<0)throw new Error("Rectangle cut position is out of bounds");this.ƀck={direction:e.rectangleCutOption.direction,rectangle:this.ƀbo(e.rectangleCutOption)};}}isSpaceAvailable(t){let e=Math.max(this.ƀci,t.y),i=this.ƀdv(this.ƀfs.y,this.ƀfs.y+e);return this.ƀcj+t.x<=i}insertWord(t){let e=Math.max(this.ƀci,t.style.height);if(this.ƀch.length===0){let i=this.ƀdw(this.ƀfs.y,this.ƀfs.y+e);this.ƀfs=new helpersLib.Vector(i,this.ƀfs.y),this.ƀcj=this.ƀfs.x;}this.ƀch.push({chunk:t,position:new helpersLib.Vector(this.ƀcj,this.ƀfs.y)}),this.ƀci=e,this.ƀcj+=t.style.width;}newLine(){let t=this.ƀfs.y+this.ƀci,e=this.ƀdw(t,t);this.ƀdc(),this.ƀfs=new helpersLib.Vector(e,t),this.ƀcj=this.ƀfs.x,this.ƀci=0;}print(){return this.ƀdc(),this.ƀft}ƀdc(){this.ƀch.length>0&&(this.ƀft.push(this.ƀg(this.ƀch)),this.ƀch=[]);}ƀg(t){return t=this.ƀkj(t),t=this.ƀex(t),t}ƀex(t){if(this.ƀev==="left")return t;let e=this.ƀfs.y+this.ƀci,i=this.ƀdw(this.ƀfs.y,e),s=this.ƀdv(this.ƀfs.y,e)-i,n=Math.min(s,t.reduce((l,c)=>l+c.chunk.style.width,0)),a;return this.ƀev==="center"?a=(s-n)/2:a=s-n,t.map(l=>(l={chunk:l.chunk,position:new helpersLib.Vector(l.position.x+a,l.position.y)},l))}ƀkj(t){let e=Math.max(...t.map(r=>r.chunk.style.ascent)),i=Math.max(...t.map(r=>r.chunk.style.descent));return t.map(r=>{let s;switch(this.ƀkh){case "top":s=i-r.chunk.style.descent;break;case "center":s=(i-r.chunk.style.descent+e-r.chunk.style.ascent)*.5;break;case "bottom":s=e-r.chunk.style.ascent;break;default:{this.ƀkh;throw new Error(`Unexpected case! "${this.ƀkh}"`)}}return r={chunk:r.chunk,position:new helpersLib.Vector(r.position.x,r.position.y+s)},r})}ƀdw(t,e){return this.ƀck&&(this.ƀck.direction==="topLeft"||this.ƀck.direction==="bottomLeft")&&(this.ƀck.rectangle.isPointInside(new helpersLib.Vector(0,t),{includeEdges:false})||this.ƀck.rectangle.isPointInside(new helpersLib.Vector(0,e),{includeEdges:false}))?this.ƀck.rectangle.bottomRight.x:0}ƀdv(t,e){return this.ƀck&&(this.ƀck.direction==="topRight"||this.ƀck.direction==="bottomRight")&&(this.ƀck.rectangle.isPointInside(new helpersLib.Vector(this.ƀkp,t),{includeEdges:false})||this.ƀck.rectangle.isPointInside(new helpersLib.Vector(this.ƀkp,e),{includeEdges:false}))?this.ƀck.rectangle.topLeft.x:this.ƀkp}ƀbo(t){let e,i;switch(t.direction){case "topRight":e=new helpersLib.Vector(t.position.x,-1/0),i=new helpersLib.Vector(1/0,t.position.y);break;case "topLeft":e=new helpersLib.Vector(-1/0,-1/0),i=t.position;break;case "bottomRight":e=t.position,i=new helpersLib.Vector(1/0,1/0);break;case "bottomLeft":e=new helpersLib.Vector(-1/0,t.position.y),i=new helpersLib.Vector(t.position.x,1/0);break;default:{t.direction;throw new Error(`Unexpected case! "${t.direction}"`)}}return new helpersLib.Rectangle(e,i)}};var Me=class{static{h(this,"RichTextDataOutConverter");}static process(t){return t=this.ƀgf(t),t=this.ƀjz(t),this.ƀau(t)}static ƀgf(t){return t.map(e=>{let i=[],r,s=true;return e.forEach(n=>{if(!r||r.chunk.style.cacheKey!==n.chunk.style.cacheKey)r&&i.push(r),r=n,s=n.chunk.whitespace;else {let a=r.chunk.text+n.chunk.text;s=n.chunk.whitespace&&s,r={chunk:{text:a,whitespace:s,style:{...r.chunk.style,width:r.chunk.style.width+n.chunk.style.width}},position:r.position};}}),r&&i.push(r),i})}static ƀjz(t){return t.map(e=>{if(e.length===0)return [];let i=e.pop();if(!i.chunk.whitespace||i.chunk.text===""){let r=i.chunk.text.length,s=i.chunk.text.trimEnd();r!==s.length?e.push({chunk:{text:s,whitespace:false,style:{...i.chunk.style,width:i.chunk.style.width-(r-s.length)*i.chunk.style.spaceWidth}},position:i.position}):e.push(i);}return e})}static ƀau(t){return t.flatMap(e=>e.map(i=>({text:i.chunk.text,style:i.chunk.style.style,position:i.position}))).filter(e=>e.text.trim()!=="")}};var qt=class{static{h(this,"RichTextToPlaneText");}static process(t,e){if(e.default.wordWrapWidth===void 0){if(e.default.align==="right"||e.default.align==="center")throw new Error("wordWrapWidth is required for right or center alignment");if(e.rectangleCut&&(e.rectangleCut.direction==="topRight"||e.rectangleCut.direction==="bottomRight"))throw new Error("wordWrapWidth is required for topRight or bottomRight rectangle cut")}let i=Ie.process(t,e),r=new Oe(e.default.wordWrapWidth??1/0,{rectangleCutOption:e.rectangleCut,verticalAlignment:e.verticalAlignment,horizontalAlignment:e.default.align}),s=Ae.wrapText(i,r);return Me.process(s)}};var Cs=1,$i=1/Cs,te=class extends u{static{h(this,"Text");}get ƀjr(){if(!this.ƀjs){let t=new V__namespace.TextStyle(this.ƀhs);this.ƀjs=V__namespace.TextMetrics.measureText(this.ƀjq,t);}return this.ƀjs}get ascent(){return this.ƀjr.fontProperties.ascent}constructor(t,e){super(),this.ƀhs=Ot.getPixiTextStyle(e),this.setText(t);}destroy(){this.destroyed||(super.destroy(),!this.ƀhr.destroyed&&this.ƀhr.destroy());}setAnchor(t){return this.anchor=t,this}get anchor(){return new helpersLib.Vector(this.ƀhr.anchor.x,this.ƀhr.anchor.y)}set anchor(t){this.ƀhr.anchor.set(t.x,t.y);}setPosition(t,e){if(e?.holdFrom){let i=this.ƀhs.dropShadowDistance??0,r=new helpersLib.Vector(e.holdFrom.x*i,e.holdFrom.y*i);t=t.add(r);}return super.setPosition(t,e),this}setText(t){return this.ƀjq!==t&&(this.ƀjq=t,this.ƀhz()),this}setColor(t){let e=helpersLib.ColorHelper.rgbToHex(t);return this.ƀhs.fill!==e&&(this.ƀhs.fill=e,this.ƀhz()),this}ƀhz(){this.ƀhr?.destroy(),this.ƀjl?.destroy(),this.ƀjl=void 0,this.ƀjs=void 0;let t=new V__namespace.TextStyle(this.ƀhs);this.ƀhr=new V__namespace.Text(this.ƀjq,t),this.ƀhr.scale.set($i,$i),this.pixiContainer.addChild(this.ƀhr),this.ƀhs.lineThrough&&(this.ƀjl=this.ƀe(this.ƀhr,this.ƀhs.fill),this.pixiContainer.addChild(this.ƀjl));}ƀe(t,e){let i=V__namespace.TextMetrics.measureText(t.text,t.style),r=Math.max(1,Math.round(i.lineHeight*.07)),s=r%2*.5,n=new V__namespace.Graphics;n.lineStyle(r,e);let a=0;return i.lines.forEach((l,c)=>{let p=V__namespace.TextMetrics.measureText(l,t.style),m=Math.round(a+(p.fontProperties.ascent-p.fontProperties.descent)*.6+p.fontProperties.descent)+s,g=0;t.style.align==="center"?g=0+(t.width-p.width)*.5:t.style.align==="right"&&(g=0+t.width-p.width),g=Math.floor(g),n.moveTo(Math.floor(g),m),n.lineTo(Math.floor(g+p.width),m),a+=p.lineHeight;}),n.endFill(),n}};var hi=class extends u{static{h(this,"RichText");}constructor(t,e){super(),qt.process(t,e).forEach(r=>new te(r.text,r.style).setPosition(r.position).displayParent(this).attach(this));}};var li=class extends u{static{h(this,"UpdatableContainer");}},ci=class extends u{static{h(this,"DisplayObjectArray");}constructor(t,e){super(),this.ƀbu=t,this.ƀcn=new Map,this.ƀgz={trackBy:h((i,r)=>r,"trackBy"),positioning:{direction:"vertical",spacing:0},...e};}set(t){let e=new Set(this.ƀcn.values()),i=0;t.forEach((r,s)=>{let n=this.ƀgz.trackBy(r,s),a;this.ƀcn.has(n)?(a=this.ƀcn.get(n),e.delete(a),a.update(r)):(a=this.ƀbu(r).displayParent(this).attach(this),this.ƀcn.set(n,a)),this.ƀgz.positioning.direction==="horizontal"?(a.x=i,i+=a.size.x+this.ƀgz.positioning.spacing):(a.y=i,i+=a.size.y+this.ƀgz.positioning.spacing);}),e.forEach(r=>{r.destroy();});}};var Dt=class o extends u{static{h(this,"Menu");}static{this.ƀjx=false;}static closeAll(){return o.ƀgy?o.ƀgy.close():actionsLib.SingleEvent.instant()}constructor(t,e){super(),this.ƀgr=new actionsLib.SingleAction,this.onOpen=this.ƀgr.notifier,this.ƀgm=new actionsLib.SingleAction,this.onClose=this.ƀgm.notifier;let i={closeOnBackgroundClick:true,appearAnimationDuration:150,darkeningAlpha:.3,...e};this.setZIndex(100).setAlpha(0),this.ƀn=new A(this,"alpha",{animation:S.easeInOutCubic,duration:i.appearAnimationDuration,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀz=T.createRectangle(new helpersLib.Vector(1,1),helpersLib.ColorHelper.black).toSprite({cache:true}).setAlpha(i.darkeningAlpha).setInteractive(true).displayParent(this).attach(this),this.ƀge=X.createByName(t).setPosition(new helpersLib.Vector(0,0)).setInteractive(true).displayParent(this).attach(this),w.instance.screenSize.subscribe(r=>{this.ƀz.aspectRatio=r.x/r.y,this.ƀz.scale=Math.max(r.x,r.y),this.ƀz.setPosition(helpersLib.Vector.zero,{holdFrom:helpersLib.Vector.half}),this.setPosition(r.multiplyNumber(.5));}).attach(this),o.ƀgy=this,this.onDestroy().tap(()=>{o.ƀgy=void 0;}).attachToRoot(),i.closeOnBackgroundClick&&this.ƀz.on(exports.ContainerEventType.Click,()=>{o.ƀjx||this.ƀp(false);}).attach(this),this.ƀp(true);}getBoundingMask(){return this.ƀge.getBoundingMask()}close(){return this.ƀp(false)}ƀp(t){if(o.ƀjx)throw new Error("WindowUI: cannot iterate while in transition");return o.ƀjx=true,this.ƀn.animate({alpha:t?1:0}).chain(this).tap(()=>{o.ƀjx=false,t?this.ƀgr.resolve():(this.ƀgm.resolve(),this.destroy());}).chainToRoot()}};var di=class extends ut{static{h(this,"MenuEntity");}constructor(t,e){super(),this.ƀgp=new actionsLib.SingleAction,this.onCreate=this.ƀgp.notifier,this.ƀgr=new actionsLib.SingleAction,this.onOpen=this.ƀgr.notifier,this.ƀgm=new actionsLib.SingleAction,this.onClose=this.ƀgm.notifier,Dt.closeAll().tap(()=>{if(!Pt.getActiveScene())throw new Error("WindowEntity: constructor is called when there is no active scene!");w.pause.effect(true).attach(this),this.ƀge=new Dt(t,e).displayParent(w.camera.layers.foregroundScreen).attach(this),this.ƀgp.resolve(this.ƀge),this.ƀge.onOpen.subscribe(()=>this.ƀgr.resolve()).attach(this),this.ƀge.onClose.subscribe(()=>{this.destroy(),this.ƀgm.resolve();}).attach(this);}).attach(this);}getMenuEvents(){return {onOpen:this.onOpen.toSingleEvent().destroyIfNotAttached(),onClose:this.onClose.toSingleEvent().destroyIfNotAttached()}}close(){if(this.ƀge){let t=this.onClose.toSingleEvent().destroyIfNotAttached();return this.ƀge.close(),t}else return this.onCreate.asyncMapQueue(()=>this.close()).singleChain(this)}};var Rs=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Is=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)};exports.MouseService=class mt{static{h(this,"MouseService");}get initialMouseMoveHappened(){return this.ƀff.value}getStagePosition(){return this.ƀjd.value}getScreenPosition(){return this.ƀij.value}getMainButtonState(){return this.ƀfy.value}getSecondaryButtonState(){return this.ƀip.value}constructor(){this.ƀff=new actionsLib.Variable(false),this.onInitialMouseMove=this.ƀff.notifier,this.ƀjd=new actionsLib.Variable(helpersLib.Vector.zero,{notifyOnChange:true}),this.stagePosition=this.ƀjd.notifier,this.ƀij=new actionsLib.Variable(helpersLib.Vector.zero,{notifyOnChange:true}),this.screenPosition=this.ƀij.notifier,this.ƀfy=new actionsLib.Variable(false),this.mainButtonState=this.ƀfy.notifier,this.ƀip=new actionsLib.Variable(false),this.secondaryButtonState=this.ƀip.notifier,this.ƀje(),window.addEventListener("mousedown",t=>{t.button===0?this.ƀfy.value=true:t.button===2&&(this.ƀip.value=true);}),window.addEventListener("mouseup",t=>{t.button===0?this.ƀfy.value=false:t.button===2&&(this.ƀip.value=false);}),window.addEventListener("blur",()=>{this.ƀfy.value=false,this.ƀip.value=false;});}ƀje(){let t=helpersLib.Vector.zero;window.addEventListener("mousemove",e=>{t=new helpersLib.Vector(e.clientX,e.clientY),this.ƀff.value=true;}),y.beforeSceneUpdateAction.subscribe(()=>{this.ƀij.value=t;}).attachToRoot(),y.afterSceneUpdateAction.subscribe(()=>{let e=w.instance.screenPositonToStagePosition(this.ƀij.value);e.isEqual(this.ƀjd.value)?w.instance.renderer.events.onPointerMove(new PointerEvent("pointermove",{clientX:this.ƀij.value.x,clientY:this.ƀij.value.y,pointerType:"mouse"})):this.ƀjd.value=e;}).attachToRoot();}};exports.MouseService=Rs([d(),Is("design:paramtypes",[])],exports.MouseService);var ie=class extends u{static{h(this,"MouseWheelListenerUI");}constructor(t){super(),this.ƀgv=new actionsLib.Action,this.onWheel=this.ƀgv.notifier,this.ƀeq=(e=>{let i=P.get(exports.MouseService).getScreenPosition(),r=this.ƀko.getBounds();i.x>=r.x&&i.x<=r.x+r.width&&i.y>=r.y&&i.y<=r.y+r.height&&this.ƀgv.trigger(e.deltaY);}).bind(this),this.ƀko=new V__namespace.Graphics,this.ƀko.beginFill(0,1e-9),this.ƀko.drawRect(0,0,t.x,t.y),this.ƀko.endFill(),this.pixiContainer.addChild(this.ƀko),window.addEventListener("wheel",this.ƀeq);}destroy(){this.destroyed||(super.destroy(),this.ƀko.destroy(),window.removeEventListener("wheel",this.ƀeq));}};var Ms=.65,Ds=.01,Ge=class{static{h(this,"SmoothScroller");}get scrollHeight(){return this.ƀin}get contentSize(){return this.ƀbh.size.ceil()}constructor(t,e,i,r){this.ƀbh=t,this.ƀu=e,this.ƀhb=i,this.ƀiz=r,this.ƀfg=false,this.ƀin=e-i*2,this.ƀbh.y=i,this.ƀjm=i;}onWheel(t){this.setTarget(this.ƀjm-t*Ms);}scrollToTop(){this.setTarget(1/0);}scrollToBottom(){this.setTarget(-1/0);}setTarget(t){this.ƀjm=helpersLib.NumberHelper.clamp(t,this.ƀu-this.ƀhb-this.contentSize.y,this.ƀhb);}jumpToTarget(){this.ƀbh.y=this.ƀjm;}update(t){let e=this.contentSize;if(e.y<=this.ƀin){switch(this.ƀiz){case "start":this.ƀjm=this.ƀhb;break;case "center":this.ƀjm=(this.ƀu-e.y)*.5;break;case "end":this.ƀjm=this.ƀu-e.y-this.ƀhb;break;default:{this.ƀiz;throw new Error(`Unexpected case! "${this.ƀiz}"`)}}this.ƀfg||(this.ƀbh.y=this.ƀjm);}this.ƀfg=true;let i=this.ƀjm-this.ƀbh.y;this.ƀbh.y=this.ƀbh.y+i*Ds*t;}};var fi=class{static{h(this,"AnimationEaseInOutFlatter");}start(){}multiplierFunction(t){return 3*(1-t)*Math.pow(t,2)+Math.pow(t,3)}},gt=class o extends u{static{h(this,"ScrollMaskUI");}static{this.ƀcq=new Map;}constructor(t,e,i,r=exports.ScrollDirection.Vertical){if(super(),i<0)throw new Error("The padding of the scroll mask cannot be lower than '0'");if(e.y<i*2)throw new Error(`The height of the scroll mask cannot be lower than '${i*2}'`);let s=new u;r===exports.ScrollDirection.Horizontal?this.ƀby(e,i,s):this.ƀcf(e,i,s),this.ƀgb=X.createSnapshotSprite(s).attach(this),s.destroy(),t.setMask(this.ƀgb);}ƀcf(t,e,i){e>0&&this.ƀbv(new helpersLib.Vector(t.x,e)).displayParent(i).attach(i),T.createRectangle(new helpersLib.Vector(t.x,t.y-e*2),helpersLib.ColorHelper.white).toSprite().setPosition(new helpersLib.Vector(0,e),{round:false}).displayParent(i).attach(i),e>0&&this.ƀbv(new helpersLib.Vector(t.x,e)).setPosition(new helpersLib.Vector(t.x,t.y),{round:false}).setRotation(helpersLib.Radian.get180).displayParent(i).attach(i);}ƀby(t,e,i){e>0&&this.ƀbv(new helpersLib.Vector(t.y,e)).setPosition(new helpersLib.Vector(0,t.y),{round:false}).setRotation(helpersLib.Radian.get270).displayParent(i).attach(i),T.createRectangle(new helpersLib.Vector(t.x-e*2,t.y),helpersLib.ColorHelper.white).toSprite().setPosition(new helpersLib.Vector(e,0),{round:false}).displayParent(i).attach(i),e>0&&this.ƀbv(new helpersLib.Vector(t.y,e)).setPosition(new helpersLib.Vector(t.x,0),{round:false}).setRotation(helpersLib.Radian.get90).displayParent(i).attach(i);}ƀbv(t){let i={id:this.ƀbw(t.y),scale:1,size:t,anchor:{x:0,y:0},boundingShapes:void 0};return new X(i,{textureSize:t,ignoreAnchor:true})}ƀbw(t){let e=JSON.stringify({type:"gradient",length:t}),i=o.ƀcq.get(e);if(!i){let r=document.createElement("canvas");r.width=1,r.height=t;let s=r.getContext("2d");if(s){let n=new fi;helpersLib.ArrayHelper.createIntegerArray(t).forEach(l=>{let c=`rgba(255, 255, 255, ${n.multiplierFunction(l/t)})`;s.fillStyle=c,s.fillRect(0,l,1,1);});let a=V__namespace.Texture.from(r);i=M.insertAsset(a),o.ƀcq.set(e,i);}else throw new Error("Canvas context is null")}return i}};var _s=15,mi=class extends u{static{h(this,"ScrollAreaUI");}get contentAreaSize(){return this.ƀbi}get contentSize(){return this.ƀio.contentSize}constructor(t,e={}){super();let i={padding:_s,smallContentAlign:"start",...e};if(i.padding<0)throw new Error("The padding of the scroll mask cannot be lower than '0'");if(i.padding>t.y*.5)throw new Error("The padding of the scroll mask cannot be higher than half of the size of the area");let r=new u().displayParent(this).attach(this);new gt(r,t,i.padding).attach(this);let s=new u().displayParent(r).attach(this);this.ƀio=new Ge(s,t.y,i.padding,i.smallContentAlign),this.ƀbi=new helpersLib.Vector(t.x,this.ƀio.scrollHeight),new ie(t).displayParent(r).attach(this).onWheel.subscribe(a=>this.ƀio.onWheel(a)).attach(this),y.afterSceneUpdateAction.subscribe(a=>this.ƀio.update(a.delta)).attach(this),this.addChildTo=s;}scrollToTop(t){this.ƀio.scrollToTop(),t?.instant&&this.ƀio.jumpToTarget();}scrollToBottom(t){this.ƀio.scrollToBottom(),t?.instant&&this.ƀio.jumpToTarget();}};var Fs=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Ls=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)};exports.KeyboardService=class gi{static{h(this,"KeyboardService");}constructor(){this.ƀfo=new actionsLib.Action,this.keyPressed=this.ƀfo.notifier,this.ƀfp=new actionsLib.Action,this.keyReleased=this.ƀfp.notifier,this.ƀfv=new Set,this.ƀfu=new Set,window.addEventListener("keydown",t=>{this.ƀfv.add(t.key),this.ƀfu.add(t.key),!t.repeat&&this.ƀfo.trigger(t.key);}),window.addEventListener("keyup",t=>{this.ƀfv.delete(t.key),this.ƀfp.trigger(t.key);}),window.addEventListener("blur",()=>{this.ƀfv.clear();}),y.afterSceneUpdateAction.subscribe(()=>{this.ƀfu.clear();}).attachToRoot();}isKeyDown(t){return this.ƀfv.has(t)}isKeyJustPressed(t){return this.ƀfu.has(t)}};exports.KeyboardService=Fs([d(),Ls("design:paramtypes",[])],exports.KeyboardService);var Vs=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Ns=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)};exports.MouseTargetFocusService=class yi{static{h(this,"MouseTargetFocusService");}get focusedInLastFrame(){return this.ƀdd}get lastFocusedPosition(){return this.ƀfr}constructor(t){this.ƀgh=t,this.ƀgt=new actionsLib.Action,this.onTargetFocus=this.ƀgt.notifier,this.ƀjw=0,this.ƀjy=false,this.ƀdd=false,this.ƀfr=void 0,y.beforeSceneUpdateAction.subscribe(e=>this.ƀka(e.delta)).attachToRoot();}ƀka(t){if(this.ƀgi){let e=this.ƀec(this.ƀgh.getStagePosition(),this.ƀgi);this.ƀhd===void 0?this.ƀhd=e:this.ƀat(e,t);}this.ƀgi=this.ƀgh.getStagePosition();}ƀat(t,e){this.ƀhd-t>10?(this.ƀjw=Math.max(250,this.ƀjw),this.ƀjy=true):this.ƀjw>1e3&&(this.ƀjy=true);let i=this.ƀjw>=300&&this.ƀjy;this.ƀfm(i,t,e);}ƀfm(t,e,i){(t||e>this.ƀhd)&&(this.ƀhd=e),t?(this.ƀjy=false,this.ƀjw=0,this.ƀdd=true,this.ƀfr=this.ƀgh.getStagePosition(),this.ƀgt.trigger(this.ƀfr)):(this.ƀjw+=i,this.ƀdd=false);}ƀec(t,e){let i=helpersLib.Vector.fromTo(t,e);return Math.abs(i.x)+Math.abs(i.y)}};exports.MouseTargetFocusService=Vs([d(),Ns("design:paramtypes",[exports.MouseService])],exports.MouseTargetFocusService);var x;(function(o){o[o.Hidden=1]="Hidden",o[o.Visible=2]="Visible",o[o.Appearing=3]="Appearing",o[o.Disappearing=4]="Disappearing",o[o.DisappearToChange=5]="DisappearToChange";})(x||(x={}));var _e=class extends actionsLib.Attachable{static{h(this,"FadeInStateAnimation");}get currentState(){return {value:this.ƀi.value,state:this.ƀjh,queuedState:this.ƀhu,animationState:this.ƀm}}constructor(t){super(),this.ƀi={value:0},this.ƀm=x.Hidden,this.ƀgs=new actionsLib.Action,this.ƀgu=new actionsLib.Action,this.ƀgz={duration:500,animation:S.lineer,...t},this.ƀi.value=0,this.ƀn=new A(this.ƀi,"value",{duration:this.ƀgz.duration,animation:this.ƀgz.animation,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀn.value.subscribe(()=>{this.ƀi.value!==1&&this.ƀi.value!==0&&this.ƀgu.trigger(this.ƀi.value);}).attach(this);}setState(t,e){if(e?.instant){this.ƀn.completeAnimation(),this.ƀm=t!==void 0?x.Visible:x.Hidden,this.ƀhu=void 0;let i=t!==void 0?1:0,r=this.ƀjh!==t;r&&(this.ƀjh=t,this.ƀgs.trigger(this.ƀjh)),(r||this.ƀi.value!==i)&&(this.ƀi.value=i,this.ƀgu.trigger(this.ƀi.value));}else switch(this.ƀm){case x.Hidden:t!==void 0&&(this.ƀm=x.Appearing,this.ƀhu=void 0,this.ƀjh=t,this.ƀgs.trigger(this.ƀjh),this.ƀn.animate({value:1}).tap(()=>this.ƀgo()).attach(this));break;case x.Visible:t===void 0?(this.ƀm=x.Disappearing,this.ƀhu=void 0,this.ƀn.animate({value:0}).tap(()=>this.ƀgo()).attach(this)):t!==this.ƀjh&&(this.ƀm=x.DisappearToChange,this.ƀhu=t,this.ƀn.animate({value:0}).tap(()=>this.ƀgo()).attach(this));break;case x.Appearing:t===void 0?(this.ƀm=x.Disappearing,this.ƀhu=void 0,this.ƀn.animate({value:0},{duration:this.ƀi.value*this.ƀgz.duration}).tap(()=>this.ƀgo()).attach(this)):t!==this.ƀjh&&(this.ƀi.value>0?(this.ƀm=x.DisappearToChange,this.ƀhu=t,this.ƀn.animate({value:0},{duration:this.ƀi.value*this.ƀgz.duration}).tap(()=>this.ƀgo()).attach(this)):(this.ƀhu=void 0,this.ƀjh=t,this.ƀgs.trigger(this.ƀjh)));break;case x.Disappearing:t===this.ƀjh?(this.ƀm=x.Appearing,this.ƀn.animate({value:1},{duration:(1-this.ƀi.value)*this.ƀgz.duration}).tap(()=>this.ƀgo()).attach(this)):t!==void 0&&(this.ƀm=x.DisappearToChange,this.ƀhu=t);break;case x.DisappearToChange:t===void 0?(this.ƀm=x.Disappearing,this.ƀhu=void 0):t===this.ƀjh?(this.ƀm=x.Appearing,this.ƀhu=void 0,this.ƀn.animate({value:1},{duration:(1-this.ƀi.value)*this.ƀgz.duration}).tap(()=>this.ƀgo()).attach(this)):t!==this.ƀhu&&(this.ƀhu=t);break;default:{this.ƀm;throw new Error(`Unexpected case! "${this.ƀm}"`)}}}ƀgo(){switch(this.ƀm){case x.Appearing:this.ƀi.value===1&&(this.ƀm=x.Visible,this.ƀgu.trigger(this.ƀi.value));break;case x.Disappearing:if(this.ƀhu!==void 0)throw new Error("FadeInStateAnimation: Unexpected state, disappearing should not have a queued value");this.ƀi.value===0&&(this.ƀm=x.Hidden,this.ƀjh=void 0,this.ƀgs.trigger(this.ƀjh),this.ƀgu.trigger(this.ƀi.value));break;case x.DisappearToChange:if(this.ƀhu===void 0)throw new Error("FadeInStateAnimation: Unexpected state, disappearToChange should always have a queued value");this.ƀi.value===0&&(this.ƀm=x.Appearing,this.ƀjh=this.ƀhu,this.ƀhu=void 0,this.ƀgs.trigger(this.ƀjh),this.ƀgu.trigger(this.ƀi.value),this.ƀn.animate({value:1}).tap(()=>this.ƀgo()).attach(this));break;case x.Hidden:case x.Visible:return;default:{this.ƀm;throw new Error(`Unexpected case! "${this.ƀm}"`)}}}onStateChange(t){return this.ƀgs.subscribe(e=>t(e)).attach(this),this}onValueChange(t){return this.ƀgu.subscribe(e=>t(e)).attach(this),this}};var Ki=class extends u{static{h(this,"FadeInContent");}constructor(t,e){super(),this.ƀbu=t;let i={duration:200,animation:S.easeInOut,...e};this.alpha=0,this.ƀji=new _e(i).onStateChange(r=>{this.ƀbh?.destroy(),this.ƀbh=void 0,r!==void 0&&(this.ƀbh=new u().displayParent(this).attach(this),this.ƀbu({state:r,container:this.ƀbh}));}).onValueChange(r=>{this.alpha=r;}).attach(this);}setState(t,e){return this.ƀji.setState(t,e),this}};var I;(function(o){o[o.Idle=1]="Idle",o[o.Transitioning=2]="Transitioning",o[o.Reverting=3]="Reverting";})(I||(I={}));var Fe=class extends actionsLib.Attachable{static{h(this,"StateAnimation");}get currentState(){return {value:this.ƀi.value,state:this.ƀjh,nextState:this.ƀgk,queuedState:this.ƀhu,animationState:this.ƀm}}constructor(t){super(),this.ƀi={value:0},this.ƀm=I.Idle,this.ƀgs=new actionsLib.Action,this.ƀgu=new actionsLib.Action,this.ƀgz={duration:500,animation:S.lineer,...t},this.ƀn=new A(this.ƀi,"value",{duration:this.ƀgz.duration,animation:this.ƀgz.animation,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀn.value.subscribe(()=>{this.ƀi.value!==1&&this.ƀi.value!==0&&this.ƀgu.trigger(this.ƀi.value);}).attach(this);}setState(t,e){if(this.ƀjh===void 0)this.ƀjh=t,this.ƀgs.trigger({state:this.ƀjh,nextState:this.ƀgk}),this.ƀgu.trigger(this.ƀi.value);else if(e?.instant)this.ƀn.completeAnimation(),this.ƀm=I.Idle,this.ƀjh=t,this.ƀgk=void 0,this.ƀi.value=0,this.ƀgs.trigger({state:this.ƀjh,nextState:this.ƀgk}),this.ƀgu.trigger(this.ƀi.value);else switch(this.ƀm){case I.Idle:t!==this.ƀjh&&(this.ƀm=I.Transitioning,this.ƀgk=t,this.ƀi.value=0,this.ƀgs.trigger({state:this.ƀjh,nextState:this.ƀgk}),this.ƀgu.trigger(this.ƀi.value),this.ƀn.animate({value:1}).tap(()=>this.ƀgo()).attach(this));break;case I.Transitioning:t!==this.ƀgk&&(t===this.ƀjh?(this.ƀm=I.Reverting,this.ƀn.animate({value:0},{duration:this.ƀi.value*this.ƀgz.duration}).tap(()=>this.ƀgo()).attach(this)):this.ƀhu=t);break;case I.Reverting:t!==this.ƀjh&&(t===this.ƀgk?(this.ƀm=I.Transitioning,this.ƀn.animate({value:1},{duration:(1-this.ƀi.value)*this.ƀgz.duration}).tap(()=>this.ƀgo()).attach(this)):this.ƀhu=t);break;default:{this.ƀm;throw new Error(`Unexpected case! "${this.ƀm}"`)}}}ƀgo(){switch(this.ƀm){case I.Transitioning:this.ƀi.value===1&&(this.ƀi.value=0,this.ƀhu!==void 0?(this.ƀm=I.Transitioning,this.ƀjh=this.ƀgk,this.ƀgk=this.ƀhu,this.ƀhu=void 0,this.ƀgs.trigger({state:this.ƀjh,nextState:this.ƀgk}),this.ƀn.animate({value:1}).tap(()=>this.ƀgo()).attach(this)):(this.ƀm=I.Idle,this.ƀjh=this.ƀgk,this.ƀgk=void 0,this.ƀgs.trigger({state:this.ƀjh,nextState:this.ƀgk})),this.ƀgu.trigger(this.ƀi.value));break;case I.Reverting:if(this.ƀjh===void 0)throw new Error("StateAnimation: state must be defined when reverting!");this.ƀi.value===0&&(this.ƀhu!==void 0?(this.ƀm=I.Transitioning,this.ƀgk=this.ƀhu,this.ƀhu=void 0,this.ƀi.value=0,this.ƀgs.trigger({state:this.ƀjh,nextState:this.ƀgk}),this.ƀn.animate({value:1}).tap(()=>this.ƀgo()).attach(this)):(this.ƀm=I.Idle,this.ƀgk=void 0,this.ƀi.value=0,this.ƀgs.trigger({state:this.ƀjh,nextState:this.ƀgk})),this.ƀgu.trigger(this.ƀi.value));break;case I.Idle:break;default:{this.ƀm;throw new Error(`Unexpected case! "${this.ƀm}"`)}}}onStateChange(t){return this.ƀgs.subscribe(e=>t(e.state,e.nextState)).attach(this),this}onValueChange(t){return this.ƀgu.subscribe(e=>t(e)).attach(this),this}};exports.SlideStateAnimationState=void 0;(function(o){o[o.Appear=1]="Appear",o[o.Disappear=2]="Disappear";})(exports.SlideStateAnimationState||(exports.SlideStateAnimationState={}));var C;(function(o){o[o.Idle=1]="Idle",o[o.TransitionForward=2]="TransitionForward",o[o.TransitionBackward=3]="TransitionBackward",o[o.Reverting=4]="Reverting";})(C||(C={}));var Le=class extends actionsLib.Attachable{static{h(this,"SlideStateAnimation");}constructor(t){super(),this.ƀm=C.Idle,this.ƀgs=new actionsLib.Action,this.ƀgu=new actionsLib.Action,this.ƀgz={duration:500,animation:S.easeInOutCubic,...t},this.ƀji=new Fe({duration:this.ƀgz.duration,animation:this.ƀgz.animation}).onStateChange((e,i)=>this.ƀeo(e,i)).onValueChange(e=>this.ƀep(e)).attach(this);}setIndex(t,e){if(!helpersLib.Comparator.isInteger(t))throw new Error("SlideStateAnimation: index must be an integer!");this.ƀfe===void 0?(this.ƀfe=t,this.ƀgs.trigger({state:exports.SlideStateAnimationState.Appear,index:t}),this.ƀji.setState(t,e)):this.ƀfe!==t?this.ƀgj!==t?this.ƀm===C.Idle?(this.ƀm=t>this.ƀfe?C.TransitionForward:C.TransitionBackward,this.ƀgj=t,this.ƀgs.trigger({state:exports.SlideStateAnimationState.Appear,index:this.ƀgj}),this.ƀji.setState(t,e)):this.ƀji.setState(t,e):this.ƀm===C.Reverting&&this.ƀgj===t&&(this.ƀm=t>this.ƀfe?C.TransitionForward:C.TransitionBackward,this.ƀji.setState(t,e)):(this.ƀm===C.TransitionForward||this.ƀm===C.TransitionBackward)&&(this.ƀm=C.Reverting,this.ƀji.setState(t,e));}ƀeo(t,e){switch(this.ƀfe!==void 0&&this.ƀfe!==t&&this.ƀfe!==e&&this.ƀgs.trigger({state:exports.SlideStateAnimationState.Disappear,index:this.ƀfe}),this.ƀgj!==void 0&&this.ƀgj!==t&&this.ƀgj!==e&&this.ƀgs.trigger({state:exports.SlideStateAnimationState.Disappear,index:this.ƀgj}),e!==void 0&&e!==this.ƀfe&&e!==this.ƀgj&&this.ƀgs.trigger({state:exports.SlideStateAnimationState.Appear,index:e}),this.ƀm){case C.Idle:break;case C.TransitionForward:case C.TransitionBackward:e===void 0?(this.ƀm=C.Idle,this.ƀfe=this.ƀgj,this.ƀgj=void 0):this.ƀfe!==t&&this.ƀem(t,e);break;case C.Reverting:e===void 0?(this.ƀm=C.Idle,this.ƀgj=void 0):this.ƀfe!==e&&this.ƀem(t,e);break;default:{this.ƀm;throw new Error(`Unexpected case! "${this.ƀm}"`)}}}ƀep(t){let e=1;(this.ƀm===C.TransitionBackward||this.ƀm===C.Reverting&&this.ƀfe!==void 0&&this.ƀgj!==void 0&&this.ƀfe>this.ƀgj)&&(e=-1),(this.ƀm===C.Idle||t!==0)&&this.ƀgu.trigger({value:helpersLib.NumberHelper.ensurePositiveZero(-e*t),index:this.ƀfe}),this.ƀgj!==void 0&&this.ƀgu.trigger({value:helpersLib.NumberHelper.ensurePositiveZero(e*(1-t)),index:this.ƀgj});}ƀem(t,e){this.ƀfe=t,this.ƀgj=e,this.ƀgu.trigger({value:0,index:this.ƀfe}),this.ƀm=this.ƀfe<this.ƀgj?C.TransitionForward:C.TransitionBackward;}onStateChange(t){return this.ƀgs.subscribe(e=>t(e.state,e.index)).attach(this),this}onValueChange(t){return this.ƀgu.subscribe(e=>t(e.value,e.index)).attach(this),this}};exports.ScrollDirection=void 0;(function(o){o[o.Horizontal=1]="Horizontal",o[o.Vertical=2]="Vertical";})(exports.ScrollDirection||(exports.ScrollDirection={}));var wi=class extends u{static{h(this,"SlideInContentByIndex");}constructor(t,e){super(),this.ƀbu=t,this.ƀcl="x",this.ƀbj=new Map,this.ƀgz={duration:300,animation:S.easeInOutCubic,size:new helpersLib.Vector(500,500),margin:20,direction:exports.ScrollDirection.Horizontal,...e};let i=this.ƀgz.direction===exports.ScrollDirection.Horizontal?new helpersLib.Vector(this.ƀgz.size.x+this.ƀgz.margin*2,this.ƀgz.size.y):new helpersLib.Vector(this.ƀgz.size.x,this.ƀgz.size.y+this.ƀgz.margin*2),r=new u().setPosition(this.ƀgz.direction===exports.ScrollDirection.Horizontal?new helpersLib.Vector(-this.ƀgz.margin,0):new helpersLib.Vector(0,-this.ƀgz.margin),{round:false}).displayParent(this).attach(this);this.ƀbz(i,this.ƀgz.margin,this.ƀgz.direction,r),this.ƀcl=this.ƀgz.direction===exports.ScrollDirection.Horizontal?"x":"y",this.ƀji=new Le({duration:this.ƀgz.duration,animation:this.ƀgz.animation}).onStateChange((s,n)=>{if(s===exports.SlideStateAnimationState.Appear){let a=new u().displayParent(this).attach(this);this.ƀbj.set(n,a),this.ƀbu({index:n,container:a});}else {let a=this.ƀbj.get(n);a&&(a.destroy(),this.ƀbj.delete(n));}}).onValueChange((s,n)=>{let a=this.ƀbj.get(n);if(a){let l={x:0,y:0};l[this.ƀcl]=i[this.ƀcl]*s+this.ƀgz.margin,a.setPosition(helpersLib.Vector.fromVec2(l),{round:false});}}).attach(this),this.addChildTo=r;}setIndex(t,e){return this.ƀji.setIndex(t,e),this}ƀbz(t,e,i,r){new gt(r,new helpersLib.Vector(t.x,t.y),e,i).attach(this);}},er=class extends wi{static{h(this,"SlideInContent");}constructor(t,e,i){super(r=>{let s=this.indexToItem.get(r.index);if(s)e({index:r.index,item:s,container:r.container});else throw new Error(`SlideInContent: The item with index '${r.index}' is not part of the items list`)},i),this.itemToIndex=new Map,this.indexToItem=new Map,t.forEach((r,s)=>{this.itemToIndex.set(r,s),this.indexToItem.set(s,r);});}setItem(t,e){let i=this.itemToIndex.get(t);if(i!==void 0)this.setIndex(i,e);else throw new Error(`SlideInContent: The item '${t}' is not part of the items list`);return this}};var wt=class{static{h(this,"VectorSet");}constructor(){this.ƀkf=new Map;}add(t){let e=this.ƀkf.get(t.x);e||(e=new Set,this.ƀkf.set(t.x,e)),e.add(t.y);}has(t){let e=this.ƀkf.get(t.x);return e?e.has(t.y):false}delete(t){let e=this.ƀkf.get(t.x);return e?e.delete(t.y):false}};var xi=class{static{h(this,"DeltaTime");}static adjustMultiplier(t,e){return Math.pow(t,e)}};var B=class{static{h(this,"PositionToGridPositionConverter");}static areaToGridArea(t,e){return new helpersLib.Rectangle(this.positionToGridPosition(t.topLeft,e),this.positionToGridPosition(t.bottomRight,e))}static positionToGridPosition(t,e){return t.divideNumber(e).floor()}static gridPositionToPosition(t,e){return t.add(new helpersLib.Vector(.5,.5)).multiplyNumber(e)}};var re=class{static{h(this,"ClosestAvailableSpaceHelper");}static findByConvertingGridSpace(t,e,i){let r=new helpersLib.Vector(Math.ceil(e.size.x/i)-1,Math.ceil(e.size.y/i)-1),s=B.areaToGridArea(e,i);if(this.ƀas(t,s))return helpersLib.Vector.zero;let n=t.movePositionInsideGrid(s.topLeft),a=helpersLib.Vector.fromTo(s.topLeft,n),l=this.find(t,n,r);if(l){let c=l.add(a),p=helpersLib.Vector.fromTo(s.topLeft.multiplyNumber(i),e.topLeft);return new helpersLib.Vector(c.x*i+((r.x+1)*i-e.size.x)/2-p.x,c.y*i+((r.y+1)*i-e.size.y)/2-p.y)}}static find(t,e,i){let r=new wt,s=new helpersLib.Queue(e);for(;s.notEmpty;){let n=s.pop();r.add(n);let a=new helpersLib.Rectangle(n,n.add(i));if(this.ƀas(t,a))return helpersLib.Vector.fromTo(e,n);t.getNeighborPositions(n,helpersLib.GridNeighborType.Ortogonal).forEach(l=>{r.has(l)||s.add(l);});}}static ƀas(t,e){if(!t.isAreaWithinBounds(e))return false;for(let i=e.topLeft.y;i<=e.bottomRight.y;i++)for(let r=e.topLeft.x;r<=e.bottomRight.x;r++)if(!t.get(new helpersLib.Vector(r,i)))return false;return true}};var ir=class{static{h(this,"PathfinderNode");}constructor(t,e,i,r=void 0){this.position=t,this.distanceFromStart=e,this.distanceToEnd=i,this.parent=r,this.closed=false;}get pathLength(){return this.distanceFromStart+this.distanceToEnd}isEqual(t){return helpersLib.Vector.isEqual(this.position,t)}createSolutionPath(t){let e=[this.position],i=this.parent;for(;i!==void 0;)e.push(i.position),i=i.parent;return e.reverse(),{directPathAvailable:t,path:e}}getDistance(t){return this.position.getDistance(t)}},to=class{static{h(this,"PathfinderGrid");}constructor(t,e){this.ƀel=t,this.ƀjf=e,this.ƀgx=new helpersLib.BinaryHeap("min"),this.ƀaw=[],this.ƀgl=new helpersLib.Grid({size:t.size,defaultValue:void 0});let i=new ir(this.ƀjf,0,Number.MAX_SAFE_INTEGER);this.ƀgx.add(i.pathLength,i);}get hasOpenNodes(){return this.ƀgx.size>0}getNeighbors(t,e){return this.ƀel.getNeighborPositions(t.position,e).filter(i=>this.ƀel.get(i)).map(i=>this.ƀgl.get(i)||this.ƀca(i))}popLowestPathCostNode(){let t=this.ƀgx.pop();return this.ƀgx.delete(t),t.closed=true,this.ƀaw.push(t),t}changeNodeCost(t,e,i,r){this.ƀgx.delete(t),t.distanceFromStart=e,t.distanceToEnd=t.getDistance(i),t.parent=r,this.ƀgx.add(t.pathLength,t);}getBestClosedNode(){return this.ƀaw.reduce((t,e)=>t.distanceToEnd<e.distanceToEnd?t:e)}ƀca(t){let e=new ir(t,Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER);return this.ƀgl.set(t,e),this.ƀgx.add(e.pathLength,e),e}},se=class{static{h(this,"PathFinder");}static findPath(t,e,i,r){let s=new to(t,e);for(;s.hasOpenNodes;){let n=s.popLowestPathCostNode();if(n.isEqual(i))return n.createSolutionPath(true);let a=s.getNeighbors(n,r);for(let l of a)if(!l.closed){let c=n.distanceFromStart+n.getDistance(l.position);c<l.distanceFromStart&&s.changeNodeCost(l,c,i,n);}}return s.getBestClosedNode().createSolutionPath(false)}};var oe=class{static{h(this,"VectorFieldPathFinder");}constructor(t,e){this.ƀjn=t,this.ƀw=e,this.ƀes=this.ƀdu(this.ƀw.size),this.ƀkn=new helpersLib.Grid({size:this.ƀw.size,defaultValue:this.ƀes}),this.ƀcm=new helpersLib.Grid({size:this.ƀw.size,defaultValue:void 0});let i=new wt,r=new helpersLib.Queue;for(this.ƀdj(this.ƀw.cropAreaOutsideOfTheGrid(t)).forEach(n=>{this.ƀkn.set(n,0),r.add(n);});r.notEmpty;){let n=r.pop();if(!i.has(n)){i.add(n);let a=this.ƀkn.getOrFail(n);this.ƀdz(n,this.ƀw).forEach(l=>{if(!i.has(l.position)){let c=this.ƀkn.getOrFail(l.position),p=a+l.distance;this.ƀw.getOrFail(l.position)&&p<c&&(this.ƀkn.set(l.position,p),r.add(l.position));}});}}}getDirectionToTarget(t){if(!t.isInsideRectangle(this.ƀjn)){if(t=this.ƀkn.movePositionInsideGrid(t),this.ƀcm.has(t))return this.ƀcm.get(t);{let e=this.ƀdz(t,this.ƀw),i;return this.ƀkn.getOrFail(t)>=this.ƀes?e.some(s=>this.ƀw.get(s.position))&&(e.some(n=>!this.ƀw.get(n.position))?i=this.ƀdo(e):i=this.ƀdk(t,e)):i=this.ƀdk(t,e),this.ƀcm.set(t,i),i}}}ƀdo(t){let e=t.filter(i=>this.ƀw.get(i.position)).map(i=>i.direction.radian);return helpersLib.Radian.getAverage(...e)}ƀdk(t,e){let i=e.filter(r=>this.ƀkn.getOrFail(r.position)<this.ƀes).reduce((r,s)=>{let n=this.ƀkn.getOrFail(s.position)+s.distance;return n<r.bestWeight?(r.bestDirections=[s.direction],r.bestWeight=n):n===r.bestWeight&&r.bestDirections.push(s.direction),r},{bestDirections:[],bestWeight:this.ƀes}).bestDirections;return this.ƀee(i,t)}ƀee(t,e){if(t.length>0){let i=t.reduce((r,s)=>r.add(s),helpersLib.Vector.zero);if(i.isZero()||!this.ƀfj(e,i))return helpersLib.Random.pickRandomElement(t).radian;if(t.length>=1)return i.radian}}ƀfj(t,e){let i=t.add(this.ƀkg(e));return this.ƀw.isPointWithinBounds(i)&&this.ƀw.getOrFail(i)}ƀdz(t,e){return this.ƀkn.getNeighborDirections(t,helpersLib.GridNeighborType.All).map(i=>({position:t.add(i),direction:i,distance:i.x!==0&&i.y!==0?14:10}))}ƀdj(t){let e=[];for(let i=t.topLeft.y;i<=t.bottomRight.y;i++)for(let r=t.topLeft.x;r<=t.bottomRight.x;r++)e.push(new helpersLib.Vector(r,i));return e}ƀkg(t){let e=t.normalize().round();return new helpersLib.Vector(e.x,e.y)}ƀdu(t){return (t.x+t.y)*20}};var oo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},no=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},v=class extends ${static{h(this,"PhysicsWorldEntity");}constructor(t,e,i,r,s,n,a){super(),this.materialDefinitions=new Map,this.physicsBodyGroupToP2Group=new Map,this.physicsBodyGroupToP2Mask=new Map,this.availabilityGridCache=new Map,this.vectorFieldCache=new Map,this.bodiesInContactWith=new Map,this.collisionReports=new Map,this.paused=new actionsLib.Variable(false),this.lastP2Time=new actionsLib.Variable(0),this.onPhysicsStep=new actionsLib.Action,this.mapSize=t,this.mapSizeCenter=this.mapSize.multiplyNumber(.5),this.modifyUpdateCycle=e,this.p2World=i,this.materials=r,this.materialDefinitions=s,this.physicsBodyGroupToP2Group=n,this.physicsBodyGroupToP2Mask=a;}};v=oo([dt(),no("design:paramtypes",[helpersLib.Vector,Boolean,W__default.default.World,Map,Map,Map,Map])],v);var co=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Z=class{static{h(this,"PhysicsBodyGroupService");}createBodyGroupsAndMasks(t,e){let i=new Map,r=new Map;return t.map((s,n)=>{if(n>31)return console.error("Cannot have more than 32 physics body groups"),{};i.set(s,1<<n),r.set(s,0);}),e.map(([s,n])=>{if(!i.has(s))throw new Error(`Physics body group "${s}" not found`);if(!i.has(n))throw new Error(`Physics body group "${n}" not found`);let a=r.get(s),l=r.get(n),c=i.get(s),p=i.get(n);r.set(s,a|p),r.set(n,l|c);}),{physicsBodyGroupToP2Group:i,physicsBodyGroupToP2Mask:r}}getGroupConstant(t,e){return v.getInstanceByIDOrFail(t).physicsBodyGroupToP2Group.get(e)}getMaskConstant(t,e){return v.getInstanceByIDOrFail(t).physicsBodyGroupToP2Mask.get(e)}canCollide(t,e,i){let r=t.physicsBodyGroupToP2Group.get(e),s=t.physicsBodyGroupToP2Mask.get(e),n=t.physicsBodyGroupToP2Group.get(i),a=t.physicsBodyGroupToP2Mask.get(i);return (s&n)!==0&&(a&r)!==0}};Z=co([d()],Z);var po=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},uo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Ve=class{static{h(this,"AvailabilityGridCacheService");}constructor(t){this.ƀhg=t;}getCollidableGrids(t,e){let i=[];return t.availabilityGridCache.forEach((r,s)=>{r.forEach((n,a)=>{this.ƀhg.canCollide(t,a,e)&&i.push({grid:n,cellSize:s});});}),i}get(t,e,i){return t.availabilityGridCache.get(e)?.get(i)}set(t,e,i,r){let s=t.availabilityGridCache.get(e);s||(s=new Map,t.availabilityGridCache.set(e,s)),s.set(i,r);}clear(t){t.availabilityGridCache.clear();}};Ve=po([d(),uo("design:paramtypes",[Z])],Ve);var fo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},mo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},nt=class{static{h(this,"AvailabilityGridService");}constructor(t,e){this.ƀhg=t,this.ƀx=e;}onBodyAdded(t,e,i){e.aabbNeedsUpdate=true,e.updateAABB();let r=f.aabbToBoundingBox(e.aabb);this.ƀx.getCollidableGrids(t,i).forEach(s=>{let n=B.areaToGridArea(r,s.cellSize);s.grid.setArea(n,false);});}findClosestAvailableSpace(t,e,i,r=Bt){return e.aabbNeedsUpdate=true,e.updateAABB(),re.findByConvertingGridSpace(this.getAvilabilityGrid(t,r,i),f.aabbToBoundingBox(e.aabb),r)}getAvilabilityGrid(t,e,i){let r=this.ƀx.get(t,e,i);return r||(r=this.ƀbx(t,e,i),this.ƀx.set(t,e,i,r)),r}ƀbx(t,e,i){let r=new helpersLib.Grid({size:new helpersLib.Vector(Math.floor(t.mapSize.x/e),Math.floor(t.mapSize.y/e)),defaultValue:true});return t.p2World.bodies.forEach(s=>{let n=b.getFromP2BodyIDOrFail(s.id);if(n.includeInPathfinding&&this.ƀhg.canCollide(t,n.physicsBodyGroup,i)){let a=this.ƀdt(s,e);r.setArea(a,false);}}),r}ƀdt(t,e){let i=f.aabbToBoundingBox(t.aabb);return B.areaToGridArea(i,e)}};nt=fo([d(),mo("design:paramtypes",[Z,Ve])],nt);var wo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},xo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Bt=50,Gt=class{static{h(this,"PathFinderService");}constructor(t){this.ƀhf=t;}findPathAStar(t,e,i,r,s){s||(s={}),s.neighborType===void 0&&(s.neighborType=helpersLib.GridNeighborType.Ortogonal),s.gridCellSize===void 0&&(s.gridCellSize=Bt);let n=v.getInstanceByIDOrFail(t),a,l;helpersLib.Comparator.isNumber(i)?(l=b.getPhysicsInstanceOrFail(i).p2Body,a=f.arrayToVector(l.position)):a=i;let c=B.positionToGridPosition(e,s.gridCellSize),p=B.positionToGridPosition(a,s.gridCellSize),m=this.ƀhf.getAvilabilityGrid(n,s.gridCellSize,r);if(l){let E=f.aabbToBoundingBox(l.aabb),vt=B.areaToGridArea(E,s.gridCellSize);m.setArea(vt,true);}let g=se.findPath(m,c,p,s.neighborType);return g.path=g.path.map(E=>B.gridPositionToPosition(E,s.gridCellSize)),g}findPathDirection(t,e,i,r,s=Bt){let n=v.getInstanceByIDOrFail(t),a;if(helpersLib.Comparator.isNumber(i)){let g=b.getPhysicsInstanceOrFail(i);a=f.aabbToBoundingBox(g.p2Body.aabb);}else a=new helpersLib.Rectangle(i,i);let l=B.areaToGridArea(a,s),c=JSON.stringify({targetGridArea:l,collidableWithGroup:r}),p=n.vectorFieldCache.get(c);if(!p){let g=this.ƀhf.getAvilabilityGrid(n,s,r);p=new oe(l,g),n.vectorFieldCache.set(c,p);}let m=B.positionToGridPosition(e,s);return p.getDirectionToTarget(m)}};Gt=wo([d(),xo("design:paramtypes",[nt])],Gt);var Po=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},j=new U;exports.PhysicsGateway=class bi{static{h(this,"PhysicsGateway");}createPhysicsWorld(t){return j.trigger("createPhysicsWorld",t)}getMapSize(t){return j.trigger("getMapSize",t)}setPaused(t,e){return j.trigger("setPaused",t,e)}hitTest(t,e){return j.trigger("hitTest",t,e)}findPath(t,e,i,r,s){return j.trigger("findPath",t,e,i,r,s)}findPathDirection(t,e,i,r){return j.trigger("findPathDirection",t,e,i,r)}applyImpulse(t,e,i,r){return j.trigger("applyImpulse",t,e,i,r)}createExplosion(t,e,i,r,s,n){return j.trigger("createExplosion",t,e,i,r,s,n)}createElipticExplosion(t,e,i,r,s,n,a){return j.trigger("createElipticExplosion",t,e,i,r,s,n,a)}printPathfindingTestGrid(t,e,i,r,s,n=Bt){return j.trigger("printPathfindingTestGrid",t,e,i,r,s,n)}};exports.PhysicsGateway=Po([d()],exports.PhysicsGateway);var So=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Co=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Q=class{static{h(this,"TestVisualsService");}constructor(t,e){this.ƀy=t,this.ƀhc=e;}printPathfindingTestGrid(t,e,i,r,s,n){let a=v.getInstanceByIDOrFail(t);this.ƀy.getAvilabilityGrid(a,n,r).map((c,p)=>({position:B.gridPositionToPosition(p,n),availability:c})).forEach(c=>{if(c.position.isInsideRectangle(s)){let p=this.ƀhc.findPathDirection(t,c.position,i,r),m;p===void 0?m=T.createRectangleBorders(new helpersLib.Vector(8,8),2,helpersLib.ColorHelper.red).toSprite().displayParent(e).setPosition(c.position,{round:false}).attach(a):m=T.createArrow(25,c.availability?helpersLib.ColorHelper.green:helpersLib.ColorHelper.red).toSprite().displayParent(e).setPosition(c.position,{round:false}).setRotation(p).attach(a),new A(m,"alpha",{duration:1e3,animation:S.easeIn}).animate({alpha:0}).tap(()=>m.destroy()).attach(m);}});}createExplosionDebugVisual(t,e,i,r,s,n=300){let a=new u().displayParent(e).setAlpha(.5).attach(t);T.createCircle(s,helpersLib.ColorHelper.blue).toSprite().displayParent(a).setPosition(r,{round:false}).setAlpha(.5).attach(t),i.forEach(c=>{let p=c.hits.length>0?helpersLib.ColorHelper.red:helpersLib.ColorHelper.white;T.createVector(r,c.line.to,p).toSprite().displayParent(a).attach(t);}),new A(a,"alpha",{duration:n,animation:S.easeIn}).animate({alpha:0}).tap(()=>a.destroy()).attach(a);}createElipticExplosionDebugVisual(t,e,i,r,s,n,a=300){let l=new u().displayParent(e).setAlpha(.5).attach(t);T.createElipse(n,helpersLib.ColorHelper.blue).toSprite().displayParent(l).setPosition(r,{round:false}).setRotation(s).setAlpha(.5).attach(t),i.forEach(p=>{let m=p.hits.length>0?helpersLib.ColorHelper.red:helpersLib.ColorHelper.white;T.createVector(p.line.from,p.line.to,m).toSprite().displayParent(l).attach(t);}),new A(l,"alpha",{duration:a,animation:S.easeIn}).animate({alpha:0}).tap(()=>l.destroy()).attach(l);}createPhysicsEntityShapeVisual(t,e,i){let r=i?.overridePosition??f.arrayToVector(t.position),s=i?.overrideRotation??new helpersLib.Radian(t.angle),n=i?.color??helpersLib.ColorHelper.blue,a=new u().displayParent(e).setPosition(r,{round:false}).setRotation(s).setAlpha(.5).attachToRoot();t.shapes.forEach(c=>{this.ƀcp(c,n).displayParent(a).attachToRoot();}),new A(a,"alpha",{duration:1e3,animation:S.easeIn}).animate({alpha:0}).tap(()=>a.destroy()).attach(a);}ƀcp(t,e){switch(t.type){case W__default.default.Shape.PARTICLE:throw new Error("Not implemented");case W__default.default.Shape.LINE:throw new Error("Not implemented");case W__default.default.Shape.PLANE:throw new Error("Not implemented");case W__default.default.Shape.CIRCLE:throw new Error("Not implemented");case W__default.default.Shape.CAPSULE:throw new Error("Not implemented");case W__default.default.Shape.BOX:throw new Error("Not implemented");case W__default.default.Shape.HEIGHTFIELD:throw new Error("Not implemented");case W__default.default.Shape.CONVEX:return this.ƀco(t,e);default:throw new Error("Not implemented")}}ƀco(t,e){let i=[t.vertices.map(r=>({x:r[0],y:r[1]}))];return T.createPolygon(i,e).toSprite()}};Q=So([d(),Co("design:paramtypes",[nt,Gt])],Q);var Ro=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Io=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Ne=class{static{h(this,"HitTestService");}constructor(t){this.ƀjp=t;}hitTest(t,e){let i=t.world,r=b.getFromP2BodyIDOrFail(t.id),s=f.cloneP2Body(t);this.ƀs(s,e);let n=i.broadphase.aabbQuery(i,this.ƀdh(s)).map(l=>b.getFromP2BodyIDOrFail(l.id)).filter(l=>l.includeInPathfinding).filter(l=>r.canCollideWith(l)).map(l=>f.cloneP2Body(l.p2Body)),a=false;if(n.length!==0){let l=new W__default.default.World;l.addBody(s),n.forEach(c=>l.addBody(c)),l.step(1,1,1),a=l.narrowphase.contactEquations.some(c=>c.bodyA===s||c.bodyB===s),l.clear();}if(e?.testLayerID){let l=a?helpersLib.ColorHelper.red:helpersLib.ColorHelper.green;this.ƀjp.createPhysicsEntityShapeVisual(t,e.testLayerID,{overridePosition:e.overridePosition,overrideRotation:e.overrideRotation,color:l});}return a}ƀs(t,e){e?.overridePosition&&(t.position=f.vectorToArray(e.overridePosition)),e?.overrideRotation&&(t.angle=e.overrideRotation.value);}ƀdh(t){return t.aabbNeedsUpdate=true,t.updateAABB(),t.aabb}};Ne=Ro([d(),Io("design:paramtypes",[Q])],Ne);var Oo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},je=class{static{h(this,"CollisionsService");}registerPhysicsWorld(t){t.p2World.on("beginContact",e=>{e.contactEquations.forEach(i=>{this.ƀia(t,i);});});}step(t,e,i){b.getPhysicsEntities().forEach(r=>{r.ƀax=[];}),t.p2World.narrowphase.contactEquations.forEach(r=>{this.ƀia(t,r);}),t.bodiesInContactWith.forEach((r,s)=>{this.ƀen(r.p2Body),r.entity.ƀir(t.collisionReports.get(s)||[]);}),t.bodiesInContactWith.clear(),t.collisionReports.clear();}ƀen(t){let e=f.arrayToVector(t.velocity);e.length>10.8&&(e=e.normalize(10.8),t.velocity=f.vectorToArray(e)),t.angularVelocity=Math.min(Math.max(t.angularVelocity,-10.01),10.01);}ƀia(t,e){let i=b.getFromP2BodyID(e.bodyA.id),r=b.getFromP2BodyID(e.bodyB.id);if(i&&r){t.bodiesInContactWith.set(e.bodyA.id,{p2Body:e.bodyA,entity:i}),t.bodiesInContactWith.set(e.bodyB.id,{p2Body:e.bodyB,entity:r});let s=t.collisionReports.get(e.bodyA.id)||[],n=t.collisionReports.get(e.bodyB.id)||[],{collisionDetailsA:a,collisionDetailsB:l}=this.ƀdm(i,r,e);s.push({self:a,target:l}),n.push({self:l,target:a}),t.collisionReports.set(e.bodyA.id,s),t.collisionReports.set(e.bodyB.id,n);}else console.warn("ContactEquationOrganiser: Entity not found for contact equation",e);}ƀdm(t,e,i){let r=t.convertToDTO(),s=e.convertToDTO(),n=f.arrayToVector(i.contactPointA),a=f.arrayToVector(i.contactPointB),{normalA:l,normalB:c}=this.ƀea(i);return {collisionDetailsA:this.ƀdl(r,i.bodyA.mass,n,l,t.area),collisionDetailsB:this.ƀdl(s,i.bodyB.mass,a,c,e.area)}}ƀdl(t,e,i,r,s){let n,a=i.add(t.position);return {body:t,getPositionReletiveToObject:h(()=>(n||(n=i.rotate(t.rotation.multiply(-1).vector)),n),"getPositionReletiveToObject"),getPositionOnWorld:h(()=>(a||(a=i.add(t.position)),a),"getPositionOnWorld"),position:i,mass:e,area:s,normal:r}}ƀea(t){let e=f.arrayToVector(t.normalA),i=e.multiplyNumber(-1);return {normalA:e,normalB:i}}};je=Oo([d()],je);var Mo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Do=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},He=class extends Wt{static{h(this,"BorderEntity");}constructor(t,e){super(t,e);}};He=Mo([dt(),Do("design:paramtypes",[Number,Object])],He);var Bo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},H=1e4,We=class{static{h(this,"BorderService");}createBorders(t,e,i){this.ƀbr(t,new helpersLib.Vector(e.x/2,-H/2),new helpersLib.Vector(e.x+H*2,H),i),this.ƀbr(t,new helpersLib.Vector(e.x/2,e.y+H/2),new helpersLib.Vector(e.x+H*2,H),i),this.ƀbr(t,new helpersLib.Vector(-H/2,e.y/2),new helpersLib.Vector(H,e.y+H*2),i),this.ƀbr(t,new helpersLib.Vector(e.x+H/2,e.y/2),new helpersLib.Vector(H,e.y+H*2),i);}ƀbr(t,e,i,r){return new He(t,{shapeDefinition:{materialName:st,group:r,shapeType:exports.PhysicsShapeType.Rectangle,shapeData:i},position:e,rotation:helpersLib.Radian.get0,addInEmptySpace:false,includeOnPathfinding:true}).attachByID(t)}};We=Bo([d()],We);var _o=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},ar=new W__default.default.Material,Fo={id:st,density:Number.MAX_SAFE_INTEGER,velocityDrag:1,rotationalDrag:1},_t=class{static{h(this,"MaterialsService");}createMaterials(t,e,i,r){let s=new Map,n=new Map;if(i.forEach(a=>{s.set(a.id,new W__default.default.Material),n.set(a.id,a);}),s.has(st))throw new Error(`Material with name ${st} cannot be defined, pick another name for the material.`);return s.set(st,ar),n.set(st,Fo),this.ƀc(t,e,i,r,s),{materials:s,materialDefinitions:n}}getMaterial(t,e){let i=v.getInstanceByIDOrFail(t);return this.ƀdy(e,i.materials)}getMaterialDefinition(t,e){let i=v.getInstanceByIDOrFail(t);return this.ƀdx(e,i.materialDefinitions)}ƀdy(t,e){let i=e.get(t);if(!i)throw new Error(`Could not find material with name ${t}.`);return i}ƀdx(t,e){let i=e.get(t);if(!i)throw new Error(`Could not find material definition with name ${t}.`);return i}ƀc(t,e,i,r,s){this.ƀdq(i.map(n=>n.id),r).forEach(n=>{let a=this.ƀdy(n.materialA,s),l=this.ƀdy(n.materialB,s);t.addContactMaterial(new W__default.default.ContactMaterial(a,l,{friction:n.friction,restitution:n.bounciness,stiffness:n.stiffness,relaxation:n.relaxation}));}),this.ƀd(t,e,i,s);}ƀdq(t,e){let i=new Map;e.forEach(s=>{let n=i.get(s.materialA);n||(n=new Map,i.set(s.materialA,n)),n.set(s.materialB,s);});let r=[];return t.forEach((s,n)=>{for(let a=n;a<t.length;a++){let l=t[a],c=i.get(s)?.get(l);c?r.push(c):r.push({materialA:s,materialB:l,friction:0,bounciness:0,relaxation:4,stiffness:1e6});}}),r}ƀd(t,e,i,r){i.forEach(s=>{let n=this.ƀdy(s.id,r);t.addContactMaterial(new W__default.default.ContactMaterial(n,ar,{friction:e.friction,restitution:e.bounciness,stiffness:e.stiffness,relaxation:e.relaxation}));});}};_t=_o([d()],_t);var Lo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Vo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Ft=class{static{h(this,"PhysicsWorldService");}constructor(t,e,i,r,s){this.ƀgd=t,this.ƀai=e,this.ƀy=i,this.ƀay=r,this.ƀhg=s;}createPhysicsWorld(t){let e=new W__default.default.World({gravity:[0,0]}),{materials:i,materialDefinitions:r}=this.ƀgd.createMaterials(e,t.borderProperties,t.materialDefinitions,t.materialContactDefinitions),{physicsBodyGroupToP2Group:s,physicsBodyGroupToP2Mask:n}=this.ƀhg.createBodyGroupsAndMasks(t.physicsBodyGroups,t.interactingBodyGroups),a=new v(t.mapSize,t.modifyUpdateCycle,e,i,r,s,n).attachByID(t.attachTo);return a.onDestroy().tap(()=>{e.clear(),t.modifyUpdateCycle&&y.cleanUpdateModifier();}).attachToRoot(),this.ƀai.createBorders(a.id,t.mapSize,t.borderProperties.borderBodyGroup),this.ƀay.registerPhysicsWorld(a),t.modifyUpdateCycle?y.registerUpdateModifier((l,c)=>this.ƀjj(a,l,c)):y.beforeSceneUpdateAction.subscribe(({time:l,delta:c})=>{this.ƀjj(a,l,c);}).attach(a),a.id}addBody(t,e,i,r,s){let n=v.getInstanceByIDOrFail(t);if(i){let a=this.ƀy.findClosestAvailableSpace(n,e,r);return a?(e.position[0]+=a.x,e.position[1]+=a.y,n.p2World.addBody(e),s&&this.ƀy.onBodyAdded(n,e,r),true):false}else return n.p2World.addBody(e),s&&this.ƀy.onBodyAdded(n,e,r),true}removeBody(t,e){v.getInstanceByID(t)?.p2World.removeBody(e);}ƀjj(t,e,i){if(!t.paused.value){t.availabilityGridCache.clear(),t.vectorFieldCache.clear(),t.p2World.step(i,i,i),t.modifyUpdateCycle&&(i=t.p2World.time-t.lastP2Time.value);let r=e+i;this.ƀay.step(t,r,i),t.onPhysicsStep.trigger({time:r,delta:i}),t.lastP2Time.value=t.p2World.time;}return i}setPaused(t,e){v.getInstanceByIDOrFail(e).paused.set(t);}};Ft=Lo([d(),Vo("design:paramtypes",[_t,We,nt,je,Z])],Ft);var jo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Vt=class{static{h(this,"RayCastingService");}castClosest(t,e,i){let r=new W__default.default.RaycastResult,s=new W__default.default.Ray({mode:W__default.default.Ray.CLOSEST,from:f.vectorToArray(e.from),to:f.vectorToArray(e.to),collisionGroup:t.physicsBodyGroupToP2Group.get(i),collisionMask:t.physicsBodyGroupToP2Mask.get(i)});if(t.p2World.raycast(r,s),r.hasHit())return this.ƀbm(r,e)}castAllFirstContacts(t,e,i){let r=new Map,s=new W__default.default.Ray({mode:W__default.default.Ray.ALL,from:f.vectorToArray(e.from),to:f.vectorToArray(e.to),collisionGroup:t.physicsBodyGroupToP2Group.get(i),collisionMask:t.physicsBodyGroupToP2Mask.get(i),callback:h(n=>{let a=r.get(n.body);!r.has(n.body)||n.fraction<a.fraction?r.set(n.body,this.ƀbm(n,e)):n.fraction===a.fraction&&a.isExternal()&&r.set(n.body,this.ƀbm(n,e));},"callback")});return t.p2World.raycast(new W__default.default.RaycastResult,s),Array.from(r.values())}ƀbm(t,e){let i=t.fraction,r=f.arrayToVector(t.normal),s,n,a;return {body:t.body,hitPosition:h(()=>(s===void 0&&(s=e.from.lerp(e.to,i)),s),"hitPosition"),hitDistance:h(()=>(n===void 0&&(n=e.length*i),n),"hitDistance"),isExternal:h(()=>(a===void 0&&(a=e.fromTo.dotProduct(r)<0),a),"isExternal"),normal:r,fraction:i,line:e}}};Vt=jo([d()],Vt);var Ho=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},lt=class{static{h(this,"ImpactService");}applyImpulse(t,e,i,r){let s=i.normalize(r),n=[e.x-t.position[0],e.y-t.position[1]];t.applyImpulse(f.vectorToArray(s),n);}};lt=Ho([d()],lt);var Wo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Nt=class{static{h(this,"RayCastHitConverterService");}toExplosionHits(t,e=true){let i=new Map;return t.forEach(r=>{r.hits.forEach(s=>{let n=i.get(s.body);if(n){let a=s.fraction<n.closestRaycastHit.fraction?s:n.closestRaycastHit;n.rayCastHits.push(s),i.set(s.body,{hitCount:n.hitCount+1,closestRaycastHit:a,rayCastHits:n.rayCastHits,isExternal:e?n.isExternal:n.isExternal&&s.isExternal(),explosionCenter:s.line.from});}else {let a=s.isExternal();i.set(s.body,{hitCount:1,closestRaycastHit:s,rayCastHits:[s],isExternal:a,explosionCenter:s.line.from});}});}),[...i.values()].map(r=>this.ƀbn(r,t.length))}ƀbn(t,e){let i=t.hitCount/e,r=t.rayCastHits;if(t.isExternal)return {body:b.getFromP2BodyIDOrFail(t.closestRaycastHit.body.id).convertToDTO(),p2Body:t.closestRaycastHit.body,isExternal:true,normal:t.closestRaycastHit.normal,fraction:t.closestRaycastHit.fraction,ratioOfHits:i,raycastResults:r,getHitPosition:t.closestRaycastHit.hitPosition,getHitDistance:t.closestRaycastHit.hitDistance};{let s=f.arrayToVector(t.closestRaycastHit.body.position);return {body:b.getFromP2BodyIDOrFail(t.closestRaycastHit.body.id).convertToDTO(),p2Body:t.closestRaycastHit.body,isExternal:false,normal:helpersLib.Vector.fromTo(s,t.explosionCenter).normalize(),fraction:0,ratioOfHits:i,raycastResults:r,getHitPosition:h(()=>t.explosionCenter,"getHitPosition"),getHitDistance:h(()=>0,"getHitDistance")}}}};Nt=Wo([d()],Nt);var $o=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},zo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Yo=15,$e=class{static{h(this,"ElipticExplosionService");}constructor(t,e,i,r){this.ƀhw=t,this.ƀjp=e,this.ƀhv=i,this.ƀfc=r;}createElipticExplosion(t,e,i,r,s,n,a){let l=v.getInstanceByIDOrFail(t),c=this.ƀcc(e,i,r,s,a?.hitOnlyClosest===true,l),p=this.ƀhv.toExplosionHits(c,false);return this.ƀq(p,n),a?.testLayerID&&this.ƀjp.createElipticExplosionDebugVisual(l,a.testLayerID,c,e,i,r,a.debugRayDuration),p.map(m=>{let{p2Body:g,...E}=m;return E})}ƀcc(t,e,i,r,s,n){let a=[],l=e.vector,c=e.add(helpersLib.Radian.get90).vector,p=c.normalize(i.x);a.push(new helpersLib.Line(t,t.add(p))),a.push(new helpersLib.Line(t,t.add(p.multiplyNumber(-1))));let m=l.normalize(i.y);a.push(new helpersLib.Line(t,t.add(m))),a.push(new helpersLib.Line(t,t.add(m.multiplyNumber(-1))));let g=Math.round(i.y/Yo),E=i.y/(g*2+1)*2,vt=l.normalize(E),ne=i.x,lr=Math.pow(i.y,2);return helpersLib.ArrayHelper.createIntegerArray(g).forEach(pt=>{let bt=E*(pt+1),Ci=vt.multiplyNumber(pt+1),ae=c.normalize(this.ƀei(ne,lr,bt)),he=t.add(Ci);a.push(new helpersLib.Line(he,he.add(ae))),a.push(new helpersLib.Line(he,he.add(ae.multiplyNumber(-1))));let le=t.add(Ci.multiplyNumber(-1));a.push(new helpersLib.Line(le,le.add(ae))),a.push(new helpersLib.Line(le,le.add(ae.multiplyNumber(-1))));}),a.map(pt=>{if(s){let bt=this.ƀhw.castClosest(n,pt,r);return {line:pt,hits:bt?[bt]:[]}}else {let bt=this.ƀhw.castAllFirstContacts(n,pt,r);return {line:pt,hits:bt}}})}ƀei(t,e,i){return Math.sqrt(1-Math.pow(i,2)/e)*t}ƀq(t,e){t.forEach(i=>{i.raycastResults.forEach(r=>{let s,n;r.isExternal()?(s=r.line.fromTo,n=e*2):(s=r.line.fromTo.multiplyNumber(-1),n=e*(1-r.fraction)*8),this.ƀfc.applyImpulse(r.body,r.hitPosition(),s,n);});});}};$e=$o([d(),zo("design:paramtypes",[Vt,Q,Nt,lt])],$e);var Xo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Zo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},ze=class{static{h(this,"ExplosionService");}constructor(t,e,i,r){this.ƀhw=t,this.ƀjp=e,this.ƀhv=i,this.ƀfc=r;}createExplosion(t,e,i,r,s,n){let a=v.getInstanceByIDOrFail(t),l=this.ƀef(i),c=this.ƀcc(e,i,r,l,n?.hitOnlyClosest===true,a),p=this.ƀhv.toExplosionHits(c);return this.ƀq(e,i,s,l,p),n?.testLayerID&&this.ƀjp.createExplosionDebugVisual(a,n.testLayerID,c,e,i,n.debugRayDuration),p}ƀcc(t,e,i,r,s,n){let a=new helpersLib.Radian(helpersLib.PI_360/r),l=new helpersLib.Vector(0,-e),c=a.vector;return helpersLib.ArrayHelper.createEmptyArray(r).map(()=>{let p=t.add(l);return l=l.rotate(c),new helpersLib.Line(t,p)}).map(p=>{if(s){let m=this.ƀhw.castClosest(n,p,i);return {line:p,hits:m?[m]:[]}}else {let m=this.ƀhw.castAllFirstContacts(n,p,i);return {line:p,hits:m}}})}ƀq(t,e,i,r,s){s.forEach(n=>{if(n.isExternal)n.raycastResults.forEach(a=>{let l=i*(1-a.fraction);this.ƀfc.applyImpulse(a.body,a.hitPosition(),a.line.fromTo,l);});else {let a=helpersLib.Vector.fromTo(t,f.arrayToVector(n.p2Body.position)),l=a.length/e,c=i*r*l/2;this.ƀfc.applyImpulse(n.p2Body,n.getHitPosition(),a,c);}});}ƀef(t){return t>100?Math.floor(t*.3):Math.floor(t*.26+4)}};ze=Xo([d(),Zo("design:paramtypes",[Vt,Q,Nt,lt])],ze);var en=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},jt=class{static{h(this,"PhysicsQueryService");}getMapSize(t){let e=v.getInstanceByIDOrFail(t);return {dimentions:e.mapSize,center:e.mapSizeCenter}}subscribeToPhysicsStep(t,e){return v.getInstanceByIDOrFail(t).onPhysicsStep.subscribe(e)}};jt=en([d()],jt);var rn=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},sn=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Pi=class{static{h(this,"PhysicsController");}constructor(t,e,i,r,s,n,a,l){this.ƀhn=t,this.ƀhc=e,this.ƀjp=i,this.ƀcz=r,this.ƀct=s,this.ƀet=n,this.ƀhm=a,this.ƀfc=l;}createPhysicsWorld(t){return this.ƀhn.createPhysicsWorld(t)}getMapSize(t){return this.ƀhm.getMapSize(t)}setPaused(t,e){this.ƀhn.setPaused(t,e);}hitTest(t,e){let i=b.getPhysicsInstanceOrFail(t);return this.ƀet.hitTest(i.p2Body,e)}findPath(t,e,i,r,s){return this.ƀhc.findPathAStar(t,e,i,r,{neighborType:s})}findPathDirection(t,e,i,r){return this.ƀhc.findPathDirection(t,e,i,r)}applyImpulse(t,e,i,r){let s=b.getPhysicsInstanceOrFail(t);this.ƀfc.applyImpulse(s.p2Body,e,i,r);}createExplosion(t,e,i,r,s,n){return this.ƀcz.createExplosion(t,e,i,r,s,n)}createElipticExplosion(t,e,i,r,s,n,a){return this.ƀct.createElipticExplosion(t,e,i,r,s,n,a)}printPathfindingTestGrid(t,e,i,r,s,n){this.ƀjp.printPathfindingTestGrid(t,e,i,r,s,n);}};Pi=rn([q({controllerLink:j}),sn("design:paramtypes",[Ft,Gt,Q,ze,$e,Ne,jt,lt])],Pi);var on=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},ke=class{static{h(this,"ShapeCreationService");}createBody(t,e,i,r,s){let n=v.getInstanceByIDOrFail(t);if(!n.physicsBodyGroupToP2Group.has(e.shapeDefinition.group))throw new Error(`Physics body group "${e.shapeDefinition.group}" not found`);switch(e.shapeDefinition.shapeType){case exports.PhysicsShapeType.Point:return this.ƀbt(n,void 0,i,r,e.shapeDefinition.group,s);case exports.PhysicsShapeType.Circle:return this.ƀbt(n,e.shapeDefinition.shapeData,i,r,e.shapeDefinition.group,s);case exports.PhysicsShapeType.Polygon:return this.ƀcb(n,e.shapeDefinition.shapeData,i,r,e.shapeDefinition.group,s);case exports.PhysicsShapeType.Rectangle:return this.ƀcd(n,e.shapeDefinition.shapeData,i,r,e.shapeDefinition.group,s);default:{e.shapeDefinition.shapeType;throw new Error(`Unexpected case! "${e.shapeDefinition.shapeType}"`)}}}ƀbt(t,e,i,r,s,n){let a=new W__default.default.Circle({collisionGroup:t.physicsBodyGroupToP2Group.get(s),collisionMask:t.physicsBodyGroupToP2Mask.get(s),radius:e});a.material=i;let l=new W__default.default.Body({type:n==="dynamic"?W__default.default.Body.DYNAMIC:W__default.default.Body.STATIC,mass:r.density,damping:r.velocityDrag,angularDamping:r.rotationalDrag});return l.addShape(a),l}ƀcb(t,e,i,r,s,n){let a=t.physicsBodyGroupToP2Group.get(s),l=t.physicsBodyGroupToP2Mask.get(s),c=e.map(g=>new W__default.default.Convex({vertices:g.map(E=>[E.x,E.y]),collisionGroup:a,collisionMask:l})).map(g=>(g.material=i,g)),p=c.reduce((g,E)=>g+E.area,0),m=new W__default.default.Body({type:n==="dynamic"?W__default.default.Body.DYNAMIC:W__default.default.Body.STATIC,mass:p,damping:r.velocityDrag,angularDamping:r.rotationalDrag});return c.forEach(g=>m.addShape(g)),m.setDensity(r.density),m}ƀcd(t,e,i,r,s,n){let a=new W__default.default.Box({width:e.x,height:e.y,collisionGroup:t.physicsBodyGroupToP2Group.get(s),collisionMask:t.physicsBodyGroupToP2Mask.get(s)});a.material=i;let l=e.x*e.y,c=new W__default.default.Body({type:n==="dynamic"?W__default.default.Body.DYNAMIC:W__default.default.Body.STATIC,mass:l,damping:r.velocityDrag,angularDamping:r.rotationalDrag});return c.addShape(a),c.setDensity(r.density),c}};ke=on([d()],ke);var nn=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},an=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Si=class{static{h(this,"PhysicsInternalController");}constructor(t,e,i,r,s){this.ƀhn=t,this.ƀhl=e,this.ƀiw=i,this.ƀhm=r,this.ƀhg=s;}createBody(t,e,i,r,s){return this.ƀiw.createBody(t,e,i,r,s)}getMaterial(t,e){return this.ƀhl.getMaterial(t,e)}getMaterialDefinition(t,e){return this.ƀhl.getMaterialDefinition(t,e)}getGroupConstant(t,e){return this.ƀhg.getGroupConstant(t,e)}getMaskConstant(t,e){return this.ƀhg.getMaskConstant(t,e)}addBody(t,e,i,r,s){return this.ƀhn.addBody(t,e,i,r,s)}removeBody(t,e){this.ƀhn.removeBody(t,e);}subscribeToPhysicsStep(t,e){return this.ƀhm.subscribeToPhysicsStep(t,e)}};Si=nn([q({controllerLink:J}),an("design:paramtypes",[Ft,_t,ke,jt,Z])],Si);exports.AnimationFlicker=Ai;exports.AnimationInterpolationFunctions=Y;exports.Animations=S;exports.Animator=A;exports.BORDER_MATERIAL_NAME=st;exports.BardLegendsHardReset=G;exports.Camera=Xt;exports.ClosestAvailableSpaceHelper=re;exports.Container=u;exports.ControllerDecorator=q;exports.ControllerLink=U;exports.DEFAULT_SHADER_RESOLUTION=O;exports.DeltaTime=xi;exports.DisplayObjectArray=ci;exports.Entity=$;exports.EntityDecorator=dt;exports.FadeInContent=Ki;exports.FadeInStateAnimation=_e;exports.Game=w;exports.Graphics=T;exports.ImmovablePhysicsEntity=Wt;exports.Menu=Dt;exports.MenuEntity=di;exports.MouseWheelListenerUI=ie;exports.MovableEntity=Xe;exports.MovablePhysicsEntity=Ze;exports.PathFinder=se;exports.PhysicsEntity=b;exports.Placeholder=ai;exports.PositionConversionHelper=kt;exports.ROTATIONAL_SPEED_LIMIT=Qe;exports.RichText=hi;exports.SPEED_LIMIT=Ke;exports.Scene=Pt;exports.SceneDecorator=wr;exports.ScrollAreaUI=mi;exports.ScrollMaskUI=gt;exports.Service=P;exports.ServiceDecorator=d;exports.SingletonEntity=ut;exports.SlideInContent=er;exports.SlideInContentByIndex=wi;exports.SlideStateAnimation=Le;exports.Sprite=X;exports.StateAnimation=Fe;exports.Text=te;exports.UpdatableContainer=li;exports.UpdateCycle=y;exports.VectorFieldPathFinder=oe;exports.VectorSet=wt;exports.View=Ht;exports.ViewDecorator=Ye;
|
|
67
|
+
}`,e}constructor(t,e){if(super(o.ƀeg(),o.ƀdp(t*O)),this.ƀcx=t,this.resolution=O,this.ƀcx=t*O,this.ƀcx<0)throw new Error("ExpandWithColorFilter: Expand * resolution cannot be smaller than 0");if(this.ƀcx>10)throw new Error("ExpandWithColorFilter: Expand * resolution cannot be higher than 10");helpersLib.Comparator.isInteger(this.ƀcx)||(this.ƀcx=Math.floor(this.ƀcx));let i=helpersLib.ColorHelper.normalize(e);this.uniforms.color=new Float32Array([i.red,i.green,i.blue]),this.uniforms.expandSquared=this.ƀcx*this.ƀcx,this.padding=this.ƀcx;}apply(t,e,i,r){this.uniforms.pixelSize=new Float32Array([1/(e.width*O),1/(e.height*O)]),t.applyFilter(this,e,i,r);}};var Te=class extends V__namespace.Filter{static{h(this,"GlowFilter");}constructor(t){super(),this.resolution=O;let e={blurRadius:1,expand:0,color:helpersLib.ColorHelper.white,blendMode:exports.BlendMode.Screen,...t};this.ƀcy=new Ce(e.expand,e.color);let i=helpersLib.Comparator.isNumber(e.blurRadius)?new helpersLib.Vector(e.blurRadius,e.blurRadius):e.blurRadius;this.ƀah=new Et(i),this.padding=Math.max(i.x,i.y)+e.expand,this.ƀah.blendMode=V__namespace.BLEND_MODES.SCREEN;}apply(t,e,i,r){let s=t.getFilterTexture();this.ƀcy.apply(t,e,s,V__namespace.CLEAR_MODES.CLEAR),this.ƀah.apply(t,s,i,r),t.returnFilterTexture(s);}};var Zt=class o{static{h(this,"GlowSpriteGenerator");}static{this.ƀej=new Map;}static createGlowSpriteFromSprite(t,e,i){let r=this.ƀbc(e),s=helpersLib.Comparator.isNumber(r.blurRadius)?new helpersLib.Vector(r.blurRadius,r.blurRadius):r.blurRadius,n=this.ƀdr(t.texture,s,r.expand,r.color,i),a=new V__namespace.Sprite(n);return this.ƀit(a,helpersLib.Vector.fromVec2(t.anchor),Math.max(s.x,s.y)+r.expand),a.alpha=r.glowAlpha,a.blendMode=r.blendMode,a}static ƀdr(t,e,i,r,s){if(!t.id)throw new Error("GlowSpriteGenerator: baseTexture should have an id");if(s){let n=`${t.id}-${i}-${e.x}-${e.y}-${r.r}-${r.g}-${r.b}`;if(o.ƀej.has(n))return o.ƀej.get(n);{let a=this.ƀds(t,e,i,r);return o.ƀej.set(n,a),a}}else return this.ƀds(t,e,i,r)}static ƀds(t,e,i,r){let s=new V__namespace.Sprite(t);this.ƀda(s,Math.max(e.x,e.y)+i),s.filters=[new Te({blurRadius:e,expand:i,color:r})];let n=w.instance.renderer.generateTexture(s);return n.id=M.insertAsset(n),s.destroy(),n}static ƀit(t,e,i){let r=(i+(t.width-i*2)*e.x)/t.width,s=(i+(t.height-i*2)*e.y)/t.height;t.anchor.set(r,s);}static ƀda(t,e){if(t.isSprite){let s=new V__namespace.Graphics;t.addChild(s);}let i=t.width,r=t.height;t.calculateBounds=function(){this._bounds.clear(),this._bounds.addFrame(this.transform,-e,-e,i+e,r+e);};}static ƀbc(t){let e={glowAlpha:1,blurRadius:5,expand:0,color:helpersLib.ColorHelper.white,blendMode:exports.BlendMode.Add};return t&&(e={...e,...t}),e}};G.onHardReset.subscribe(()=>{Zt.ƀej.clear();}).attachToRoot();var X=class o extends u{static{h(this,"Sprite");}static createByName(t){let e=w.setupOptions.spriteDefinitions[t];if(!e)throw new Error(`Sprite: Could not find sprite definition with name ${t}.`);return new o(e)}static createSnapshotSprite(t){let e=t.pixiContainer,i=e.parent;i&&i.removeChild(e);let r=w.instance.renderer.generateTexture(e,{resolution:2,scaleMode:V__namespace.SCALE_MODES.LINEAR,multisample:V__namespace.MSAA_QUALITY.HIGH});i&&i.addChild(e);let n={id:M.insertAsset(r),scale:t.scale,size:t.size,anchor:helpersLib.Vector.zero,boundingShapes:void 0,destroyAssetOnDestroy:true};return new o(n,{ignoreAnchor:true})}constructor(t,e={}){if(super(),this.ƀjt=1,!t)throw new Error("Sprite: spriteDefinition cannot be nullish!");this.ƀjc=t,this.pixiSprite=new V__namespace.Sprite(M.getAsset(t.id)),this.pixiContainer.addChild(this.pixiSprite),this.setTextureScale(t.scale),e.textureSize&&(this.pixiSprite.width=e.textureSize.x,this.pixiSprite.height=e.textureSize.y),e.texturePosition&&this.pixiSprite.position.set(e.texturePosition.x,e.texturePosition.y),e.ignoreAnchor||this.pixiSprite.anchor.set(t.anchor.x,t.anchor.y);}destroy(){this.destroyed||(super.destroy(),this.ƀgb?.destroy(),this.ƀaj?.destroy(),this.ƀjc.destroyAssetOnDestroy&&(M.destroyAsset(this.ƀjc.id),this.ƀhp&&M.destroyAsset(this.ƀhp.texture.id)),this.ƀhp&&!this.ƀhp.destroyed&&this.ƀhp.destroy());}setTextureScale(t){return this.textureScale=t,this}get textureScale(){return this.ƀjt}set textureScale(t){this.ƀjt=t,this.pixiSprite.scale.set(t);}get size(){return new helpersLib.Vector(this.pixiSprite.width,this.pixiSprite.height)}getMask(){return this.pixiSprite}set interactive(t){super.interactive=t,t&&this.ƀjc.boundingShapes&&!this.pixiContainer.hitArea&&(this.pixiContainer.hitArea=new we(this.ƀjc.boundingShapes,this.size,helpersLib.Vector.fromVec2(this.ƀjc.anchor)));}setMipmap(t){return this.mipmap=t,this}get mipmap(){return this.pixiSprite.texture.baseTexture.mipmap===V__namespace.MIPMAP_MODES.ON}set mipmap(t){t?this.pixiSprite.texture.baseTexture.mipmap=V__namespace.MIPMAP_MODES.ON:this.pixiSprite.texture.baseTexture.mipmap=V__namespace.MIPMAP_MODES.OFF;}setBlendMode(t){return this.blendMode=t,this}get blendMode(){return this.pixiSprite.blendMode}set blendMode(t){this.pixiSprite.blendMode=t;}setTint(t){return this.tint=t,this}get tint(){return new V__namespace.Color(this.pixiSprite.tint).toRgb()}set tint(t){this.pixiSprite.tint=t;}setShapeAlpha(t){return this.pixiSprite.alpha=t,this}get shapeAlpha(){return this.pixiSprite.alpha}set shapeAlpha(t){this.pixiSprite.alpha=t;}setGlowAlpha(t){return this.glowAlpha=t,this}get glowAlpha(){if(this.ƀhp)return this.ƀhp.alpha;throw new Error("Sprite: getGlowFilterAlpha cannot be called before glow filter is added.")}set glowAlpha(t){if(this.ƀhp)this.ƀhp.alpha=t;else throw new Error("Sprite: setGlowFilterAlpha cannot be called before glow filter is added.")}getAlignmentVector(t){let e=helpersLib.Vector.fromVec2(this.ƀjc.anchor).to(t);return new helpersLib.Vector(this.size.x*e.x,this.size.y*e.y)}setGlowEffect(t){return this.ƀhp&&(this.ƀhp.destroy(),this.ƀhp=void 0),t&&(this.ƀhp=Zt.createGlowSpriteFromSprite(this.pixiSprite,t,!this.ƀjc.destroyAssetOnDestroy),this.ƀhp.position.set(this.pixiSprite.x,this.pixiSprite.y),this.ƀhp.scale.set(this.pixiSprite.scale.x,this.pixiSprite.scale.y),this.pixiContainer.addChild(this.ƀhp)),this}showBoundingShape(t){return t?this.ƀaj||(this.ƀaj=this.ƀbs().setAlpha(.3).setTint({r:0,g:0,b:200}).displayParent(this)):this.ƀaj&&(this.ƀaj.destroy(),this.ƀaj=void 0),this}getBoundingMask(){if(!this.ƀgb){if(!this.ƀjc.boundingShapes)throw new Error("Sprite: cropOverflowingParts cannot be used without polygonDefinition!");this.ƀgb=this.ƀbs(),this.ƀgb.pixiSprite._maskRefCount=Number.POSITIVE_INFINITY,this.ƀgb.pixiSprite.renderable=false,this.ƀgb.displayParent(this);}return this.ƀgb}ƀbs(){if(!this.ƀjc.boundingShapes)throw new Error("Sprite: bounding shape cannot be created without polygonDefinition!");return T.createPolygon(this.ƀjc.boundingShapes,helpersLib.ColorHelper.white).toSprite().attach(this)}download(){let t=w.instance.renderer.extract.canvas(this.pixiContainer);if(!t.toBlob)throw new Error("Sprite: canvas.toBlob is undefined!");return t.toBlob(e=>{if(!e)throw new Error("Sprite: blob is undefined!");let i=document.createElement("a");document.body.append(i),i.download="sprite.png",i.href=URL.createObjectURL(e),i.click(),i.remove();},"image/png"),this}};var Ee=class{static{h(this,"DashedLineHelper");}static getLines(t,e,i){let r=helpersLib.Vector.fromTo(t,e),s=r.normalize(),n=r.length-i.lineStartGap-i.lineEndGap,a=[];if(n<=0)return a;let l=t.add(s.normalize(i.lineStartGap));if(n<=i.dashGap+i.dashLength*.5)return a.push({from:l,to:l.add(s.normalize(n))}),a;let c=n-i.dashGap,p=i.dashLength+i.dashGap,m=Math.floor(c/p),g=c-p*m;m>=1&&g<i.dashLength&&(g+=p,m--);let E=s.normalize(g/2),vt=s.normalize(i.dashGap);if(a.push({from:l,to:l.add(E)}),l=l.add(E),m>0){let ne=s.normalize(i.dashLength);helpersLib.ArrayHelper.createEmptyArray(m).forEach(()=>{l=l.add(vt),a.push({from:l,to:l.add(ne)}),l=l.add(ne);});}return l=l.add(vt),a.push({from:l,to:l.add(E)}),a}};var T=class o extends u{static{h(this,"Graphics");}static{this.ƀcq=new Map;}static createArrow(t,e){let i=new V__namespace.Graphics,r=[[{x:0,y:-t/2},{x:t*3/8,y:-t/8},{x:t/4,y:0},{x:0,y:-t/4},{x:-t/4,y:0},{x:-t*3/8,y:-t/8}],[{x:0,y:-t/4},{x:t/8-t/30,y:-t/8-t/30},{x:t/8-t/30,y:t*7/16},{x:-t/8+t/30,y:t*7/16},{x:-t/8+t/30,y:-t/8-t/30}]];return i.beginFill(e),r.forEach(s=>{i.drawPolygon(s.map(n=>new V__namespace.Point(n.x,n.y)));}),i.endFill(),new o(i,JSON.stringify({type:"arrow",size:t,color:e}))}static createDashedLine(t,e,i){let r={width:2,dashLength:10,dashGap:4,lineStartGap:0,lineEndGap:0,color:helpersLib.ColorHelper.white,...i},s=new V__namespace.Graphics;return s.lineStyle(r.width,r.color),Ee.getLines(t,e,r).forEach(a=>{s.moveTo(a.from.x,a.from.y).lineTo(a.to.x,a.to.y);}),new o(s,JSON.stringify({type:"dashedLine",from:t,to:e,options:r}))}static createVector(t,e,i){let r=new V__namespace.Graphics;return r.lineStyle(2,i),r.moveTo(t.x,t.y),r.lineTo(e.x,e.y),r.lineStyle(1,i),r.beginFill(helpersLib.ColorHelper.white),r.drawCircle(t.x,t.y,3),r.endFill(),new o(r,JSON.stringify({type:"line",start:t,end:e,color:i}))}static createRectangleBorders(t,e,i){let r=new V__namespace.Graphics;return r.beginFill(i),r.drawRect(0,0,t.x,e),r.drawRect(0,e,e,t.y-e*2),r.drawRect(t.x-e,e,e,t.y-e*2),r.drawRect(0,t.y-e,t.x,e),r.endFill(),new o(r,JSON.stringify({type:"rectangle-borders",size:t,borderSize:e,color:i}))}static createRectangle(t,e=helpersLib.ColorHelper.white){let i=new V__namespace.Graphics;return i.beginFill(e),i.drawRect(0,0,t.x,t.y),i.endFill(),new o(i,JSON.stringify({type:"rectangle",size:t,color:e}))}static createCircle(t,e){let i=new V__namespace.Graphics;return i.beginFill(e),i.drawCircle(0,0,t),i.endFill(),new o(i,JSON.stringify({type:"circle",radius:t,color:e}))}static createElipse(t,e){let i=new V__namespace.Graphics;return i.beginFill(e),i.drawEllipse(0,0,t.x,t.y),i.endFill(),new o(i,JSON.stringify({type:"elipse",size:t,color:e}))}static createPolygon(t,e){let i=new V__namespace.Graphics,r=JSON.stringify({type:"polygon",polygon:t,color:e});return i.beginFill(e),t.forEach(s=>{i.drawPolygon(s.map(n=>new V__namespace.Point(n.x,n.y)));}),i.endFill(),new o(i,r)}static createRegularPolygon(t,e,i){let r=new V__namespace.Graphics,s=new helpersLib.Radian(helpersLib.PI_360/t);r.beginFill(i),r.moveTo(e,0);for(let n=1;n<=t;n++){let l=s.multiply(n).vector.normalize(e),c=e+l.x,p=e+l.y;r.lineTo(c,p);}return r.endFill(),new o(r,JSON.stringify({type:"regular-polygon",sides:t,radius:e,color:i}))}constructor(t,e){super(),this.pixiContainer.addChild(t),this.pixiGraphics=t,this.ƀal=e;}destroy(){this.destroyed||(super.destroy(),!this.pixiGraphics.destroyed&&this.pixiGraphics.destroy());}toSprite(t){let e={cacheName:this.ƀal,cache:false,...t},i=this.ƀed(e.cacheName,e.cache),r={id:i.assetID,scale:1,size:i.bounds,anchor:{x:0,y:0},boundingShapes:void 0,destroyAssetOnDestroy:!e.cache},s=new X(r,{texturePosition:i.bounds,ignoreAnchor:true});return this.attachToRoot(),this.destroy(),s}ƀed(t,e){if(e){let i=o.ƀcq.get(t);return i||(i=this.ƀce(),o.ƀcq.set(t,i)),i}else return this.ƀce()}ƀce(){let t=w.instance.renderer.generateTexture(this.pixiGraphics);t.id=M.insertAsset(t);let e=this.pixiGraphics.getBounds();return {assetID:t.id,bounds:new helpersLib.Vector(e.x,e.y)}}};var ai=class extends u{static{h(this,"Placeholder");}constructor(t){super(),this.ƀhq=new V__namespace.Graphics,this.ƀhq.beginFill(0,1e-9),this.ƀhq.drawRect(0,0,t.x,t.y),this.ƀhq.endFill(),this.pixiContainer.addChild(this.ƀhq);}destroy(){this.destroyed||(super.destroy(),this.ƀhq.destroy());}};var Ot=class{static{h(this,"TextStyleConverter");}static getPixiTextStyle(t){let e={color:helpersLib.ColorHelper.white,align:"center",fontFamily:"Arial",fontStyle:"normal",fontSize:18,lineHeight:void 0,wordWrapWidth:void 0,lineThrough:false,...t},i=t?.dropShadow===true?{}:t?.dropShadow,r={};if(i){let s={blur:4,angle:helpersLib.Radian.get60,distance:10,color:helpersLib.ColorHelper.black,alpha:.5,...i};r={dropShadow:true,dropShadowBlur:s.blur,dropShadowAngle:s.angle.value,dropShadowDistance:s.distance,dropShadowColor:helpersLib.ColorHelper.rgbToHex(s.color),dropShadowAlpha:s.alpha};}return {fontFamily:e.fontFamily,fill:helpersLib.ColorHelper.rgbToHex(e.color),align:e.align,fontSize:e.fontSize,fontStyle:e.fontStyle,lineHeight:e.lineHeight,wordWrapWidth:e.wordWrapWidth,wordWrap:e.wordWrapWidth!==void 0,lineThrough:e.lineThrough,...r}}};var Ie=class{static{h(this,"RichTextDataInConverter");}static process(t,e){let i=new Set(e.styles?Object.keys(e.styles):[]),r=scriptEngineLib.RichTextSeparator.process(t,i),s=this.ƀfd(r,e),n=this.ƀr(s);return this.ƀja(n)}static ƀfd(t,e){let i=new Map,r=new Map,s=h((a,l)=>{if(r.has(l))return r.get(l);let c=Ot.getPixiTextStyle(a);return r.set(l,c),c},"GetPixiStyle");return t.map(a=>{let{style:l,cacheKey:c}=this.ƀdn(a.tags,e,i),p=s(l,c),m=V__namespace.TextMetrics.measureText(" ",new V__namespace.TextStyle(p),false);return {text:a.text,cacheKey:c,style:l,pixiStyle:p,spaceWidth:m.width}})}static ƀdn(t,e,i){let r=t.join("+");if(i.has(r))return {style:i.get(r),cacheKey:r};let s=this.ƀba(t,e);return i.set(r,s),{style:s,cacheKey:r}}static ƀba(t,e){let i={...e.default};for(let l of t)e.styles&&e.styles[l]&&(i={...i,...e.styles[l]});let{wordWrapWidth:r,align:s,dropShadow:n,...a}=i;return a}static ƀr(t){let e=[],i=[];return t.forEach((r,s)=>{r.text.split(/\r?\n/).forEach((a,l)=>{l>0&&(e.push(i),i=[]),i.push({text:a,cacheKey:r.cacheKey,style:r.style,pixiStyle:r.pixiStyle,spaceWidth:r.spaceWidth});});}),e.push(i),e}static ƀja(t){let e=[];return t.forEach(i=>{if(i.length===0)throw new Error("Internal Error: Line is unexpectedly empty");let r=i.flatMap(s=>this.ƀjb(s.text).map(a=>{let l=new V__namespace.TextStyle(s.pixiStyle),c=V__namespace.TextMetrics.measureText(a,l,false);return {text:a,whitespace:a.trim()==="",style:{cacheKey:s.cacheKey,style:s.style,pixiStyle:l,height:c.height,ascent:c.fontProperties.ascent,descent:c.fontProperties.descent,width:c.width,spaceWidth:s.spaceWidth}}}));e.push(r);}),e}static ƀjb(t){if(t==="")return [""];let e=[],i="",r=t[0]===" ";for(let s=0;s<t.length;s++){let n=t[s],a=n===" ";a===r?i+=n:(e.push(i),i=n,r=a);}return i&&e.push(i),e}};var Ae=class{static{h(this,"ConsistentSpaceTextWrapper");}static wrapText(t,e){return t.forEach(i=>{i.forEach((r,s)=>{if(e.isSpaceAvailable(new helpersLib.Vector(r.style.width,r.style.height)))if(r.whitespace&&s===i.length-2){let n=i[i.length-1];e.isSpaceAvailable(new helpersLib.Vector(n.style.width+r.style.width,n.style.height))?e.insertWord(r):this.ƀkq(r,e);}else e.insertWord(r);else e.lineIsEmpty?e.insertWord(r):r.whitespace?this.ƀkq(r,e):(e.newLine(),e.insertWord(r));}),e.newLine();}),e.print()}static ƀkq(t,e){let i=Math.max(0,Math.floor(e.remainingWidth/t.style.spaceWidth)),r=Math.max(0,Math.min(i,t.text.length-1));if(r>0){let n={text:" ".repeat(r),whitespace:true,style:{...t.style,width:r*t.style.spaceWidth}};e.insertWord(n);}e.newLine();let s=t.text.length-r-1;if(s>0){let n={text:" ".repeat(s),whitespace:true,style:{...t.style,width:s*t.style.spaceWidth}};e.insertWord(n);}}};var Oe=class{static{h(this,"RichTextTypewriter");}get lineIsEmpty(){return this.ƀch.length===0}get remainingWidth(){return this.ƀkp-this.ƀcj}constructor(t,e){if(this.ƀkp=t,this.ƀft=[],this.ƀch=[],this.ƀcj=0,this.ƀfs=new helpersLib.Vector(0,0),this.ƀci=0,this.ƀev=e?.horizontalAlignment??"left",this.ƀkh=e?.verticalAlignment??"bottom",e?.rectangleCutOption){if(e.rectangleCutOption.position.x<0||e.rectangleCutOption.position.x>=this.ƀkp||e.rectangleCutOption.position.y<0)throw new Error("Rectangle cut position is out of bounds");this.ƀck={direction:e.rectangleCutOption.direction,rectangle:this.ƀbo(e.rectangleCutOption)};}}isSpaceAvailable(t){let e=Math.max(this.ƀci,t.y),i=this.ƀdv(this.ƀfs.y,this.ƀfs.y+e);return this.ƀcj+t.x<=i}insertWord(t){let e=Math.max(this.ƀci,t.style.height);if(this.ƀch.length===0){let i=this.ƀdw(this.ƀfs.y,this.ƀfs.y+e);this.ƀfs=new helpersLib.Vector(i,this.ƀfs.y),this.ƀcj=this.ƀfs.x;}this.ƀch.push({chunk:t,position:new helpersLib.Vector(this.ƀcj,this.ƀfs.y)}),this.ƀci=e,this.ƀcj+=t.style.width;}newLine(){let t=this.ƀfs.y+this.ƀci,e=this.ƀdw(t,t);this.ƀdc(),this.ƀfs=new helpersLib.Vector(e,t),this.ƀcj=this.ƀfs.x,this.ƀci=0;}print(){return this.ƀdc(),this.ƀft}ƀdc(){this.ƀch.length>0&&(this.ƀft.push(this.ƀg(this.ƀch)),this.ƀch=[]);}ƀg(t){return t=this.ƀkj(t),t=this.ƀex(t),t}ƀex(t){if(this.ƀev==="left")return t;let e=this.ƀfs.y+this.ƀci,i=this.ƀdw(this.ƀfs.y,e),s=this.ƀdv(this.ƀfs.y,e)-i,n=Math.min(s,t.reduce((l,c)=>l+c.chunk.style.width,0)),a;return this.ƀev==="center"?a=(s-n)/2:a=s-n,t.map(l=>(l={chunk:l.chunk,position:new helpersLib.Vector(l.position.x+a,l.position.y)},l))}ƀkj(t){let e=Math.max(...t.map(r=>r.chunk.style.ascent)),i=Math.max(...t.map(r=>r.chunk.style.descent));return t.map(r=>{let s;switch(this.ƀkh){case "top":s=i-r.chunk.style.descent;break;case "center":s=(i-r.chunk.style.descent+e-r.chunk.style.ascent)*.5;break;case "bottom":s=e-r.chunk.style.ascent;break;default:{this.ƀkh;throw new Error(`Unexpected case! "${this.ƀkh}"`)}}return r={chunk:r.chunk,position:new helpersLib.Vector(r.position.x,r.position.y+s)},r})}ƀdw(t,e){return this.ƀck&&(this.ƀck.direction==="topLeft"||this.ƀck.direction==="bottomLeft")&&(this.ƀck.rectangle.isPointInside(new helpersLib.Vector(0,t),{includeEdges:false})||this.ƀck.rectangle.isPointInside(new helpersLib.Vector(0,e),{includeEdges:false}))?this.ƀck.rectangle.bottomRight.x:0}ƀdv(t,e){return this.ƀck&&(this.ƀck.direction==="topRight"||this.ƀck.direction==="bottomRight")&&(this.ƀck.rectangle.isPointInside(new helpersLib.Vector(this.ƀkp,t),{includeEdges:false})||this.ƀck.rectangle.isPointInside(new helpersLib.Vector(this.ƀkp,e),{includeEdges:false}))?this.ƀck.rectangle.topLeft.x:this.ƀkp}ƀbo(t){let e,i;switch(t.direction){case "topRight":e=new helpersLib.Vector(t.position.x,-1/0),i=new helpersLib.Vector(1/0,t.position.y);break;case "topLeft":e=new helpersLib.Vector(-1/0,-1/0),i=t.position;break;case "bottomRight":e=t.position,i=new helpersLib.Vector(1/0,1/0);break;case "bottomLeft":e=new helpersLib.Vector(-1/0,t.position.y),i=new helpersLib.Vector(t.position.x,1/0);break;default:{t.direction;throw new Error(`Unexpected case! "${t.direction}"`)}}return new helpersLib.Rectangle(e,i)}};var Me=class{static{h(this,"RichTextDataOutConverter");}static process(t){return t=this.ƀgf(t),t=this.ƀjz(t),this.ƀau(t)}static ƀgf(t){return t.map(e=>{let i=[],r,s=true;return e.forEach(n=>{if(!r||r.chunk.style.cacheKey!==n.chunk.style.cacheKey)r&&i.push(r),r=n,s=n.chunk.whitespace;else {let a=r.chunk.text+n.chunk.text;s=n.chunk.whitespace&&s,r={chunk:{text:a,whitespace:s,style:{...r.chunk.style,width:r.chunk.style.width+n.chunk.style.width}},position:r.position};}}),r&&i.push(r),i})}static ƀjz(t){return t.map(e=>{if(e.length===0)return [];let i=e.pop();if(!i.chunk.whitespace||i.chunk.text===""){let r=i.chunk.text.length,s=i.chunk.text.trimEnd();r!==s.length?e.push({chunk:{text:s,whitespace:false,style:{...i.chunk.style,width:i.chunk.style.width-(r-s.length)*i.chunk.style.spaceWidth}},position:i.position}):e.push(i);}return e})}static ƀau(t){return t.flatMap(e=>e.map(i=>({text:i.chunk.text,style:i.chunk.style.style,position:i.position}))).filter(e=>e.text.trim()!=="")}};var qt=class{static{h(this,"RichTextToPlaneText");}static process(t,e){if(e.default.wordWrapWidth===void 0){if(e.default.align==="right"||e.default.align==="center")throw new Error("wordWrapWidth is required for right or center alignment");if(e.rectangleCut&&(e.rectangleCut.direction==="topRight"||e.rectangleCut.direction==="bottomRight"))throw new Error("wordWrapWidth is required for topRight or bottomRight rectangle cut")}let i=Ie.process(t,e),r=new Oe(e.default.wordWrapWidth??1/0,{rectangleCutOption:e.rectangleCut,verticalAlignment:e.verticalAlignment,horizontalAlignment:e.default.align}),s=Ae.wrapText(i,r);return Me.process(s)}};var Cs=1,$i=1/Cs,te=class extends u{static{h(this,"Text");}get ƀjr(){if(!this.ƀjs){let t=new V__namespace.TextStyle(this.ƀhs);this.ƀjs=V__namespace.TextMetrics.measureText(this.ƀjq,t);}return this.ƀjs}get ascent(){return this.ƀjr.fontProperties.ascent}constructor(t,e){super(),this.ƀhs=Ot.getPixiTextStyle(e),this.setText(t);}destroy(){this.destroyed||(super.destroy(),!this.ƀhr.destroyed&&this.ƀhr.destroy());}setAnchor(t){return this.anchor=t,this}get anchor(){return new helpersLib.Vector(this.ƀhr.anchor.x,this.ƀhr.anchor.y)}set anchor(t){this.ƀhr.anchor.set(t.x,t.y);}setPosition(t,e){if(e?.holdFrom){let i=this.ƀhs.dropShadowDistance??0,r=new helpersLib.Vector(e.holdFrom.x*i,e.holdFrom.y*i);t=t.add(r);}return super.setPosition(t,e),this}setText(t){return this.ƀjq!==t&&(this.ƀjq=t,this.ƀhz()),this}setColor(t){let e=helpersLib.ColorHelper.rgbToHex(t);return this.ƀhs.fill!==e&&(this.ƀhs.fill=e,this.ƀhz()),this}ƀhz(){this.ƀhr?.destroy(),this.ƀjl?.destroy(),this.ƀjl=void 0,this.ƀjs=void 0;let t=new V__namespace.TextStyle(this.ƀhs);this.ƀhr=new V__namespace.Text(this.ƀjq,t),this.ƀhr.scale.set($i,$i),this.pixiContainer.addChild(this.ƀhr),this.ƀhs.lineThrough&&(this.ƀjl=this.ƀe(this.ƀhr,this.ƀhs.fill),this.pixiContainer.addChild(this.ƀjl));}ƀe(t,e){let i=V__namespace.TextMetrics.measureText(t.text,t.style),r=Math.max(1,Math.round(i.lineHeight*.07)),s=r%2*.5,n=new V__namespace.Graphics;n.lineStyle(r,e);let a=0;return i.lines.forEach((l,c)=>{let p=V__namespace.TextMetrics.measureText(l,t.style),m=Math.round(a+(p.fontProperties.ascent-p.fontProperties.descent)*.6+p.fontProperties.descent)+s,g=0;t.style.align==="center"?g=0+(t.width-p.width)*.5:t.style.align==="right"&&(g=0+t.width-p.width),g=Math.floor(g),n.moveTo(Math.floor(g),m),n.lineTo(Math.floor(g+p.width),m),a+=p.lineHeight;}),n.endFill(),n}};var hi=class extends u{static{h(this,"RichText");}constructor(t,e){super(),qt.process(t,e).forEach(r=>new te(r.text,r.style).setPosition(r.position).displayParent(this).attach(this));}};var li=class extends u{static{h(this,"UpdatableContainer");}},ci=class extends u{static{h(this,"DisplayObjectArray");}constructor(t,e){super(),this.ƀbu=t,this.ƀcn=new Map,this.ƀgz={trackBy:h((i,r)=>r,"trackBy"),positioning:{direction:"vertical",spacing:0},...e};}set(t){let e=new Set(this.ƀcn.keys()),i=0;t.forEach((r,s)=>{let n=this.ƀgz.trackBy(r,s),a;this.ƀcn.has(n)?(a=this.ƀcn.get(n),e.delete(n),a.update(r)):(a=this.ƀbu(r).displayParent(this).attach(this),this.ƀcn.set(n,a)),this.ƀgz.positioning.direction==="horizontal"?(a.x=i,i+=a.size.x+this.ƀgz.positioning.spacing):(a.y=i,i+=a.size.y+this.ƀgz.positioning.spacing);}),e.forEach(r=>{this.ƀcn.get(r).destroy(),this.ƀcn.delete(r);});}};var Dt=class o extends u{static{h(this,"Menu");}static{this.ƀjx=false;}static closeAll(){return o.ƀgy?o.ƀgy.close():actionsLib.SingleEvent.instant()}constructor(t,e){super(),this.ƀgr=new actionsLib.SingleAction,this.onOpen=this.ƀgr.notifier,this.ƀgm=new actionsLib.SingleAction,this.onClose=this.ƀgm.notifier;let i={closeOnBackgroundClick:true,appearAnimationDuration:150,darkeningAlpha:.3,...e};this.setZIndex(100).setAlpha(0),this.ƀn=new A(this,"alpha",{animation:S.easeInOutCubic,duration:i.appearAnimationDuration,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀz=T.createRectangle(new helpersLib.Vector(1,1),helpersLib.ColorHelper.black).toSprite({cache:true}).setAlpha(i.darkeningAlpha).setInteractive(true).displayParent(this).attach(this),this.ƀge=X.createByName(t).setPosition(new helpersLib.Vector(0,0)).setInteractive(true).displayParent(this).attach(this),w.instance.screenSize.subscribe(r=>{this.ƀz.aspectRatio=r.x/r.y,this.ƀz.scale=Math.max(r.x,r.y),this.ƀz.setPosition(helpersLib.Vector.zero,{holdFrom:helpersLib.Vector.half}),this.setPosition(r.multiplyNumber(.5));}).attach(this),o.ƀgy=this,this.onDestroy().tap(()=>{o.ƀgy=void 0;}).attachToRoot(),i.closeOnBackgroundClick&&this.ƀz.on(exports.ContainerEventType.Click,()=>{o.ƀjx||this.ƀp(false);}).attach(this),this.ƀp(true);}getBoundingMask(){return this.ƀge.getBoundingMask()}close(){return this.ƀp(false)}ƀp(t){if(o.ƀjx)throw new Error("WindowUI: cannot iterate while in transition");return o.ƀjx=true,this.ƀn.animate({alpha:t?1:0}).chain(this).tap(()=>{o.ƀjx=false,t?this.ƀgr.resolve():(this.ƀgm.resolve(),this.destroy());}).chainToRoot()}};var di=class extends ut{static{h(this,"MenuEntity");}constructor(t,e){super(),this.ƀgp=new actionsLib.SingleAction,this.onCreate=this.ƀgp.notifier,this.ƀgr=new actionsLib.SingleAction,this.onOpen=this.ƀgr.notifier,this.ƀgm=new actionsLib.SingleAction,this.onClose=this.ƀgm.notifier,Dt.closeAll().tap(()=>{if(!Pt.getActiveScene())throw new Error("WindowEntity: constructor is called when there is no active scene!");w.pause.effect(true).attach(this),this.ƀge=new Dt(t,e).displayParent(w.camera.layers.foregroundScreen).attach(this),this.ƀgp.resolve(this.ƀge),this.ƀge.onOpen.subscribe(()=>this.ƀgr.resolve()).attach(this),this.ƀge.onClose.subscribe(()=>{this.destroy(),this.ƀgm.resolve();}).attach(this);}).attach(this);}getMenuEvents(){return {onOpen:this.onOpen.toSingleEvent().destroyIfNotAttached(),onClose:this.onClose.toSingleEvent().destroyIfNotAttached()}}close(){if(this.ƀge){let t=this.onClose.toSingleEvent().destroyIfNotAttached();return this.ƀge.close(),t}else return this.onCreate.asyncMapQueue(()=>this.close()).singleChain(this)}};var Rs=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Is=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)};exports.MouseService=class mt{static{h(this,"MouseService");}get initialMouseMoveHappened(){return this.ƀff.value}getStagePosition(){return this.ƀjd.value}getScreenPosition(){return this.ƀij.value}getMainButtonState(){return this.ƀfy.value}getSecondaryButtonState(){return this.ƀip.value}constructor(){this.ƀff=new actionsLib.Variable(false),this.onInitialMouseMove=this.ƀff.notifier,this.ƀjd=new actionsLib.Variable(helpersLib.Vector.zero,{notifyOnChange:true}),this.stagePosition=this.ƀjd.notifier,this.ƀij=new actionsLib.Variable(helpersLib.Vector.zero,{notifyOnChange:true}),this.screenPosition=this.ƀij.notifier,this.ƀfy=new actionsLib.Variable(false),this.mainButtonState=this.ƀfy.notifier,this.ƀip=new actionsLib.Variable(false),this.secondaryButtonState=this.ƀip.notifier,this.ƀje(),window.addEventListener("mousedown",t=>{t.button===0?this.ƀfy.value=true:t.button===2&&(this.ƀip.value=true);}),window.addEventListener("mouseup",t=>{t.button===0?this.ƀfy.value=false:t.button===2&&(this.ƀip.value=false);}),window.addEventListener("blur",()=>{this.ƀfy.value=false,this.ƀip.value=false;});}ƀje(){let t=helpersLib.Vector.zero;window.addEventListener("mousemove",e=>{t=new helpersLib.Vector(e.clientX,e.clientY),this.ƀff.value=true;}),y.beforeSceneUpdateAction.subscribe(()=>{this.ƀij.value=t;}).attachToRoot(),y.afterSceneUpdateAction.subscribe(()=>{let e=w.instance.screenPositonToStagePosition(this.ƀij.value);e.isEqual(this.ƀjd.value)?w.instance.renderer.events.onPointerMove(new PointerEvent("pointermove",{clientX:this.ƀij.value.x,clientY:this.ƀij.value.y,pointerType:"mouse"})):this.ƀjd.value=e;}).attachToRoot();}};exports.MouseService=Rs([d(),Is("design:paramtypes",[])],exports.MouseService);var ie=class extends u{static{h(this,"MouseWheelListenerUI");}constructor(t){super(),this.ƀgv=new actionsLib.Action,this.onWheel=this.ƀgv.notifier,this.ƀeq=(e=>{let i=P.get(exports.MouseService).getScreenPosition(),r=this.ƀko.getBounds();i.x>=r.x&&i.x<=r.x+r.width&&i.y>=r.y&&i.y<=r.y+r.height&&this.ƀgv.trigger(e.deltaY);}).bind(this),this.ƀko=new V__namespace.Graphics,this.ƀko.beginFill(0,1e-9),this.ƀko.drawRect(0,0,t.x,t.y),this.ƀko.endFill(),this.pixiContainer.addChild(this.ƀko),window.addEventListener("wheel",this.ƀeq);}destroy(){this.destroyed||(super.destroy(),this.ƀko.destroy(),window.removeEventListener("wheel",this.ƀeq));}};var Ms=.65,Ds=.01,Ge=class{static{h(this,"SmoothScroller");}get scrollHeight(){return this.ƀin}get contentSize(){return this.ƀbh.size.ceil()}constructor(t,e,i,r){this.ƀbh=t,this.ƀu=e,this.ƀhb=i,this.ƀiz=r,this.ƀfg=false,this.ƀin=e-i*2,this.ƀbh.y=i,this.ƀjm=i;}onWheel(t){this.setTarget(this.ƀjm-t*Ms);}scrollToTop(){this.setTarget(1/0);}scrollToBottom(){this.setTarget(-1/0);}setTarget(t){this.ƀjm=helpersLib.NumberHelper.clamp(t,this.ƀu-this.ƀhb-this.contentSize.y,this.ƀhb);}jumpToTarget(){this.ƀbh.y=this.ƀjm;}update(t){let e=this.contentSize;if(e.y<=this.ƀin){switch(this.ƀiz){case "start":this.ƀjm=this.ƀhb;break;case "center":this.ƀjm=(this.ƀu-e.y)*.5;break;case "end":this.ƀjm=this.ƀu-e.y-this.ƀhb;break;default:{this.ƀiz;throw new Error(`Unexpected case! "${this.ƀiz}"`)}}this.ƀfg||(this.ƀbh.y=this.ƀjm);}this.ƀfg=true;let i=this.ƀjm-this.ƀbh.y;this.ƀbh.y=this.ƀbh.y+i*Ds*t;}};var fi=class{static{h(this,"AnimationEaseInOutFlatter");}start(){}multiplierFunction(t){return 3*(1-t)*Math.pow(t,2)+Math.pow(t,3)}},gt=class o extends u{static{h(this,"ScrollMaskUI");}static{this.ƀcq=new Map;}constructor(t,e,i,r=exports.ScrollDirection.Vertical){if(super(),i<0)throw new Error("The padding of the scroll mask cannot be lower than '0'");if(e.y<i*2)throw new Error(`The height of the scroll mask cannot be lower than '${i*2}'`);let s=new u;r===exports.ScrollDirection.Horizontal?this.ƀby(e,i,s):this.ƀcf(e,i,s),this.ƀgb=X.createSnapshotSprite(s).attach(this),s.destroy(),t.setMask(this.ƀgb);}ƀcf(t,e,i){e>0&&this.ƀbv(new helpersLib.Vector(t.x,e)).displayParent(i).attach(i),T.createRectangle(new helpersLib.Vector(t.x,t.y-e*2),helpersLib.ColorHelper.white).toSprite().setPosition(new helpersLib.Vector(0,e),{round:false}).displayParent(i).attach(i),e>0&&this.ƀbv(new helpersLib.Vector(t.x,e)).setPosition(new helpersLib.Vector(t.x,t.y),{round:false}).setRotation(helpersLib.Radian.get180).displayParent(i).attach(i);}ƀby(t,e,i){e>0&&this.ƀbv(new helpersLib.Vector(t.y,e)).setPosition(new helpersLib.Vector(0,t.y),{round:false}).setRotation(helpersLib.Radian.get270).displayParent(i).attach(i),T.createRectangle(new helpersLib.Vector(t.x-e*2,t.y),helpersLib.ColorHelper.white).toSprite().setPosition(new helpersLib.Vector(e,0),{round:false}).displayParent(i).attach(i),e>0&&this.ƀbv(new helpersLib.Vector(t.y,e)).setPosition(new helpersLib.Vector(t.x,0),{round:false}).setRotation(helpersLib.Radian.get90).displayParent(i).attach(i);}ƀbv(t){let i={id:this.ƀbw(t.y),scale:1,size:t,anchor:{x:0,y:0},boundingShapes:void 0};return new X(i,{textureSize:t,ignoreAnchor:true})}ƀbw(t){let e=JSON.stringify({type:"gradient",length:t}),i=o.ƀcq.get(e);if(!i){let r=document.createElement("canvas");r.width=1,r.height=t;let s=r.getContext("2d");if(s){let n=new fi;helpersLib.ArrayHelper.createIntegerArray(t).forEach(l=>{let c=`rgba(255, 255, 255, ${n.multiplierFunction(l/t)})`;s.fillStyle=c,s.fillRect(0,l,1,1);});let a=V__namespace.Texture.from(r);i=M.insertAsset(a),o.ƀcq.set(e,i);}else throw new Error("Canvas context is null")}return i}};var _s=15,mi=class extends u{static{h(this,"ScrollAreaUI");}get contentAreaSize(){return this.ƀbi}get contentSize(){return this.ƀio.contentSize}constructor(t,e={}){super();let i={padding:_s,smallContentAlign:"start",...e};if(i.padding<0)throw new Error("The padding of the scroll mask cannot be lower than '0'");if(i.padding>t.y*.5)throw new Error("The padding of the scroll mask cannot be higher than half of the size of the area");let r=new u().displayParent(this).attach(this);new gt(r,t,i.padding).attach(this);let s=new u().displayParent(r).attach(this);this.ƀio=new Ge(s,t.y,i.padding,i.smallContentAlign),this.ƀbi=new helpersLib.Vector(t.x,this.ƀio.scrollHeight),new ie(t).displayParent(r).attach(this).onWheel.subscribe(a=>this.ƀio.onWheel(a)).attach(this),y.afterSceneUpdateAction.subscribe(a=>this.ƀio.update(a.delta)).attach(this),this.addChildTo=s;}scrollToTop(t){this.ƀio.scrollToTop(),t?.instant&&this.ƀio.jumpToTarget();}scrollToBottom(t){this.ƀio.scrollToBottom(),t?.instant&&this.ƀio.jumpToTarget();}};var Fs=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Ls=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)};exports.KeyboardService=class gi{static{h(this,"KeyboardService");}constructor(){this.ƀfo=new actionsLib.Action,this.keyPressed=this.ƀfo.notifier,this.ƀfp=new actionsLib.Action,this.keyReleased=this.ƀfp.notifier,this.ƀfv=new Set,this.ƀfu=new Set,window.addEventListener("keydown",t=>{this.ƀfv.add(t.key),this.ƀfu.add(t.key),!t.repeat&&this.ƀfo.trigger(t.key);}),window.addEventListener("keyup",t=>{this.ƀfv.delete(t.key),this.ƀfp.trigger(t.key);}),window.addEventListener("blur",()=>{this.ƀfv.clear();}),y.afterSceneUpdateAction.subscribe(()=>{this.ƀfu.clear();}).attachToRoot();}isKeyDown(t){return this.ƀfv.has(t)}isKeyJustPressed(t){return this.ƀfu.has(t)}};exports.KeyboardService=Fs([d(),Ls("design:paramtypes",[])],exports.KeyboardService);var Vs=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Ns=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)};exports.MouseTargetFocusService=class yi{static{h(this,"MouseTargetFocusService");}get focusedInLastFrame(){return this.ƀdd}get lastFocusedPosition(){return this.ƀfr}constructor(t){this.ƀgh=t,this.ƀgt=new actionsLib.Action,this.onTargetFocus=this.ƀgt.notifier,this.ƀjw=0,this.ƀjy=false,this.ƀdd=false,this.ƀfr=void 0,y.beforeSceneUpdateAction.subscribe(e=>this.ƀka(e.delta)).attachToRoot();}ƀka(t){if(this.ƀgi){let e=this.ƀec(this.ƀgh.getStagePosition(),this.ƀgi);this.ƀhd===void 0?this.ƀhd=e:this.ƀat(e,t);}this.ƀgi=this.ƀgh.getStagePosition();}ƀat(t,e){this.ƀhd-t>10?(this.ƀjw=Math.max(250,this.ƀjw),this.ƀjy=true):this.ƀjw>1e3&&(this.ƀjy=true);let i=this.ƀjw>=300&&this.ƀjy;this.ƀfm(i,t,e);}ƀfm(t,e,i){(t||e>this.ƀhd)&&(this.ƀhd=e),t?(this.ƀjy=false,this.ƀjw=0,this.ƀdd=true,this.ƀfr=this.ƀgh.getStagePosition(),this.ƀgt.trigger(this.ƀfr)):(this.ƀjw+=i,this.ƀdd=false);}ƀec(t,e){let i=helpersLib.Vector.fromTo(t,e);return Math.abs(i.x)+Math.abs(i.y)}};exports.MouseTargetFocusService=Vs([d(),Ns("design:paramtypes",[exports.MouseService])],exports.MouseTargetFocusService);var x;(function(o){o[o.Hidden=1]="Hidden",o[o.Visible=2]="Visible",o[o.Appearing=3]="Appearing",o[o.Disappearing=4]="Disappearing",o[o.DisappearToChange=5]="DisappearToChange";})(x||(x={}));var _e=class extends actionsLib.Attachable{static{h(this,"FadeInStateAnimation");}get currentState(){return {value:this.ƀi.value,state:this.ƀjh,queuedState:this.ƀhu,animationState:this.ƀm}}constructor(t){super(),this.ƀi={value:0},this.ƀm=x.Hidden,this.ƀgs=new actionsLib.Action,this.ƀgu=new actionsLib.Action,this.ƀgz={duration:500,animation:S.lineer,...t},this.ƀi.value=0,this.ƀn=new A(this.ƀi,"value",{duration:this.ƀgz.duration,animation:this.ƀgz.animation,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀn.value.subscribe(()=>{this.ƀi.value!==1&&this.ƀi.value!==0&&this.ƀgu.trigger(this.ƀi.value);}).attach(this);}setState(t,e){if(e?.instant){this.ƀn.completeAnimation(),this.ƀm=t!==void 0?x.Visible:x.Hidden,this.ƀhu=void 0;let i=t!==void 0?1:0,r=this.ƀjh!==t;r&&(this.ƀjh=t,this.ƀgs.trigger(this.ƀjh)),(r||this.ƀi.value!==i)&&(this.ƀi.value=i,this.ƀgu.trigger(this.ƀi.value));}else switch(this.ƀm){case x.Hidden:t!==void 0&&(this.ƀm=x.Appearing,this.ƀhu=void 0,this.ƀjh=t,this.ƀgs.trigger(this.ƀjh),this.ƀn.animate({value:1}).tap(()=>this.ƀgo()).attach(this));break;case x.Visible:t===void 0?(this.ƀm=x.Disappearing,this.ƀhu=void 0,this.ƀn.animate({value:0}).tap(()=>this.ƀgo()).attach(this)):t!==this.ƀjh&&(this.ƀm=x.DisappearToChange,this.ƀhu=t,this.ƀn.animate({value:0}).tap(()=>this.ƀgo()).attach(this));break;case x.Appearing:t===void 0?(this.ƀm=x.Disappearing,this.ƀhu=void 0,this.ƀn.animate({value:0},{duration:this.ƀi.value*this.ƀgz.duration}).tap(()=>this.ƀgo()).attach(this)):t!==this.ƀjh&&(this.ƀi.value>0?(this.ƀm=x.DisappearToChange,this.ƀhu=t,this.ƀn.animate({value:0},{duration:this.ƀi.value*this.ƀgz.duration}).tap(()=>this.ƀgo()).attach(this)):(this.ƀhu=void 0,this.ƀjh=t,this.ƀgs.trigger(this.ƀjh)));break;case x.Disappearing:t===this.ƀjh?(this.ƀm=x.Appearing,this.ƀn.animate({value:1},{duration:(1-this.ƀi.value)*this.ƀgz.duration}).tap(()=>this.ƀgo()).attach(this)):t!==void 0&&(this.ƀm=x.DisappearToChange,this.ƀhu=t);break;case x.DisappearToChange:t===void 0?(this.ƀm=x.Disappearing,this.ƀhu=void 0):t===this.ƀjh?(this.ƀm=x.Appearing,this.ƀhu=void 0,this.ƀn.animate({value:1},{duration:(1-this.ƀi.value)*this.ƀgz.duration}).tap(()=>this.ƀgo()).attach(this)):t!==this.ƀhu&&(this.ƀhu=t);break;default:{this.ƀm;throw new Error(`Unexpected case! "${this.ƀm}"`)}}}ƀgo(){switch(this.ƀm){case x.Appearing:this.ƀi.value===1&&(this.ƀm=x.Visible,this.ƀgu.trigger(this.ƀi.value));break;case x.Disappearing:if(this.ƀhu!==void 0)throw new Error("FadeInStateAnimation: Unexpected state, disappearing should not have a queued value");this.ƀi.value===0&&(this.ƀm=x.Hidden,this.ƀjh=void 0,this.ƀgs.trigger(this.ƀjh),this.ƀgu.trigger(this.ƀi.value));break;case x.DisappearToChange:if(this.ƀhu===void 0)throw new Error("FadeInStateAnimation: Unexpected state, disappearToChange should always have a queued value");this.ƀi.value===0&&(this.ƀm=x.Appearing,this.ƀjh=this.ƀhu,this.ƀhu=void 0,this.ƀgs.trigger(this.ƀjh),this.ƀgu.trigger(this.ƀi.value),this.ƀn.animate({value:1}).tap(()=>this.ƀgo()).attach(this));break;case x.Hidden:case x.Visible:return;default:{this.ƀm;throw new Error(`Unexpected case! "${this.ƀm}"`)}}}onStateChange(t){return this.ƀgs.subscribe(e=>t(e)).attach(this),this}onValueChange(t){return this.ƀgu.subscribe(e=>t(e)).attach(this),this}};var Zi=class extends u{static{h(this,"FadeInContent");}constructor(t,e){super(),this.ƀbu=t;let i={duration:200,animation:S.easeInOut,...e};this.alpha=0,this.ƀji=new _e(i).onStateChange(r=>{this.ƀbh?.destroy(),this.ƀbh=void 0,r!==void 0&&(this.ƀbh=new u().displayParent(this).attach(this),this.ƀbu({state:r,container:this.ƀbh}));}).onValueChange(r=>{this.alpha=r;}).attach(this);}setState(t,e){return this.ƀji.setState(t,e),this}};var I;(function(o){o[o.Idle=1]="Idle",o[o.Transitioning=2]="Transitioning",o[o.Reverting=3]="Reverting";})(I||(I={}));var Fe=class extends actionsLib.Attachable{static{h(this,"StateAnimation");}get currentState(){return {value:this.ƀi.value,state:this.ƀjh,nextState:this.ƀgk,queuedState:this.ƀhu,animationState:this.ƀm}}constructor(t){super(),this.ƀi={value:0},this.ƀm=I.Idle,this.ƀgs=new actionsLib.Action,this.ƀgu=new actionsLib.Action,this.ƀgz={duration:500,animation:S.lineer,...t},this.ƀn=new A(this.ƀi,"value",{duration:this.ƀgz.duration,animation:this.ƀgz.animation,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀn.value.subscribe(()=>{this.ƀi.value!==1&&this.ƀi.value!==0&&this.ƀgu.trigger(this.ƀi.value);}).attach(this);}setState(t,e){if(this.ƀjh===void 0)this.ƀjh=t,this.ƀgs.trigger({state:this.ƀjh,nextState:this.ƀgk}),this.ƀgu.trigger(this.ƀi.value);else if(e?.instant)this.ƀn.completeAnimation(),this.ƀm=I.Idle,this.ƀjh=t,this.ƀgk=void 0,this.ƀi.value=0,this.ƀgs.trigger({state:this.ƀjh,nextState:this.ƀgk}),this.ƀgu.trigger(this.ƀi.value);else switch(this.ƀm){case I.Idle:t!==this.ƀjh&&(this.ƀm=I.Transitioning,this.ƀgk=t,this.ƀi.value=0,this.ƀgs.trigger({state:this.ƀjh,nextState:this.ƀgk}),this.ƀgu.trigger(this.ƀi.value),this.ƀn.animate({value:1}).tap(()=>this.ƀgo()).attach(this));break;case I.Transitioning:t!==this.ƀgk&&(t===this.ƀjh?(this.ƀm=I.Reverting,this.ƀn.animate({value:0},{duration:this.ƀi.value*this.ƀgz.duration}).tap(()=>this.ƀgo()).attach(this)):this.ƀhu=t);break;case I.Reverting:t!==this.ƀjh&&(t===this.ƀgk?(this.ƀm=I.Transitioning,this.ƀn.animate({value:1},{duration:(1-this.ƀi.value)*this.ƀgz.duration}).tap(()=>this.ƀgo()).attach(this)):this.ƀhu=t);break;default:{this.ƀm;throw new Error(`Unexpected case! "${this.ƀm}"`)}}}ƀgo(){switch(this.ƀm){case I.Transitioning:this.ƀi.value===1&&(this.ƀi.value=0,this.ƀhu!==void 0?(this.ƀm=I.Transitioning,this.ƀjh=this.ƀgk,this.ƀgk=this.ƀhu,this.ƀhu=void 0,this.ƀgs.trigger({state:this.ƀjh,nextState:this.ƀgk}),this.ƀn.animate({value:1}).tap(()=>this.ƀgo()).attach(this)):(this.ƀm=I.Idle,this.ƀjh=this.ƀgk,this.ƀgk=void 0,this.ƀgs.trigger({state:this.ƀjh,nextState:this.ƀgk})),this.ƀgu.trigger(this.ƀi.value));break;case I.Reverting:if(this.ƀjh===void 0)throw new Error("StateAnimation: state must be defined when reverting!");this.ƀi.value===0&&(this.ƀhu!==void 0?(this.ƀm=I.Transitioning,this.ƀgk=this.ƀhu,this.ƀhu=void 0,this.ƀi.value=0,this.ƀgs.trigger({state:this.ƀjh,nextState:this.ƀgk}),this.ƀn.animate({value:1}).tap(()=>this.ƀgo()).attach(this)):(this.ƀm=I.Idle,this.ƀgk=void 0,this.ƀi.value=0,this.ƀgs.trigger({state:this.ƀjh,nextState:this.ƀgk})),this.ƀgu.trigger(this.ƀi.value));break;case I.Idle:break;default:{this.ƀm;throw new Error(`Unexpected case! "${this.ƀm}"`)}}}onStateChange(t){return this.ƀgs.subscribe(e=>t(e.state,e.nextState)).attach(this),this}onValueChange(t){return this.ƀgu.subscribe(e=>t(e)).attach(this),this}};exports.SlideStateAnimationState=void 0;(function(o){o[o.Appear=1]="Appear",o[o.Disappear=2]="Disappear";})(exports.SlideStateAnimationState||(exports.SlideStateAnimationState={}));var C;(function(o){o[o.Idle=1]="Idle",o[o.TransitionForward=2]="TransitionForward",o[o.TransitionBackward=3]="TransitionBackward",o[o.Reverting=4]="Reverting";})(C||(C={}));var Le=class extends actionsLib.Attachable{static{h(this,"SlideStateAnimation");}constructor(t){super(),this.ƀm=C.Idle,this.ƀgs=new actionsLib.Action,this.ƀgu=new actionsLib.Action,this.ƀgz={duration:500,animation:S.easeInOutCubic,...t},this.ƀji=new Fe({duration:this.ƀgz.duration,animation:this.ƀgz.animation}).onStateChange((e,i)=>this.ƀeo(e,i)).onValueChange(e=>this.ƀep(e)).attach(this);}setIndex(t,e){if(!helpersLib.Comparator.isInteger(t))throw new Error("SlideStateAnimation: index must be an integer!");this.ƀfe===void 0?(this.ƀfe=t,this.ƀgs.trigger({state:exports.SlideStateAnimationState.Appear,index:t}),this.ƀji.setState(t,e)):this.ƀfe!==t?this.ƀgj!==t?this.ƀm===C.Idle?(this.ƀm=t>this.ƀfe?C.TransitionForward:C.TransitionBackward,this.ƀgj=t,this.ƀgs.trigger({state:exports.SlideStateAnimationState.Appear,index:this.ƀgj}),this.ƀji.setState(t,e)):this.ƀji.setState(t,e):this.ƀm===C.Reverting&&this.ƀgj===t&&(this.ƀm=t>this.ƀfe?C.TransitionForward:C.TransitionBackward,this.ƀji.setState(t,e)):(this.ƀm===C.TransitionForward||this.ƀm===C.TransitionBackward)&&(this.ƀm=C.Reverting,this.ƀji.setState(t,e));}ƀeo(t,e){switch(this.ƀfe!==void 0&&this.ƀfe!==t&&this.ƀfe!==e&&this.ƀgs.trigger({state:exports.SlideStateAnimationState.Disappear,index:this.ƀfe}),this.ƀgj!==void 0&&this.ƀgj!==t&&this.ƀgj!==e&&this.ƀgs.trigger({state:exports.SlideStateAnimationState.Disappear,index:this.ƀgj}),e!==void 0&&e!==this.ƀfe&&e!==this.ƀgj&&this.ƀgs.trigger({state:exports.SlideStateAnimationState.Appear,index:e}),this.ƀm){case C.Idle:break;case C.TransitionForward:case C.TransitionBackward:e===void 0?(this.ƀm=C.Idle,this.ƀfe=this.ƀgj,this.ƀgj=void 0):this.ƀfe!==t&&this.ƀem(t,e);break;case C.Reverting:e===void 0?(this.ƀm=C.Idle,this.ƀgj=void 0):this.ƀfe!==e&&this.ƀem(t,e);break;default:{this.ƀm;throw new Error(`Unexpected case! "${this.ƀm}"`)}}}ƀep(t){let e=1;(this.ƀm===C.TransitionBackward||this.ƀm===C.Reverting&&this.ƀfe!==void 0&&this.ƀgj!==void 0&&this.ƀfe>this.ƀgj)&&(e=-1),(this.ƀm===C.Idle||t!==0)&&this.ƀgu.trigger({value:helpersLib.NumberHelper.ensurePositiveZero(-e*t),index:this.ƀfe}),this.ƀgj!==void 0&&this.ƀgu.trigger({value:helpersLib.NumberHelper.ensurePositiveZero(e*(1-t)),index:this.ƀgj});}ƀem(t,e){this.ƀfe=t,this.ƀgj=e,this.ƀgu.trigger({value:0,index:this.ƀfe}),this.ƀm=this.ƀfe<this.ƀgj?C.TransitionForward:C.TransitionBackward;}onStateChange(t){return this.ƀgs.subscribe(e=>t(e.state,e.index)).attach(this),this}onValueChange(t){return this.ƀgu.subscribe(e=>t(e.value,e.index)).attach(this),this}};exports.ScrollDirection=void 0;(function(o){o[o.Horizontal=1]="Horizontal",o[o.Vertical=2]="Vertical";})(exports.ScrollDirection||(exports.ScrollDirection={}));var wi=class extends u{static{h(this,"SlideInContentByIndex");}constructor(t,e){super(),this.ƀbu=t,this.ƀcl="x",this.ƀbj=new Map,this.ƀgz={duration:300,animation:S.easeInOutCubic,size:new helpersLib.Vector(500,500),margin:20,direction:exports.ScrollDirection.Horizontal,...e};let i=this.ƀgz.direction===exports.ScrollDirection.Horizontal?new helpersLib.Vector(this.ƀgz.size.x+this.ƀgz.margin*2,this.ƀgz.size.y):new helpersLib.Vector(this.ƀgz.size.x,this.ƀgz.size.y+this.ƀgz.margin*2),r=new u().setPosition(this.ƀgz.direction===exports.ScrollDirection.Horizontal?new helpersLib.Vector(-this.ƀgz.margin,0):new helpersLib.Vector(0,-this.ƀgz.margin),{round:false}).displayParent(this).attach(this);this.ƀbz(i,this.ƀgz.margin,this.ƀgz.direction,r),this.ƀcl=this.ƀgz.direction===exports.ScrollDirection.Horizontal?"x":"y",this.ƀji=new Le({duration:this.ƀgz.duration,animation:this.ƀgz.animation}).onStateChange((s,n)=>{if(s===exports.SlideStateAnimationState.Appear){let a=new u().displayParent(this).attach(this);this.ƀbj.set(n,a),this.ƀbu({index:n,container:a});}else {let a=this.ƀbj.get(n);a&&(a.destroy(),this.ƀbj.delete(n));}}).onValueChange((s,n)=>{let a=this.ƀbj.get(n);if(a){let l={x:0,y:0};l[this.ƀcl]=i[this.ƀcl]*s+this.ƀgz.margin,a.setPosition(helpersLib.Vector.fromVec2(l),{round:false});}}).attach(this),this.addChildTo=r;}setIndex(t,e){return this.ƀji.setIndex(t,e),this}ƀbz(t,e,i,r){new gt(r,new helpersLib.Vector(t.x,t.y),e,i).attach(this);}},er=class extends wi{static{h(this,"SlideInContent");}constructor(t,e,i){super(r=>{let s=this.indexToItem.get(r.index);if(s)e({index:r.index,item:s,container:r.container});else throw new Error(`SlideInContent: The item with index '${r.index}' is not part of the items list`)},i),this.itemToIndex=new Map,this.indexToItem=new Map,t.forEach((r,s)=>{this.itemToIndex.set(r,s),this.indexToItem.set(s,r);});}setItem(t,e){let i=this.itemToIndex.get(t);if(i!==void 0)this.setIndex(i,e);else throw new Error(`SlideInContent: The item '${t}' is not part of the items list`);return this}};var wt=class{static{h(this,"VectorSet");}constructor(){this.ƀkf=new Map;}add(t){let e=this.ƀkf.get(t.x);e||(e=new Set,this.ƀkf.set(t.x,e)),e.add(t.y);}has(t){let e=this.ƀkf.get(t.x);return e?e.has(t.y):false}delete(t){let e=this.ƀkf.get(t.x);return e?e.delete(t.y):false}};var xi=class{static{h(this,"DeltaTime");}static adjustMultiplier(t,e){return Math.pow(t,e)}};var B=class{static{h(this,"PositionToGridPositionConverter");}static areaToGridArea(t,e){return new helpersLib.Rectangle(this.positionToGridPosition(t.topLeft,e),this.positionToGridPosition(t.bottomRight,e))}static positionToGridPosition(t,e){return t.divideNumber(e).floor()}static gridPositionToPosition(t,e){return t.add(new helpersLib.Vector(.5,.5)).multiplyNumber(e)}};var re=class{static{h(this,"ClosestAvailableSpaceHelper");}static findByConvertingGridSpace(t,e,i){let r=new helpersLib.Vector(Math.ceil(e.size.x/i)-1,Math.ceil(e.size.y/i)-1),s=B.areaToGridArea(e,i);if(this.ƀas(t,s))return helpersLib.Vector.zero;let n=t.movePositionInsideGrid(s.topLeft),a=helpersLib.Vector.fromTo(s.topLeft,n),l=this.find(t,n,r);if(l){let c=l.add(a),p=helpersLib.Vector.fromTo(s.topLeft.multiplyNumber(i),e.topLeft);return new helpersLib.Vector(c.x*i+((r.x+1)*i-e.size.x)/2-p.x,c.y*i+((r.y+1)*i-e.size.y)/2-p.y)}}static find(t,e,i){let r=new wt,s=new helpersLib.Queue(e);for(;s.notEmpty;){let n=s.pop();r.add(n);let a=new helpersLib.Rectangle(n,n.add(i));if(this.ƀas(t,a))return helpersLib.Vector.fromTo(e,n);t.getNeighborPositions(n,helpersLib.GridNeighborType.Ortogonal).forEach(l=>{r.has(l)||s.add(l);});}}static ƀas(t,e){if(!t.isAreaWithinBounds(e))return false;for(let i=e.topLeft.y;i<=e.bottomRight.y;i++)for(let r=e.topLeft.x;r<=e.bottomRight.x;r++)if(!t.get(new helpersLib.Vector(r,i)))return false;return true}};var ir=class{static{h(this,"PathfinderNode");}constructor(t,e,i,r=void 0){this.position=t,this.distanceFromStart=e,this.distanceToEnd=i,this.parent=r,this.closed=false;}get pathLength(){return this.distanceFromStart+this.distanceToEnd}isEqual(t){return helpersLib.Vector.isEqual(this.position,t)}createSolutionPath(t){let e=[this.position],i=this.parent;for(;i!==void 0;)e.push(i.position),i=i.parent;return e.reverse(),{directPathAvailable:t,path:e}}getDistance(t){return this.position.getDistance(t)}},to=class{static{h(this,"PathfinderGrid");}constructor(t,e){this.ƀel=t,this.ƀjf=e,this.ƀgx=new helpersLib.BinaryHeap("min"),this.ƀaw=[],this.ƀgl=new helpersLib.Grid({size:t.size,defaultValue:void 0});let i=new ir(this.ƀjf,0,Number.MAX_SAFE_INTEGER);this.ƀgx.add(i.pathLength,i);}get hasOpenNodes(){return this.ƀgx.size>0}getNeighbors(t,e){return this.ƀel.getNeighborPositions(t.position,e).filter(i=>this.ƀel.get(i)).map(i=>this.ƀgl.get(i)||this.ƀca(i))}popLowestPathCostNode(){let t=this.ƀgx.pop();return this.ƀgx.delete(t),t.closed=true,this.ƀaw.push(t),t}changeNodeCost(t,e,i,r){this.ƀgx.delete(t),t.distanceFromStart=e,t.distanceToEnd=t.getDistance(i),t.parent=r,this.ƀgx.add(t.pathLength,t);}getBestClosedNode(){return this.ƀaw.reduce((t,e)=>t.distanceToEnd<e.distanceToEnd?t:e)}ƀca(t){let e=new ir(t,Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER);return this.ƀgl.set(t,e),this.ƀgx.add(e.pathLength,e),e}},se=class{static{h(this,"PathFinder");}static findPath(t,e,i,r){let s=new to(t,e);for(;s.hasOpenNodes;){let n=s.popLowestPathCostNode();if(n.isEqual(i))return n.createSolutionPath(true);let a=s.getNeighbors(n,r);for(let l of a)if(!l.closed){let c=n.distanceFromStart+n.getDistance(l.position);c<l.distanceFromStart&&s.changeNodeCost(l,c,i,n);}}return s.getBestClosedNode().createSolutionPath(false)}};var oe=class{static{h(this,"VectorFieldPathFinder");}constructor(t,e){this.ƀjn=t,this.ƀw=e,this.ƀes=this.ƀdu(this.ƀw.size),this.ƀkn=new helpersLib.Grid({size:this.ƀw.size,defaultValue:this.ƀes}),this.ƀcm=new helpersLib.Grid({size:this.ƀw.size,defaultValue:void 0});let i=new wt,r=new helpersLib.Queue;for(this.ƀdj(this.ƀw.cropAreaOutsideOfTheGrid(t)).forEach(n=>{this.ƀkn.set(n,0),r.add(n);});r.notEmpty;){let n=r.pop();if(!i.has(n)){i.add(n);let a=this.ƀkn.getOrFail(n);this.ƀdz(n,this.ƀw).forEach(l=>{if(!i.has(l.position)){let c=this.ƀkn.getOrFail(l.position),p=a+l.distance;this.ƀw.getOrFail(l.position)&&p<c&&(this.ƀkn.set(l.position,p),r.add(l.position));}});}}}getDirectionToTarget(t){if(!t.isInsideRectangle(this.ƀjn)){if(t=this.ƀkn.movePositionInsideGrid(t),this.ƀcm.has(t))return this.ƀcm.get(t);{let e=this.ƀdz(t,this.ƀw),i;return this.ƀkn.getOrFail(t)>=this.ƀes?e.some(s=>this.ƀw.get(s.position))&&(e.some(n=>!this.ƀw.get(n.position))?i=this.ƀdo(e):i=this.ƀdk(t,e)):i=this.ƀdk(t,e),this.ƀcm.set(t,i),i}}}ƀdo(t){let e=t.filter(i=>this.ƀw.get(i.position)).map(i=>i.direction.radian);return helpersLib.Radian.getAverage(...e)}ƀdk(t,e){let i=e.filter(r=>this.ƀkn.getOrFail(r.position)<this.ƀes).reduce((r,s)=>{let n=this.ƀkn.getOrFail(s.position)+s.distance;return n<r.bestWeight?(r.bestDirections=[s.direction],r.bestWeight=n):n===r.bestWeight&&r.bestDirections.push(s.direction),r},{bestDirections:[],bestWeight:this.ƀes}).bestDirections;return this.ƀee(i,t)}ƀee(t,e){if(t.length>0){let i=t.reduce((r,s)=>r.add(s),helpersLib.Vector.zero);if(i.isZero()||!this.ƀfj(e,i))return helpersLib.Random.pickRandomElement(t).radian;if(t.length>=1)return i.radian}}ƀfj(t,e){let i=t.add(this.ƀkg(e));return this.ƀw.isPointWithinBounds(i)&&this.ƀw.getOrFail(i)}ƀdz(t,e){return this.ƀkn.getNeighborDirections(t,helpersLib.GridNeighborType.All).map(i=>({position:t.add(i),direction:i,distance:i.x!==0&&i.y!==0?14:10}))}ƀdj(t){let e=[];for(let i=t.topLeft.y;i<=t.bottomRight.y;i++)for(let r=t.topLeft.x;r<=t.bottomRight.x;r++)e.push(new helpersLib.Vector(r,i));return e}ƀkg(t){let e=t.normalize().round();return new helpersLib.Vector(e.x,e.y)}ƀdu(t){return (t.x+t.y)*20}};var oo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},no=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},v=class extends ${static{h(this,"PhysicsWorldEntity");}constructor(t,e,i,r,s,n,a){super(),this.materialDefinitions=new Map,this.physicsBodyGroupToP2Group=new Map,this.physicsBodyGroupToP2Mask=new Map,this.availabilityGridCache=new Map,this.vectorFieldCache=new Map,this.bodiesInContactWith=new Map,this.collisionReports=new Map,this.paused=new actionsLib.Variable(false),this.lastP2Time=new actionsLib.Variable(0),this.onPhysicsStep=new actionsLib.Action,this.mapSize=t,this.mapSizeCenter=this.mapSize.multiplyNumber(.5),this.modifyUpdateCycle=e,this.p2World=i,this.materials=r,this.materialDefinitions=s,this.physicsBodyGroupToP2Group=n,this.physicsBodyGroupToP2Mask=a;}};v=oo([dt(),no("design:paramtypes",[helpersLib.Vector,Boolean,W__default.default.World,Map,Map,Map,Map])],v);var co=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},K=class{static{h(this,"PhysicsBodyGroupService");}createBodyGroupsAndMasks(t,e){let i=new Map,r=new Map;return t.map((s,n)=>{if(n>31)return console.error("Cannot have more than 32 physics body groups"),{};i.set(s,1<<n),r.set(s,0);}),e.map(([s,n])=>{if(!i.has(s))throw new Error(`Physics body group "${s}" not found`);if(!i.has(n))throw new Error(`Physics body group "${n}" not found`);let a=r.get(s),l=r.get(n),c=i.get(s),p=i.get(n);r.set(s,a|p),r.set(n,l|c);}),{physicsBodyGroupToP2Group:i,physicsBodyGroupToP2Mask:r}}getGroupConstant(t,e){return v.getInstanceByIDOrFail(t).physicsBodyGroupToP2Group.get(e)}getMaskConstant(t,e){return v.getInstanceByIDOrFail(t).physicsBodyGroupToP2Mask.get(e)}canCollide(t,e,i){let r=t.physicsBodyGroupToP2Group.get(e),s=t.physicsBodyGroupToP2Mask.get(e),n=t.physicsBodyGroupToP2Group.get(i),a=t.physicsBodyGroupToP2Mask.get(i);return (s&n)!==0&&(a&r)!==0}};K=co([d()],K);var po=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},uo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Ve=class{static{h(this,"AvailabilityGridCacheService");}constructor(t){this.ƀhg=t;}getCollidableGrids(t,e){let i=[];return t.availabilityGridCache.forEach((r,s)=>{r.forEach((n,a)=>{this.ƀhg.canCollide(t,a,e)&&i.push({grid:n,cellSize:s});});}),i}get(t,e,i){return t.availabilityGridCache.get(e)?.get(i)}set(t,e,i,r){let s=t.availabilityGridCache.get(e);s||(s=new Map,t.availabilityGridCache.set(e,s)),s.set(i,r);}clear(t){t.availabilityGridCache.clear();}};Ve=po([d(),uo("design:paramtypes",[K])],Ve);var fo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},mo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},nt=class{static{h(this,"AvailabilityGridService");}constructor(t,e){this.ƀhg=t,this.ƀx=e;}onBodyAdded(t,e,i){e.aabbNeedsUpdate=true,e.updateAABB();let r=f.aabbToBoundingBox(e.aabb);this.ƀx.getCollidableGrids(t,i).forEach(s=>{let n=B.areaToGridArea(r,s.cellSize);s.grid.setArea(n,false);});}findClosestAvailableSpace(t,e,i,r=Bt){return e.aabbNeedsUpdate=true,e.updateAABB(),re.findByConvertingGridSpace(this.getAvilabilityGrid(t,r,i),f.aabbToBoundingBox(e.aabb),r)}getAvilabilityGrid(t,e,i){let r=this.ƀx.get(t,e,i);return r||(r=this.ƀbx(t,e,i),this.ƀx.set(t,e,i,r)),r}ƀbx(t,e,i){let r=new helpersLib.Grid({size:new helpersLib.Vector(Math.floor(t.mapSize.x/e),Math.floor(t.mapSize.y/e)),defaultValue:true});return t.p2World.bodies.forEach(s=>{let n=b.getFromP2BodyIDOrFail(s.id);if(n.includeInPathfinding&&this.ƀhg.canCollide(t,n.physicsBodyGroup,i)){let a=this.ƀdt(s,e);r.setArea(a,false);}}),r}ƀdt(t,e){let i=f.aabbToBoundingBox(t.aabb);return B.areaToGridArea(i,e)}};nt=fo([d(),mo("design:paramtypes",[K,Ve])],nt);var wo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},xo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Bt=50,Gt=class{static{h(this,"PathFinderService");}constructor(t){this.ƀhf=t;}findPathAStar(t,e,i,r,s){s||(s={}),s.neighborType===void 0&&(s.neighborType=helpersLib.GridNeighborType.Ortogonal),s.gridCellSize===void 0&&(s.gridCellSize=Bt);let n=v.getInstanceByIDOrFail(t),a,l;helpersLib.Comparator.isNumber(i)?(l=b.getPhysicsInstanceOrFail(i).p2Body,a=f.arrayToVector(l.position)):a=i;let c=B.positionToGridPosition(e,s.gridCellSize),p=B.positionToGridPosition(a,s.gridCellSize),m=this.ƀhf.getAvilabilityGrid(n,s.gridCellSize,r);if(l){let E=f.aabbToBoundingBox(l.aabb),vt=B.areaToGridArea(E,s.gridCellSize);m.setArea(vt,true);}let g=se.findPath(m,c,p,s.neighborType);return g.path=g.path.map(E=>B.gridPositionToPosition(E,s.gridCellSize)),g}findPathDirection(t,e,i,r,s=Bt){let n=v.getInstanceByIDOrFail(t),a;if(helpersLib.Comparator.isNumber(i)){let g=b.getPhysicsInstanceOrFail(i);a=f.aabbToBoundingBox(g.p2Body.aabb);}else a=new helpersLib.Rectangle(i,i);let l=B.areaToGridArea(a,s),c=JSON.stringify({targetGridArea:l,collidableWithGroup:r}),p=n.vectorFieldCache.get(c);if(!p){let g=this.ƀhf.getAvilabilityGrid(n,s,r);p=new oe(l,g),n.vectorFieldCache.set(c,p);}let m=B.positionToGridPosition(e,s);return p.getDirectionToTarget(m)}};Gt=wo([d(),xo("design:paramtypes",[nt])],Gt);var Po=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},j=new U;exports.PhysicsGateway=class bi{static{h(this,"PhysicsGateway");}createPhysicsWorld(t){return j.trigger("createPhysicsWorld",t)}getMapSize(t){return j.trigger("getMapSize",t)}setPaused(t,e){return j.trigger("setPaused",t,e)}hitTest(t,e){return j.trigger("hitTest",t,e)}findPath(t,e,i,r,s){return j.trigger("findPath",t,e,i,r,s)}findPathDirection(t,e,i,r){return j.trigger("findPathDirection",t,e,i,r)}applyImpulse(t,e,i,r){return j.trigger("applyImpulse",t,e,i,r)}createExplosion(t,e,i,r,s,n){return j.trigger("createExplosion",t,e,i,r,s,n)}createElipticExplosion(t,e,i,r,s,n,a){return j.trigger("createElipticExplosion",t,e,i,r,s,n,a)}printPathfindingTestGrid(t,e,i,r,s,n=Bt){return j.trigger("printPathfindingTestGrid",t,e,i,r,s,n)}};exports.PhysicsGateway=Po([d()],exports.PhysicsGateway);var So=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Co=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Q=class{static{h(this,"TestVisualsService");}constructor(t,e){this.ƀy=t,this.ƀhc=e;}printPathfindingTestGrid(t,e,i,r,s,n){let a=v.getInstanceByIDOrFail(t);this.ƀy.getAvilabilityGrid(a,n,r).map((c,p)=>({position:B.gridPositionToPosition(p,n),availability:c})).forEach(c=>{if(c.position.isInsideRectangle(s)){let p=this.ƀhc.findPathDirection(t,c.position,i,r),m;p===void 0?m=T.createRectangleBorders(new helpersLib.Vector(8,8),2,helpersLib.ColorHelper.red).toSprite().displayParent(e).setPosition(c.position,{round:false}).attach(a):m=T.createArrow(25,c.availability?helpersLib.ColorHelper.green:helpersLib.ColorHelper.red).toSprite().displayParent(e).setPosition(c.position,{round:false}).setRotation(p).attach(a),new A(m,"alpha",{duration:1e3,animation:S.easeIn}).animate({alpha:0}).tap(()=>m.destroy()).attach(m);}});}createExplosionDebugVisual(t,e,i,r,s,n=300){let a=new u().displayParent(e).setAlpha(.5).attach(t);T.createCircle(s,helpersLib.ColorHelper.blue).toSprite().displayParent(a).setPosition(r,{round:false}).setAlpha(.5).attach(t),i.forEach(c=>{let p=c.hits.length>0?helpersLib.ColorHelper.red:helpersLib.ColorHelper.white;T.createVector(r,c.line.to,p).toSprite().displayParent(a).attach(t);}),new A(a,"alpha",{duration:n,animation:S.easeIn}).animate({alpha:0}).tap(()=>a.destroy()).attach(a);}createElipticExplosionDebugVisual(t,e,i,r,s,n,a=300){let l=new u().displayParent(e).setAlpha(.5).attach(t);T.createElipse(n,helpersLib.ColorHelper.blue).toSprite().displayParent(l).setPosition(r,{round:false}).setRotation(s).setAlpha(.5).attach(t),i.forEach(p=>{let m=p.hits.length>0?helpersLib.ColorHelper.red:helpersLib.ColorHelper.white;T.createVector(p.line.from,p.line.to,m).toSprite().displayParent(l).attach(t);}),new A(l,"alpha",{duration:a,animation:S.easeIn}).animate({alpha:0}).tap(()=>l.destroy()).attach(l);}createPhysicsEntityShapeVisual(t,e,i){let r=i?.overridePosition??f.arrayToVector(t.position),s=i?.overrideRotation??new helpersLib.Radian(t.angle),n=i?.color??helpersLib.ColorHelper.blue,a=new u().displayParent(e).setPosition(r,{round:false}).setRotation(s).setAlpha(.5).attachToRoot();t.shapes.forEach(c=>{this.ƀcp(c,n).displayParent(a).attachToRoot();}),new A(a,"alpha",{duration:1e3,animation:S.easeIn}).animate({alpha:0}).tap(()=>a.destroy()).attach(a);}ƀcp(t,e){switch(t.type){case W__default.default.Shape.PARTICLE:throw new Error("Not implemented");case W__default.default.Shape.LINE:throw new Error("Not implemented");case W__default.default.Shape.PLANE:throw new Error("Not implemented");case W__default.default.Shape.CIRCLE:throw new Error("Not implemented");case W__default.default.Shape.CAPSULE:throw new Error("Not implemented");case W__default.default.Shape.BOX:throw new Error("Not implemented");case W__default.default.Shape.HEIGHTFIELD:throw new Error("Not implemented");case W__default.default.Shape.CONVEX:return this.ƀco(t,e);default:throw new Error("Not implemented")}}ƀco(t,e){let i=[t.vertices.map(r=>({x:r[0],y:r[1]}))];return T.createPolygon(i,e).toSprite()}};Q=So([d(),Co("design:paramtypes",[nt,Gt])],Q);var Ro=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Io=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Ne=class{static{h(this,"HitTestService");}constructor(t){this.ƀjp=t;}hitTest(t,e){let i=t.world,r=b.getFromP2BodyIDOrFail(t.id),s=f.cloneP2Body(t);this.ƀs(s,e);let n=i.broadphase.aabbQuery(i,this.ƀdh(s)).map(l=>b.getFromP2BodyIDOrFail(l.id)).filter(l=>l.includeInPathfinding).filter(l=>r.canCollideWith(l)).map(l=>f.cloneP2Body(l.p2Body)),a=false;if(n.length!==0){let l=new W__default.default.World;l.addBody(s),n.forEach(c=>l.addBody(c)),l.step(1,1,1),a=l.narrowphase.contactEquations.some(c=>c.bodyA===s||c.bodyB===s),l.clear();}if(e?.testLayerID){let l=a?helpersLib.ColorHelper.red:helpersLib.ColorHelper.green;this.ƀjp.createPhysicsEntityShapeVisual(t,e.testLayerID,{overridePosition:e.overridePosition,overrideRotation:e.overrideRotation,color:l});}return a}ƀs(t,e){e?.overridePosition&&(t.position=f.vectorToArray(e.overridePosition)),e?.overrideRotation&&(t.angle=e.overrideRotation.value);}ƀdh(t){return t.aabbNeedsUpdate=true,t.updateAABB(),t.aabb}};Ne=Ro([d(),Io("design:paramtypes",[Q])],Ne);var Oo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},je=class{static{h(this,"CollisionsService");}registerPhysicsWorld(t){t.p2World.on("beginContact",e=>{e.contactEquations.forEach(i=>{this.ƀia(t,i);});});}step(t,e,i){b.getPhysicsEntities().forEach(r=>{r.ƀax=[];}),t.p2World.narrowphase.contactEquations.forEach(r=>{this.ƀia(t,r);}),t.bodiesInContactWith.forEach((r,s)=>{this.ƀen(r.p2Body),r.entity.ƀir(t.collisionReports.get(s)||[]);}),t.bodiesInContactWith.clear(),t.collisionReports.clear();}ƀen(t){let e=f.arrayToVector(t.velocity);e.length>10.8&&(e=e.normalize(10.8),t.velocity=f.vectorToArray(e)),t.angularVelocity=Math.min(Math.max(t.angularVelocity,-10.01),10.01);}ƀia(t,e){let i=b.getFromP2BodyID(e.bodyA.id),r=b.getFromP2BodyID(e.bodyB.id);if(i&&r){t.bodiesInContactWith.set(e.bodyA.id,{p2Body:e.bodyA,entity:i}),t.bodiesInContactWith.set(e.bodyB.id,{p2Body:e.bodyB,entity:r});let s=t.collisionReports.get(e.bodyA.id)||[],n=t.collisionReports.get(e.bodyB.id)||[],{collisionDetailsA:a,collisionDetailsB:l}=this.ƀdm(i,r,e);s.push({self:a,target:l}),n.push({self:l,target:a}),t.collisionReports.set(e.bodyA.id,s),t.collisionReports.set(e.bodyB.id,n);}else console.warn("ContactEquationOrganiser: Entity not found for contact equation",e);}ƀdm(t,e,i){let r=t.convertToDTO(),s=e.convertToDTO(),n=f.arrayToVector(i.contactPointA),a=f.arrayToVector(i.contactPointB),{normalA:l,normalB:c}=this.ƀea(i);return {collisionDetailsA:this.ƀdl(r,i.bodyA.mass,n,l,t.area),collisionDetailsB:this.ƀdl(s,i.bodyB.mass,a,c,e.area)}}ƀdl(t,e,i,r,s){let n,a=i.add(t.position);return {body:t,getPositionReletiveToObject:h(()=>(n||(n=i.rotate(t.rotation.multiply(-1).vector)),n),"getPositionReletiveToObject"),getPositionOnWorld:h(()=>(a||(a=i.add(t.position)),a),"getPositionOnWorld"),position:i,mass:e,area:s,normal:r}}ƀea(t){let e=f.arrayToVector(t.normalA),i=e.multiplyNumber(-1);return {normalA:e,normalB:i}}};je=Oo([d()],je);var Mo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Do=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},He=class extends Wt{static{h(this,"BorderEntity");}constructor(t,e){super(t,e);}};He=Mo([dt(),Do("design:paramtypes",[Number,Object])],He);var Bo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},H=1e4,We=class{static{h(this,"BorderService");}createBorders(t,e,i){this.ƀbr(t,new helpersLib.Vector(e.x/2,-H/2),new helpersLib.Vector(e.x+H*2,H),i),this.ƀbr(t,new helpersLib.Vector(e.x/2,e.y+H/2),new helpersLib.Vector(e.x+H*2,H),i),this.ƀbr(t,new helpersLib.Vector(-H/2,e.y/2),new helpersLib.Vector(H,e.y+H*2),i),this.ƀbr(t,new helpersLib.Vector(e.x+H/2,e.y/2),new helpersLib.Vector(H,e.y+H*2),i);}ƀbr(t,e,i,r){return new He(t,{shapeDefinition:{materialName:st,group:r,shapeType:exports.PhysicsShapeType.Rectangle,shapeData:i},position:e,rotation:helpersLib.Radian.get0,addInEmptySpace:false,includeOnPathfinding:true}).attachByID(t)}};We=Bo([d()],We);var _o=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},ar=new W__default.default.Material,Fo={id:st,density:Number.MAX_SAFE_INTEGER,velocityDrag:1,rotationalDrag:1},_t=class{static{h(this,"MaterialsService");}createMaterials(t,e,i,r){let s=new Map,n=new Map;if(i.forEach(a=>{s.set(a.id,new W__default.default.Material),n.set(a.id,a);}),s.has(st))throw new Error(`Material with name ${st} cannot be defined, pick another name for the material.`);return s.set(st,ar),n.set(st,Fo),this.ƀc(t,e,i,r,s),{materials:s,materialDefinitions:n}}getMaterial(t,e){let i=v.getInstanceByIDOrFail(t);return this.ƀdy(e,i.materials)}getMaterialDefinition(t,e){let i=v.getInstanceByIDOrFail(t);return this.ƀdx(e,i.materialDefinitions)}ƀdy(t,e){let i=e.get(t);if(!i)throw new Error(`Could not find material with name ${t}.`);return i}ƀdx(t,e){let i=e.get(t);if(!i)throw new Error(`Could not find material definition with name ${t}.`);return i}ƀc(t,e,i,r,s){this.ƀdq(i.map(n=>n.id),r).forEach(n=>{let a=this.ƀdy(n.materialA,s),l=this.ƀdy(n.materialB,s);t.addContactMaterial(new W__default.default.ContactMaterial(a,l,{friction:n.friction,restitution:n.bounciness,stiffness:n.stiffness,relaxation:n.relaxation}));}),this.ƀd(t,e,i,s);}ƀdq(t,e){let i=new Map;e.forEach(s=>{let n=i.get(s.materialA);n||(n=new Map,i.set(s.materialA,n)),n.set(s.materialB,s);});let r=[];return t.forEach((s,n)=>{for(let a=n;a<t.length;a++){let l=t[a],c=i.get(s)?.get(l);c?r.push(c):r.push({materialA:s,materialB:l,friction:0,bounciness:0,relaxation:4,stiffness:1e6});}}),r}ƀd(t,e,i,r){i.forEach(s=>{let n=this.ƀdy(s.id,r);t.addContactMaterial(new W__default.default.ContactMaterial(n,ar,{friction:e.friction,restitution:e.bounciness,stiffness:e.stiffness,relaxation:e.relaxation}));});}};_t=_o([d()],_t);var Lo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Vo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Ft=class{static{h(this,"PhysicsWorldService");}constructor(t,e,i,r,s){this.ƀgd=t,this.ƀai=e,this.ƀy=i,this.ƀay=r,this.ƀhg=s;}createPhysicsWorld(t){let e=new W__default.default.World({gravity:[0,0]}),{materials:i,materialDefinitions:r}=this.ƀgd.createMaterials(e,t.borderProperties,t.materialDefinitions,t.materialContactDefinitions),{physicsBodyGroupToP2Group:s,physicsBodyGroupToP2Mask:n}=this.ƀhg.createBodyGroupsAndMasks(t.physicsBodyGroups,t.interactingBodyGroups),a=new v(t.mapSize,t.modifyUpdateCycle,e,i,r,s,n).attachByID(t.attachTo);return a.onDestroy().tap(()=>{e.clear(),t.modifyUpdateCycle&&y.cleanUpdateModifier();}).attachToRoot(),this.ƀai.createBorders(a.id,t.mapSize,t.borderProperties.borderBodyGroup),this.ƀay.registerPhysicsWorld(a),t.modifyUpdateCycle?y.registerUpdateModifier((l,c)=>this.ƀjj(a,l,c)):y.beforeSceneUpdateAction.subscribe(({time:l,delta:c})=>{this.ƀjj(a,l,c);}).attach(a),a.id}addBody(t,e,i,r,s){let n=v.getInstanceByIDOrFail(t);if(i){let a=this.ƀy.findClosestAvailableSpace(n,e,r);return a?(e.position[0]+=a.x,e.position[1]+=a.y,n.p2World.addBody(e),s&&this.ƀy.onBodyAdded(n,e,r),true):false}else return n.p2World.addBody(e),s&&this.ƀy.onBodyAdded(n,e,r),true}removeBody(t,e){v.getInstanceByID(t)?.p2World.removeBody(e);}ƀjj(t,e,i){if(!t.paused.value){t.availabilityGridCache.clear(),t.vectorFieldCache.clear(),t.p2World.step(i,i,i),t.modifyUpdateCycle&&(i=t.p2World.time-t.lastP2Time.value);let r=e+i;this.ƀay.step(t,r,i),t.onPhysicsStep.trigger({time:r,delta:i}),t.lastP2Time.value=t.p2World.time;}return i}setPaused(t,e){v.getInstanceByIDOrFail(e).paused.set(t);}};Ft=Lo([d(),Vo("design:paramtypes",[_t,We,nt,je,K])],Ft);var jo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Vt=class{static{h(this,"RayCastingService");}castClosest(t,e,i){let r=new W__default.default.RaycastResult,s=new W__default.default.Ray({mode:W__default.default.Ray.CLOSEST,from:f.vectorToArray(e.from),to:f.vectorToArray(e.to),collisionGroup:t.physicsBodyGroupToP2Group.get(i),collisionMask:t.physicsBodyGroupToP2Mask.get(i)});if(t.p2World.raycast(r,s),r.hasHit())return this.ƀbm(r,e)}castAllFirstContacts(t,e,i){let r=new Map,s=new W__default.default.Ray({mode:W__default.default.Ray.ALL,from:f.vectorToArray(e.from),to:f.vectorToArray(e.to),collisionGroup:t.physicsBodyGroupToP2Group.get(i),collisionMask:t.physicsBodyGroupToP2Mask.get(i),callback:h(n=>{let a=r.get(n.body);!r.has(n.body)||n.fraction<a.fraction?r.set(n.body,this.ƀbm(n,e)):n.fraction===a.fraction&&a.isExternal()&&r.set(n.body,this.ƀbm(n,e));},"callback")});return t.p2World.raycast(new W__default.default.RaycastResult,s),Array.from(r.values())}ƀbm(t,e){let i=t.fraction,r=f.arrayToVector(t.normal),s,n,a;return {body:t.body,hitPosition:h(()=>(s===void 0&&(s=e.from.lerp(e.to,i)),s),"hitPosition"),hitDistance:h(()=>(n===void 0&&(n=e.length*i),n),"hitDistance"),isExternal:h(()=>(a===void 0&&(a=e.fromTo.dotProduct(r)<0),a),"isExternal"),normal:r,fraction:i,line:e}}};Vt=jo([d()],Vt);var Ho=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},lt=class{static{h(this,"ImpactService");}applyImpulse(t,e,i,r){let s=i.normalize(r),n=[e.x-t.position[0],e.y-t.position[1]];t.applyImpulse(f.vectorToArray(s),n);}};lt=Ho([d()],lt);var Wo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Nt=class{static{h(this,"RayCastHitConverterService");}toExplosionHits(t,e=true){let i=new Map;return t.forEach(r=>{r.hits.forEach(s=>{let n=i.get(s.body);if(n){let a=s.fraction<n.closestRaycastHit.fraction?s:n.closestRaycastHit;n.rayCastHits.push(s),i.set(s.body,{hitCount:n.hitCount+1,closestRaycastHit:a,rayCastHits:n.rayCastHits,isExternal:e?n.isExternal:n.isExternal&&s.isExternal(),explosionCenter:s.line.from});}else {let a=s.isExternal();i.set(s.body,{hitCount:1,closestRaycastHit:s,rayCastHits:[s],isExternal:a,explosionCenter:s.line.from});}});}),[...i.values()].map(r=>this.ƀbn(r,t.length))}ƀbn(t,e){let i=t.hitCount/e,r=t.rayCastHits;if(t.isExternal)return {body:b.getFromP2BodyIDOrFail(t.closestRaycastHit.body.id).convertToDTO(),p2Body:t.closestRaycastHit.body,isExternal:true,normal:t.closestRaycastHit.normal,fraction:t.closestRaycastHit.fraction,ratioOfHits:i,raycastResults:r,getHitPosition:t.closestRaycastHit.hitPosition,getHitDistance:t.closestRaycastHit.hitDistance};{let s=f.arrayToVector(t.closestRaycastHit.body.position);return {body:b.getFromP2BodyIDOrFail(t.closestRaycastHit.body.id).convertToDTO(),p2Body:t.closestRaycastHit.body,isExternal:false,normal:helpersLib.Vector.fromTo(s,t.explosionCenter).normalize(),fraction:0,ratioOfHits:i,raycastResults:r,getHitPosition:h(()=>t.explosionCenter,"getHitPosition"),getHitDistance:h(()=>0,"getHitDistance")}}}};Nt=Wo([d()],Nt);var $o=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},zo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Yo=15,$e=class{static{h(this,"ElipticExplosionService");}constructor(t,e,i,r){this.ƀhw=t,this.ƀjp=e,this.ƀhv=i,this.ƀfc=r;}createElipticExplosion(t,e,i,r,s,n,a){let l=v.getInstanceByIDOrFail(t),c=this.ƀcc(e,i,r,s,a?.hitOnlyClosest===true,l),p=this.ƀhv.toExplosionHits(c,false);return this.ƀq(p,n),a?.testLayerID&&this.ƀjp.createElipticExplosionDebugVisual(l,a.testLayerID,c,e,i,r,a.debugRayDuration),p.map(m=>{let{p2Body:g,...E}=m;return E})}ƀcc(t,e,i,r,s,n){let a=[],l=e.vector,c=e.add(helpersLib.Radian.get90).vector,p=c.normalize(i.x);a.push(new helpersLib.Line(t,t.add(p))),a.push(new helpersLib.Line(t,t.add(p.multiplyNumber(-1))));let m=l.normalize(i.y);a.push(new helpersLib.Line(t,t.add(m))),a.push(new helpersLib.Line(t,t.add(m.multiplyNumber(-1))));let g=Math.round(i.y/Yo),E=i.y/(g*2+1)*2,vt=l.normalize(E),ne=i.x,lr=Math.pow(i.y,2);return helpersLib.ArrayHelper.createIntegerArray(g).forEach(pt=>{let bt=E*(pt+1),Ci=vt.multiplyNumber(pt+1),ae=c.normalize(this.ƀei(ne,lr,bt)),he=t.add(Ci);a.push(new helpersLib.Line(he,he.add(ae))),a.push(new helpersLib.Line(he,he.add(ae.multiplyNumber(-1))));let le=t.add(Ci.multiplyNumber(-1));a.push(new helpersLib.Line(le,le.add(ae))),a.push(new helpersLib.Line(le,le.add(ae.multiplyNumber(-1))));}),a.map(pt=>{if(s){let bt=this.ƀhw.castClosest(n,pt,r);return {line:pt,hits:bt?[bt]:[]}}else {let bt=this.ƀhw.castAllFirstContacts(n,pt,r);return {line:pt,hits:bt}}})}ƀei(t,e,i){return Math.sqrt(1-Math.pow(i,2)/e)*t}ƀq(t,e){t.forEach(i=>{i.raycastResults.forEach(r=>{let s,n;r.isExternal()?(s=r.line.fromTo,n=e*2):(s=r.line.fromTo.multiplyNumber(-1),n=e*(1-r.fraction)*8),this.ƀfc.applyImpulse(r.body,r.hitPosition(),s,n);});});}};$e=$o([d(),zo("design:paramtypes",[Vt,Q,Nt,lt])],$e);var Xo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Ko=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},ze=class{static{h(this,"ExplosionService");}constructor(t,e,i,r){this.ƀhw=t,this.ƀjp=e,this.ƀhv=i,this.ƀfc=r;}createExplosion(t,e,i,r,s,n){let a=v.getInstanceByIDOrFail(t),l=this.ƀef(i),c=this.ƀcc(e,i,r,l,n?.hitOnlyClosest===true,a),p=this.ƀhv.toExplosionHits(c);return this.ƀq(e,i,s,l,p),n?.testLayerID&&this.ƀjp.createExplosionDebugVisual(a,n.testLayerID,c,e,i,n.debugRayDuration),p}ƀcc(t,e,i,r,s,n){let a=new helpersLib.Radian(helpersLib.PI_360/r),l=new helpersLib.Vector(0,-e),c=a.vector;return helpersLib.ArrayHelper.createEmptyArray(r).map(()=>{let p=t.add(l);return l=l.rotate(c),new helpersLib.Line(t,p)}).map(p=>{if(s){let m=this.ƀhw.castClosest(n,p,i);return {line:p,hits:m?[m]:[]}}else {let m=this.ƀhw.castAllFirstContacts(n,p,i);return {line:p,hits:m}}})}ƀq(t,e,i,r,s){s.forEach(n=>{if(n.isExternal)n.raycastResults.forEach(a=>{let l=i*(1-a.fraction);this.ƀfc.applyImpulse(a.body,a.hitPosition(),a.line.fromTo,l);});else {let a=helpersLib.Vector.fromTo(t,f.arrayToVector(n.p2Body.position)),l=a.length/e,c=i*r*l/2;this.ƀfc.applyImpulse(n.p2Body,n.getHitPosition(),a,c);}});}ƀef(t){return t>100?Math.floor(t*.3):Math.floor(t*.26+4)}};ze=Xo([d(),Ko("design:paramtypes",[Vt,Q,Nt,lt])],ze);var en=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},jt=class{static{h(this,"PhysicsQueryService");}getMapSize(t){let e=v.getInstanceByIDOrFail(t);return {dimentions:e.mapSize,center:e.mapSizeCenter}}subscribeToPhysicsStep(t,e){return v.getInstanceByIDOrFail(t).onPhysicsStep.subscribe(e)}};jt=en([d()],jt);var rn=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},sn=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Pi=class{static{h(this,"PhysicsController");}constructor(t,e,i,r,s,n,a,l){this.ƀhn=t,this.ƀhc=e,this.ƀjp=i,this.ƀcz=r,this.ƀct=s,this.ƀet=n,this.ƀhm=a,this.ƀfc=l;}createPhysicsWorld(t){return this.ƀhn.createPhysicsWorld(t)}getMapSize(t){return this.ƀhm.getMapSize(t)}setPaused(t,e){this.ƀhn.setPaused(t,e);}hitTest(t,e){let i=b.getPhysicsInstanceOrFail(t);return this.ƀet.hitTest(i.p2Body,e)}findPath(t,e,i,r,s){return this.ƀhc.findPathAStar(t,e,i,r,{neighborType:s})}findPathDirection(t,e,i,r){return this.ƀhc.findPathDirection(t,e,i,r)}applyImpulse(t,e,i,r){let s=b.getPhysicsInstanceOrFail(t);this.ƀfc.applyImpulse(s.p2Body,e,i,r);}createExplosion(t,e,i,r,s,n){return this.ƀcz.createExplosion(t,e,i,r,s,n)}createElipticExplosion(t,e,i,r,s,n,a){return this.ƀct.createElipticExplosion(t,e,i,r,s,n,a)}printPathfindingTestGrid(t,e,i,r,s,n){this.ƀjp.printPathfindingTestGrid(t,e,i,r,s,n);}};Pi=rn([q({controllerLink:j}),sn("design:paramtypes",[Ft,Gt,Q,ze,$e,Ne,jt,lt])],Pi);var on=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},ke=class{static{h(this,"ShapeCreationService");}createBody(t,e,i,r,s){let n=v.getInstanceByIDOrFail(t);if(!n.physicsBodyGroupToP2Group.has(e.shapeDefinition.group))throw new Error(`Physics body group "${e.shapeDefinition.group}" not found`);switch(e.shapeDefinition.shapeType){case exports.PhysicsShapeType.Point:return this.ƀbt(n,void 0,i,r,e.shapeDefinition.group,s);case exports.PhysicsShapeType.Circle:return this.ƀbt(n,e.shapeDefinition.shapeData,i,r,e.shapeDefinition.group,s);case exports.PhysicsShapeType.Polygon:return this.ƀcb(n,e.shapeDefinition.shapeData,i,r,e.shapeDefinition.group,s);case exports.PhysicsShapeType.Rectangle:return this.ƀcd(n,e.shapeDefinition.shapeData,i,r,e.shapeDefinition.group,s);default:{e.shapeDefinition.shapeType;throw new Error(`Unexpected case! "${e.shapeDefinition.shapeType}"`)}}}ƀbt(t,e,i,r,s,n){let a=new W__default.default.Circle({collisionGroup:t.physicsBodyGroupToP2Group.get(s),collisionMask:t.physicsBodyGroupToP2Mask.get(s),radius:e});a.material=i;let l=new W__default.default.Body({type:n==="dynamic"?W__default.default.Body.DYNAMIC:W__default.default.Body.STATIC,mass:r.density,damping:r.velocityDrag,angularDamping:r.rotationalDrag});return l.addShape(a),l}ƀcb(t,e,i,r,s,n){let a=t.physicsBodyGroupToP2Group.get(s),l=t.physicsBodyGroupToP2Mask.get(s),c=e.map(g=>new W__default.default.Convex({vertices:g.map(E=>[E.x,E.y]),collisionGroup:a,collisionMask:l})).map(g=>(g.material=i,g)),p=c.reduce((g,E)=>g+E.area,0),m=new W__default.default.Body({type:n==="dynamic"?W__default.default.Body.DYNAMIC:W__default.default.Body.STATIC,mass:p,damping:r.velocityDrag,angularDamping:r.rotationalDrag});return c.forEach(g=>m.addShape(g)),m.setDensity(r.density),m}ƀcd(t,e,i,r,s,n){let a=new W__default.default.Box({width:e.x,height:e.y,collisionGroup:t.physicsBodyGroupToP2Group.get(s),collisionMask:t.physicsBodyGroupToP2Mask.get(s)});a.material=i;let l=e.x*e.y,c=new W__default.default.Body({type:n==="dynamic"?W__default.default.Body.DYNAMIC:W__default.default.Body.STATIC,mass:l,damping:r.velocityDrag,angularDamping:r.rotationalDrag});return c.addShape(a),c.setDensity(r.density),c}};ke=on([d()],ke);var nn=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},an=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Si=class{static{h(this,"PhysicsInternalController");}constructor(t,e,i,r,s){this.ƀhn=t,this.ƀhl=e,this.ƀiw=i,this.ƀhm=r,this.ƀhg=s;}createBody(t,e,i,r,s){return this.ƀiw.createBody(t,e,i,r,s)}getMaterial(t,e){return this.ƀhl.getMaterial(t,e)}getMaterialDefinition(t,e){return this.ƀhl.getMaterialDefinition(t,e)}getGroupConstant(t,e){return this.ƀhg.getGroupConstant(t,e)}getMaskConstant(t,e){return this.ƀhg.getMaskConstant(t,e)}addBody(t,e,i,r,s){return this.ƀhn.addBody(t,e,i,r,s)}removeBody(t,e){this.ƀhn.removeBody(t,e);}subscribeToPhysicsStep(t,e){return this.ƀhm.subscribeToPhysicsStep(t,e)}};Si=nn([q({controllerLink:J}),an("design:paramtypes",[Ft,_t,ke,jt,K])],Si);exports.AnimationFlicker=Ai;exports.AnimationInterpolationFunctions=Y;exports.Animations=S;exports.Animator=A;exports.BORDER_MATERIAL_NAME=st;exports.BardLegendsHardReset=G;exports.Camera=Xt;exports.ClosestAvailableSpaceHelper=re;exports.Container=u;exports.ControllerDecorator=q;exports.ControllerLink=U;exports.DEFAULT_SHADER_RESOLUTION=O;exports.DeltaTime=xi;exports.DisplayObjectArray=ci;exports.Entity=$;exports.EntityDecorator=dt;exports.FadeInContent=Zi;exports.FadeInStateAnimation=_e;exports.Game=w;exports.Graphics=T;exports.ImmovablePhysicsEntity=Wt;exports.Menu=Dt;exports.MenuEntity=di;exports.MouseWheelListenerUI=ie;exports.MovableEntity=Xe;exports.MovablePhysicsEntity=Ke;exports.PathFinder=se;exports.PhysicsEntity=b;exports.Placeholder=ai;exports.PositionConversionHelper=kt;exports.ROTATIONAL_SPEED_LIMIT=Qe;exports.RichText=hi;exports.SPEED_LIMIT=Ze;exports.Scene=Pt;exports.SceneDecorator=wr;exports.ScrollAreaUI=mi;exports.ScrollMaskUI=gt;exports.Service=P;exports.ServiceDecorator=d;exports.SingletonEntity=ut;exports.SlideInContent=er;exports.SlideInContentByIndex=wi;exports.SlideStateAnimation=Le;exports.Sprite=X;exports.StateAnimation=Fe;exports.Text=te;exports.UpdatableContainer=li;exports.UpdateCycle=y;exports.VectorFieldPathFinder=oe;exports.VectorSet=wt;exports.View=Ht;exports.ViewDecorator=Ye;
|