bard-legends-framework 1.12.0 → 1.12.2
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/bin/cli.mjs +12 -12
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/electron-forge.mjs +37 -37
- package/package.json +3 -3
package/bin/cli.mjs
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { spawn } from 'child_process';
|
|
3
|
-
import { createRequire } from 'module';
|
|
4
|
-
import path from 'path';
|
|
5
|
-
|
|
6
|
-
let require = createRequire(import.meta.url);
|
|
7
|
-
let forgePackageJsonPath = require.resolve('@electron-forge/cli/package.json');
|
|
8
|
-
let forgeBinPath = path.join(path.dirname(forgePackageJsonPath), require(forgePackageJsonPath).bin['electron-forge']);
|
|
9
|
-
|
|
10
|
-
spawn(process.execPath, [forgeBinPath, ...process.argv.slice(2)], { stdio: 'inherit' }).on('exit', code =>
|
|
11
|
-
process.exit(code ?? 0)
|
|
12
|
-
);
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { spawn } from 'child_process';
|
|
3
|
+
import { createRequire } from 'module';
|
|
4
|
+
import path from 'path';
|
|
5
|
+
|
|
6
|
+
let require = createRequire(import.meta.url);
|
|
7
|
+
let forgePackageJsonPath = require.resolve('@electron-forge/cli/package.json');
|
|
8
|
+
let forgeBinPath = path.join(path.dirname(forgePackageJsonPath), require(forgePackageJsonPath).bin['electron-forge']);
|
|
9
|
+
|
|
10
|
+
spawn(process.execPath, [forgeBinPath, ...process.argv.slice(2)], { stdio: 'inherit' }).on('exit', code =>
|
|
11
|
+
process.exit(code ?? 0)
|
|
12
|
+
);
|
package/dist/index.d.mts
CHANGED
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -42,4 +42,4 @@
|
|
|
42
42
|
highestAlpha = centerColor.a;`,e+=`
|
|
43
43
|
|
|
44
44
|
finalColor = vec4(uColor, 1.0) * highestAlpha;
|
|
45
|
-
}`,e}constructor(t,e){if(super({glProgram:W__namespace.GlProgram.from({vertex:W__namespace.defaultFilterVert,fragment:n.ƀeg(t*k)}),resources:{expandUniforms:{uColor:{value:new Float32Array(3),type:"vec3<f32>"},uExpandSquared:{value:0,type:"f32"}}},resolution:k}),this.ƀdk=t,this.ƀdk=t*k,this.ƀdk<0)throw new Error("ExpandWithColorFilter: Expand * resolution cannot be smaller than 0");if(this.ƀdk>10)throw new Error("ExpandWithColorFilter: Expand * resolution cannot be higher than 10");helpersLib.Comparator.isInteger(this.ƀdk)||(this.ƀdk=Math.floor(this.ƀdk));let i=helpersLib.ColorHelper.normalize(e);this.resources.expandUniforms.uniforms.uColor=new Float32Array([i.red,i.green,i.blue]),this.resources.expandUniforms.uniforms.uExpandSquared=this.ƀdk*this.ƀdk,this.padding=this.ƀdk;}};var Oe=class extends W__namespace.Filter{static{h(this,"GlowFilter");}constructor(t){super({resolution:k,compatibleRenderers:W__namespace.RendererType.WEBGL});let e={blurRadius:1,expand:0,color:helpersLib.ColorHelper.white,...t};this.ƀdl=new Ae(e.expand,e.color);let i=helpersLib.Comparator.isNumber(e.blurRadius)?new helpersLib.Vector(e.blurRadius,e.blurRadius):e.blurRadius;this.ƀak=new Nt(i),this.padding=Math.max(i.x,i.y)+e.expand,this.ƀak.blendMode="add";}apply(t,e,i,s){let r=W__namespace.TexturePool.getSameSizeTexture(e);this.ƀdl.apply(t,e,r,true),this.ƀak.apply(t,r,i,s),W__namespace.TexturePool.returnTexture(r);}};var re=class n{static{h(this,"GlowSpriteGenerator");}static{this.ƀfb=new Map;}static createGlowSpriteFromSprite(t,e,i){let s=this.ƀbj(e),r=helpersLib.Comparator.isNumber(s.blurRadius)?new helpersLib.Vector(s.blurRadius,s.blurRadius):s.blurRadius,o=this.ƀei(t.texture,r,s.expand,s.color,i),a=new W__namespace.Sprite(o);return this.ƀkh(a,helpersLib.Vector.fromVec2(t.anchor),Math.max(r.x,r.y)+s.expand),a.alpha=s.glowAlpha,a.blendMode=s.blendMode,a}static ƀei(t,e,i,s,r){if(!t.id)throw new Error("GlowSpriteGenerator: baseTexture should have an id");if(r){let o=`${t.id}-${i}-${e.x}-${e.y}-${s.r}-${s.g}-${s.b}`;if(n.ƀfb.has(o))return n.ƀfb.get(o);{let a=this.ƀej(t,e,i,s);return n.ƀfb.set(o,a),a}}else return this.ƀej(t,e,i,s)}static ƀej(t,e,i,s){let r=new W__namespace.Sprite(t);r.filters=[new Oe({blurRadius:e,expand:i,color:s})];let o=new W__namespace.Container;o.addChild(r);let a=Math.max(e.x,e.y)+i,l=y.instance.generateTexture({target:o,frame:new W__namespace.Rectangle(-a,-a,r.width+a*2,r.height+a*2)});return l.id=G.insertAsset(l),o.destroy({children:true}),l}static ƀkh(t,e,i){let s=(i+(t.width-i*2)*e.x)/t.width,r=(i+(t.height-i*2)*e.y)/t.height;t.anchor.set(s,r);}static ƀbj(t){let e={glowAlpha:1,blurRadius:5,expand:0,color:helpersLib.ColorHelper.white,blendMode:"add"};return t&&(e={...e,...t}),e}};T.onHardReset.subscribe(()=>{re.ƀfb.clear();}).attachToRoot();var et=class n extends d{static{h(this,"Sprite");}static createByName(t){let e=y.setupOptions.spriteDefinitions[t];if(!e)throw new Error(`Sprite: Could not find sprite definition with name ${t}.`);return new n(e)}static createSnapshotSprite(t){let e=t.ƀiv,i=e.parent;i&&i.removeChild(e);let s=y.instance.generateTexture({target:e,resolution:2,antialias:true,textureSourceOptions:{scaleMode:"linear"}});i&&i.addChild(e);let o={id:G.insertAsset(s),scale:t.scale,size:t.size,anchor:helpersLib.Vector.zero,destroyAssetOnDestroy:true};return new n(o,{ignoreAnchor:true})}constructor(t,e={}){if(super(),this.ƀlx=1,!t)throw new Error("Sprite: spriteDefinition cannot be nullish!");this.ƀlc=t,this.pixiSprite=new W__namespace.Sprite(G.getAsset(t.id)),this.ƀiv.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.ƀlc.destroyAssetOnDestroy&&(G.destroyAsset(this.ƀlc.id),this.ƀix&&G.destroyAsset(this.ƀix.texture.id)),this.ƀgw?.destroy(),this.ƀam?.destroy(),this.ƀix&&!this.ƀix.destroyed&&this.ƀix.destroy());}setTextureScale(t){return this.textureScale=t,this}get textureScale(){return this.ƀlx}set textureScale(t){this.ƀlx=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.ƀlc.boundingShapes&&!this.ƀiv.hitArea&&(this.ƀiv.hitArea=new vs(this.ƀlc.boundingShapes,this.size,helpersLib.Vector.fromVec2(this.ƀlc.anchor)));}setMipmap(t){return this.mipmap=t,this}get mipmap(){return this.pixiSprite.texture.source.autoGenerateMipmaps}set mipmap(t){this.pixiSprite.texture.source.autoGenerateMipmaps=t;}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 W__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.ƀix)return this.ƀix.alpha;throw new Error("Sprite: getGlowFilterAlpha cannot be called before glow filter is added.")}set glowAlpha(t){if(this.ƀix)this.ƀix.alpha=t;else throw new Error("Sprite: setGlowFilterAlpha cannot be called before glow filter is added.")}getAlignmentVector(t){let e=helpersLib.Vector.fromVec2(this.ƀlc.anchor).to(t);return new helpersLib.Vector(this.size.x*e.x,this.size.y*e.y)}setGlowEffect(t){return this.ƀix&&(this.ƀix.destroy(),this.ƀix=void 0),t&&(this.ƀix=re.createGlowSpriteFromSprite(this.pixiSprite,t,!this.ƀlc.destroyAssetOnDestroy),this.ƀix.position.set(this.pixiSprite.x,this.pixiSprite.y),this.ƀix.scale.set(this.pixiSprite.scale.x,this.pixiSprite.scale.y),this.ƀiv.addChild(this.ƀix)),this}showBoundingShape(t){return t?this.ƀam||(this.ƀam=this.ƀby().setAlpha(.3).setTint({r:0,g:0,b:200}).displayParent(this)):this.ƀam&&(this.ƀam.destroy(),this.ƀam=void 0),this}getBoundingMask(){if(!this.ƀgw){if(!this.ƀlc.boundingShapes)throw new Error("Sprite: cropOverflowingParts cannot be used without polygonDefinition!");this.ƀgw=this.ƀby(),this.ƀgw.displayParent(this);}return this.ƀgw}ƀby(){if(!this.ƀlc.boundingShapes)throw new Error("Sprite: bounding shape cannot be created without polygonDefinition!");return A.createPolygon(this.ƀlc.boundingShapes,helpersLib.ColorHelper.white).toSprite().attach(this)}download(){let t=y.instance.renderer.extract.canvas(this.ƀiv);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}},vs=class{static{h(this,"CompositeHitArea");}constructor(t,e,i){this.ƀkr=t.map(s=>new W__namespace.Polygon(s.map(r=>new W__namespace.Point(r.x,r.y))));}contains(t,e){return this.ƀkr.some(i=>i.contains(t,e))}};var Me=class{static{h(this,"DashedLineHelper");}static getLines(t,e,i){let s=helpersLib.Vector.fromTo(t,e),r=s.normalize(),o=s.length-i.lineStartGap-i.lineEndGap,a=[];if(o<=0)return a;let l=t.add(r.normalize(i.lineStartGap));if(o<=i.dashGap+i.dashLength*.5)return a.push({from:l,to:l.add(r.normalize(o))}),a;let c=o-i.dashGap,p=i.dashLength+i.dashGap,f=Math.floor(c/p),g=c-p*f;f>=1&&g<i.dashLength&&(g+=p,f--);let v=r.normalize(g/2),x=r.normalize(i.dashGap);if(a.push({from:l,to:l.add(v)}),l=l.add(v),f>0){let M=r.normalize(i.dashLength);helpersLib.ArrayHelper.createEmptyArray(f).forEach(()=>{l=l.add(x),a.push({from:l,to:l.add(M)}),l=l.add(M);});}return l=l.add(x),a.push({from:l,to:l.add(v)}),a}};var A=class n extends d{static{h(this,"Graphics");}static{this.ƀdb=new Map;}static createArrow(t,e){let i=new W__namespace.Graphics;return [[{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}]].forEach(r=>{i.poly(r.map(o=>new W__namespace.Point(o.x,o.y))).fill(e);}),new n(i,JSON.stringify({type:"arrow",size:t,color:e}))}static createDashedLine(t,e,i){let s={width:2,dashLength:10,dashGap:4,lineStartGap:0,lineEndGap:0,color:helpersLib.ColorHelper.white,...i},r=new W__namespace.Graphics;return Me.getLines(t,e,s).forEach(a=>{r.moveTo(a.from.x,a.from.y).lineTo(a.to.x,a.to.y);}),r.stroke({width:s.width,color:s.color}),new n(r,JSON.stringify({type:"dashedLine",from:t,to:e,options:s}))}static createVector(t,e,i){let s=new W__namespace.Graphics;return s.moveTo(t.x,t.y),s.lineTo(e.x,e.y),s.stroke({width:2,color:i}),s.circle(t.x,t.y,3),s.fill(helpersLib.ColorHelper.white),s.stroke({width:1,color:i}),new n(s,JSON.stringify({type:"line",start:t,end:e,color:i}))}static createRectangleBorders(t,e,i){let s=new W__namespace.Graphics;return s.rect(0,0,t.x,e),s.rect(0,e,e,t.y-e*2),s.rect(t.x-e,e,e,t.y-e*2),s.rect(0,t.y-e,t.x,e),s.fill(i),new n(s,JSON.stringify({type:"rectangle-borders",size:t,borderSize:e,color:i}))}static createRectangle(t,e=helpersLib.ColorHelper.white){let i=new W__namespace.Graphics;return i.rect(0,0,t.x,t.y).fill(e),new n(i,JSON.stringify({type:"rectangle",size:t,color:e}))}static createCircle(t,e){let i=new W__namespace.Graphics;return i.circle(0,0,t).fill(e),new n(i,JSON.stringify({type:"circle",radius:t,color:e}))}static createElipse(t,e){let i=new W__namespace.Graphics;return i.ellipse(0,0,t.x,t.y).fill(e),new n(i,JSON.stringify({type:"elipse",size:t,color:e}))}static createPolygon(t,e){let i=new W__namespace.Graphics,s=JSON.stringify({type:"polygon",polygon:t,color:e});return t.forEach(r=>{i.poly(r.map(o=>new W__namespace.Point(o.x,o.y))).fill(e);}),new n(i,s)}static createRegularPolygon(t,e,i){let s=new W__namespace.Graphics,r=new helpersLib.Radian(helpersLib.PI_360/t);s.moveTo(e,0);for(let o=1;o<=t;o++){let l=r.multiply(o).vector.normalize(e),c=e+l.x,p=e+l.y;s.lineTo(c,p);}return s.fill(i),new n(s,JSON.stringify({type:"regular-polygon",sides:t,radius:e,color:i}))}constructor(t,e){super(),this.ƀiv.addChild(t),this.pixiGraphics=t,this.ƀap=e;}destroy(){this.destroyed||(super.destroy(),!this.pixiGraphics.destroyed&&this.pixiGraphics.destroy());}toSprite(t){let e={cacheName:this.ƀap,cache:false,...t},i=this.ƀex(e.cacheName,e.cache),s={id:i.textureID,scale:1,size:i.bounds,anchor:{x:0,y:0},destroyAssetOnDestroy:!e.cache},r=new et(s,{texturePosition:i.bounds,ignoreAnchor:true});return this.attachToRoot(),this.destroy(),r}ƀex(t,e){if(e){let i=n.ƀdb.get(t);return i||(i=this.ƀck(),n.ƀdb.set(t,i)),i}else return this.ƀck()}ƀck(){let t=y.instance.generateTexture(this.pixiGraphics);t.id=G.insertAsset(t);let e=this.pixiGraphics.getBounds();return {textureID:t.id,bounds:new helpersLib.Vector(e.x,e.y)}}};var li=class{static{h(this,"AnimationEaseInOutFlatter");}start(){}multiplierFunction(t){return 3*(1-t)*Math.pow(t,2)+Math.pow(t,3)}},Ot=class n extends d{static{h(this,"ScrollMaskUI");}static{this.ƀdb=new Map;}constructor(t,e,i,s=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 r=new d;s===exports.ScrollDirection.Horizontal?this.ƀce(e,i,r):this.ƀcl(e,i,r),this.ƀgw=et.createSnapshotSprite(r).attach(this),r.destroy(),t.setMask(this.ƀgw);}ƀcl(t,e,i){e>0&&this.ƀcb(new helpersLib.Vector(t.x,e)).displayParent(i).attach(i),A.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.ƀcb(new helpersLib.Vector(t.x,e)).setPosition(new helpersLib.Vector(t.x,t.y),{round:false}).setRotation(helpersLib.Radian.get180).displayParent(i).attach(i);}ƀce(t,e,i){e>0&&this.ƀcb(new helpersLib.Vector(t.y,e)).setPosition(new helpersLib.Vector(0,t.y),{round:false}).setRotation(helpersLib.Radian.get270).displayParent(i).attach(i),A.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.ƀcb(new helpersLib.Vector(t.y,e)).setPosition(new helpersLib.Vector(t.x,0),{round:false}).setRotation(helpersLib.Radian.get90).displayParent(i).attach(i);}ƀcb(t){let i={id:this.ƀcc(t.y),scale:1,size:t,anchor:{x:0,y:0}};return new et(i,{textureSize:t,ignoreAnchor:true})}ƀcc(t){let e=JSON.stringify({type:"gradient",length:t}),i=n.ƀdb.get(e);if(!i){let s=document.createElement("canvas");s.width=1,s.height=t;let r=s.getContext("2d");if(r){let o=new li;helpersLib.ArrayHelper.createIntegerArray(t).forEach(l=>{let c=`rgba(255, 255, 255, ${o.multiplierFunction(l/t)})`;r.fillStyle=c,r.fillRect(0,l,1,1);});let a=W__namespace.Texture.from(s);i=G.insertAsset(a),n.ƀdb.set(e,i);}else throw new Error("Canvas context is null")}return i}};exports.SlideStateAnimationState=void 0;(function(n){n[n.Appear=1]="Appear",n[n.Disappear=2]="Disappear";})(exports.SlideStateAnimationState||(exports.SlideStateAnimationState={}));var De=class extends actionsLib.Attachable{static{h(this,"SlideStateAnimation");}onStateChange(t){return this.ƀhx.subscribe(e=>t(e.state,e.index)).attach(this),this}onValueChange(t){return this.ƀhz.subscribe(e=>t(e.value,e.index)).attach(this),this}get state(){return {value:this.ƀlj.state.value,item:this.ƀfy,nextItem:this.ƀho,queuedItem:this.ƀlj.state.queuedItem,animationState:this.ƀo}}constructor(t){super(),this.ƀo="idle",this.ƀhx=new actionsLib.Action,this.ƀhz=new actionsLib.Action,this.ƀic={duration:500,animation:b.easeInOutCubic,...t},this.ƀlj=new jt({duration:this.ƀic.duration,animation:this.ƀic.animation}).onStateChange((e,i)=>this.ƀfe(e,i)).onValueChange(e=>this.ƀfj(e)).attach(this);}setIndex(t,e){if(!helpersLib.Comparator.isInteger(t))throw new Error("SlideStateAnimation: index must be an integer!");this.ƀfy===void 0?(this.ƀfy=t,this.ƀhx.trigger({state:exports.SlideStateAnimationState.Appear,index:t}),this.ƀlj.setItem(t,e)):this.ƀfy!==t?this.ƀho!==t?this.ƀo==="idle"?(this.ƀo=t>this.ƀfy?"transitionForward":"transitionBackward",this.ƀho=t,this.ƀhx.trigger({state:exports.SlideStateAnimationState.Appear,index:this.ƀho}),this.ƀlj.setItem(t,e)):this.ƀlj.setItem(t,e):this.ƀo==="reverting"&&this.ƀho===t&&(this.ƀo=t>this.ƀfy?"transitionForward":"transitionBackward",this.ƀlj.setItem(t,e)):(this.ƀo==="transitionForward"||this.ƀo==="transitionBackward")&&(this.ƀo="reverting",this.ƀlj.setItem(t,e));}ƀfe(t,e){switch(this.ƀfy!==void 0&&this.ƀfy!==t&&this.ƀfy!==e&&this.ƀhx.trigger({state:exports.SlideStateAnimationState.Disappear,index:this.ƀfy}),this.ƀho!==void 0&&this.ƀho!==t&&this.ƀho!==e&&this.ƀhx.trigger({state:exports.SlideStateAnimationState.Disappear,index:this.ƀho}),e!==void 0&&e!==this.ƀfy&&e!==this.ƀho&&this.ƀhx.trigger({state:exports.SlideStateAnimationState.Appear,index:e}),this.ƀo){case "idle":break;case "transitionForward":case "transitionBackward":e===void 0?(this.ƀo="idle",this.ƀfy=this.ƀho,this.ƀho=void 0):this.ƀfy!==t&&this.ƀff(t,e);break;case "reverting":e===void 0?(this.ƀo="idle",this.ƀho=void 0):this.ƀfy!==e&&this.ƀff(t,e);break;default:{this.ƀo;throw new Error}}}ƀff(t,e){this.ƀfy=t,this.ƀho=e,this.ƀhz.trigger({value:0,index:this.ƀfy}),this.ƀo=this.ƀfy<this.ƀho?"transitionForward":"transitionBackward";}ƀfj(t){let e=1;(this.ƀo==="transitionBackward"||this.ƀo==="reverting"&&this.ƀfy!==void 0&&this.ƀho!==void 0&&this.ƀfy>this.ƀho)&&(e=-1),(this.ƀo==="idle"||t!==0)&&this.ƀhz.trigger({value:helpersLib.NumberHelper.ensurePositiveZero(-e*t),index:this.ƀfy}),this.ƀho!==void 0&&this.ƀhz.trigger({value:helpersLib.NumberHelper.ensurePositiveZero(e*(1-t)),index:this.ƀho});}};exports.ScrollDirection=void 0;(function(n){n[n.Horizontal=1]="Horizontal",n[n.Vertical=2]="Vertical";})(exports.ScrollDirection||(exports.ScrollDirection={}));var ci=class extends d{static{h(this,"SlideInContentByIndex");}constructor(t,e){super(),this.ƀca=t,this.ƀcx="x",this.ƀbq=new Map,this.ƀic={duration:300,animation:b.easeInOutCubic,size:new helpersLib.Vector(500,500),margin:20,direction:exports.ScrollDirection.Horizontal,...e};let i=this.ƀic.direction===exports.ScrollDirection.Horizontal?new helpersLib.Vector(this.ƀic.size.x+this.ƀic.margin*2,this.ƀic.size.y):new helpersLib.Vector(this.ƀic.size.x,this.ƀic.size.y+this.ƀic.margin*2),s=new d().setPosition(this.ƀic.direction===exports.ScrollDirection.Horizontal?new helpersLib.Vector(-this.ƀic.margin,0):new helpersLib.Vector(0,-this.ƀic.margin),{round:false}).displayParent(this).attach(this);this.ƀcf(i,this.ƀic.margin,this.ƀic.direction,s),this.ƀcx=this.ƀic.direction===exports.ScrollDirection.Horizontal?"x":"y",this.ƀlj=new De({duration:this.ƀic.duration,animation:this.ƀic.animation}).onStateChange((r,o)=>{if(r===exports.SlideStateAnimationState.Appear){let a=new d().displayParent(this).attach(this);this.ƀbq.set(o,a),this.ƀca({index:o,container:a});}else {let a=this.ƀbq.get(o);a&&(a.destroy(),this.ƀbq.delete(o));}}).onValueChange((r,o)=>{let a=this.ƀbq.get(o);if(a){let l={x:0,y:0};l[this.ƀcx]=i[this.ƀcx]*r+this.ƀic.margin,a.setPosition(helpersLib.Vector.fromVec2(l),{round:false});}}).attach(this),this.addChildTo=s;}setIndex(t,e){return this.ƀlj.setIndex(t,e),this}ƀcf(t,e,i,s){new Ot(s,new helpersLib.Vector(t.x,t.y),e,i).attach(this);}},tr=class extends ci{static{h(this,"SlideInContent");}constructor(t,e,i){super(s=>{let r=this.indexToItem.get(s.index);if(r)e({index:s.index,item:r,container:s.container});else throw new Error(`SlideInContent: The item with index '${s.index}' is not part of the items list`)},i),this.itemToIndex=new Map,this.indexToItem=new Map,t.forEach((s,r)=>{this.itemToIndex.set(s,r),this.indexToItem.set(r,s);});}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 oe=class{static{h(this,"VectorSet");}constructor(){this.ƀmk=new Map;}add(t){let e=this.ƀmk.get(t.x);e||(e=new Set,this.ƀmk.set(t.x,e)),e.add(t.y);}has(t){let e=this.ƀmk.get(t.x);return e?e.has(t.y):false}delete(t){let e=this.ƀmk.get(t.x);return e?e.delete(t.y):false}};var pi=class{static{h(this,"DeltaTime");}static adjustMultiplier(t,e){return Math.pow(t,e)}};var _=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 ne=class{static{h(this,"ClosestAvailableSpaceHelper");}static findByConvertingGridSpace(t,e,i){let s=new helpersLib.Vector(Math.ceil(e.size.x/i)-1,Math.ceil(e.size.y/i)-1),r=_.areaToGridArea(e,i);if(this.ƀax(t,r))return helpersLib.Vector.zero;let o=t.movePositionInsideGrid(r.topLeft),a=helpersLib.Vector.fromTo(r.topLeft,o),l=this.find(t,o,s);if(l){let c=l.add(a),p=helpersLib.Vector.fromTo(r.topLeft.multiplyNumber(i),e.topLeft);return new helpersLib.Vector(c.x*i+((s.x+1)*i-e.size.x)/2-p.x,c.y*i+((s.y+1)*i-e.size.y)/2-p.y)}}static find(t,e,i){let s=new oe,r=new helpersLib.Queue(e);for(;r.notEmpty;){let o=r.pop();s.add(o);let a=new helpersLib.Rectangle(o,o.add(i));if(this.ƀax(t,a))return helpersLib.Vector.fromTo(e,o);t.getNeighborPositions(o,"orthogonal").forEach(l=>{s.has(l)||r.add(l);});}}static ƀax(t,e){if(!t.isAreaWithinBounds(e))return false;for(let i=e.topLeft.y;i<=e.bottomRight.y;i++)for(let s=e.topLeft.x;s<=e.bottomRight.x;s++)if(!t.get(new helpersLib.Vector(s,i)))return false;return true}};var er=Math.SQRT2-1,_s=class{static{h(this,"PathfinderNode");}constructor(t,e){this.position=t,this.distanceToEnd=e,this.closed=false,this.distanceFromStart=Number.MAX_SAFE_INTEGER,this.parent=void 0;}get pathLength(){return this.distanceFromStart+this.distanceToEnd}getStepCost(t){return this.position.x!==t.position.x&&this.position.y!==t.position.y?Math.SQRT2:1}createSolutionPath(t){let e=[],i=this;for(;i!==void 0;)e.push(i.position),i=i.parent;return e.reverse(),{directPathAvailable:t,path:e}}},Vs=class{static{h(this,"PathfinderGrid");}constructor(t,e,i,s){this.ƀfd=t,this.ƀlr=i,this.ƀhn=s,this.ƀib=new helpersLib.BinaryHeap("min"),this.ƀhq=new helpersLib.Grid({size:t.size,defaultValue:void 0});let r=this.ƀcg(e);r.distanceFromStart=0,this.ƀib.add(r.pathLength,r),this.ƀaf=r;}get hasOpenNodes(){return this.ƀib.size>0}getNeighbors(t){let e=[];for(let i of this.ƀfd.getNeighborPositions(t.position,this.ƀhn))if(this.ƀfd.get(i)){let s=this.ƀhq.get(i)??this.ƀcg(i);s.closed||e.push(s);}return e}popLowestPathCostNode(){let t=this.ƀib.pop();return t.closed=true,t.distanceToEnd<this.ƀaf.distanceToEnd&&(this.ƀaf=t),t}changeNodeCost(t,e,i){t.distanceFromStart=e,t.parent=i,this.ƀib.updatePriority(t,t.pathLength)||this.ƀib.add(t.pathLength,t);}getBestClosedNode(){return this.ƀaf}ƀcg(t){let e=Math.abs(t.x-this.ƀlr.x),i=Math.abs(t.y-this.ƀlr.y),s=this.ƀhn==="orthogonal"?e+i:e>i?e+er*i:i+er*e,r=new _s(t,s);return this.ƀhq.isPointWithinBounds(t)&&this.ƀhq.set(t,r),r}},ae=class{static{h(this,"PathFinder");}static findPath(t,e,i,s){let r=new Vs(t,e,i,s);for(;r.hasOpenNodes;){let o=r.popLowestPathCostNode();if(o.position.isEqual(i))return o.createSolutionPath(true);for(let a of r.getNeighbors(o)){let l=o.distanceFromStart+o.getStepCost(a);l<a.distanceFromStart&&r.changeNodeCost(a,l,o);}}return r.getBestClosedNode().createSolutionPath(false)}};var Wt=[-1,0,0,1,-1,-1,1,1],$t=[0,-1,1,0,-1,1,-1,1],rr=[10,10,10,10,14,14,14,14],ui=Wt.map((n,t)=>new helpersLib.Vector(n,$t[t]).radian),he=class{static{h(this,"VectorFieldPathFinder");}constructor(t,e){this.ƀlq=t;let i=e.width,s=e.height,r=this.ƀel(e.size);this.ƀmt=i,this.ƀfm=s,this.ƀfn=r;let o=i*s,a=new Uint8Array(o),l=new Int32Array(o),c=e.snapshot();for(let x=0;x<s;x++){let M=c[x],L=x*i;for(let I=0;I<i;I++)M[I]?(a[L+I]=1,l[L+I]=r):l[L+I]=-1;}this.ƀz=a,this.ƀms=l,this.ƀcw=new Uint8Array(o),this.ƀcv=new Array(o);let p=[-1,-i,i,1,-i-1,i-1,-i+1,i+1],f=new Array(r),g=e.cropAreaOutsideOfTheGrid(t),v=[];for(let x=g.topLeft.y;x<=g.bottomRight.y;x++)for(let M=g.topLeft.x;M<=g.bottomRight.x;M++)l[x*i+M]=0,v.push(x*i+M);f[0]=v;for(let x=0;x<r;x++){let M=f[x];if(M){f[x]=void 0;for(let L=0;L<M.length;L++){let I=M[L];if(l[I]!==x)continue;let K=I%i;if(K>0&&K<i-1&&I>=i&&I<o-i){let _t=x+10,$=x+14;for(let H=0;H<8;H++){let j=I+p[H],at=H<4?_t:$;if(at<l[j]){l[j]=at;let Rt=f[at];Rt?Rt.push(j):f[at]=[j];}}}else {let _t=(I-K)/i;for(let $=0;$<8;$++){let H=K+Wt[$],j=_t+$t[$];if(H<0||j<0||H>=i||j>=s)continue;let at=j*i+H,Rt=x+rr[$];if(Rt<l[at]){l[at]=Rt;let Fi=f[Rt];Fi?Fi.push(at):f[Rt]=[at];}}}}}}for(let x=0;x<o;x++)l[x]===-1&&(l[x]=r);}getDirectionToTarget(t){if(t.isInsideRectangle(this.ƀlq))return;let e=this.ƀmt,i=Math.round(t.x),s=Math.round(t.y);i=Math.max(0,Math.min(e-1,i)),s=Math.max(0,Math.min(this.ƀfm-1,s));let r=s*e+i;if(this.ƀcw[r]===1)return this.ƀcv[r];let o=this.ƀaq(i,s,r);return this.ƀcw[r]=1,this.ƀcv[r]=o,o}ƀaq(t,e,i){let s=this.ƀmt,r=this.ƀfm,o=[];for(let a=0;a<8;a++){let l=t+Wt[a],c=e+$t[a];l>=0&&c>=0&&l<s&&c<r&&o.push(a);}if(this.ƀms[i]>=this.ƀfn){let a=o.filter(l=>this.ƀz[(e+$t[l])*s+t+Wt[l]]===1);if(a.length===0)return;if(a.length<o.length)return helpersLib.Radian.getAverage(...a.map(l=>ui[l]))}return this.ƀeb(t,e,o)}ƀeb(t,e,i){let s=this.ƀmt,r=[],o=this.ƀfn;for(let v=0;v<i.length;v++){let x=i[v],M=this.ƀms[(e+$t[x])*s+t+Wt[x]];if(M>=this.ƀfn)continue;let L=M+rr[x];L<o?(r.length=0,r.push(x),o=L):L===o&&r.push(x);}if(r.length===0)return;let a=0,l=0;for(let v=0;v<r.length;v++)a+=Wt[r[v]],l+=$t[r[v]];if(a===0&&l===0)return ui[helpersLib.Random.pickRandomElement(r)];let c=1/Math.sqrt(a*a+l*l),p=t+Math.round(a*c),f=e+Math.round(l*c);return p>=0&&f>=0&&p<s&&f<this.ƀfm&&this.ƀz[f*s+p]===1?new helpersLib.Vector(a,l).radian:ui[helpersLib.Random.pickRandomElement(r)]}get t(){let t=[];for(let e=0;e<this.ƀfm;e++){let i=new Array(this.ƀmt);for(let s=0;s<this.ƀmt;s++)i[s]=this.ƀms[e*this.ƀmt+s];t.push(i);}return new helpersLib.Grid(t)}ƀel(t){return (t.x+t.y)*20}};var R=class n{static{h(this,"AudioAssets");}static{this.ƀao=new Map;}static{this.context=new AudioContext;}static async load(t){await Promise.all(t.map(e=>fetch(e.url).then(i=>i.arrayBuffer()).then(i=>this.context.decodeAudioData(i)).then(i=>this.ƀao.set(e.id,i))));}static createSource(t){let e=n.ƀea(t),i=n.context.createBufferSource();return i.buffer=e,i}static ƀea(t){let e=this.ƀao.get(t);if(!e)throw new Error(`Audio: Sound with id ${t} was not loaded.`);return e}};T.onHardReset.subscribe(()=>{R.context=new AudioContext,R.ƀao.clear();}).attachToRoot();var rt=1e3,it=class n{static{h(this,"Audio");}static ƀkk(){return this.ƀgb=new n,this.ƀgb}constructor(){this.ƀgz=R.context.createGain(),this.ƀgy=R.context.createGain(),this.ƀhm=R.context.createGain(),this.ƀkv=R.context.createGain(),this.ƀgz.connect(R.context.destination),this.ƀgy.connect(this.ƀgz),this.ƀhm.connect(this.ƀgy),this.ƀkv.connect(this.ƀgy),this.ƀha=new O(this.ƀgz.gain,"value",{duration:500*2,animation:b.easeIn,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀha.set({value:0});}setVolumes(t){this.ƀgy.gain.value=t.master,this.ƀhm.gain.value=t.music,this.ƀkv.gain.value=t.sound;}appear(t,e="ease"){switch(e){case "ease":return this.ƀha.set({value:t?0:1}),this.ƀha.animate({value:t?1:0}).chainToRoot();case "instant":return this.ƀha.set({value:t?1:0}),actionsLib.SingleEvent.instant();default:{throw new Error}}}};T.onHardReset.subscribe(()=>{it.ƀkk();}).attachToRoot();var Hs=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r};exports.CameraGateway=class yt extends ht(){static{h(this,"CameraGateway");}};exports.CameraGateway=Hs([u()],exports.CameraGateway);var js=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Bt=class extends ht(){static{h(this,"CameraViewGateway");}};Bt=js([u()],Bt);var or;(function(n){n.BackgroundScreen="backgroundScreen",n.Background="background",n.Main="main",n.Foreground="foreground",n.ForegroundScreen="foregroundScreen";})(or||(or={}));exports.FocusingAnimation=void 0;(function(n){n[n.Instant=1]="Instant",n[n.EaseInOut=2]="EaseInOut",n[n.EaseOut=3]="EaseOut";})(exports.FocusingAnimation||(exports.FocusingAnimation={}));var le=class{static{h(this,"Camera");}get position(){return this.ƀas.getCameraPosition()}constructor(){this.ƀas=E.get(exports.CameraGateway),this.ƀaw=E.get(Bt),this.ƀas.createCamera(),this.layers=this.ƀaw.getLayers();}setPosition(t){this.ƀas.setPosition(t);}setTransition(t){this.ƀas.setTransition(t);}appear(t,e="alpha",i=0){return this.ƀaw.appear(t,e,i)}screenPositonToStagePosition(t){return this.ƀaw.screenPositonToStagePosition(t)}};var y=class n{static{h(this,"Game");}static get instance(){return this.ƀgb}static{this.pause=actionsLib.Reducer.createOr();}static{this.freeze=actionsLib.Reducer.createOr();}static get camera(){return this.ƀar}static get audio(){return this.ƀy}static appear(t,e){let i=e?.audio??"ease",s=e?.camera??"alpha";return actionsLib.ActionLib.all([this.audio.appear(t,i),this.camera.appear(t,s,i!=="instant"?0:500)]).mapToVoid().chainToRoot()}static get time(){return w.ƀly}static get setupOptions(){return this.ƀko}constructor(t){if(this.ƀjz=new actionsLib.Variable(helpersLib.Vector.zero),this.screenSize=this.ƀjz.notifier,this.ƀka=new actionsLib.Variable(helpersLib.Vector.zero),this.screenSizeCenter=this.ƀka.notifier,this.devMode=false,n.ƀgb)throw new Error("There can be only one Game instance!");this.ƀbm={screenResolution:void 0,maxScreenResolution:void 0,devMode:false,backgroundColor:helpersLib.ColorHelper.black,antialias:false,resolution:1,...t},this.devMode=this.ƀbm.devMode||false,this.ƀiu=new W__namespace.Application;let e=n.pause.effect(false).attachToRoot();n.freeze.subscribe(i=>{e.update(i),i?R.context.suspend():R.context.resume();}).attachToRoot();}async setup(t){n.ƀko=t;let e=helpersLib.JsonHelper.removeUndefinedProperties({backgroundColor:helpersLib.ColorHelper.rgbToHex(this.ƀbm.backgroundColor),autoStart:false,antialias:this.ƀbm.antialias,resolution:this.ƀbm.resolution,width:this.ƀbm.screenResolution?.width,height:this.ƀbm.screenResolution?.height,useBackBuffer:true,powerPreference:"high-performance",eventFeatures:{globalMove:false}});await this.ƀiu.init(e);let i=document.body.appendChild(this.ƀiu.canvas);this.ƀkj(i),await Promise.all([G.loadGameAssets(t.spriteAssetDefinitions),G.loadGameAssets(t.fontAssetDefinitions),R.load(t.soundAssetDefinitions)]),n.ƀgb=this,this.renderer=this.ƀiu.renderer,globalThis.ƀa=this.ƀiu,this.ƀfh(),n.ƀar=new le,n.ƀy=it.ƀkk(),this.ƀiu.start(),this.ƀiu.ticker.add(()=>{n.freeze.value||w.triggerUpdateTick(this.ƀiu.ticker.deltaMS);}),this.devMode&&await this.renderer.layout.enableDebug(true);}generateTexture(t){let e=this.renderer.layout,i=e.autoUpdate;e.autoUpdate=false;let s=this.renderer.generateTexture(t);return e.autoUpdate=i,s}setResolution(t){if(this.ƀiu.renderer.resolution!==t){this.ƀiu.renderer.resolution=t;let e=this.ƀew();this.ƀiu.renderer.resize(e.x,e.y);}}ƀfh(){this.ƀdg(),this.ƀki(),window.addEventListener("resize",t=>{this.ƀdg(),this.ƀki();});}ƀdg(){let t=this.ƀew();(t.x!==this.ƀiu.screen.width||t.y!==this.ƀiu.screen.height)&&this.ƀiu.renderer.resize(t.x,t.y);}ƀki(){let t=new helpersLib.Vector(this.ƀiu.screen.width,this.ƀiu.screen.height);this.ƀjz.value=t,this.ƀka.value=t.multiplyNumber(.5).round();}ƀew(){let t=this.ƀbm.screenResolution?.width??window.innerWidth,e=this.ƀbm.screenResolution?.height??window.innerHeight;return this.ƀbm.maxScreenResolution&&(t=Math.min(t,this.ƀbm.maxScreenResolution.width),e=Math.min(e,this.ƀbm.maxScreenResolution.height)),new helpersLib.Vector(t,e)}ƀkj(t){this.ƀbm.maxScreenResolution&&(t.style.maxWidth=`${this.ƀbm.maxScreenResolution?.width}px`,t.style.maxHeight=`${this.ƀbm.maxScreenResolution?.height}px`),t.style.width="100%",t.style.height="100%",t.style.backgroundColor=helpersLib.ColorHelper.rgbColorToString(this.ƀbm.backgroundColor);}};var lr=class{static{h(this,"ElectronGame");}static async start(t,e){let{devMode:i,maxScreenResolution:s}=await window.api.getOptions(),r=new y({...t,devMode:i,maxScreenResolution:s});await r.setup(e);let o=y.pause.effect(false).attachToRoot();window.api.onWindowFocus(l=>{o.update(!l);});let a=y.freeze.effect(false).attachToRoot();return document.addEventListener("visibilitychange",()=>{a.update(document.hidden);}),window.api.rendererReady(),window.api.setFullScreen(false),r}};var ce=class n extends actionsLib.IDAttachable{static{h(this,"Sound");}static createByName(t,e){let i=y.setupOptions.soundDefinitions[t];if(!i)throw new Error(`Sound: Could not find sound definition with name ${t}.`);return new n(i,e)}get volume(){return this.ƀdw.gain.value}set volume(t){this.setVolume(t);}setVolume(t){return this.ƀdw.gain.value=t,this}constructor(t,e){super(),this.ƀkw=t,this.ƀdw=R.context.createGain(),this.ƀdw.connect(it.ƀgb.ƀkv),this.ƀfl=this.ƀdw,e?.volume!==void 0&&(this.volume=e.volume),this.ƀjb(e?.time??0);}destroy(){this.destroyed||(super.destroy(),this.ƀll(),this.ƀdw?.disconnect());}ƀmi(){this.ƀfl.disconnect(),this.ƀfl.connect(it.ƀgb.ƀhm);}ƀjb(t){this.ƀll();let e=this.ƀkw.loop;if(this.ƀlf=helpersLib.NumberHelper.clamp(t,0,e?e.to:this.ƀkw.duration),e){let i=e.from,s=e.to;this.ƀjc({soundID:this.ƀkw.id,start:this.ƀlf,end:this.ƀlf<i?i:s,loop:false,onComplete:h(()=>{this.ƀkz.disconnect(),this.ƀjc({soundID:this.ƀkw.id,start:i,end:s,loop:true});},"onComplete")});}else this.ƀjc({soundID:this.ƀkw.id,start:this.ƀlf,end:void 0,loop:false,onComplete:h(()=>this.destroy(),"onComplete")});}ƀll(){this.ƀkz&&(this.ƀkz.onended=null,this.ƀkz.stop(),this.ƀkz.disconnect());}ƀjc(t){this.ƀkz=R.createSource(t.soundID),this.ƀkz.connect(this.ƀdw),t.onComplete&&(this.ƀkz.onended=t.onComplete),t.loop?(this.ƀkz.loop=true,this.ƀkz.loopStart=t.start,this.ƀkz.loopEnd=t.end??this.ƀkz.buffer.duration,this.ƀkz.start(0,t.start)):this.ƀkz.start(0,t.start,t.end?t.end-t.start:void 0);}};var Js=800,_e=-128,wt=class n extends ce{static{h(this,"AdvancedSound");}static createByName(t,e){let i=y.setupOptions.soundDefinitions[t];if(!i)throw new Error(`AdvancedSound: Could not find sound definition with name ${t}.`);return new n(i,e)}constructor(t,e){super(t,e),this.ƀly=new actionsLib.Variable(0),this.time=this.ƀly.notifier,this.ƀlh=R.context.currentTime-this.ƀlf,this.ƀly.value=this.ƀlf,w.beforeSceneUpdateAction.subscribe(()=>{this.ƀly.value=R.context.currentTime-this.ƀlh;}).attach(this),this.ƀfl.disconnect(),this.ƀkl(e?.fade?helpersLib.NumberHelper.clamp(e.fade,0,1):0),this.ƀkn(e?.muffle?helpersLib.NumberHelper.clamp(e.muffle,0,1):0),this.ƀfl.connect(it.ƀgb.ƀkv);}ƀkl(t=0){this.ƀdo=R.context.createGain(),this.ƀdo.gain.value=1-t,this.ƀdn=new O(this.ƀdo.gain,"value",{duration:500,animation:b.lineer,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀfl.connect(this.ƀdo),this.ƀfl=this.ƀdo;}ƀkn(t=0){this.ƀhk=R.context.createBiquadFilter(),this.ƀhk.type="highshelf",this.ƀhk.frequency.value=Js,this.ƀhk.gain.value=t*_e,this.ƀhl=new O(this.ƀhk.gain,"value",{duration:500,animation:b.lineer,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀfl.connect(this.ƀhk),this.ƀfl=this.ƀhk;}close(){return this.ƀbd?this.onDestroy():(this.ƀbd=true,this.fade(1,rt).notIdle().chain(this).tap(()=>this.destroy()).chainToRoot())}notifyOnTime(t){return this.time.value>t?actionsLib.SingleEvent.createDestroyed():actionsLib.SingleEvent.create(e=>{let i=this.time.filter(s=>s>=t).tap(()=>e()).attach(this);return ()=>i.destroy()})}setFade(t){t=helpersLib.NumberHelper.clamp(t,0,1),this.ƀdn.set({value:1-t});}fade(t,e=500){t=helpersLib.NumberHelper.clamp(t,0,1);let i=t>1-this.ƀdo.gain.value;return e===0?(this.ƀdn.set({value:1-t}),actionsLib.SingleEvent.instant()):this.ƀdn.animate({value:1-t},{duration:e,animation:i?b.easeOut:b.easeIn}).chain(this)}setMuffle(t){t=helpersLib.NumberHelper.clamp(t,0,1),this.ƀhl.set({value:t*_e});}muffle(t,e=500){return t=helpersLib.NumberHelper.clamp(t,0,1),e===0?(this.ƀhl.set({value:t*_e}),actionsLib.SingleEvent.instant()):this.ƀhl.animate({value:t*_e},{duration:e}).chain(this)}destroy(){this.destroyed||(this.ƀdo.disconnect(),this.ƀhk.disconnect()),super.destroy();}};var pe=class n extends actionsLib.IDAttachable{static{h(this,"Music");}static createByName(t,e){let i=y.setupOptions.soundDefinitions[t];if(!i)throw new Error(`AdvancedSound: Could not find sound definition with name ${t}.`);return new n(i,e)}get time(){switch(this.ƀky.value.type){case "paused":return this.ƀky.value.value.time;case "playing":return this.ƀky.value.value.time.value;default:{this.ƀky.value;throw new Error}}}get volume(){return this.ƀky.value.value.volume}set volume(t){this.setVolume(t);}setVolume(t){return this.ƀky.value.value.volume=t,this}constructor(t,e){super(),this.ƀic={stopPlayingOnPause:true,...e},this.ƀkx=t.id;let i;if(this.ƀic.stopPlayingOnPause&&y.pause.value)i={type:"paused",value:{time:0,volume:1}};else {let s=new wt(t,this.ƀic).attach(this);s.ƀmi(),i={type:"playing",value:s};}this.ƀky=new actionsLib.Variable(i),this.ƀic.stopPlayingOnPause&&(this.ƀih=y.pause.subscribe(s=>this.ƀfg(s)).attach(this));}notifyOnTime(t){return actionsLib.SingleEvent.create(e=>{let i=this.ƀky.asyncDropOngoing((s,r)=>{switch(s.type){case "paused":r.drop();break;case "playing":return s.value.notifyOnTime(t);default:{throw new Error}}}).toSingleEvent().tap(()=>e()).attach(this);return ()=>i.destroy()})}close(){return this.ƀbd?this.onDestroy():(this.ƀbd=true,this.ƀih?.destroy(),actionsLib.SingleEvent.instant().async(()=>actionsLib.ActionLib.all([this.ƀky.value.type==="playing"?this.ƀky.value.value.close():actionsLib.SingleEvent.instant(),this.ƀdp?.onDestroy()??actionsLib.SingleEvent.instant()]),"tap").chain(this).tap(()=>this.destroy()).chainToRoot())}ƀfg(t){if(t){if(this.ƀky.value.type==="playing"){let e=this.ƀky.value.value;this.ƀky.value={type:"paused",value:{time:e.time.value,volume:e.volume}},this.ƀdp=e,actionsLib.ActionLib.all([e.fade(1,rt),e.muffle(1,rt)]).tap(()=>{this.ƀdp=void 0,e.destroy();}).attach(this);}}else if(this.ƀky.value.type==="paused"){let{volume:e,time:i}=this.ƀky.value.value,s=wt.createByName(this.ƀkx,{volume:e,time:i,fade:1,muffle:1}).attach(this);s.ƀmi(),actionsLib.ActionLib.all([s.fade(0,rt),s.muffle(0,rt)]).attach(this),this.ƀky.value={type:"playing",value:s};}}};var mi=class extends actionsLib.IDAttachable{static{h(this,"MusicPlayer");}get time(){return this.ƀjd?this.ƀjd.time:0}get volume(){return this.ƀmr}set volume(t){this.setVolume(t);}setVolume(t){return this.ƀmr=t,this.ƀjd&&(this.ƀjd.volume=t),this.ƀig&&(this.ƀig.volume=t),this}constructor(t){super(),this.ƀmr=1,this.ƀic={stopPlayingOnPause:true,playWhenPaused:void 0,volume:1,...t},this.ƀmr=this.ƀic.volume,this.ƀic.playWhenPaused&&this.ƀkp(this.ƀic.playWhenPaused);}play(t){if(this.ƀbd)throw new Error("Play is called while music player is destroyed.");return this.ƀcq=t,actionsLib.SingleEvent.instant().async(()=>{let e=this.ƀjd;if(e)return this.ƀjd=void 0,e.close()}).map(()=>{if(this.ƀcq===t)return this.ƀjd=pe.createByName(t,{stopPlayingOnPause:this.ƀic.stopPlayingOnPause,volume:this.ƀmr}).attach(this),this.ƀjd}).chain(this)}stop(){return actionsLib.SingleEvent.instant().async(()=>{let t=this.ƀjd;if(t)return t.close().tap(()=>{t===this.ƀjd&&(this.ƀjd=void 0);})}).chain(this)}close(){return this.ƀbd?this.onDestroy():(this.ƀbd=true,this.ƀih?.destroy(),actionsLib.SingleEvent.instant().async(()=>actionsLib.ActionLib.all([this.ƀjd?.close()??actionsLib.SingleEvent.instant(),this.ƀig?.close()??actionsLib.SingleEvent.instant()]),"tap").chain(this).tap(()=>this.destroy()).chainToRoot())}ƀkp(t){this.ƀih=y.pause.toSequence().asyncDropOngoing(e=>e&&w.wait(rt).map(()=>e)).tap(e=>{if(e)this.ƀig=wt.createByName(t,{fade:1,volume:this.ƀmr}).attach(this),this.ƀig.ƀmi(),this.ƀig.fade(0);else if(this.ƀig){let i=this.ƀig;this.ƀig.fade(1).tap(()=>i.destroy()).attach(this),this.ƀig=void 0;}}).attach(this);}};var yi=class extends d{static{h(this,"Placeholder");}constructor(t){super(),this.ƀiy=new W__namespace.Graphics,this.ƀiy.rect(0,0,t.x,t.y).fill({color:0,alpha:1e-9}),this.ƀiv.addChild(this.ƀiy);}destroy(){this.destroyed||(super.destroy(),this.ƀiy.destroy());}};var zt=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,s={};if(i){let r={blur:4,angle:helpersLib.Radian.get60,distance:10,color:helpersLib.ColorHelper.black,alpha:.5,...i};s={dropShadow:{blur:r.blur,angle:r.angle.value,distance:r.distance,color:helpersLib.ColorHelper.rgbToHex(r.color),alpha:r.alpha}};}return helpersLib.JsonHelper.removeUndefinedProperties({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,...s})}};var Ne=class{static{h(this,"RichTextDataInConverter");}static process(t,e){let i=new Set(e.styles?Object.keys(e.styles):[]),s=scriptEngineLib.RichTextSeparator.process(t,i),r=this.ƀfx(s,e),o=this.ƀs(r);return this.ƀla(o)}static ƀfx(t,e){let i=new Map,s=new Map,r=h((a,l)=>{if(s.has(l))return s.get(l);let c=zt.getPixiTextStyle(a);return s.set(l,c),c},"GetPixiStyle");return t.map(a=>{let{style:l,cacheKey:c}=this.ƀee(a.tags,e,i),p=r(l,c),f=W__namespace.CanvasTextMetrics.measureText(" ",new W__namespace.TextStyle(p),void 0,false);return {text:a.text,cacheKey:c,style:l,pixiStyle:p,spaceWidth:f.width}})}static ƀee(t,e,i){let s=t.join("+");if(i.has(s))return {style:i.get(s),cacheKey:s};let r=this.ƀbh(t,e);return i.set(s,r),{style:r,cacheKey:s}}static ƀbh(t,e){let i={...e.default};for(let l of t)e.styles&&e.styles[l]&&(i={...i,...e.styles[l]});let{wordWrapWidth:s,align:r,dropShadow:o,...a}=i;return a}static ƀs(t){let e=[],i=[];return t.forEach((s,r)=>{s.text.split(/\r?\n/).forEach((a,l)=>{l>0&&(e.push(i),i=[]),i.push({text:a,cacheKey:s.cacheKey,style:s.style,pixiStyle:s.pixiStyle,spaceWidth:s.spaceWidth});});}),e.push(i),e}static ƀla(t){let e=[];return t.forEach(i=>{if(i.length===0)throw new Error("Internal Error: Line is unexpectedly empty");let s=i.flatMap(r=>this.ƀlb(r.text).map(a=>{let l=new W__namespace.TextStyle(r.pixiStyle),c=W__namespace.CanvasTextMetrics.measureText(a,l,void 0,false);return {text:a,whitespace:a.trim()==="",style:{cacheKey:r.cacheKey,style:r.style,pixiStyle:l,height:c.height,ascent:c.fontProperties.ascent,descent:c.fontProperties.descent,width:c.width,spaceWidth:r.spaceWidth}}}));e.push(s);}),e}static ƀlb(t){if(t==="")return [""];let e=[],i="",s=t[0]===" ";for(let r=0;r<t.length;r++){let o=t[r],a=o===" ";a===s?i+=o:(e.push(i),i=o,s=a);}return i&&e.push(i),e}};var Le=class{static{h(this,"RichTextTypewriter");}get lineIsEmpty(){return this.ƀco.length===0}get remainingWidth(){return this.ƀmu-this.ƀcr}constructor(t,e){this.ƀmu=t,this.ƀgo=[],this.ƀco=[],this.ƀcr=0,this.ƀgn=new helpersLib.Vector(0,0),this.ƀcp=0;let i={rectangleCutOption:void 0,horizontalAlignment:"left",verticalAlignment:"bottom",...e};if(this.ƀfp=i.horizontalAlignment,this.ƀml=i.verticalAlignment,i.rectangleCutOption){if(i.rectangleCutOption.position.x<0||i.rectangleCutOption.position.x>=this.ƀmu||i.rectangleCutOption.position.y<0)throw new Error("Rectangle cut position is out of bounds");this.ƀcs={direction:i.rectangleCutOption.direction,rectangle:this.ƀbu(i.rectangleCutOption)};}}isSpaceAvailable(t){let e=Math.max(this.ƀcp,t.y),i=this.ƀen(this.ƀgn.y,this.ƀgn.y+e);return this.ƀcr+t.x<=i}insertWord(t){let e=Math.max(this.ƀcp,t.style.height);if(this.ƀco.length===0){let i=this.ƀeo(this.ƀgn.y,this.ƀgn.y+e);this.ƀgn=new helpersLib.Vector(i,this.ƀgn.y),this.ƀcr=this.ƀgn.x;}this.ƀco.push({chunk:t,position:new helpersLib.Vector(this.ƀcr,this.ƀgn.y)}),this.ƀcp=e,this.ƀcr+=t.style.width;}newLine(){let t=this.ƀgn.y+this.ƀcp,e=this.ƀeo(t,t);this.ƀds(),this.ƀgn=new helpersLib.Vector(e,t),this.ƀcr=this.ƀgn.x,this.ƀcp=0;}print(){return this.ƀds(),this.ƀgo}ƀds(){this.ƀco.length>0&&(this.ƀgo.push(this.ƀg(this.ƀco)),this.ƀco=[]);}ƀg(t){return t=this.ƀmn(t),t=this.ƀfr(t),t}ƀfr(t){if(this.ƀfp==="left")return t;let e=this.ƀgn.y+this.ƀcp,i=this.ƀeo(this.ƀgn.y,e),r=this.ƀen(this.ƀgn.y,e)-i,o=Math.min(r,t.reduce((l,c)=>l+c.chunk.style.width,0)),a;return this.ƀfp==="center"?a=(r-o)/2:a=r-o,t.map(l=>(l={chunk:l.chunk,position:new helpersLib.Vector(l.position.x+a,l.position.y)},l))}ƀmn(t){let e=Math.max(...t.map(s=>s.chunk.style.ascent)),i=Math.max(...t.map(s=>s.chunk.style.descent));return t.map(s=>{let r;switch(this.ƀml){case "top":r=i-s.chunk.style.descent;break;case "center":r=(i-s.chunk.style.descent+e-s.chunk.style.ascent)*.5;break;case "bottom":r=e-s.chunk.style.ascent;break;default:{this.ƀml;throw new Error}}return s={chunk:s.chunk,position:new helpersLib.Vector(s.position.x,s.position.y+r)},s})}ƀeo(t,e){return this.ƀcs&&(this.ƀcs.direction==="topLeft"||this.ƀcs.direction==="bottomLeft")&&(this.ƀcs.rectangle.isPointInside(new helpersLib.Vector(0,t),{includeEdges:false})||this.ƀcs.rectangle.isPointInside(new helpersLib.Vector(0,e),{includeEdges:false}))?this.ƀcs.rectangle.bottomRight.x:0}ƀen(t,e){return this.ƀcs&&(this.ƀcs.direction==="topRight"||this.ƀcs.direction==="bottomRight")&&(this.ƀcs.rectangle.isPointInside(new helpersLib.Vector(this.ƀmu,t),{includeEdges:false})||this.ƀcs.rectangle.isPointInside(new helpersLib.Vector(this.ƀmu,e),{includeEdges:false}))?this.ƀcs.rectangle.topLeft.x:this.ƀmu}ƀbu(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}}return new helpersLib.Rectangle(e,i)}};var He=class{static{h(this,"ConsistentSpaceTextWrapper");}static wrapText(t,e){return t.forEach(i=>{i.forEach((s,r)=>{if(e.isSpaceAvailable(new helpersLib.Vector(s.style.width,s.style.height)))if(s.whitespace&&r===i.length-2){let o=i[i.length-1];e.isSpaceAvailable(new helpersLib.Vector(o.style.width+s.style.width,o.style.height))?e.insertWord(s):this.ƀmv(s,e);}else e.insertWord(s);else e.lineIsEmpty?e.insertWord(s):s.whitespace?this.ƀmv(s,e):(e.newLine(),e.insertWord(s));}),e.newLine();}),e.print()}static ƀmv(t,e){let i=Math.max(0,Math.floor(e.remainingWidth/t.style.spaceWidth)),s=Math.max(0,Math.min(i,t.text.length-1));if(s>0){let o={text:" ".repeat(s),whitespace:true,style:{...t.style,width:s*t.style.spaceWidth}};e.insertWord(o);}e.newLine();let r=t.text.length-s-1;if(r>0){let o={text:" ".repeat(r),whitespace:true,style:{...t.style,width:r*t.style.spaceWidth}};e.insertWord(o);}}};var je=class{static{h(this,"RichTextDataOutConverter");}static process(t){return t=this.ƀhe(t),t=this.ƀmc(t),this.ƀaz(t)}static ƀhe(t){return t.map(e=>{let i=[],s,r=true;return e.forEach(o=>{if(!s||s.chunk.style.cacheKey!==o.chunk.style.cacheKey)s&&i.push(s),s=o,r=o.chunk.whitespace;else {let a=s.chunk.text+o.chunk.text;r=o.chunk.whitespace&&r,s={chunk:{text:a,whitespace:r,style:{...s.chunk.style,width:s.chunk.style.width+o.chunk.style.width}},position:s.position};}}),s&&i.push(s),i})}static ƀmc(t){return t.map(e=>{if(e.length===0)return [];let i=e.pop();if(!i.chunk.whitespace||i.chunk.text===""){let s=i.chunk.text.length,r=i.chunk.text.trimEnd();s!==r.length?e.push({chunk:{text:r,whitespace:false,style:{...i.chunk.style,width:i.chunk.style.width-(s-r.length)*i.chunk.style.spaceWidth}},position:i.position}):e.push(i);}return e})}static ƀaz(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 fe=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=Ne.process(t,e),s=helpersLib.JsonHelper.removeUndefinedProperties({rectangleCutOption:e.rectangleCut,verticalAlignment:e.verticalAlignment,horizontalAlignment:e.default.align}),r=new Le(e.default.wordWrapWidth??1/0,s),o=He.wrapText(i,r);return je.process(o)}};var oo=1,ur=1/oo,de=class extends d{static{h(this,"Text");}get ƀlv(){if(!this.ƀlw){let t=new W__namespace.TextStyle(this.ƀja);this.ƀlw=W__namespace.CanvasTextMetrics.measureText(this.ƀlu,t);}return this.ƀlw}get ascent(){return this.ƀlv.fontProperties.ascent}constructor(t,e){super(),this.ƀja=zt.getPixiTextStyle(e),this.setText(t);}destroy(){this.destroyed||(super.destroy(),!this.ƀiz.destroyed&&this.ƀiz.destroy());}setAnchor(t){return this.anchor=t,this}get anchor(){return new helpersLib.Vector(this.ƀiz.anchor.x,this.ƀiz.anchor.y)}set anchor(t){this.ƀi=t,this.ƀiz.anchor.set(t.x,t.y),this.ƀjq();}setText(t){return this.ƀlu!==t&&(this.ƀlu=t,this.ƀjm()),this}setColor(t){let e=helpersLib.ColorHelper.rgbToHex(t);return this.ƀja.fill!==e&&(this.ƀja.fill=e,this.ƀjm()),this}ƀjm(){this.ƀiz?.destroy(),this.ƀlo?.destroy(),this.ƀlo=void 0,this.ƀlw=void 0;let t=new W__namespace.TextStyle(this.ƀja);this.ƀiz=new W__namespace.Text({text:this.ƀlu,style:t}),this.ƀi&&this.ƀiz.anchor.set(this.ƀi.x,this.ƀi.y),this.ƀjq(),this.ƀiz.scale.set(ur,ur),this.ƀiv.addChild(this.ƀiz),this.ƀja.lineThrough&&(this.ƀlo=this.ƀe(this.ƀiz,this.ƀja.fill),this.ƀiv.addChild(this.ƀlo));}ƀjq(){let t=W__namespace.CanvasTextMetrics.measureText(this.ƀlu,new W__namespace.TextStyle({...this.ƀja,dropShadow:false})),e=-this.ƀiz.anchor.x*t.width,i=-this.ƀiz.anchor.y*t.height;this.ƀiz.boundsArea=new W__namespace.Rectangle(e,i,t.width,t.height);}ƀe(t,e){let i=W__namespace.CanvasTextMetrics.measureText(t.text,t.style),s=Math.max(1,Math.round(i.lineHeight*.07)),r=s%2*.5,o=new W__namespace.Graphics,a=0;return i.lines.forEach((l,c)=>{let p=W__namespace.CanvasTextMetrics.measureText(l,t.style),f=Math.round(a+(p.fontProperties.ascent-p.fontProperties.descent)*.6+p.fontProperties.descent)+r,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),o.moveTo(Math.floor(g),f),o.lineTo(Math.floor(g+p.width),f),a+=p.lineHeight;}),o.stroke({width:s,color:e}),o}};var gi=class extends d{static{h(this,"RichText");}constructor(t,e){super(),fe.process(t,e).forEach(s=>new de(s.text,s.style).setPosition(s.position).displayParent(this).attach(this));}};var wi=class extends d{static{h(this,"UpdatableContainer");}},xi=class extends d{static{h(this,"DisplayObjectArray");}constructor(t,e){super(),this.ƀca=t,this.ƀcy=new Map,this.ƀic={trackBy:h((i,s)=>s,"trackBy"),positioning:{direction:"vertical",spacing:0},...e};}set(t){let e=new Set(this.ƀcy.keys()),i=0;t.forEach((s,r)=>{let o=this.ƀic.trackBy(s,r),a;this.ƀcy.has(o)?(a=this.ƀcy.get(o),e.delete(o),a.update(s)):(a=this.ƀca(s).displayParent(this).attach(this),this.ƀcy.set(o,a)),this.ƀic.positioning.direction==="horizontal"?(a.x=i,i+=a.size.x+this.ƀic.positioning.spacing):(a.y=i,i+=a.size.y+this.ƀic.positioning.spacing);}),e.forEach(s=>{this.ƀcy.get(s).destroy(),this.ƀcy.delete(s);});}};var me=class n extends d{static{h(this,"MenuUI");}static{this.ƀgd=actionsLib.Reducer.createExistenceChecker();}static{this.isAnyMenuTransitioning=this.ƀgd.notifier;}constructor(t,e){super(),this.ƀhu=new actionsLib.SingleAction,this.onCreate=this.ƀhu.notifier,this.ƀhw=new actionsLib.SingleAction,this.onOpen=this.ƀhw.notifier,this.ƀhr=new actionsLib.SingleAction,this.onClose=this.ƀhr.notifier,this.ƀbd=false;let i={closeOnBackgroundClick:true,appearAnimationDuration:150,backgroundDarkeningRatio:.3,...e};this.setAlpha(0),this.ƀp=new O(this,"alpha",{animation:b.easeInOutCubic,duration:i.appearAnimationDuration,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState});let s=A.createRectangle(new helpersLib.Vector(1,1),helpersLib.ColorHelper.black).toSprite({cache:true}).setAlpha(i.backgroundDarkeningRatio).setInteractive(true).displayParent(this).attach(this);this.ƀhc=et.createByName(t).setPosition(new helpersLib.Vector(0,0)).setInteractive(true).displayParent(this).attach(this),y.instance.screenSize.subscribe(o=>{s.aspectRatio=o.x/o.y,s.scale=Math.max(o.x,o.y),s.setPosition(helpersLib.Vector.zero,{holdFrom:helpersLib.Vector.half}),this.setPosition(o.multiplyNumber(.5));}).attach(this),this.ƀhu.resolve();let r=n.ƀgd.effect().attach(this);this.ƀp.animate({alpha:1}).chain(this).tap(()=>{this.ƀhw.resolve(),r.destroy(),i.closeOnBackgroundClick&&s.on(exports.ContainerEventType.Click).take(1).tap(()=>this.close()).attach(this);}).attachToRoot();}getBoundingMask(){return this.ƀhc.getBoundingMask()}close(){if(!this.ƀbd){this.ƀbd=true;let t=n.ƀgd.effect().attach(this);this.ƀp.animate({alpha:0}).chain(this).map(()=>{this.ƀhr.resolve(),t.destroy(),this.destroy();}).chainToRoot();}return this.onClose.toSingleEvent()}};var bi=class extends dt{static{h(this,"MenuEntity");}static subscribeIsOpen(){return actionsLib.ActionLib.merge(this.continuesSubscription().map(t=>t.type==="open"),actionsLib.SingleEvent.instant(this.getInstance()!==void 0))}constructor(t){super(),this.ƀic=t,queueMicrotask(()=>{if(!this.ƀhd)throw new Error("MenuEntity: MenuEntity has to have a MenuView.")});}ƀjo(t){this.ƀhd=t,this.ƀhd.onClose.subscribe(()=>this.destroy()).attach(this);}onCreate(){return this.ƀhd.onCreate.toSingleEvent()}onOpen(){return this.ƀhd.onOpen.toSingleEvent()}onClose(){return this.ƀhd.onClose.toSingleEvent()}close(){return this.ƀhd.close()}};var Pi=class extends Z{static{h(this,"MenuView");}constructor(t,e,i){super();let s=helpersLib.JsonHelper.removeUndefinedProperties({appearAnimationDuration:i.appearAnimationDuration,backgroundDarkeningRatio:i.backgroundDarkeningRatio,closeOnBackgroundClick:t.ƀic.closeOnBackgroundClick}),r=new me(e,s).displayParent(y.camera.layers.foregroundScreen).attach(this);t.ƀjo(r);let o=new actionsLib.SingleAction;r.onCreate.subscribe(()=>o.resolve(r)).attach(this),this.onCreate=o.notifier,this.onOpen=r.onOpen.notifier,this.onClose=r.onClose.notifier;}};var fo=.65,mo=.01,We=class{static{h(this,"SmoothScroller");}get scrollHeight(){return this.ƀkb}get contentSize(){return this.ƀbo.size.ceil()}constructor(t,e,i,s){this.ƀbo=t,this.ƀw=e,this.ƀie=i,this.ƀku=s,this.ƀga=false,this.ƀkb=e-i*2,this.ƀbo.y=i,this.ƀlp=i;}onWheel(t){this.setTarget(this.ƀlp-t*fo);}scrollToTop(){this.setTarget(1/0);}scrollToBottom(){this.setTarget(-1/0);}setTarget(t){this.ƀlp=helpersLib.NumberHelper.clamp(t,this.ƀw-this.ƀie-this.contentSize.y,this.ƀie);}jumpToTarget(){this.ƀbo.y=this.ƀlp;}update(t){let e=this.contentSize;if(e.y<=this.ƀkb){switch(this.ƀku){case "start":this.ƀlp=this.ƀie;break;case "center":this.ƀlp=(this.ƀw-e.y)*.5;break;case "end":this.ƀlp=this.ƀw-e.y-this.ƀie;break;default:{this.ƀku;throw new Error}}this.ƀga||(this.ƀbo.y=this.ƀlp);}this.ƀga=true;let i=this.ƀlp-this.ƀbo.y;this.ƀbo.y=this.ƀbo.y+i*mo*t;}};var go=15,Si=class extends d{static{h(this,"ScrollAreaUI");}get contentAreaSize(){return this.ƀbp}get contentSize(){return this.ƀkc.contentSize}constructor(t,e={}){super();let i={padding:go,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 s=new d().displayParent(this).attach(this);new Ot(s,t,i.padding).attach(this);let r=new W__namespace.Graphics;r.rect(0,0,t.x,t.y).fill({color:0,alpha:1e-9}),s.ƀiv.addChild(r);let o=new d().displayParent(s).attach(this);this.ƀkc=new We(o,t.y,i.padding,i.smallContentAlign),this.ƀbp=new helpersLib.Vector(t.x,this.ƀkc.scrollHeight),r.eventMode="dynamic",r.addEventListener("wheel",a=>{this.ƀkc.onWheel(a.deltaY);}),o.setInteractive(true),o.ƀiv.addEventListener("wheel",a=>{this.ƀkc.onWheel(a.deltaY);}),w.afterSceneUpdateAction.subscribe(a=>this.ƀkc.update(a.delta)).attach(this),this.addChildTo=o;}scrollToTop(t){this.ƀkc.scrollToTop(),t?.instant&&this.ƀkc.jumpToTarget();}scrollToBottom(t){this.ƀkc.scrollToBottom(),t?.instant&&this.ƀkc.jumpToTarget();}};var Ti=class extends d{static{h(this,"LayoutContainer");}constructor(t={}){super(new components.LayoutContainer),this.ƀiv.layout={isLeaf:false,...t};}setLayout(t){return this.ƀiv.layout=t,this}debug(){return this.ƀiv.layout={debug:true},this}debugBackground(){return this.ƀiv.layout={backgroundColor:"#3080FF"},this}};var xo=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},N=class extends dt{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);}};N=xo([It()],N);var vo=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},bo=1500,ke=class{static{h(this,"CameraService");}createCamera(){return new N().attachToRoot()}getCameraPosition(){let t=N.getInstanceOrFail();return helpersLib.Vector.fromTo(t.offset.value,t.position.value)}setPosition(t){let e=N.getInstanceOrFail();e.targetPosition.value=t;}setTransition(t){let e=N.getInstanceOrFail();e.focusingNewTargetInfo.value={time:y.time,duration:t?.duration??bo,position:e.position.value,roundPosition:t?.roundPosition??false,roundPositionThreshold:t?.roundPositionThreshold??0,focusingAnimation:t?.animation??exports.FocusingAnimation.Instant};}update(t,e){let i=N.getInstanceOrFail(),s=i.targetPosition.value;s&&(i.focusingNewTargetInfo.value?this.ƀgh(i,s,t):i.position.value=s);}ƀgh(t,e,i){let s=t.focusingNewTargetInfo.value;if(s.focusingAnimation===exports.FocusingAnimation.Instant)this.ƀbi(t,e);else {let r=(i-s.time)/s.duration;if(r>=1)this.ƀbi(t,e);else {let o;s.focusingAnimation===exports.FocusingAnimation.EaseInOut?o=U.easeInOut(r):s.focusingAnimation===exports.FocusingAnimation.EaseOut?o=U.easeOut(r):o=1;let a=s.position.lerp(e,o);s.roundPosition&&(Math.abs(a.x-s.position.x)>=s.roundPositionThreshold&&(a=new helpersLib.Vector(Math.round(a.x),a.y)),Math.abs(a.y-s.position.y)>=s.roundPositionThreshold&&(a=new helpersLib.Vector(a.x,Math.round(a.y)))),t.position.value=a;}}}ƀbi(t,e){t.position.value=e,t.focusingNewTargetInfo.value=void 0;}};ke=vo([u()],ke);var Po=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},So=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},Ri=class{static{h(this,"CameraController");}constructor(t){this.ƀav=t;}createCamera(){return this.ƀav.createCamera().id}update(t,e){this.ƀav.update(t,e);}setPosition(t){this.ƀav.setPosition(t);}setTransition(t){this.ƀav.setTransition(t);}getCameraPosition(){return this.ƀav.getCameraPosition()}};Ri=Po([lt(exports.CameraGateway),So("design:paramtypes",[ke])],Ri);var ze=class{static{h(this,"PositionConversionHelper");}static includeScaleInScreenPosition(t,e,i){if(e!==1){let s=helpersLib.Vector.fromTo(i,t).multiplyNumber(1/e);return i.add(s)}else return t}};var Eo=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Ro=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},Gt=class extends Z{static{h(this,"CameraView");}constructor(t){super(),this.ƀdi=t,this.ƀld=(()=>{let e=new d().attach(this);return e.ƀiv=y.instance.ƀiu.stage,e})(),this.ƀjw=new d().setAlpha(0).displayParent(this.ƀld).attach(this),this.ƀag=A.createRectangle(new helpersLib.Vector(1,1),helpersLib.ColorHelper.black).toSprite({cache:true}).setAlpha(0).displayParent(this.ƀld).attach(this),this.ƀad=new d().displayParent(this.ƀjw).attach(this),this.ƀau=new d().displayParent(this.ƀjw).attach(this),this.ƀdv=new d().setSortableChildren(true).displayParent(this.ƀjw).attach(this),this.ƀat=new d().setSortableChildren(true).displayParent(this.ƀau).attach(this),this.ƀdu=new d().setSortableChildren(true).setRenderGroup().setZIndex(20).displayParent(this.ƀat).attach(this),this.ƀgu=new d().setSortableChildren(true).setRenderGroup().setZIndex(10).displayParent(this.ƀat).attach(this),this.ƀac=new d().setRenderGroup().setZIndex(0).displayParent(this.ƀat).attach(this),this.ƀh=new O(this.ƀjw,"alpha",{duration:500,animation:b.easeInOutCubic,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀah=new O(this.ƀag,"alpha",{duration:500,animation:b.easeInOutCubic,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),y.instance.screenSize.subscribe(e=>{this.ƀag.aspectRatio=e.x/e.y,this.ƀag.scale=Math.max(e.x,e.y),this.ƀag.setPosition(helpersLib.Vector.zero,{holdFrom:helpersLib.Vector.zero});}).attach(this),this.ƀdi.position.subscribe(e=>{this.ƀat.position=this.ƀbv(e);}).attach(this),this.ƀdi.offset.subscribe(e=>{this.ƀau.position=e;}).attach(this),this.ƀah.set({alpha:0}),this.ƀh.set({alpha:0});}screenPositonToStagePosition(t){let e=ze.includeScaleInScreenPosition(t,this.ƀld.scale,y.instance.screenSizeCenter.value);return new helpersLib.Vector(e.x-this.ƀat.position.x-this.ƀau.position.x,e.y-this.ƀat.position.y-this.ƀau.position.y)}getLayers(){return {backgroundScreen:this.ƀad.id,background:this.ƀac.id,main:this.ƀgu.id,foreground:this.ƀdu.id,foregroundScreen:this.ƀdv.id}}appear(t,e,i){switch(e){case "alpha":return this.ƀah.set({alpha:0}),this.ƀh.set({alpha:t?0:1}),actionsLib.SingleEvent.instant().async(()=>i>0&&w.wait(i),"tap").async(()=>this.ƀh.animate({alpha:t?1:0})).chain(this);case "pureBlack":return this.ƀh.set({alpha:1}),this.ƀah.set({alpha:t?1:0}),actionsLib.SingleEvent.instant().async(()=>i>0&&w.wait(i),"tap").async(()=>this.ƀah.animate({alpha:t?0:1})).chain(this);case "instant":return this.ƀh.set({alpha:t?1:0}),this.ƀah.set({alpha:t?0:1}),actionsLib.SingleEvent.instant();default:{throw new Error}}}ƀbv(t){return helpersLib.Vector.fromTo(t,y.instance.screenSizeCenter.value)}};Gt=Eo([oi({entity:N}),Ro("design:paramtypes",[N])],Gt);var Co=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Ci=class{static{h(this,"CameraViewController");}getLayers(){let t=N.getInstanceOrFail().id;return Gt.getInstanceOrFail(t).getLayers()}appear(t,e,i){let s=N.getInstanceOrFail().id;return Gt.getInstanceOrFail(s).appear(t,e,i)}screenPositonToStagePosition(t){let e=N.getInstanceOrFail().id;return Gt.getInstanceOrFail(e).screenPositonToStagePosition(t)}};Ci=Co([lt(Bt)],Ci);var Ao=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Oo=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)};exports.KeyboardService=class Ai{static{h(this,"KeyboardService");}constructor(){this.ƀgj=new actionsLib.Action,this.keyPressed=this.ƀgj.notifier,this.ƀgk=new actionsLib.Action,this.keyReleased=this.ƀgk.notifier,this.ƀgq=new Set,this.ƀgp=new Set,window.addEventListener("keydown",t=>{this.ƀgq.add(t.code),this.ƀgp.add(t.code),!t.repeat&&this.ƀgj.trigger({key:t.key,code:t.code});}),window.addEventListener("keyup",t=>{this.ƀgq.delete(t.code),this.ƀgk.trigger({key:t.key,code:t.code});}),window.addEventListener("blur",()=>{this.ƀgq.clear();}),w.afterSceneUpdateAction.subscribe(()=>this.ƀgp.clear()).attachToRoot();}isKeyDown(t,e){return (e?.onlyPressedThisFrame?this.ƀgp:this.ƀgq).has(t)}};exports.KeyboardService=Ao([u(),Oo("design:paramtypes",[])],exports.KeyboardService);var Mo=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Do=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)};exports.MouseService=class we{static{h(this,"MouseService");}constructor(){this.ƀfz=new actionsLib.Variable(false),this.initialMouseMovementHappened=this.ƀfz.notifier,this.ƀle=new actionsLib.Variable(helpersLib.Vector.zero,{notifyOnChange:true}),this.stagePosition=this.ƀle.notifier,this.ƀjy=new actionsLib.Variable(helpersLib.Vector.zero,{notifyOnChange:true}),this.screenPosition=this.ƀjy.notifier,this.ƀgt=new actionsLib.Variable(false),this.mainButtonState=this.ƀgt.notifier,this.ƀkd=new actionsLib.Variable(false),this.secondaryButtonState=this.ƀkd.notifier,this.ƀlg(),window.addEventListener("pointerdown",t=>{t.button===0?this.ƀgt.value=true:t.button===2&&(this.ƀkd.value=true);},{capture:true}),window.addEventListener("pointerup",t=>{t.button===0?this.ƀgt.value=false:t.button===2&&(this.ƀkd.value=false);},{capture:true}),window.addEventListener("blur",()=>{this.ƀgt.value=false,this.ƀkd.value=false;},{capture:true});}ƀlg(){let t=helpersLib.Vector.zero;window.addEventListener("pointermove",e=>{t=new helpersLib.Vector(e.clientX,e.clientY),this.ƀfz.value=true;},{capture:true}),w.beforeSceneUpdateAction.subscribe(()=>{this.ƀjy.value=this.ƀbc(t);}).attachToRoot(),w.afterSceneUpdateAction.subscribe(()=>{this.ƀle.value=y.camera.screenPositonToStagePosition(this.ƀjy.value);}).attachToRoot();}ƀbc(t){let i=y.instance.renderer.canvas.getBoundingClientRect(),s=i.width,r=i.height;if(s<=0||r<=0)return helpersLib.Vector.zero;let o=y.instance.renderer.screen,a=(t.x-i.left)/s*o.width,l=(t.y-i.top)/r*o.height;return a=helpersLib.NumberHelper.clamp(a,0,o.width),l=helpersLib.NumberHelper.clamp(l,0,o.height),new helpersLib.Vector(a,l)}};exports.MouseService=Mo([u(),Do("design:paramtypes",[])],exports.MouseService);var Bo=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Go=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)};exports.MouseTargetFocusService=class Oi{static{h(this,"MouseTargetFocusService");}get focusedInLastFrame(){return this.ƀdt}get lastFocusedPosition(){return this.ƀgm}constructor(t){this.ƀhi=t,this.ƀhy=new actionsLib.Action,this.onTargetFocus=this.ƀhy.notifier,this.ƀma=0,this.ƀmb=false,this.ƀdt=false,this.ƀgm=void 0,w.beforeSceneUpdateAction.subscribe(e=>this.ƀme(e.delta)).attachToRoot();}ƀme(t){if(this.ƀhj){let e=this.ƀeu(this.ƀhi.stagePosition.value,this.ƀhj);this.ƀij===void 0?this.ƀij=e:this.ƀay(e,t);}this.ƀhj=this.ƀhi.stagePosition.value;}ƀay(t,e){this.ƀij-t>10?(this.ƀma=Math.max(250,this.ƀma),this.ƀmb=true):this.ƀma>1e3&&(this.ƀmb=true);let i=this.ƀma>=300&&this.ƀmb;this.ƀgi(i,t,e);}ƀgi(t,e,i){(t||e>this.ƀij)&&(this.ƀij=e),t?(this.ƀmb=false,this.ƀma=0,this.ƀdt=true,this.ƀgm=this.ƀhi.stagePosition.value,this.ƀhy.trigger(this.ƀgm)):(this.ƀma+=i,this.ƀdt=false);}ƀeu(t,e){let i=helpersLib.Vector.fromTo(t,e);return Math.abs(i.x)+Math.abs(i.y)}};exports.MouseTargetFocusService=Bo([u(),Go("design:paramtypes",[exports.MouseService])],exports.MouseTargetFocusService);var Mi=10.8,Di=10.01;exports.PhysicsShapeType=void 0;(function(n){n[n.Point=1]="Point",n[n.Circle=2]="Circle",n[n.Polygon=3]="Polygon",n[n.Rectangle=4]="Rectangle";})(exports.PhysicsShapeType||(exports.PhysicsShapeType={}));var m=class n{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,s){return (t&s)!==0&&(i&e)!==0}static canCollideWith(t,e){return t.shapes.some(i=>e.shapes.some(s=>n.arePhysicsGroupsCollidable(i.collisionGroup,i.collisionMask,s.collisionGroup,s.collisionMask)))}static cloneP2Body(t){let e=new X__default.default.Body({position:t.position,angle:t.angle,type:t.type});return e.shapes=t.shapes,e}};var xt="border";var Ho=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r};exports.PhysicsGateway=class xe extends ht(){static{h(this,"PhysicsGateway");}};exports.PhysicsGateway=Ho([u()],exports.PhysicsGateway);var jo=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},vt=class extends ht(){static{h(this,"PhysicsInternalGateway");}};vt=jo([u()],vt);var S=class n extends Q{static{h(this,"PhysicsEntity");}static{this.ƀid=new Map;}static{this.ƀin=new Map;}static getFromP2BodyID(t){return n.ƀid.get(t)}static getFromP2BodyIDOrFail(t){let e=n.ƀid.get(t);if(!e)throw new Error(`PhysicsEntity with p2BodyID ${t} not found`);return e}static getPhysicsInstanceOrFail(t){let e=n.ƀin.get(t);if(!e)throw new Error(`PhysicsEntity with id ${t} not found`);return e}static getPhysicsEntities(){return Array.from(n.ƀin.values())}get area(){return this.ƀv}get mass(){return this.ƀgx}get collisions(){return this.ƀbe}constructor(t,e,i){super(),this.ƀhs=new actionsLib.Action,this.onCollision=this.ƀhs.notifier,this.type="dynamic",this.ƀv=0,this.ƀgx=0,this.ƀbe=[],this.physicsWorldID=t,this.ƀip=E.get(vt);let s=this.ƀip.getMaterial(this.physicsWorldID,e.shapeDefinition.materialName),r=this.ƀip.getMaterialDefinition(this.physicsWorldID,e.shapeDefinition.materialName);if(this.type=i,this.physicsBodyGroup=e.shapeDefinition.group,this.includeInPathfinding=e.includeOnPathfinding,this.ƀio=this.ƀip.getGroupConstant(this.physicsWorldID,this.physicsBodyGroup),this.ƀiq=this.ƀip.getMaskConstant(this.physicsWorldID,this.physicsBodyGroup),this.p2Body=this.ƀip.createBody(this.physicsWorldID,e,s,r,this.type),this.ƀv=this.p2Body.getArea(),this.ƀgx=this.p2Body.mass,this.p2Body.position=m.vectorToArray(e.position),this.p2Body.angle=e.rotation.value,!this.ƀip.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!");n.ƀid.set(this.p2Body.id,this),n.ƀin.set(this.id,this);}destroy(){this.destroyed||(super.destroy(),this.ƀip.removeBody(this.physicsWorldID,this.p2Body),n.ƀid.delete(this.p2Body.id),n.ƀin.delete(this.id));}canCollideWith(t){return m.arePhysicsGroupsCollidable(this.ƀio,this.ƀiq,t.ƀio,t.ƀiq)}ƀkf(t){this.ƀbe=t,t.length>0&&this.ƀhs.trigger(t);}};var ve=class extends S{static{h(this,"ImmovablePhysicsEntity");}constructor(t,e){super(t,e,"static"),this.position=m.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 Bi=class extends Q{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),w.beforeSceneUpdateAction.subscribe(({time:t,delta:e})=>{this.ƀlk(t,e);}).attach(this);}ƀlk(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 Gi=class extends S{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.ƀfs=false,this.ƀft=false,this.ƀfv=false,this.ƀfu=false,this.ƀik(),this.ƀgr(),E.get(vt).subscribeToPhysicsStep(t,({time:i,delta:s})=>this.ƀlk(i,s)).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}}ƀlk(t,e){this.ƀfs=true,this.ƀft=true,this.ƀfv=true,this.ƀfu=true,this.ƀik();}ƀik(){this.position.value=m.arrayToVector(this.p2Body.position),this.rotation.value=new helpersLib.Radian(this.p2Body.angle),this.velocity.value=m.arrayToVector(this.p2Body.velocity),this.rotationalSpeed.value=this.p2Body.angularVelocity;}ƀgr(){this.position.subscribe(t=>{this.ƀfs?this.ƀfs=false:this.p2Body.position=[t.x,t.y];}).attach(this),this.rotation.subscribe(t=>{this.ƀft?this.ƀft=false:this.p2Body.angle=t.value;}).attach(this),this.velocity.subscribe(t=>{this.ƀfv?this.ƀfv=false:this.p2Body.velocity=[t.x,t.y];}).attach(this),this.rotationalSpeed.subscribe(t=>{this.ƀfu?this.ƀfu=false:this.p2Body.angularVelocity=t;}).attach(this);}};var ko=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},zo=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},P=class extends Q{static{h(this,"PhysicsWorldEntity");}constructor(t,e,i,s,r,o,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=s,this.materialDefinitions=r,this.physicsBodyGroupToP2Group=o,this.physicsBodyGroupToP2Mask=a;}};P=ko([It(),zo("design:paramtypes",[helpersLib.Vector,Boolean,X__default.default.World,Map,Map,Map,Map])],P);var Ko=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},st=class{static{h(this,"PhysicsBodyGroupService");}createBodyGroupsAndMasks(t,e){let i=new Map,s=new Map;return t.map((r,o)=>{if(o>31)return console.error("Cannot have more than 32 physics body groups"),{};i.set(r,1<<o),s.set(r,0);}),e.map(([r,o])=>{if(!i.has(r))throw new Error(`Physics body group "${r}" not found`);if(!i.has(o))throw new Error(`Physics body group "${o}" not found`);let a=s.get(r),l=s.get(o),c=i.get(r),p=i.get(o);s.set(r,a|p),s.set(o,l|c);}),{physicsBodyGroupToP2Group:i,physicsBodyGroupToP2Mask:s}}getGroupConstant(t,e){return P.getInstanceByIDOrFail(t).physicsBodyGroupToP2Group.get(e)}getMaskConstant(t,e){return P.getInstanceByIDOrFail(t).physicsBodyGroupToP2Mask.get(e)}canCollide(t,e,i){let s=t.physicsBodyGroupToP2Group.get(e),r=t.physicsBodyGroupToP2Mask.get(e),o=t.physicsBodyGroupToP2Group.get(i),a=t.physicsBodyGroupToP2Mask.get(i);return (r&o)!==0&&(a&s)!==0}};st=Ko([u()],st);var Zo=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Qo=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},Xe=class{static{h(this,"AvailabilityGridCacheService");}constructor(t){this.ƀim=t;}getCollidableGrids(t,e){let i=[];return t.availabilityGridCache.forEach((s,r)=>{s.forEach((o,a)=>{this.ƀim.canCollide(t,a,e)&&i.push({grid:o,cellSize:r});});}),i}get(t,e,i){return t.availabilityGridCache.get(e)?.get(i)}set(t,e,i,s){let r=t.availabilityGridCache.get(e);r||(r=new Map,t.availabilityGridCache.set(e,r)),r.set(i,s);}clear(t){t.availabilityGridCache.clear();}};Xe=Zo([u(),Qo("design:paramtypes",[st])],Xe);var qo=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},tn=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},bt=class{static{h(this,"AvailabilityGridService");}constructor(t,e){this.ƀim=t,this.ƀaa=e;}onBodyAdded(t,e,i){e.aabbNeedsUpdate=true,e.updateAABB();let s=m.aabbToBoundingBox(e.aabb);this.ƀaa.getCollidableGrids(t,i).forEach(r=>{let o=_.areaToGridArea(s,r.cellSize);r.grid.setArea(o,false);});}findClosestAvailableSpace(t,e,i,s=50){return e.aabbNeedsUpdate=true,e.updateAABB(),ne.findByConvertingGridSpace(this.getAvilabilityGrid(t,s,i),m.aabbToBoundingBox(e.aabb),s)}getAvilabilityGrid(t,e,i){let s=this.ƀaa.get(t,e,i);return s||(s=this.ƀcd(t,e,i),this.ƀaa.set(t,e,i,s)),s}ƀcd(t,e,i){let s=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(r=>{let o=S.getFromP2BodyIDOrFail(r.id);if(o.includeInPathfinding&&this.ƀim.canCollide(t,o.physicsBodyGroup,i)){let a=this.ƀek(r,e);s.setArea(a,false);}}),s}ƀek(t,e){let i=m.aabbToBoundingBox(t.aabb);return _.areaToGridArea(i,e)}};bt=qo([u(),tn("design:paramtypes",[st,Xe])],bt);var sn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},on=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},Kt=class{static{h(this,"PathFinderService");}constructor(t){this.ƀil=t;}findPathAStar(t,e,i,s,r){r||(r={}),r.neighborType===void 0&&(r.neighborType="orthogonal"),r.gridCellSize===void 0&&(r.gridCellSize=50);let o=P.getInstanceByIDOrFail(t),a,l;helpersLib.Comparator.isNumber(i)?(l=S.getPhysicsInstanceOrFail(i).p2Body,a=m.arrayToVector(l.position)):a=i;let c=_.positionToGridPosition(e,r.gridCellSize),p=_.positionToGridPosition(a,r.gridCellSize),f=this.ƀil.getAvilabilityGrid(o,r.gridCellSize,s);if(l){let v=m.aabbToBoundingBox(l.aabb),x=_.areaToGridArea(v,r.gridCellSize);f.setArea(x,true);}let g=ae.findPath(f,c,p,r.neighborType);return g.path=g.path.map(v=>_.gridPositionToPosition(v,r.gridCellSize)),g}findPathDirection(t,e,i,s,r=50){let o=P.getInstanceByIDOrFail(t),a;if(helpersLib.Comparator.isNumber(i)){let g=S.getPhysicsInstanceOrFail(i);a=m.aabbToBoundingBox(g.p2Body.aabb);}else a=new helpersLib.Rectangle(i,i);let l=_.areaToGridArea(a,r),c=JSON.stringify({targetGridArea:l,collidableWithGroup:s}),p=o.vectorFieldCache.get(c);if(!p){let g=this.ƀil.getAvilabilityGrid(o,r,s);p=new he(l,g),o.vectorFieldCache.set(c,p);}let f=_.positionToGridPosition(e,r);return p.getDirectionToTarget(f)}};Kt=sn([u(),on("design:paramtypes",[bt])],Kt);var an=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},hn=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},nt=class{static{h(this,"TestVisualsService");}constructor(t,e){this.ƀab=t,this.ƀif=e;}printPathfindingTestGrid(t,e,i,s,r,o){let a=P.getInstanceByIDOrFail(t);this.ƀab.getAvilabilityGrid(a,o,s).map((c,p)=>({position:_.gridPositionToPosition(p,o),availability:c})).forEach(c=>{if(c.position.isInsideRectangle(r)){let p=this.ƀif.findPathDirection(t,c.position,i,s),f;p===void 0?f=A.createRectangleBorders(new helpersLib.Vector(8,8),2,helpersLib.ColorHelper.red).toSprite().displayParent(e).setPosition(c.position,{round:false}).attach(a):f=A.createArrow(25,c.availability?helpersLib.ColorHelper.green:helpersLib.ColorHelper.red).toSprite().displayParent(e).setPosition(c.position,{round:false}).setRotation(p).attach(a),new O(f,"alpha",{duration:1e3,animation:b.easeIn}).animate({alpha:0}).tap(()=>f.destroy()).attach(f);}});}createExplosionDebugVisual(t,e,i,s,r,o=300){let a=new d().displayParent(e).setAlpha(.5).attach(t);A.createCircle(r,helpersLib.ColorHelper.blue).toSprite().displayParent(a).setPosition(s,{round:false}).setAlpha(.5).attach(t),i.forEach(c=>{let p=c.hits.length>0?helpersLib.ColorHelper.red:helpersLib.ColorHelper.white;A.createVector(s,c.line.to,p).toSprite().displayParent(a).attach(t);}),new O(a,"alpha",{duration:o,animation:b.easeIn}).animate({alpha:0}).tap(()=>a.destroy()).attach(a);}createElipticExplosionDebugVisual(t,e,i,s,r,o,a=300){let l=new d().displayParent(e).setAlpha(.5).attach(t);A.createElipse(o,helpersLib.ColorHelper.blue).toSprite().displayParent(l).setPosition(s,{round:false}).setRotation(r).setAlpha(.5).attach(t),i.forEach(p=>{let f=p.hits.length>0?helpersLib.ColorHelper.red:helpersLib.ColorHelper.white;A.createVector(p.line.from,p.line.to,f).toSprite().displayParent(l).attach(t);}),new O(l,"alpha",{duration:a,animation:b.easeIn}).animate({alpha:0}).tap(()=>l.destroy()).attach(l);}createPhysicsEntityShapeVisual(t,e,i){let s=i?.overridePosition??m.arrayToVector(t.position),r=i?.overrideRotation??new helpersLib.Radian(t.angle),o=i?.color??helpersLib.ColorHelper.blue,a=new d().displayParent(e).setPosition(s,{round:false}).setRotation(r).setAlpha(.5).attachToRoot();t.shapes.forEach(c=>{this.ƀda(c,o).displayParent(a).attachToRoot();}),new O(a,"alpha",{duration:1e3,animation:b.easeIn}).animate({alpha:0}).tap(()=>a.destroy()).attach(a);}ƀda(t,e){switch(t.type){case X__default.default.Shape.PARTICLE:throw new Error("Not implemented");case X__default.default.Shape.LINE:throw new Error("Not implemented");case X__default.default.Shape.PLANE:throw new Error("Not implemented");case X__default.default.Shape.CIRCLE:throw new Error("Not implemented");case X__default.default.Shape.CAPSULE:throw new Error("Not implemented");case X__default.default.Shape.BOX:throw new Error("Not implemented");case X__default.default.Shape.HEIGHTFIELD:throw new Error("Not implemented");case X__default.default.Shape.CONVEX:return this.ƀcz(t,e);default:{t.type;throw new Error}}}ƀcz(t,e){let i=[t.vertices.map(s=>({x:s[0],y:s[1]}))];return A.createPolygon(i,e).toSprite()}};nt=an([u(),hn("design:paramtypes",[bt,Kt])],nt);var pn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},un=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},Ke=class{static{h(this,"HitTestService");}constructor(t){this.ƀlt=t;}hitTest(t,e){let i=t.world,s=S.getFromP2BodyIDOrFail(t.id),r=m.cloneP2Body(t);this.ƀt(r,e);let o=i.broadphase.aabbQuery(i,this.ƀdy(r)).map(l=>S.getFromP2BodyIDOrFail(l.id)).filter(l=>l.includeInPathfinding).filter(l=>s.canCollideWith(l)).map(l=>m.cloneP2Body(l.p2Body)),a=false;if(o.length!==0){let l=new X__default.default.World;l.addBody(r),o.forEach(c=>l.addBody(c)),l.step(1,1,1),a=l.narrowphase.contactEquations.some(c=>c.bodyA===r||c.bodyB===r),l.clear();}if(e?.testLayerID){let l=a?helpersLib.ColorHelper.red:helpersLib.ColorHelper.green;this.ƀlt.createPhysicsEntityShapeVisual(t,e.testLayerID,{overridePosition:e.overridePosition,overrideRotation:e.overrideRotation,color:l});}return a}ƀt(t,e){e?.overridePosition&&(t.position=m.vectorToArray(e.overridePosition)),e?.overrideRotation&&(t.angle=e.overrideRotation.value);}ƀdy(t){return t.aabbNeedsUpdate=true,t.updateAABB(),t.aabb}};Ke=pn([u(),un("design:paramtypes",[nt])],Ke);var dn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Ze=class{static{h(this,"CollisionsService");}registerPhysicsWorld(t){t.p2World.on("beginContact",e=>{e.contactEquations.forEach(i=>{this.ƀjn(t,i);});});}step(t,e,i){S.getPhysicsEntities().forEach(s=>{s.ƀbe=[];}),t.p2World.narrowphase.contactEquations.forEach(s=>{this.ƀjn(t,s);}),t.bodiesInContactWith.forEach((s,r)=>{this.ƀfi(s.p2Body),s.entity.ƀkf(t.collisionReports.get(r)||[]);}),t.bodiesInContactWith.clear(),t.collisionReports.clear();}ƀfi(t){let e=m.arrayToVector(t.velocity);e.length>Mi&&(e=e.normalize(Mi),t.velocity=m.vectorToArray(e)),t.angularVelocity=Math.min(Math.max(t.angularVelocity,-Di),Di);}ƀjn(t,e){let i=S.getFromP2BodyID(e.bodyA.id),s=S.getFromP2BodyID(e.bodyB.id);if(i&&s){t.bodiesInContactWith.set(e.bodyA.id,{p2Body:e.bodyA,entity:i}),t.bodiesInContactWith.set(e.bodyB.id,{p2Body:e.bodyB,entity:s});let r=t.collisionReports.get(e.bodyA.id)||[],o=t.collisionReports.get(e.bodyB.id)||[],{collisionDetailsA:a,collisionDetailsB:l}=this.ƀed(i,s,e);r.push({self:a,target:l}),o.push({self:l,target:a}),t.collisionReports.set(e.bodyA.id,r),t.collisionReports.set(e.bodyB.id,o);}else console.warn("ContactEquationOrganiser: Entity not found for contact equation",e);}ƀed(t,e,i){let s=t.convertToDTO(),r=e.convertToDTO(),o=m.arrayToVector(i.contactPointA),a=m.arrayToVector(i.contactPointB),{normalA:l,normalB:c}=this.ƀes(i);return {collisionDetailsA:this.ƀec(s,i.bodyA.mass,o,l,t.area),collisionDetailsB:this.ƀec(r,i.bodyB.mass,a,c,e.area)}}ƀec(t,e,i,s,r){let o,a=i.add(t.position);return {body:t,getPositionReletiveToObject:h(()=>(o||(o=i.rotate(t.rotation.multiply(-1).vector)),o),"getPositionReletiveToObject"),getPositionOnWorld:h(()=>(a||(a=i.add(t.position)),a),"getPositionOnWorld"),position:i,mass:e,area:r,normal:s}}ƀes(t){let e=m.arrayToVector(t.normalA),i=e.multiplyNumber(-1);return {normalA:e,normalB:i}}};Ze=dn([u()],Ze);var mn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},yn=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},Qe=class extends ve{static{h(this,"BorderEntity");}constructor(t,e){super(t,e);}};Qe=mn([It(),yn("design:paramtypes",[Number,Object])],Qe);var gn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Y=1e4,qe=class{static{h(this,"BorderService");}createBorders(t,e,i){this.ƀbx(t,new helpersLib.Vector(e.x/2,-Y/2),new helpersLib.Vector(e.x+Y*2,Y),i),this.ƀbx(t,new helpersLib.Vector(e.x/2,e.y+Y/2),new helpersLib.Vector(e.x+Y*2,Y),i),this.ƀbx(t,new helpersLib.Vector(-Y/2,e.y/2),new helpersLib.Vector(Y,e.y+Y*2),i),this.ƀbx(t,new helpersLib.Vector(e.x+Y/2,e.y/2),new helpersLib.Vector(Y,e.y+Y*2),i);}ƀbx(t,e,i,s){return new Qe(t,{shapeDefinition:{materialName:xt,group:s,shapeType:exports.PhysicsShapeType.Rectangle,shapeData:i},position:e,rotation:helpersLib.Radian.get0,addInEmptySpace:false,includeOnPathfinding:true}).attachByID(t)}};qe=gn([u()],qe);var xn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Tr=new X__default.default.Material,vn={id:xt,density:Number.MAX_SAFE_INTEGER,velocityDrag:1,rotationalDrag:1},Zt=class{static{h(this,"MaterialsService");}createMaterials(t,e,i,s){let r=new Map,o=new Map;if(i.forEach(a=>{r.set(a.id,new X__default.default.Material),o.set(a.id,a);}),r.has(xt))throw new Error(`Material with name ${xt} cannot be defined, pick another name for the material.`);return r.set(xt,Tr),o.set(xt,vn),this.ƀc(t,e,i,s,r),{materials:r,materialDefinitions:o}}getMaterial(t,e){let i=P.getInstanceByIDOrFail(t);return this.ƀer(e,i.materials)}getMaterialDefinition(t,e){let i=P.getInstanceByIDOrFail(t);return this.ƀeq(e,i.materialDefinitions)}ƀer(t,e){let i=e.get(t);if(!i)throw new Error(`Could not find material with name ${t}.`);return i}ƀeq(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,s,r){this.ƀeh(i.map(o=>o.id),s).forEach(o=>{let a=this.ƀer(o.materialA,r),l=this.ƀer(o.materialB,r);t.addContactMaterial(new X__default.default.ContactMaterial(a,l,{friction:o.friction,restitution:o.bounciness,stiffness:o.stiffness,relaxation:o.relaxation}));}),this.ƀd(t,e,i,r);}ƀeh(t,e){let i=new Map;e.forEach(r=>{let o=i.get(r.materialA);o||(o=new Map,i.set(r.materialA,o)),o.set(r.materialB,r);});let s=[];return t.forEach((r,o)=>{for(let a=o;a<t.length;a++){let l=t[a],c=i.get(r)?.get(l);c?s.push(c):s.push({materialA:r,materialB:l,friction:0,bounciness:0,relaxation:4,stiffness:1e6});}}),s}ƀd(t,e,i,s){i.forEach(r=>{let o=this.ƀer(r.id,s);t.addContactMaterial(new X__default.default.ContactMaterial(o,Tr,{friction:e.friction,restitution:e.bounciness,stiffness:e.stiffness,relaxation:e.relaxation}));});}};Zt=xn([u()],Zt);var bn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Pn=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},Qt=class{static{h(this,"PhysicsWorldService");}constructor(t,e,i,s,r){this.ƀhb=t,this.ƀal=e,this.ƀab=i,this.ƀbf=s,this.ƀim=r;}createPhysicsWorld(t){let e=new X__default.default.World({gravity:[0,0]}),{materials:i,materialDefinitions:s}=this.ƀhb.createMaterials(e,t.borderProperties,t.materialDefinitions,t.materialContactDefinitions),{physicsBodyGroupToP2Group:r,physicsBodyGroupToP2Mask:o}=this.ƀim.createBodyGroupsAndMasks(t.physicsBodyGroups,t.interactingBodyGroups),a=new P(t.mapSize,t.modifyUpdateCycle,e,i,s,r,o).attachByID(t.attachTo);return a.onDestroy().tap(()=>{e.clear(),t.modifyUpdateCycle&&w.cleanUpdateModifier();}).attachToRoot(),this.ƀal.createBorders(a.id,t.mapSize,t.borderProperties.borderBodyGroup),this.ƀbf.registerPhysicsWorld(a),t.modifyUpdateCycle?w.registerUpdateModifier((l,c)=>this.ƀlk(a,l,c)):w.beforeSceneUpdateAction.subscribe(({time:l,delta:c})=>{this.ƀlk(a,l,c);}).attach(a),a.id}addBody(t,e,i,s,r){let o=P.getInstanceByIDOrFail(t);if(i){let a=this.ƀab.findClosestAvailableSpace(o,e,s);return a?(e.position[0]+=a.x,e.position[1]+=a.y,o.p2World.addBody(e),r&&this.ƀab.onBodyAdded(o,e,s),true):false}else return o.p2World.addBody(e),r&&this.ƀab.onBodyAdded(o,e,s),true}removeBody(t,e){P.getInstanceByID(t)?.p2World.removeBody(e);}ƀlk(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 s=e+i;this.ƀbf.step(t,s,i),t.onPhysicsStep.trigger({time:s,delta:i}),t.lastP2Time.value=t.p2World.time;}return i}setPaused(t,e){P.getInstanceByIDOrFail(e).paused.set(t);}};Qt=bn([u(),Pn("design:paramtypes",[Zt,qe,bt,Ze,st])],Qt);var Tn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},te=class{static{h(this,"RayCastingService");}castClosest(t,e,i){let s=new X__default.default.RaycastResult,r=new X__default.default.Ray({mode:X__default.default.Ray.CLOSEST,from:m.vectorToArray(e.from),to:m.vectorToArray(e.to),collisionGroup:t.physicsBodyGroupToP2Group.get(i),collisionMask:t.physicsBodyGroupToP2Mask.get(i)});if(t.p2World.raycast(s,r),s.hasHit())return this.ƀbs(s,e)}castAllFirstContacts(t,e,i){let s=new Map,r=new X__default.default.Ray({mode:X__default.default.Ray.ALL,from:m.vectorToArray(e.from),to:m.vectorToArray(e.to),collisionGroup:t.physicsBodyGroupToP2Group.get(i),collisionMask:t.physicsBodyGroupToP2Mask.get(i),callback:h(o=>{let a=s.get(o.body);!s.has(o.body)||o.fraction<a.fraction?s.set(o.body,this.ƀbs(o,e)):o.fraction===a.fraction&&a.isExternal()&&s.set(o.body,this.ƀbs(o,e));},"callback")});return t.p2World.raycast(new X__default.default.RaycastResult,r),Array.from(s.values())}ƀbs(t,e){let i=t.fraction,s=m.arrayToVector(t.normal),r,o,a;return {body:t.body,hitPosition:h(()=>(r===void 0&&(r=e.from.lerp(e.to,i)),r),"hitPosition"),hitDistance:h(()=>(o===void 0&&(o=e.length*i),o),"hitDistance"),isExternal:h(()=>(a===void 0&&(a=e.fromTo.dotProduct(s)<0),a),"isExternal"),normal:s,fraction:i,line:e}}};te=Tn([u()],te);var En=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Tt=class{static{h(this,"ImpactService");}applyImpulse(t,e,i,s){let r=i.normalize(s),o=[e.x-t.position[0],e.y-t.position[1]];t.applyImpulse(m.vectorToArray(r),o);}};Tt=En([u()],Tt);var Rn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},ee=class{static{h(this,"RayCastHitConverterService");}toExplosionHits(t,e=true){let i=new Map;return t.forEach(s=>{s.hits.forEach(r=>{let o=i.get(r.body);if(o){let a=r.fraction<o.closestRaycastHit.fraction?r:o.closestRaycastHit;o.rayCastHits.push(r),i.set(r.body,{hitCount:o.hitCount+1,closestRaycastHit:a,rayCastHits:o.rayCastHits,isExternal:e?o.isExternal:o.isExternal&&r.isExternal(),explosionCenter:r.line.from});}else {let a=r.isExternal();i.set(r.body,{hitCount:1,closestRaycastHit:r,rayCastHits:[r],isExternal:a,explosionCenter:r.line.from});}});}),[...i.values()].map(s=>this.ƀbt(s,t.length))}ƀbt(t,e){let i=t.hitCount/e,s=t.rayCastHits;if(t.isExternal)return {body:S.getFromP2BodyIDOrFail(t.closestRaycastHit.body.id).convertToDTO(),p2Body:t.closestRaycastHit.body,isExternal:true,normal:t.closestRaycastHit.normal,fraction:t.closestRaycastHit.fraction,ratioOfHits:i,raycastResults:s,getHitPosition:t.closestRaycastHit.hitPosition,getHitDistance:t.closestRaycastHit.hitDistance};{let r=m.arrayToVector(t.closestRaycastHit.body.position);return {body:S.getFromP2BodyIDOrFail(t.closestRaycastHit.body.id).convertToDTO(),p2Body:t.closestRaycastHit.body,isExternal:false,normal:helpersLib.Vector.fromTo(r,t.explosionCenter).normalize(),fraction:0,ratioOfHits:i,raycastResults:s,getHitPosition:h(()=>t.explosionCenter,"getHitPosition"),getHitDistance:h(()=>0,"getHitDistance")}}}};ee=Rn([u()],ee);var Cn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},An=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},Dn=15,ei=class{static{h(this,"ElipticExplosionService");}constructor(t,e,i,s){this.ƀji=t,this.ƀlt=e,this.ƀjh=i,this.ƀfw=s;}createElipticExplosion(t,e,i,s,r,o,a){let l=P.getInstanceByIDOrFail(t),c=this.ƀci(e,i,s,r,a?.hitOnlyClosest===true,l),p=this.ƀjh.toExplosionHits(c,false);return this.ƀr(p,o),a?.testLayerID&&this.ƀlt.createElipticExplosionDebugVisual(l,a.testLayerID,c,e,i,s,a.debugRayDuration),p.map(f=>{let{p2Body:g,...v}=f;return v})}ƀci(t,e,i,s,r,o){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 f=l.normalize(i.y);a.push(new helpersLib.Line(t,t.add(f))),a.push(new helpersLib.Line(t,t.add(f.multiplyNumber(-1))));let g=Math.round(i.y/Dn),v=i.y/(g*2+1)*2,x=l.normalize(v),M=i.x,L=Math.pow(i.y,2);return helpersLib.ArrayHelper.createIntegerArray(g).forEach(I=>{let K=v*(I+1),_t=x.multiplyNumber(I+1),$=c.normalize(this.ƀfa(M,L,K)),H=t.add(_t);a.push(new helpersLib.Line(H,H.add($))),a.push(new helpersLib.Line(H,H.add($.multiplyNumber(-1))));let j=t.add(_t.multiplyNumber(-1));a.push(new helpersLib.Line(j,j.add($))),a.push(new helpersLib.Line(j,j.add($.multiplyNumber(-1))));}),a.map(I=>{if(r){let K=this.ƀji.castClosest(o,I,s);return {line:I,hits:K?[K]:[]}}else {let K=this.ƀji.castAllFirstContacts(o,I,s);return {line:I,hits:K}}})}ƀfa(t,e,i){return Math.sqrt(1-Math.pow(i,2)/e)*t}ƀr(t,e){t.forEach(i=>{i.raycastResults.forEach(s=>{let r,o;s.isExternal()?(r=s.line.fromTo,o=e*2):(r=s.line.fromTo.multiplyNumber(-1),o=e*(1-s.fraction)*8),this.ƀfw.applyImpulse(s.body,s.hitPosition(),r,o);});});}};ei=Cn([u(),An("design:paramtypes",[te,nt,ee,Tt])],ei);var Bn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Gn=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},ii=class{static{h(this,"ExplosionService");}constructor(t,e,i,s){this.ƀji=t,this.ƀlt=e,this.ƀjh=i,this.ƀfw=s;}createExplosion(t,e,i,s,r,o){let a=P.getInstanceByIDOrFail(t),l=this.ƀey(i),c=this.ƀci(e,i,s,l,o?.hitOnlyClosest===true,a),p=this.ƀjh.toExplosionHits(c);return this.ƀr(e,i,r,l,p),o?.testLayerID&&this.ƀlt.createExplosionDebugVisual(a,o.testLayerID,c,e,i,o.debugRayDuration),p}ƀci(t,e,i,s,r,o){let a=new helpersLib.Radian(helpersLib.PI_360/s),l=new helpersLib.Vector(0,-e),c=a.vector;return helpersLib.ArrayHelper.createEmptyArray(s).map(()=>{let p=t.add(l);return l=l.rotate(c),new helpersLib.Line(t,p)}).map(p=>{if(r){let f=this.ƀji.castClosest(o,p,i);return {line:p,hits:f?[f]:[]}}else {let f=this.ƀji.castAllFirstContacts(o,p,i);return {line:p,hits:f}}})}ƀr(t,e,i,s,r){r.forEach(o=>{if(o.isExternal)o.raycastResults.forEach(a=>{let l=i*(1-a.fraction);this.ƀfw.applyImpulse(a.body,a.hitPosition(),a.line.fromTo,l);});else {let a=helpersLib.Vector.fromTo(t,m.arrayToVector(o.p2Body.position)),l=a.length/e,c=i*s*l/2;this.ƀfw.applyImpulse(o.p2Body,o.getHitPosition(),a,c);}});}ƀey(t){return t>100?Math.floor(t*.3):Math.floor(t*.26+4)}};ii=Bn([u(),Gn("design:paramtypes",[te,nt,ee,Tt])],ii);var Ln=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},ie=class{static{h(this,"PhysicsQueryService");}getMapSize(t){let e=P.getInstanceByIDOrFail(t);return {dimentions:e.mapSize,center:e.mapSizeCenter}}subscribeToPhysicsStep(t,e){return P.getInstanceByIDOrFail(t).onPhysicsStep.subscribe(e)}};ie=Ln([u()],ie);var Hn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},jn=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},_i=class{static{h(this,"PhysicsController");}constructor(t,e,i,s,r,o,a,l){this.ƀit=t,this.ƀif=e,this.ƀlt=i,this.ƀdm=s,this.ƀde=r,this.ƀfo=o,this.ƀis=a,this.ƀfw=l;}createPhysicsWorld(t){return this.ƀit.createPhysicsWorld(t)}getMapSize(t){return this.ƀis.getMapSize(t)}setPaused(t,e){this.ƀit.setPaused(t,e);}hitTest(t,e){let i=S.getPhysicsInstanceOrFail(t);return this.ƀfo.hitTest(i.p2Body,e)}findPath(t,e,i,s,r){return this.ƀif.findPathAStar(t,e,i,s,{neighborType:r})}findPathDirection(t,e,i,s){return this.ƀif.findPathDirection(t,e,i,s)}applyImpulse(t,e,i,s){let r=S.getPhysicsInstanceOrFail(t);this.ƀfw.applyImpulse(r.p2Body,e,i,s);}createExplosion(t,e,i,s,r,o){return this.ƀdm.createExplosion(t,e,i,s,r,o)}createElipticExplosion(t,e,i,s,r,o,a){return this.ƀde.createElipticExplosion(t,e,i,s,r,o,a)}printPathfindingTestGrid(t,e,i,s,r,o=50){this.ƀlt.printPathfindingTestGrid(t,e,i,s,r,o);}};_i=Hn([lt(exports.PhysicsGateway),jn("design:paramtypes",[Qt,Kt,nt,ii,ei,Ke,ie,Tt])],_i);var Un=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},ri=class{static{h(this,"ShapeCreationService");}createBody(t,e,i,s,r){let o=P.getInstanceByIDOrFail(t);if(!o.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.ƀbz(o,void 0,i,s,e.shapeDefinition.group,r);case exports.PhysicsShapeType.Circle:return this.ƀbz(o,e.shapeDefinition.shapeData,i,s,e.shapeDefinition.group,r);case exports.PhysicsShapeType.Polygon:return this.ƀch(o,e.shapeDefinition.shapeData,i,s,e.shapeDefinition.group,r);case exports.PhysicsShapeType.Rectangle:return this.ƀcj(o,e.shapeDefinition.shapeData,i,s,e.shapeDefinition.group,r);default:{e.shapeDefinition.shapeType;throw new Error}}}ƀbz(t,e,i,s,r,o){let a=new X__default.default.Circle({collisionGroup:t.physicsBodyGroupToP2Group.get(r),collisionMask:t.physicsBodyGroupToP2Mask.get(r),radius:e});a.material=i;let l=new X__default.default.Body({type:o==="dynamic"?X__default.default.Body.DYNAMIC:X__default.default.Body.STATIC,mass:s.density,damping:s.velocityDrag,angularDamping:s.rotationalDrag});return l.addShape(a),l}ƀch(t,e,i,s,r,o){let a=t.physicsBodyGroupToP2Group.get(r),l=t.physicsBodyGroupToP2Mask.get(r),c=e.map(g=>new X__default.default.Convex({vertices:g.map(v=>[v.x,v.y]),collisionGroup:a,collisionMask:l})).map(g=>(g.material=i,g)),p=c.reduce((g,v)=>g+v.area,0),f=new X__default.default.Body({type:o==="dynamic"?X__default.default.Body.DYNAMIC:X__default.default.Body.STATIC,mass:p,damping:s.velocityDrag,angularDamping:s.rotationalDrag});return c.forEach(g=>f.addShape(g)),f.setDensity(s.density),f}ƀcj(t,e,i,s,r,o){let a=new X__default.default.Box({width:e.x,height:e.y,collisionGroup:t.physicsBodyGroupToP2Group.get(r),collisionMask:t.physicsBodyGroupToP2Mask.get(r)});a.material=i;let l=e.x*e.y,c=new X__default.default.Body({type:o==="dynamic"?X__default.default.Body.DYNAMIC:X__default.default.Body.STATIC,mass:l,damping:s.velocityDrag,angularDamping:s.rotationalDrag});return c.addShape(a),c.setDensity(s.density),c}};ri=Un([u()],ri);var Wn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},$n=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},Vi=class{static{h(this,"PhysicsInternalController");}constructor(t,e,i,s,r){this.ƀit=t,this.ƀir=e,this.ƀkq=i,this.ƀis=s,this.ƀim=r;}createBody(t,e,i,s,r){return this.ƀkq.createBody(t,e,i,s,r)}getMaterial(t,e){return this.ƀir.getMaterial(t,e)}getMaterialDefinition(t,e){return this.ƀir.getMaterialDefinition(t,e)}getGroupConstant(t,e){return this.ƀim.getGroupConstant(t,e)}getMaskConstant(t,e){return this.ƀim.getMaskConstant(t,e)}addBody(t,e,i,s,r){return this.ƀit.addBody(t,e,i,s,r)}removeBody(t,e){this.ƀit.removeBody(t,e);}subscribeToPhysicsStep(t,e){return this.ƀis.subscribeToPhysicsStep(t,e)}};Vi=Wn([lt(vt),$n("design:paramtypes",[Qt,Zt,ri,ie,st])],Vi);exports.AdvancedSound=wt;exports.AnimationFlicker=Li;exports.AnimationInterpolationFunctions=U;exports.Animations=b;exports.Animator=O;exports.BORDER_MATERIAL_NAME=xt;exports.BardLegendsTestingHelper=T;exports.Camera=le;exports.ClosestAvailableSpaceHelper=ne;exports.Container=d;exports.ControllerDecorator=lt;exports.DEFAULT_SHADER_RESOLUTION=k;exports.DeltaTime=pi;exports.DisplayObjectArray=xi;exports.ElectronGame=lr;exports.Entity=Q;exports.EntityDecorator=It;exports.FadeInContent=Yi;exports.Game=y;exports.Gateway=ht;exports.Graphics=A;exports.ImmovablePhysicsEntity=ve;exports.LayoutContainer=Ti;exports.MenuEntity=bi;exports.MenuUI=me;exports.MenuView=Pi;exports.MovableEntity=Bi;exports.MovablePhysicsEntity=Gi;exports.Music=pe;exports.MusicPlayer=mi;exports.PathFinder=ae;exports.PhysicsEntity=S;exports.Placeholder=yi;exports.ROTATIONAL_SPEED_LIMIT=Di;exports.RichText=gi;exports.SOUND_TRANSITION_DURATION=rt;exports.SPEED_LIMIT=Mi;exports.Scene=Vt;exports.SceneDecorator=Nr;exports.ScrollAreaUI=Si;exports.ScrollMaskUI=Ot;exports.Service=E;exports.ServiceDecorator=u;exports.SingletonEntity=dt;exports.SlideInContent=tr;exports.SlideInContentByIndex=ci;exports.SlideStateAnimation=De;exports.Sound=ce;exports.Sprite=et;exports.StateAnimation=jt;exports.Text=de;exports.ThroughEmptyStateAnimation=Re;exports.UpdatableContainer=wi;exports.UpdateCycle=w;exports.VectorFieldPathFinder=he;exports.VectorSet=oe;exports.View=Z;exports.ViewDecorator=oi;
|
|
45
|
+
}`,e}constructor(t,e){if(super({glProgram:W__namespace.GlProgram.from({vertex:W__namespace.defaultFilterVert,fragment:n.ƀeg(t*k)}),resources:{expandUniforms:{uColor:{value:new Float32Array(3),type:"vec3<f32>"},uExpandSquared:{value:0,type:"f32"}}},resolution:k}),this.ƀdk=t,this.ƀdk=t*k,this.ƀdk<0)throw new Error("ExpandWithColorFilter: Expand * resolution cannot be smaller than 0");if(this.ƀdk>10)throw new Error("ExpandWithColorFilter: Expand * resolution cannot be higher than 10");helpersLib.Comparator.isInteger(this.ƀdk)||(this.ƀdk=Math.floor(this.ƀdk));let i=helpersLib.ColorHelper.normalize(e);this.resources.expandUniforms.uniforms.uColor=new Float32Array([i.red,i.green,i.blue]),this.resources.expandUniforms.uniforms.uExpandSquared=this.ƀdk*this.ƀdk,this.padding=this.ƀdk;}};var Oe=class extends W__namespace.Filter{static{h(this,"GlowFilter");}constructor(t){super({resolution:k,compatibleRenderers:W__namespace.RendererType.WEBGL});let e={blurRadius:1,expand:0,color:helpersLib.ColorHelper.white,...t};this.ƀdl=new Ae(e.expand,e.color);let i=helpersLib.Comparator.isNumber(e.blurRadius)?new helpersLib.Vector(e.blurRadius,e.blurRadius):e.blurRadius;this.ƀak=new Nt(i),this.padding=Math.max(i.x,i.y)+e.expand,this.ƀak.blendMode="add";}apply(t,e,i,s){let r=W__namespace.TexturePool.getSameSizeTexture(e);this.ƀdl.apply(t,e,r,true),this.ƀak.apply(t,r,i,s),W__namespace.TexturePool.returnTexture(r);}};var re=class n{static{h(this,"GlowSpriteGenerator");}static{this.ƀfb=new Map;}static createGlowSpriteFromSprite(t,e,i){let s=this.ƀbj(e),r=helpersLib.Comparator.isNumber(s.blurRadius)?new helpersLib.Vector(s.blurRadius,s.blurRadius):s.blurRadius,o=this.ƀei(t.texture,r,s.expand,s.color,i),a=new W__namespace.Sprite(o);return this.ƀkh(a,helpersLib.Vector.fromVec2(t.anchor),Math.max(r.x,r.y)+s.expand),a.alpha=s.glowAlpha,a.blendMode=s.blendMode,a}static ƀei(t,e,i,s,r){if(!t.id)throw new Error("GlowSpriteGenerator: baseTexture should have an id");if(r){let o=`${t.id}-${i}-${e.x}-${e.y}-${s.r}-${s.g}-${s.b}`;if(n.ƀfb.has(o))return n.ƀfb.get(o);{let a=this.ƀej(t,e,i,s);return n.ƀfb.set(o,a),a}}else return this.ƀej(t,e,i,s)}static ƀej(t,e,i,s){let r=new W__namespace.Sprite(t);r.filters=[new Oe({blurRadius:e,expand:i,color:s})];let o=new W__namespace.Container;o.addChild(r);let a=Math.max(e.x,e.y)+i,l=y.instance.generateTexture({target:o,frame:new W__namespace.Rectangle(-a,-a,r.width+a*2,r.height+a*2)});return l.id=G.insertAsset(l),o.destroy({children:true}),l}static ƀkh(t,e,i){let s=(i+(t.width-i*2)*e.x)/t.width,r=(i+(t.height-i*2)*e.y)/t.height;t.anchor.set(s,r);}static ƀbj(t){let e={glowAlpha:1,blurRadius:5,expand:0,color:helpersLib.ColorHelper.white,blendMode:"add"};return t&&(e={...e,...t}),e}};T.onHardReset.subscribe(()=>{re.ƀfb.clear();}).attachToRoot();var et=class n extends d{static{h(this,"Sprite");}static createByName(t){let e=y.setupOptions.spriteDefinitions[t];if(!e)throw new Error(`Sprite: Could not find sprite definition with name ${t}.`);return new n(e)}static createSnapshotSprite(t){let e=t.ƀiv,i=y.instance.generateTexture({target:e,resolution:2,antialias:true,textureSourceOptions:{scaleMode:"linear"}}),r={id:G.insertAsset(i),scale:t.scale,size:t.size,anchor:helpersLib.Vector.zero,destroyAssetOnDestroy:true};return new n(r,{ignoreAnchor:true})}constructor(t,e={}){if(super(),this.ƀlx=1,!t)throw new Error("Sprite: spriteDefinition cannot be nullish!");this.ƀlc=t,this.pixiSprite=new W__namespace.Sprite(G.getAsset(t.id)),this.ƀiv.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.ƀlc.destroyAssetOnDestroy&&(G.destroyAsset(this.ƀlc.id),this.ƀix&&G.destroyAsset(this.ƀix.texture.id)),this.ƀgw?.destroy(),this.ƀam?.destroy(),this.ƀix&&!this.ƀix.destroyed&&this.ƀix.destroy());}setTextureScale(t){return this.textureScale=t,this}get textureScale(){return this.ƀlx}set textureScale(t){this.ƀlx=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.ƀlc.boundingShapes&&!this.ƀiv.hitArea&&(this.ƀiv.hitArea=new vs(this.ƀlc.boundingShapes,this.size,helpersLib.Vector.fromVec2(this.ƀlc.anchor)));}setMipmap(t){return this.mipmap=t,this}get mipmap(){return this.pixiSprite.texture.source.autoGenerateMipmaps}set mipmap(t){this.pixiSprite.texture.source.autoGenerateMipmaps=t;}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 W__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.ƀix)return this.ƀix.alpha;throw new Error("Sprite: getGlowFilterAlpha cannot be called before glow filter is added.")}set glowAlpha(t){if(this.ƀix)this.ƀix.alpha=t;else throw new Error("Sprite: setGlowFilterAlpha cannot be called before glow filter is added.")}getAlignmentVector(t){let e=helpersLib.Vector.fromVec2(this.ƀlc.anchor).to(t);return new helpersLib.Vector(this.size.x*e.x,this.size.y*e.y)}setGlowEffect(t){return this.ƀix&&(this.ƀix.destroy(),this.ƀix=void 0),t&&(this.ƀix=re.createGlowSpriteFromSprite(this.pixiSprite,t,!this.ƀlc.destroyAssetOnDestroy),this.ƀix.position.set(this.pixiSprite.x,this.pixiSprite.y),this.ƀix.scale.set(this.pixiSprite.scale.x,this.pixiSprite.scale.y),this.ƀiv.addChild(this.ƀix)),this}showBoundingShape(t){return t?this.ƀam||(this.ƀam=this.ƀby().setAlpha(.3).setTint({r:0,g:0,b:200}).displayParent(this)):this.ƀam&&(this.ƀam.destroy(),this.ƀam=void 0),this}getBoundingMask(){if(!this.ƀgw){if(!this.ƀlc.boundingShapes)throw new Error("Sprite: cropOverflowingParts cannot be used without polygonDefinition!");this.ƀgw=this.ƀby(),this.ƀgw.displayParent(this);}return this.ƀgw}ƀby(){if(!this.ƀlc.boundingShapes)throw new Error("Sprite: bounding shape cannot be created without polygonDefinition!");return A.createPolygon(this.ƀlc.boundingShapes,helpersLib.ColorHelper.white).toSprite().attach(this)}download(){let t=y.instance.renderer.extract.canvas(this.ƀiv);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}},vs=class{static{h(this,"CompositeHitArea");}constructor(t,e,i){this.ƀkr=t.map(s=>new W__namespace.Polygon(s.map(r=>new W__namespace.Point(r.x,r.y))));}contains(t,e){return this.ƀkr.some(i=>i.contains(t,e))}};var Me=class{static{h(this,"DashedLineHelper");}static getLines(t,e,i){let s=helpersLib.Vector.fromTo(t,e),r=s.normalize(),o=s.length-i.lineStartGap-i.lineEndGap,a=[];if(o<=0)return a;let l=t.add(r.normalize(i.lineStartGap));if(o<=i.dashGap+i.dashLength*.5)return a.push({from:l,to:l.add(r.normalize(o))}),a;let c=o-i.dashGap,p=i.dashLength+i.dashGap,f=Math.floor(c/p),g=c-p*f;f>=1&&g<i.dashLength&&(g+=p,f--);let v=r.normalize(g/2),x=r.normalize(i.dashGap);if(a.push({from:l,to:l.add(v)}),l=l.add(v),f>0){let M=r.normalize(i.dashLength);helpersLib.ArrayHelper.createEmptyArray(f).forEach(()=>{l=l.add(x),a.push({from:l,to:l.add(M)}),l=l.add(M);});}return l=l.add(x),a.push({from:l,to:l.add(v)}),a}};var A=class n extends d{static{h(this,"Graphics");}static{this.ƀdb=new Map;}static createArrow(t,e){let i=new W__namespace.Graphics;return [[{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}]].forEach(r=>{i.poly(r.map(o=>new W__namespace.Point(o.x,o.y))).fill(e);}),new n(i,JSON.stringify({type:"arrow",size:t,color:e}))}static createDashedLine(t,e,i){let s={width:2,dashLength:10,dashGap:4,lineStartGap:0,lineEndGap:0,color:helpersLib.ColorHelper.white,...i},r=new W__namespace.Graphics;return Me.getLines(t,e,s).forEach(a=>{r.moveTo(a.from.x,a.from.y).lineTo(a.to.x,a.to.y);}),r.stroke({width:s.width,color:s.color}),new n(r,JSON.stringify({type:"dashedLine",from:t,to:e,options:s}))}static createVector(t,e,i){let s=new W__namespace.Graphics;return s.moveTo(t.x,t.y),s.lineTo(e.x,e.y),s.stroke({width:2,color:i}),s.circle(t.x,t.y,3),s.fill(helpersLib.ColorHelper.white),s.stroke({width:1,color:i}),new n(s,JSON.stringify({type:"line",start:t,end:e,color:i}))}static createRectangleBorders(t,e,i){let s=new W__namespace.Graphics;return s.rect(0,0,t.x,e),s.rect(0,e,e,t.y-e*2),s.rect(t.x-e,e,e,t.y-e*2),s.rect(0,t.y-e,t.x,e),s.fill(i),new n(s,JSON.stringify({type:"rectangle-borders",size:t,borderSize:e,color:i}))}static createRectangle(t,e=helpersLib.ColorHelper.white){let i=new W__namespace.Graphics;return i.rect(0,0,t.x,t.y).fill(e),new n(i,JSON.stringify({type:"rectangle",size:t,color:e}))}static createCircle(t,e){let i=new W__namespace.Graphics;return i.circle(0,0,t).fill(e),new n(i,JSON.stringify({type:"circle",radius:t,color:e}))}static createElipse(t,e){let i=new W__namespace.Graphics;return i.ellipse(0,0,t.x,t.y).fill(e),new n(i,JSON.stringify({type:"elipse",size:t,color:e}))}static createPolygon(t,e){let i=new W__namespace.Graphics,s=JSON.stringify({type:"polygon",polygon:t,color:e});return t.forEach(r=>{i.poly(r.map(o=>new W__namespace.Point(o.x,o.y))).fill(e);}),new n(i,s)}static createRegularPolygon(t,e,i){let s=new W__namespace.Graphics,r=new helpersLib.Radian(helpersLib.PI_360/t);s.moveTo(e,0);for(let o=1;o<=t;o++){let l=r.multiply(o).vector.normalize(e),c=e+l.x,p=e+l.y;s.lineTo(c,p);}return s.fill(i),new n(s,JSON.stringify({type:"regular-polygon",sides:t,radius:e,color:i}))}constructor(t,e){super(),this.ƀiv.addChild(t),this.pixiGraphics=t,this.ƀap=e;}destroy(){this.destroyed||(super.destroy(),!this.pixiGraphics.destroyed&&this.pixiGraphics.destroy());}toSprite(t){let e={cacheName:this.ƀap,cache:false,...t},i=this.ƀex(e.cacheName,e.cache),s={id:i.textureID,scale:1,size:i.bounds,anchor:{x:0,y:0},destroyAssetOnDestroy:!e.cache},r=new et(s,{texturePosition:i.bounds,ignoreAnchor:true});return this.attachToRoot(),this.destroy(),r}ƀex(t,e){if(e){let i=n.ƀdb.get(t);return i||(i=this.ƀck(),n.ƀdb.set(t,i)),i}else return this.ƀck()}ƀck(){let t=y.instance.generateTexture(this.pixiGraphics);t.id=G.insertAsset(t);let e=this.pixiGraphics.getBounds();return {textureID:t.id,bounds:new helpersLib.Vector(e.x,e.y)}}};var li=class{static{h(this,"AnimationEaseInOutFlatter");}start(){}multiplierFunction(t){return 3*(1-t)*Math.pow(t,2)+Math.pow(t,3)}},Ot=class n extends d{static{h(this,"ScrollMaskUI");}static{this.ƀdb=new Map;}constructor(t,e,i,s=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 r=new d;s===exports.ScrollDirection.Horizontal?this.ƀce(e,i,r):this.ƀcl(e,i,r),this.ƀgw=et.createSnapshotSprite(r).attach(this),r.destroy(),t.setMask(this.ƀgw);}ƀcl(t,e,i){e>0&&this.ƀcb(new helpersLib.Vector(t.x,e)).displayParent(i).attach(i),A.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.ƀcb(new helpersLib.Vector(t.x,e)).setPosition(new helpersLib.Vector(t.x,t.y),{round:false}).setRotation(helpersLib.Radian.get180).displayParent(i).attach(i);}ƀce(t,e,i){e>0&&this.ƀcb(new helpersLib.Vector(t.y,e)).setPosition(new helpersLib.Vector(0,t.y),{round:false}).setRotation(helpersLib.Radian.get270).displayParent(i).attach(i),A.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.ƀcb(new helpersLib.Vector(t.y,e)).setPosition(new helpersLib.Vector(t.x,0),{round:false}).setRotation(helpersLib.Radian.get90).displayParent(i).attach(i);}ƀcb(t){let i={id:this.ƀcc(t.y),scale:1,size:t,anchor:{x:0,y:0}};return new et(i,{textureSize:t,ignoreAnchor:true})}ƀcc(t){let e=JSON.stringify({type:"gradient",length:t}),i=n.ƀdb.get(e);if(!i){let s=document.createElement("canvas");s.width=1,s.height=t;let r=s.getContext("2d");if(r){let o=new li;helpersLib.ArrayHelper.createIntegerArray(t).forEach(l=>{let c=`rgba(255, 255, 255, ${o.multiplierFunction(l/t)})`;r.fillStyle=c,r.fillRect(0,l,1,1);});let a=W__namespace.Texture.from(s);i=G.insertAsset(a),n.ƀdb.set(e,i);}else throw new Error("Canvas context is null")}return i}};exports.SlideStateAnimationState=void 0;(function(n){n[n.Appear=1]="Appear",n[n.Disappear=2]="Disappear";})(exports.SlideStateAnimationState||(exports.SlideStateAnimationState={}));var De=class extends actionsLib.Attachable{static{h(this,"SlideStateAnimation");}onStateChange(t){return this.ƀhx.subscribe(e=>t(e.state,e.index)).attach(this),this}onValueChange(t){return this.ƀhz.subscribe(e=>t(e.value,e.index)).attach(this),this}get state(){return {value:this.ƀlj.state.value,item:this.ƀfy,nextItem:this.ƀho,queuedItem:this.ƀlj.state.queuedItem,animationState:this.ƀo}}constructor(t){super(),this.ƀo="idle",this.ƀhx=new actionsLib.Action,this.ƀhz=new actionsLib.Action,this.ƀic={duration:500,animation:b.easeInOutCubic,...t},this.ƀlj=new jt({duration:this.ƀic.duration,animation:this.ƀic.animation}).onStateChange((e,i)=>this.ƀfe(e,i)).onValueChange(e=>this.ƀfj(e)).attach(this);}setIndex(t,e){if(!helpersLib.Comparator.isInteger(t))throw new Error("SlideStateAnimation: index must be an integer!");this.ƀfy===void 0?(this.ƀfy=t,this.ƀhx.trigger({state:exports.SlideStateAnimationState.Appear,index:t}),this.ƀlj.setItem(t,e)):this.ƀfy!==t?this.ƀho!==t?this.ƀo==="idle"?(this.ƀo=t>this.ƀfy?"transitionForward":"transitionBackward",this.ƀho=t,this.ƀhx.trigger({state:exports.SlideStateAnimationState.Appear,index:this.ƀho}),this.ƀlj.setItem(t,e)):this.ƀlj.setItem(t,e):this.ƀo==="reverting"&&this.ƀho===t&&(this.ƀo=t>this.ƀfy?"transitionForward":"transitionBackward",this.ƀlj.setItem(t,e)):(this.ƀo==="transitionForward"||this.ƀo==="transitionBackward")&&(this.ƀo="reverting",this.ƀlj.setItem(t,e));}ƀfe(t,e){switch(this.ƀfy!==void 0&&this.ƀfy!==t&&this.ƀfy!==e&&this.ƀhx.trigger({state:exports.SlideStateAnimationState.Disappear,index:this.ƀfy}),this.ƀho!==void 0&&this.ƀho!==t&&this.ƀho!==e&&this.ƀhx.trigger({state:exports.SlideStateAnimationState.Disappear,index:this.ƀho}),e!==void 0&&e!==this.ƀfy&&e!==this.ƀho&&this.ƀhx.trigger({state:exports.SlideStateAnimationState.Appear,index:e}),this.ƀo){case "idle":break;case "transitionForward":case "transitionBackward":e===void 0?(this.ƀo="idle",this.ƀfy=this.ƀho,this.ƀho=void 0):this.ƀfy!==t&&this.ƀff(t,e);break;case "reverting":e===void 0?(this.ƀo="idle",this.ƀho=void 0):this.ƀfy!==e&&this.ƀff(t,e);break;default:{this.ƀo;throw new Error}}}ƀff(t,e){this.ƀfy=t,this.ƀho=e,this.ƀhz.trigger({value:0,index:this.ƀfy}),this.ƀo=this.ƀfy<this.ƀho?"transitionForward":"transitionBackward";}ƀfj(t){let e=1;(this.ƀo==="transitionBackward"||this.ƀo==="reverting"&&this.ƀfy!==void 0&&this.ƀho!==void 0&&this.ƀfy>this.ƀho)&&(e=-1),(this.ƀo==="idle"||t!==0)&&this.ƀhz.trigger({value:helpersLib.NumberHelper.ensurePositiveZero(-e*t),index:this.ƀfy}),this.ƀho!==void 0&&this.ƀhz.trigger({value:helpersLib.NumberHelper.ensurePositiveZero(e*(1-t)),index:this.ƀho});}};exports.ScrollDirection=void 0;(function(n){n[n.Horizontal=1]="Horizontal",n[n.Vertical=2]="Vertical";})(exports.ScrollDirection||(exports.ScrollDirection={}));var ci=class extends d{static{h(this,"SlideInContentByIndex");}constructor(t,e){super(),this.ƀca=t,this.ƀcx="x",this.ƀbq=new Map,this.ƀic={duration:300,animation:b.easeInOutCubic,size:new helpersLib.Vector(500,500),margin:20,direction:exports.ScrollDirection.Horizontal,...e};let i=this.ƀic.direction===exports.ScrollDirection.Horizontal?new helpersLib.Vector(this.ƀic.size.x+this.ƀic.margin*2,this.ƀic.size.y):new helpersLib.Vector(this.ƀic.size.x,this.ƀic.size.y+this.ƀic.margin*2),s=new d().setPosition(this.ƀic.direction===exports.ScrollDirection.Horizontal?new helpersLib.Vector(-this.ƀic.margin,0):new helpersLib.Vector(0,-this.ƀic.margin),{round:false}).displayParent(this).attach(this);this.ƀcf(i,this.ƀic.margin,this.ƀic.direction,s),this.ƀcx=this.ƀic.direction===exports.ScrollDirection.Horizontal?"x":"y",this.ƀlj=new De({duration:this.ƀic.duration,animation:this.ƀic.animation}).onStateChange((r,o)=>{if(r===exports.SlideStateAnimationState.Appear){let a=new d().displayParent(this).attach(this);this.ƀbq.set(o,a),this.ƀca({index:o,container:a});}else {let a=this.ƀbq.get(o);a&&(a.destroy(),this.ƀbq.delete(o));}}).onValueChange((r,o)=>{let a=this.ƀbq.get(o);if(a){let l={x:0,y:0};l[this.ƀcx]=i[this.ƀcx]*r+this.ƀic.margin,a.setPosition(helpersLib.Vector.fromVec2(l),{round:false});}}).attach(this),this.addChildTo=s;}setIndex(t,e){return this.ƀlj.setIndex(t,e),this}ƀcf(t,e,i,s){new Ot(s,new helpersLib.Vector(t.x,t.y),e,i).attach(this);}},tr=class extends ci{static{h(this,"SlideInContent");}constructor(t,e,i){super(s=>{let r=this.indexToItem.get(s.index);if(r)e({index:s.index,item:r,container:s.container});else throw new Error(`SlideInContent: The item with index '${s.index}' is not part of the items list`)},i),this.itemToIndex=new Map,this.indexToItem=new Map,t.forEach((s,r)=>{this.itemToIndex.set(s,r),this.indexToItem.set(r,s);});}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 oe=class{static{h(this,"VectorSet");}constructor(){this.ƀmk=new Map;}add(t){let e=this.ƀmk.get(t.x);e||(e=new Set,this.ƀmk.set(t.x,e)),e.add(t.y);}has(t){let e=this.ƀmk.get(t.x);return e?e.has(t.y):false}delete(t){let e=this.ƀmk.get(t.x);return e?e.delete(t.y):false}};var pi=class{static{h(this,"DeltaTime");}static adjustMultiplier(t,e){return Math.pow(t,e)}};var _=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 ne=class{static{h(this,"ClosestAvailableSpaceHelper");}static findByConvertingGridSpace(t,e,i){let s=new helpersLib.Vector(Math.ceil(e.size.x/i)-1,Math.ceil(e.size.y/i)-1),r=_.areaToGridArea(e,i);if(this.ƀax(t,r))return helpersLib.Vector.zero;let o=t.movePositionInsideGrid(r.topLeft),a=helpersLib.Vector.fromTo(r.topLeft,o),l=this.find(t,o,s);if(l){let c=l.add(a),p=helpersLib.Vector.fromTo(r.topLeft.multiplyNumber(i),e.topLeft);return new helpersLib.Vector(c.x*i+((s.x+1)*i-e.size.x)/2-p.x,c.y*i+((s.y+1)*i-e.size.y)/2-p.y)}}static find(t,e,i){let s=new oe,r=new helpersLib.Queue(e);for(;r.notEmpty;){let o=r.pop();s.add(o);let a=new helpersLib.Rectangle(o,o.add(i));if(this.ƀax(t,a))return helpersLib.Vector.fromTo(e,o);t.getNeighborPositions(o,"orthogonal").forEach(l=>{s.has(l)||r.add(l);});}}static ƀax(t,e){if(!t.isAreaWithinBounds(e))return false;for(let i=e.topLeft.y;i<=e.bottomRight.y;i++)for(let s=e.topLeft.x;s<=e.bottomRight.x;s++)if(!t.get(new helpersLib.Vector(s,i)))return false;return true}};var er=Math.SQRT2-1,_s=class{static{h(this,"PathfinderNode");}constructor(t,e){this.position=t,this.distanceToEnd=e,this.closed=false,this.distanceFromStart=Number.MAX_SAFE_INTEGER,this.parent=void 0;}get pathLength(){return this.distanceFromStart+this.distanceToEnd}getStepCost(t){return this.position.x!==t.position.x&&this.position.y!==t.position.y?Math.SQRT2:1}createSolutionPath(t){let e=[],i=this;for(;i!==void 0;)e.push(i.position),i=i.parent;return e.reverse(),{directPathAvailable:t,path:e}}},Vs=class{static{h(this,"PathfinderGrid");}constructor(t,e,i,s){this.ƀfd=t,this.ƀlr=i,this.ƀhn=s,this.ƀib=new helpersLib.BinaryHeap("min"),this.ƀhq=new helpersLib.Grid({size:t.size,defaultValue:void 0});let r=this.ƀcg(e);r.distanceFromStart=0,this.ƀib.add(r.pathLength,r),this.ƀaf=r;}get hasOpenNodes(){return this.ƀib.size>0}getNeighbors(t){let e=[];for(let i of this.ƀfd.getNeighborPositions(t.position,this.ƀhn))if(this.ƀfd.get(i)){let s=this.ƀhq.get(i)??this.ƀcg(i);s.closed||e.push(s);}return e}popLowestPathCostNode(){let t=this.ƀib.pop();return t.closed=true,t.distanceToEnd<this.ƀaf.distanceToEnd&&(this.ƀaf=t),t}changeNodeCost(t,e,i){t.distanceFromStart=e,t.parent=i,this.ƀib.updatePriority(t,t.pathLength)||this.ƀib.add(t.pathLength,t);}getBestClosedNode(){return this.ƀaf}ƀcg(t){let e=Math.abs(t.x-this.ƀlr.x),i=Math.abs(t.y-this.ƀlr.y),s=this.ƀhn==="orthogonal"?e+i:e>i?e+er*i:i+er*e,r=new _s(t,s);return this.ƀhq.isPointWithinBounds(t)&&this.ƀhq.set(t,r),r}},ae=class{static{h(this,"PathFinder");}static findPath(t,e,i,s){let r=new Vs(t,e,i,s);for(;r.hasOpenNodes;){let o=r.popLowestPathCostNode();if(o.position.isEqual(i))return o.createSolutionPath(true);for(let a of r.getNeighbors(o)){let l=o.distanceFromStart+o.getStepCost(a);l<a.distanceFromStart&&r.changeNodeCost(a,l,o);}}return r.getBestClosedNode().createSolutionPath(false)}};var Wt=[-1,0,0,1,-1,-1,1,1],$t=[0,-1,1,0,-1,1,-1,1],rr=[10,10,10,10,14,14,14,14],ui=Wt.map((n,t)=>new helpersLib.Vector(n,$t[t]).radian),he=class{static{h(this,"VectorFieldPathFinder");}constructor(t,e){this.ƀlq=t;let i=e.width,s=e.height,r=this.ƀel(e.size);this.ƀmt=i,this.ƀfm=s,this.ƀfn=r;let o=i*s,a=new Uint8Array(o),l=new Int32Array(o),c=e.snapshot();for(let x=0;x<s;x++){let M=c[x],L=x*i;for(let I=0;I<i;I++)M[I]?(a[L+I]=1,l[L+I]=r):l[L+I]=-1;}this.ƀz=a,this.ƀms=l,this.ƀcw=new Uint8Array(o),this.ƀcv=new Array(o);let p=[-1,-i,i,1,-i-1,i-1,-i+1,i+1],f=new Array(r),g=e.cropAreaOutsideOfTheGrid(t),v=[];for(let x=g.topLeft.y;x<=g.bottomRight.y;x++)for(let M=g.topLeft.x;M<=g.bottomRight.x;M++)l[x*i+M]=0,v.push(x*i+M);f[0]=v;for(let x=0;x<r;x++){let M=f[x];if(M){f[x]=void 0;for(let L=0;L<M.length;L++){let I=M[L];if(l[I]!==x)continue;let K=I%i;if(K>0&&K<i-1&&I>=i&&I<o-i){let _t=x+10,$=x+14;for(let H=0;H<8;H++){let j=I+p[H],at=H<4?_t:$;if(at<l[j]){l[j]=at;let Rt=f[at];Rt?Rt.push(j):f[at]=[j];}}}else {let _t=(I-K)/i;for(let $=0;$<8;$++){let H=K+Wt[$],j=_t+$t[$];if(H<0||j<0||H>=i||j>=s)continue;let at=j*i+H,Rt=x+rr[$];if(Rt<l[at]){l[at]=Rt;let Fi=f[Rt];Fi?Fi.push(at):f[Rt]=[at];}}}}}}for(let x=0;x<o;x++)l[x]===-1&&(l[x]=r);}getDirectionToTarget(t){if(t.isInsideRectangle(this.ƀlq))return;let e=this.ƀmt,i=Math.round(t.x),s=Math.round(t.y);i=Math.max(0,Math.min(e-1,i)),s=Math.max(0,Math.min(this.ƀfm-1,s));let r=s*e+i;if(this.ƀcw[r]===1)return this.ƀcv[r];let o=this.ƀaq(i,s,r);return this.ƀcw[r]=1,this.ƀcv[r]=o,o}ƀaq(t,e,i){let s=this.ƀmt,r=this.ƀfm,o=[];for(let a=0;a<8;a++){let l=t+Wt[a],c=e+$t[a];l>=0&&c>=0&&l<s&&c<r&&o.push(a);}if(this.ƀms[i]>=this.ƀfn){let a=o.filter(l=>this.ƀz[(e+$t[l])*s+t+Wt[l]]===1);if(a.length===0)return;if(a.length<o.length)return helpersLib.Radian.getAverage(...a.map(l=>ui[l]))}return this.ƀeb(t,e,o)}ƀeb(t,e,i){let s=this.ƀmt,r=[],o=this.ƀfn;for(let v=0;v<i.length;v++){let x=i[v],M=this.ƀms[(e+$t[x])*s+t+Wt[x]];if(M>=this.ƀfn)continue;let L=M+rr[x];L<o?(r.length=0,r.push(x),o=L):L===o&&r.push(x);}if(r.length===0)return;let a=0,l=0;for(let v=0;v<r.length;v++)a+=Wt[r[v]],l+=$t[r[v]];if(a===0&&l===0)return ui[helpersLib.Random.pickRandomElement(r)];let c=1/Math.sqrt(a*a+l*l),p=t+Math.round(a*c),f=e+Math.round(l*c);return p>=0&&f>=0&&p<s&&f<this.ƀfm&&this.ƀz[f*s+p]===1?new helpersLib.Vector(a,l).radian:ui[helpersLib.Random.pickRandomElement(r)]}get t(){let t=[];for(let e=0;e<this.ƀfm;e++){let i=new Array(this.ƀmt);for(let s=0;s<this.ƀmt;s++)i[s]=this.ƀms[e*this.ƀmt+s];t.push(i);}return new helpersLib.Grid(t)}ƀel(t){return (t.x+t.y)*20}};var R=class n{static{h(this,"AudioAssets");}static{this.ƀao=new Map;}static{this.context=new AudioContext;}static async load(t){await Promise.all(t.map(e=>fetch(e.url).then(i=>i.arrayBuffer()).then(i=>this.context.decodeAudioData(i)).then(i=>this.ƀao.set(e.id,i))));}static createSource(t){let e=n.ƀea(t),i=n.context.createBufferSource();return i.buffer=e,i}static ƀea(t){let e=this.ƀao.get(t);if(!e)throw new Error(`Audio: Sound with id ${t} was not loaded.`);return e}};T.onHardReset.subscribe(()=>{R.context=new AudioContext,R.ƀao.clear();}).attachToRoot();var rt=1e3,it=class n{static{h(this,"Audio");}static ƀkk(){return this.ƀgb=new n,this.ƀgb}constructor(){this.ƀgz=R.context.createGain(),this.ƀgy=R.context.createGain(),this.ƀhm=R.context.createGain(),this.ƀkv=R.context.createGain(),this.ƀgz.connect(R.context.destination),this.ƀgy.connect(this.ƀgz),this.ƀhm.connect(this.ƀgy),this.ƀkv.connect(this.ƀgy),this.ƀha=new O(this.ƀgz.gain,"value",{duration:500*2,animation:b.easeIn,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀha.set({value:0});}setVolumes(t){this.ƀgy.gain.value=t.master,this.ƀhm.gain.value=t.music,this.ƀkv.gain.value=t.sound;}appear(t,e="ease"){switch(e){case "ease":return this.ƀha.set({value:t?0:1}),this.ƀha.animate({value:t?1:0}).chainToRoot();case "instant":return this.ƀha.set({value:t?1:0}),actionsLib.SingleEvent.instant();default:{throw new Error}}}};T.onHardReset.subscribe(()=>{it.ƀkk();}).attachToRoot();var Hs=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r};exports.CameraGateway=class yt extends ht(){static{h(this,"CameraGateway");}};exports.CameraGateway=Hs([u()],exports.CameraGateway);var js=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Bt=class extends ht(){static{h(this,"CameraViewGateway");}};Bt=js([u()],Bt);var or;(function(n){n.BackgroundScreen="backgroundScreen",n.Background="background",n.Main="main",n.Foreground="foreground",n.ForegroundScreen="foregroundScreen";})(or||(or={}));exports.FocusingAnimation=void 0;(function(n){n[n.Instant=1]="Instant",n[n.EaseInOut=2]="EaseInOut",n[n.EaseOut=3]="EaseOut";})(exports.FocusingAnimation||(exports.FocusingAnimation={}));var le=class{static{h(this,"Camera");}get position(){return this.ƀas.getCameraPosition()}constructor(){this.ƀas=E.get(exports.CameraGateway),this.ƀaw=E.get(Bt),this.ƀas.createCamera(),this.layers=this.ƀaw.getLayers();}setPosition(t){this.ƀas.setPosition(t);}setTransition(t){this.ƀas.setTransition(t);}appear(t,e="alpha",i=0){return this.ƀaw.appear(t,e,i)}screenPositonToStagePosition(t){return this.ƀaw.screenPositonToStagePosition(t)}};var y=class n{static{h(this,"Game");}static get instance(){return this.ƀgb}static{this.pause=actionsLib.Reducer.createOr();}static{this.freeze=actionsLib.Reducer.createOr();}static get camera(){return this.ƀar}static get audio(){return this.ƀy}static appear(t,e){let i=e?.audio??"ease",s=e?.camera??"alpha";return actionsLib.ActionLib.all([this.audio.appear(t,i),this.camera.appear(t,s,i!=="instant"?0:500)]).mapToVoid().chainToRoot()}static get time(){return w.ƀly}static get setupOptions(){return this.ƀko}constructor(t){if(this.ƀjz=new actionsLib.Variable(helpersLib.Vector.zero),this.screenSize=this.ƀjz.notifier,this.ƀka=new actionsLib.Variable(helpersLib.Vector.zero),this.screenSizeCenter=this.ƀka.notifier,this.devMode=false,n.ƀgb)throw new Error("There can be only one Game instance!");this.ƀbm={screenResolution:void 0,maxScreenResolution:void 0,devMode:false,backgroundColor:helpersLib.ColorHelper.black,antialias:false,resolution:1,...t},this.devMode=this.ƀbm.devMode||false,this.ƀiu=new W__namespace.Application;let e=n.pause.effect(false).attachToRoot();n.freeze.subscribe(i=>{e.update(i),i?R.context.suspend():R.context.resume();}).attachToRoot();}async setup(t){n.ƀko=t;let e=helpersLib.JsonHelper.removeUndefinedProperties({backgroundColor:helpersLib.ColorHelper.rgbToHex(this.ƀbm.backgroundColor),autoStart:false,antialias:this.ƀbm.antialias,resolution:this.ƀbm.resolution,width:this.ƀbm.screenResolution?.width,height:this.ƀbm.screenResolution?.height,useBackBuffer:true,powerPreference:"high-performance",eventFeatures:{globalMove:false}});await this.ƀiu.init(e);let i=document.body.appendChild(this.ƀiu.canvas);this.ƀkj(i),await Promise.all([G.loadGameAssets(t.spriteAssetDefinitions),G.loadGameAssets(t.fontAssetDefinitions),R.load(t.soundAssetDefinitions)]),n.ƀgb=this,this.renderer=this.ƀiu.renderer,globalThis.ƀa=this.ƀiu,this.ƀfh(),n.ƀar=new le,n.ƀy=it.ƀkk(),this.ƀiu.start(),this.ƀiu.ticker.add(()=>{n.freeze.value||w.triggerUpdateTick(this.ƀiu.ticker.deltaMS);}),this.devMode&&await this.renderer.layout.enableDebug(true);}generateTexture(t){let e=this.renderer.layout,i=e.autoUpdate;e.autoUpdate=false;let s=this.renderer.generateTexture(t);return e.autoUpdate=i,s}setResolution(t){if(this.ƀiu.renderer.resolution!==t){this.ƀiu.renderer.resolution=t;let e=this.ƀew();this.ƀiu.renderer.resize(e.x,e.y);}}ƀfh(){this.ƀdg(),this.ƀki(),window.addEventListener("resize",t=>{this.ƀdg(),this.ƀki();});}ƀdg(){let t=this.ƀew();(t.x!==this.ƀiu.screen.width||t.y!==this.ƀiu.screen.height)&&this.ƀiu.renderer.resize(t.x,t.y);}ƀki(){let t=new helpersLib.Vector(this.ƀiu.screen.width,this.ƀiu.screen.height);this.ƀjz.value=t,this.ƀka.value=t.multiplyNumber(.5).round();}ƀew(){let t=this.ƀbm.screenResolution?.width??window.innerWidth,e=this.ƀbm.screenResolution?.height??window.innerHeight;return this.ƀbm.maxScreenResolution&&(t=Math.min(t,this.ƀbm.maxScreenResolution.width),e=Math.min(e,this.ƀbm.maxScreenResolution.height)),new helpersLib.Vector(t,e)}ƀkj(t){this.ƀbm.maxScreenResolution&&(t.style.maxWidth=`${this.ƀbm.maxScreenResolution?.width}px`,t.style.maxHeight=`${this.ƀbm.maxScreenResolution?.height}px`),t.style.width="100%",t.style.height="100%",t.style.backgroundColor=helpersLib.ColorHelper.rgbColorToString(this.ƀbm.backgroundColor);}};var lr=class{static{h(this,"ElectronGame");}static async start(t,e){let{devMode:i,maxScreenResolution:s}=await window.api.getOptions(),r=new y({...t,devMode:i,maxScreenResolution:s});await r.setup(e);let o=y.pause.effect(false).attachToRoot();window.api.onWindowFocus(l=>{o.update(!l);});let a=y.freeze.effect(false).attachToRoot();return document.addEventListener("visibilitychange",()=>{a.update(document.hidden);}),window.api.rendererReady(),window.api.setFullScreen(false),r}};var ce=class n extends actionsLib.IDAttachable{static{h(this,"Sound");}static createByName(t,e){let i=y.setupOptions.soundDefinitions[t];if(!i)throw new Error(`Sound: Could not find sound definition with name ${t}.`);return new n(i,e)}get volume(){return this.ƀdw.gain.value}set volume(t){this.setVolume(t);}setVolume(t){return this.ƀdw.gain.value=t,this}constructor(t,e){super(),this.ƀkw=t,this.ƀdw=R.context.createGain(),this.ƀdw.connect(it.ƀgb.ƀkv),this.ƀfl=this.ƀdw,e?.volume!==void 0&&(this.volume=e.volume),this.ƀjb(e?.time??0);}destroy(){this.destroyed||(super.destroy(),this.ƀll(),this.ƀdw?.disconnect());}ƀmi(){this.ƀfl.disconnect(),this.ƀfl.connect(it.ƀgb.ƀhm);}ƀjb(t){this.ƀll();let e=this.ƀkw.loop;if(this.ƀlf=helpersLib.NumberHelper.clamp(t,0,e?e.to:this.ƀkw.duration),e){let i=e.from,s=e.to;this.ƀjc({soundID:this.ƀkw.id,start:this.ƀlf,end:this.ƀlf<i?i:s,loop:false,onComplete:h(()=>{this.ƀkz.disconnect(),this.ƀjc({soundID:this.ƀkw.id,start:i,end:s,loop:true});},"onComplete")});}else this.ƀjc({soundID:this.ƀkw.id,start:this.ƀlf,end:void 0,loop:false,onComplete:h(()=>this.destroy(),"onComplete")});}ƀll(){this.ƀkz&&(this.ƀkz.onended=null,this.ƀkz.stop(),this.ƀkz.disconnect());}ƀjc(t){this.ƀkz=R.createSource(t.soundID),this.ƀkz.connect(this.ƀdw),t.onComplete&&(this.ƀkz.onended=t.onComplete),t.loop?(this.ƀkz.loop=true,this.ƀkz.loopStart=t.start,this.ƀkz.loopEnd=t.end??this.ƀkz.buffer.duration,this.ƀkz.start(0,t.start)):this.ƀkz.start(0,t.start,t.end?t.end-t.start:void 0);}};var Js=800,_e=-128,wt=class n extends ce{static{h(this,"AdvancedSound");}static createByName(t,e){let i=y.setupOptions.soundDefinitions[t];if(!i)throw new Error(`AdvancedSound: Could not find sound definition with name ${t}.`);return new n(i,e)}constructor(t,e){super(t,e),this.ƀly=new actionsLib.Variable(0),this.time=this.ƀly.notifier,this.ƀlh=R.context.currentTime-this.ƀlf,this.ƀly.value=this.ƀlf,w.beforeSceneUpdateAction.subscribe(()=>{this.ƀly.value=R.context.currentTime-this.ƀlh;}).attach(this),this.ƀfl.disconnect(),this.ƀkl(e?.fade?helpersLib.NumberHelper.clamp(e.fade,0,1):0),this.ƀkn(e?.muffle?helpersLib.NumberHelper.clamp(e.muffle,0,1):0),this.ƀfl.connect(it.ƀgb.ƀkv);}ƀkl(t=0){this.ƀdo=R.context.createGain(),this.ƀdo.gain.value=1-t,this.ƀdn=new O(this.ƀdo.gain,"value",{duration:500,animation:b.lineer,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀfl.connect(this.ƀdo),this.ƀfl=this.ƀdo;}ƀkn(t=0){this.ƀhk=R.context.createBiquadFilter(),this.ƀhk.type="highshelf",this.ƀhk.frequency.value=Js,this.ƀhk.gain.value=t*_e,this.ƀhl=new O(this.ƀhk.gain,"value",{duration:500,animation:b.lineer,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀfl.connect(this.ƀhk),this.ƀfl=this.ƀhk;}close(){return this.ƀbd?this.onDestroy():(this.ƀbd=true,this.fade(1,rt).notIdle().chain(this).tap(()=>this.destroy()).chainToRoot())}notifyOnTime(t){return this.time.value>t?actionsLib.SingleEvent.createDestroyed():actionsLib.SingleEvent.create(e=>{let i=this.time.filter(s=>s>=t).tap(()=>e()).attach(this);return ()=>i.destroy()})}setFade(t){t=helpersLib.NumberHelper.clamp(t,0,1),this.ƀdn.set({value:1-t});}fade(t,e=500){t=helpersLib.NumberHelper.clamp(t,0,1);let i=t>1-this.ƀdo.gain.value;return e===0?(this.ƀdn.set({value:1-t}),actionsLib.SingleEvent.instant()):this.ƀdn.animate({value:1-t},{duration:e,animation:i?b.easeOut:b.easeIn}).chain(this)}setMuffle(t){t=helpersLib.NumberHelper.clamp(t,0,1),this.ƀhl.set({value:t*_e});}muffle(t,e=500){return t=helpersLib.NumberHelper.clamp(t,0,1),e===0?(this.ƀhl.set({value:t*_e}),actionsLib.SingleEvent.instant()):this.ƀhl.animate({value:t*_e},{duration:e}).chain(this)}destroy(){this.destroyed||(this.ƀdo.disconnect(),this.ƀhk.disconnect()),super.destroy();}};var pe=class n extends actionsLib.IDAttachable{static{h(this,"Music");}static createByName(t,e){let i=y.setupOptions.soundDefinitions[t];if(!i)throw new Error(`AdvancedSound: Could not find sound definition with name ${t}.`);return new n(i,e)}get time(){switch(this.ƀky.value.type){case "paused":return this.ƀky.value.value.time;case "playing":return this.ƀky.value.value.time.value;default:{this.ƀky.value;throw new Error}}}get volume(){return this.ƀky.value.value.volume}set volume(t){this.setVolume(t);}setVolume(t){return this.ƀky.value.value.volume=t,this}constructor(t,e){super(),this.ƀic={stopPlayingOnPause:true,...e},this.ƀkx=t.id;let i;if(this.ƀic.stopPlayingOnPause&&y.pause.value)i={type:"paused",value:{time:0,volume:1}};else {let s=new wt(t,this.ƀic).attach(this);s.ƀmi(),i={type:"playing",value:s};}this.ƀky=new actionsLib.Variable(i),this.ƀic.stopPlayingOnPause&&(this.ƀih=y.pause.subscribe(s=>this.ƀfg(s)).attach(this));}notifyOnTime(t){return actionsLib.SingleEvent.create(e=>{let i=this.ƀky.asyncDropOngoing((s,r)=>{switch(s.type){case "paused":r.drop();break;case "playing":return s.value.notifyOnTime(t);default:{throw new Error}}}).toSingleEvent().tap(()=>e()).attach(this);return ()=>i.destroy()})}close(){return this.ƀbd?this.onDestroy():(this.ƀbd=true,this.ƀih?.destroy(),actionsLib.SingleEvent.instant().async(()=>actionsLib.ActionLib.all([this.ƀky.value.type==="playing"?this.ƀky.value.value.close():actionsLib.SingleEvent.instant(),this.ƀdp?.onDestroy()??actionsLib.SingleEvent.instant()]),"tap").chain(this).tap(()=>this.destroy()).chainToRoot())}ƀfg(t){if(t){if(this.ƀky.value.type==="playing"){let e=this.ƀky.value.value;this.ƀky.value={type:"paused",value:{time:e.time.value,volume:e.volume}},this.ƀdp=e,actionsLib.ActionLib.all([e.fade(1,rt),e.muffle(1,rt)]).tap(()=>{this.ƀdp=void 0,e.destroy();}).attach(this);}}else if(this.ƀky.value.type==="paused"){let{volume:e,time:i}=this.ƀky.value.value,s=wt.createByName(this.ƀkx,{volume:e,time:i,fade:1,muffle:1}).attach(this);s.ƀmi(),actionsLib.ActionLib.all([s.fade(0,rt),s.muffle(0,rt)]).attach(this),this.ƀky.value={type:"playing",value:s};}}};var mi=class extends actionsLib.IDAttachable{static{h(this,"MusicPlayer");}get time(){return this.ƀjd?this.ƀjd.time:0}get volume(){return this.ƀmr}set volume(t){this.setVolume(t);}setVolume(t){return this.ƀmr=t,this.ƀjd&&(this.ƀjd.volume=t),this.ƀig&&(this.ƀig.volume=t),this}constructor(t){super(),this.ƀmr=1,this.ƀic={stopPlayingOnPause:true,playWhenPaused:void 0,volume:1,...t},this.ƀmr=this.ƀic.volume,this.ƀic.playWhenPaused&&this.ƀkp(this.ƀic.playWhenPaused);}play(t){if(this.ƀbd)throw new Error("Play is called while music player is destroyed.");return this.ƀcq=t,actionsLib.SingleEvent.instant().async(()=>{let e=this.ƀjd;if(e)return this.ƀjd=void 0,e.close()}).map(()=>{if(this.ƀcq===t)return this.ƀjd=pe.createByName(t,{stopPlayingOnPause:this.ƀic.stopPlayingOnPause,volume:this.ƀmr}).attach(this),this.ƀjd}).chain(this)}stop(){return actionsLib.SingleEvent.instant().async(()=>{let t=this.ƀjd;if(t)return t.close().tap(()=>{t===this.ƀjd&&(this.ƀjd=void 0);})}).chain(this)}close(){return this.ƀbd?this.onDestroy():(this.ƀbd=true,this.ƀih?.destroy(),actionsLib.SingleEvent.instant().async(()=>actionsLib.ActionLib.all([this.ƀjd?.close()??actionsLib.SingleEvent.instant(),this.ƀig?.close()??actionsLib.SingleEvent.instant()]),"tap").chain(this).tap(()=>this.destroy()).chainToRoot())}ƀkp(t){this.ƀih=y.pause.toSequence().asyncDropOngoing(e=>e&&w.wait(rt).map(()=>e)).tap(e=>{if(e)this.ƀig=wt.createByName(t,{fade:1,volume:this.ƀmr}).attach(this),this.ƀig.ƀmi(),this.ƀig.fade(0);else if(this.ƀig){let i=this.ƀig;this.ƀig.fade(1).tap(()=>i.destroy()).attach(this),this.ƀig=void 0;}}).attach(this);}};var yi=class extends d{static{h(this,"Placeholder");}constructor(t){super(),this.ƀiy=new W__namespace.Graphics,this.ƀiy.rect(0,0,t.x,t.y).fill({color:0,alpha:1e-9}),this.ƀiv.addChild(this.ƀiy);}destroy(){this.destroyed||(super.destroy(),this.ƀiy.destroy());}};var zt=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,s={};if(i){let r={blur:4,angle:helpersLib.Radian.get60,distance:10,color:helpersLib.ColorHelper.black,alpha:.5,...i};s={dropShadow:{blur:r.blur,angle:r.angle.value,distance:r.distance,color:helpersLib.ColorHelper.rgbToHex(r.color),alpha:r.alpha}};}return helpersLib.JsonHelper.removeUndefinedProperties({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,...s})}};var Ne=class{static{h(this,"RichTextDataInConverter");}static process(t,e){let i=new Set(e.styles?Object.keys(e.styles):[]),s=scriptEngineLib.RichTextSeparator.process(t,i),r=this.ƀfx(s,e),o=this.ƀs(r);return this.ƀla(o)}static ƀfx(t,e){let i=new Map,s=new Map,r=h((a,l)=>{if(s.has(l))return s.get(l);let c=zt.getPixiTextStyle(a);return s.set(l,c),c},"GetPixiStyle");return t.map(a=>{let{style:l,cacheKey:c}=this.ƀee(a.tags,e,i),p=r(l,c),f=W__namespace.CanvasTextMetrics.measureText(" ",new W__namespace.TextStyle(p),void 0,false);return {text:a.text,cacheKey:c,style:l,pixiStyle:p,spaceWidth:f.width}})}static ƀee(t,e,i){let s=t.join("+");if(i.has(s))return {style:i.get(s),cacheKey:s};let r=this.ƀbh(t,e);return i.set(s,r),{style:r,cacheKey:s}}static ƀbh(t,e){let i={...e.default};for(let l of t)e.styles&&e.styles[l]&&(i={...i,...e.styles[l]});let{wordWrapWidth:s,align:r,dropShadow:o,...a}=i;return a}static ƀs(t){let e=[],i=[];return t.forEach((s,r)=>{s.text.split(/\r?\n/).forEach((a,l)=>{l>0&&(e.push(i),i=[]),i.push({text:a,cacheKey:s.cacheKey,style:s.style,pixiStyle:s.pixiStyle,spaceWidth:s.spaceWidth});});}),e.push(i),e}static ƀla(t){let e=[];return t.forEach(i=>{if(i.length===0)throw new Error("Internal Error: Line is unexpectedly empty");let s=i.flatMap(r=>this.ƀlb(r.text).map(a=>{let l=new W__namespace.TextStyle(r.pixiStyle),c=W__namespace.CanvasTextMetrics.measureText(a,l,void 0,false);return {text:a,whitespace:a.trim()==="",style:{cacheKey:r.cacheKey,style:r.style,pixiStyle:l,height:c.height,ascent:c.fontProperties.ascent,descent:c.fontProperties.descent,width:c.width,spaceWidth:r.spaceWidth}}}));e.push(s);}),e}static ƀlb(t){if(t==="")return [""];let e=[],i="",s=t[0]===" ";for(let r=0;r<t.length;r++){let o=t[r],a=o===" ";a===s?i+=o:(e.push(i),i=o,s=a);}return i&&e.push(i),e}};var Le=class{static{h(this,"RichTextTypewriter");}get lineIsEmpty(){return this.ƀco.length===0}get remainingWidth(){return this.ƀmu-this.ƀcr}constructor(t,e){this.ƀmu=t,this.ƀgo=[],this.ƀco=[],this.ƀcr=0,this.ƀgn=new helpersLib.Vector(0,0),this.ƀcp=0;let i={rectangleCutOption:void 0,horizontalAlignment:"left",verticalAlignment:"bottom",...e};if(this.ƀfp=i.horizontalAlignment,this.ƀml=i.verticalAlignment,i.rectangleCutOption){if(i.rectangleCutOption.position.x<0||i.rectangleCutOption.position.x>=this.ƀmu||i.rectangleCutOption.position.y<0)throw new Error("Rectangle cut position is out of bounds");this.ƀcs={direction:i.rectangleCutOption.direction,rectangle:this.ƀbu(i.rectangleCutOption)};}}isSpaceAvailable(t){let e=Math.max(this.ƀcp,t.y),i=this.ƀen(this.ƀgn.y,this.ƀgn.y+e);return this.ƀcr+t.x<=i}insertWord(t){let e=Math.max(this.ƀcp,t.style.height);if(this.ƀco.length===0){let i=this.ƀeo(this.ƀgn.y,this.ƀgn.y+e);this.ƀgn=new helpersLib.Vector(i,this.ƀgn.y),this.ƀcr=this.ƀgn.x;}this.ƀco.push({chunk:t,position:new helpersLib.Vector(this.ƀcr,this.ƀgn.y)}),this.ƀcp=e,this.ƀcr+=t.style.width;}newLine(){let t=this.ƀgn.y+this.ƀcp,e=this.ƀeo(t,t);this.ƀds(),this.ƀgn=new helpersLib.Vector(e,t),this.ƀcr=this.ƀgn.x,this.ƀcp=0;}print(){return this.ƀds(),this.ƀgo}ƀds(){this.ƀco.length>0&&(this.ƀgo.push(this.ƀg(this.ƀco)),this.ƀco=[]);}ƀg(t){return t=this.ƀmn(t),t=this.ƀfr(t),t}ƀfr(t){if(this.ƀfp==="left")return t;let e=this.ƀgn.y+this.ƀcp,i=this.ƀeo(this.ƀgn.y,e),r=this.ƀen(this.ƀgn.y,e)-i,o=Math.min(r,t.reduce((l,c)=>l+c.chunk.style.width,0)),a;return this.ƀfp==="center"?a=(r-o)/2:a=r-o,t.map(l=>(l={chunk:l.chunk,position:new helpersLib.Vector(l.position.x+a,l.position.y)},l))}ƀmn(t){let e=Math.max(...t.map(s=>s.chunk.style.ascent)),i=Math.max(...t.map(s=>s.chunk.style.descent));return t.map(s=>{let r;switch(this.ƀml){case "top":r=i-s.chunk.style.descent;break;case "center":r=(i-s.chunk.style.descent+e-s.chunk.style.ascent)*.5;break;case "bottom":r=e-s.chunk.style.ascent;break;default:{this.ƀml;throw new Error}}return s={chunk:s.chunk,position:new helpersLib.Vector(s.position.x,s.position.y+r)},s})}ƀeo(t,e){return this.ƀcs&&(this.ƀcs.direction==="topLeft"||this.ƀcs.direction==="bottomLeft")&&(this.ƀcs.rectangle.isPointInside(new helpersLib.Vector(0,t),{includeEdges:false})||this.ƀcs.rectangle.isPointInside(new helpersLib.Vector(0,e),{includeEdges:false}))?this.ƀcs.rectangle.bottomRight.x:0}ƀen(t,e){return this.ƀcs&&(this.ƀcs.direction==="topRight"||this.ƀcs.direction==="bottomRight")&&(this.ƀcs.rectangle.isPointInside(new helpersLib.Vector(this.ƀmu,t),{includeEdges:false})||this.ƀcs.rectangle.isPointInside(new helpersLib.Vector(this.ƀmu,e),{includeEdges:false}))?this.ƀcs.rectangle.topLeft.x:this.ƀmu}ƀbu(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}}return new helpersLib.Rectangle(e,i)}};var He=class{static{h(this,"ConsistentSpaceTextWrapper");}static wrapText(t,e){return t.forEach(i=>{i.forEach((s,r)=>{if(e.isSpaceAvailable(new helpersLib.Vector(s.style.width,s.style.height)))if(s.whitespace&&r===i.length-2){let o=i[i.length-1];e.isSpaceAvailable(new helpersLib.Vector(o.style.width+s.style.width,o.style.height))?e.insertWord(s):this.ƀmv(s,e);}else e.insertWord(s);else e.lineIsEmpty?e.insertWord(s):s.whitespace?this.ƀmv(s,e):(e.newLine(),e.insertWord(s));}),e.newLine();}),e.print()}static ƀmv(t,e){let i=Math.max(0,Math.floor(e.remainingWidth/t.style.spaceWidth)),s=Math.max(0,Math.min(i,t.text.length-1));if(s>0){let o={text:" ".repeat(s),whitespace:true,style:{...t.style,width:s*t.style.spaceWidth}};e.insertWord(o);}e.newLine();let r=t.text.length-s-1;if(r>0){let o={text:" ".repeat(r),whitespace:true,style:{...t.style,width:r*t.style.spaceWidth}};e.insertWord(o);}}};var je=class{static{h(this,"RichTextDataOutConverter");}static process(t){return t=this.ƀhe(t),t=this.ƀmc(t),this.ƀaz(t)}static ƀhe(t){return t.map(e=>{let i=[],s,r=true;return e.forEach(o=>{if(!s||s.chunk.style.cacheKey!==o.chunk.style.cacheKey)s&&i.push(s),s=o,r=o.chunk.whitespace;else {let a=s.chunk.text+o.chunk.text;r=o.chunk.whitespace&&r,s={chunk:{text:a,whitespace:r,style:{...s.chunk.style,width:s.chunk.style.width+o.chunk.style.width}},position:s.position};}}),s&&i.push(s),i})}static ƀmc(t){return t.map(e=>{if(e.length===0)return [];let i=e.pop();if(!i.chunk.whitespace||i.chunk.text===""){let s=i.chunk.text.length,r=i.chunk.text.trimEnd();s!==r.length?e.push({chunk:{text:r,whitespace:false,style:{...i.chunk.style,width:i.chunk.style.width-(s-r.length)*i.chunk.style.spaceWidth}},position:i.position}):e.push(i);}return e})}static ƀaz(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 fe=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=Ne.process(t,e),s=helpersLib.JsonHelper.removeUndefinedProperties({rectangleCutOption:e.rectangleCut,verticalAlignment:e.verticalAlignment,horizontalAlignment:e.default.align}),r=new Le(e.default.wordWrapWidth??1/0,s),o=He.wrapText(i,r);return je.process(o)}};var oo=1,ur=1/oo,de=class extends d{static{h(this,"Text");}get ƀlv(){if(!this.ƀlw){let t=new W__namespace.TextStyle(this.ƀja);this.ƀlw=W__namespace.CanvasTextMetrics.measureText(this.ƀlu,t);}return this.ƀlw}get ascent(){return this.ƀlv.fontProperties.ascent}constructor(t,e){super(),this.ƀja=zt.getPixiTextStyle(e),this.setText(t);}destroy(){this.destroyed||(super.destroy(),!this.ƀiz.destroyed&&this.ƀiz.destroy());}setAnchor(t){return this.anchor=t,this}get anchor(){return new helpersLib.Vector(this.ƀiz.anchor.x,this.ƀiz.anchor.y)}set anchor(t){this.ƀi=t,this.ƀiz.anchor.set(t.x,t.y),this.ƀjq();}setText(t){return this.ƀlu!==t&&(this.ƀlu=t,this.ƀjm()),this}setColor(t){let e=helpersLib.ColorHelper.rgbToHex(t);return this.ƀja.fill!==e&&(this.ƀja.fill=e,this.ƀjm()),this}ƀjm(){this.ƀiz?.destroy(),this.ƀlo?.destroy(),this.ƀlo=void 0,this.ƀlw=void 0;let t=new W__namespace.TextStyle(this.ƀja);this.ƀiz=new W__namespace.Text({text:this.ƀlu,style:t}),this.ƀi&&this.ƀiz.anchor.set(this.ƀi.x,this.ƀi.y),this.ƀjq(),this.ƀiz.scale.set(ur,ur),this.ƀiv.addChild(this.ƀiz),this.ƀja.lineThrough&&(this.ƀlo=this.ƀe(this.ƀiz,this.ƀja.fill),this.ƀiv.addChild(this.ƀlo));}ƀjq(){let t=W__namespace.CanvasTextMetrics.measureText(this.ƀlu,new W__namespace.TextStyle({...this.ƀja,dropShadow:false})),e=-this.ƀiz.anchor.x*t.width,i=-this.ƀiz.anchor.y*t.height;this.ƀiz.boundsArea=new W__namespace.Rectangle(e,i,t.width,t.height);}ƀe(t,e){let i=W__namespace.CanvasTextMetrics.measureText(t.text,t.style),s=Math.max(1,Math.round(i.lineHeight*.07)),r=s%2*.5,o=new W__namespace.Graphics,a=0;return i.lines.forEach((l,c)=>{let p=W__namespace.CanvasTextMetrics.measureText(l,t.style),f=Math.round(a+(p.fontProperties.ascent-p.fontProperties.descent)*.6+p.fontProperties.descent)+r,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),o.moveTo(Math.floor(g),f),o.lineTo(Math.floor(g+p.width),f),a+=p.lineHeight;}),o.stroke({width:s,color:e}),o}};var gi=class extends d{static{h(this,"RichText");}constructor(t,e){super(),fe.process(t,e).forEach(s=>new de(s.text,s.style).setPosition(s.position).displayParent(this).attach(this));}};var wi=class extends d{static{h(this,"UpdatableContainer");}},xi=class extends d{static{h(this,"DisplayObjectArray");}constructor(t,e){super(),this.ƀca=t,this.ƀcy=new Map,this.ƀic={trackBy:h((i,s)=>s,"trackBy"),positioning:{direction:"vertical",spacing:0},...e};}set(t){let e=new Set(this.ƀcy.keys()),i=0;t.forEach((s,r)=>{let o=this.ƀic.trackBy(s,r),a;this.ƀcy.has(o)?(a=this.ƀcy.get(o),e.delete(o),a.update(s)):(a=this.ƀca(s).displayParent(this).attach(this),this.ƀcy.set(o,a)),this.ƀic.positioning.direction==="horizontal"?(a.x=i,i+=a.size.x+this.ƀic.positioning.spacing):(a.y=i,i+=a.size.y+this.ƀic.positioning.spacing);}),e.forEach(s=>{this.ƀcy.get(s).destroy(),this.ƀcy.delete(s);});}};var me=class n extends d{static{h(this,"MenuUI");}static{this.ƀgd=actionsLib.Reducer.createExistenceChecker();}static{this.isAnyMenuTransitioning=this.ƀgd.notifier;}constructor(t,e){super(),this.ƀhu=new actionsLib.SingleAction,this.onCreate=this.ƀhu.notifier,this.ƀhw=new actionsLib.SingleAction,this.onOpen=this.ƀhw.notifier,this.ƀhr=new actionsLib.SingleAction,this.onClose=this.ƀhr.notifier,this.ƀbd=false;let i={closeOnBackgroundClick:true,appearAnimationDuration:150,backgroundDarkeningRatio:.3,...e};this.setAlpha(0),this.ƀp=new O(this,"alpha",{animation:b.easeInOutCubic,duration:i.appearAnimationDuration,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState});let s=A.createRectangle(new helpersLib.Vector(1,1),helpersLib.ColorHelper.black).toSprite({cache:true}).setAlpha(i.backgroundDarkeningRatio).setInteractive(true).displayParent(this).attach(this);this.ƀhc=et.createByName(t).setPosition(new helpersLib.Vector(0,0)).setInteractive(true).displayParent(this).attach(this),y.instance.screenSize.subscribe(o=>{s.aspectRatio=o.x/o.y,s.scale=Math.max(o.x,o.y),s.setPosition(helpersLib.Vector.zero,{holdFrom:helpersLib.Vector.half}),this.setPosition(o.multiplyNumber(.5));}).attach(this),this.ƀhu.resolve();let r=n.ƀgd.effect().attach(this);this.ƀp.animate({alpha:1}).chain(this).tap(()=>{this.ƀhw.resolve(),r.destroy(),i.closeOnBackgroundClick&&s.on(exports.ContainerEventType.Click).take(1).tap(()=>this.close()).attach(this);}).attachToRoot();}getBoundingMask(){return this.ƀhc.getBoundingMask()}close(){if(!this.ƀbd){this.ƀbd=true;let t=n.ƀgd.effect().attach(this);this.ƀp.animate({alpha:0}).chain(this).map(()=>{this.ƀhr.resolve(),t.destroy(),this.destroy();}).chainToRoot();}return this.onClose.toSingleEvent()}};var bi=class extends dt{static{h(this,"MenuEntity");}static subscribeIsOpen(){return actionsLib.ActionLib.merge(this.continuesSubscription().map(t=>t.type==="open"),actionsLib.SingleEvent.instant(this.getInstance()!==void 0))}constructor(t){super(),this.ƀic=t,queueMicrotask(()=>{if(!this.ƀhd)throw new Error("MenuEntity: MenuEntity has to have a MenuView.")});}ƀjo(t){this.ƀhd=t,this.ƀhd.onClose.subscribe(()=>this.destroy()).attach(this);}onCreate(){return this.ƀhd.onCreate.toSingleEvent()}onOpen(){return this.ƀhd.onOpen.toSingleEvent()}onClose(){return this.ƀhd.onClose.toSingleEvent()}close(){return this.ƀhd.close()}};var Pi=class extends Z{static{h(this,"MenuView");}constructor(t,e,i){super();let s=helpersLib.JsonHelper.removeUndefinedProperties({appearAnimationDuration:i.appearAnimationDuration,backgroundDarkeningRatio:i.backgroundDarkeningRatio,closeOnBackgroundClick:t.ƀic.closeOnBackgroundClick}),r=new me(e,s).displayParent(y.camera.layers.foregroundScreen).attach(this);t.ƀjo(r);let o=new actionsLib.SingleAction;r.onCreate.subscribe(()=>o.resolve(r)).attach(this),this.onCreate=o.notifier,this.onOpen=r.onOpen.notifier,this.onClose=r.onClose.notifier;}};var fo=.65,mo=.01,We=class{static{h(this,"SmoothScroller");}get scrollHeight(){return this.ƀkb}get contentSize(){return this.ƀbo.size.ceil()}constructor(t,e,i,s){this.ƀbo=t,this.ƀw=e,this.ƀie=i,this.ƀku=s,this.ƀga=false,this.ƀkb=e-i*2,this.ƀbo.y=i,this.ƀlp=i;}onWheel(t){this.setTarget(this.ƀlp-t*fo);}scrollToTop(){this.setTarget(1/0);}scrollToBottom(){this.setTarget(-1/0);}setTarget(t){this.ƀlp=helpersLib.NumberHelper.clamp(t,this.ƀw-this.ƀie-this.contentSize.y,this.ƀie);}jumpToTarget(){this.ƀbo.y=this.ƀlp;}update(t){let e=this.contentSize;if(e.y<=this.ƀkb){switch(this.ƀku){case "start":this.ƀlp=this.ƀie;break;case "center":this.ƀlp=(this.ƀw-e.y)*.5;break;case "end":this.ƀlp=this.ƀw-e.y-this.ƀie;break;default:{this.ƀku;throw new Error}}this.ƀga||(this.ƀbo.y=this.ƀlp);}this.ƀga=true;let i=this.ƀlp-this.ƀbo.y;this.ƀbo.y=this.ƀbo.y+i*mo*t;}};var go=15,Si=class extends d{static{h(this,"ScrollAreaUI");}get contentAreaSize(){return this.ƀbp}get contentSize(){return this.ƀkc.contentSize}constructor(t,e={}){super();let i={padding:go,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 s=new d().displayParent(this).attach(this);new Ot(s,t,i.padding).attach(this);let r=new W__namespace.Graphics;r.rect(0,0,t.x,t.y).fill({color:0,alpha:1e-9}),s.ƀiv.addChild(r);let o=new d().displayParent(s).attach(this);this.ƀkc=new We(o,t.y,i.padding,i.smallContentAlign),this.ƀbp=new helpersLib.Vector(t.x,this.ƀkc.scrollHeight),r.eventMode="dynamic",r.addEventListener("wheel",a=>{this.ƀkc.onWheel(a.deltaY);}),o.setInteractive(true),o.ƀiv.addEventListener("wheel",a=>{this.ƀkc.onWheel(a.deltaY);}),w.afterSceneUpdateAction.subscribe(a=>this.ƀkc.update(a.delta)).attach(this),this.addChildTo=o;}scrollToTop(t){this.ƀkc.scrollToTop(),t?.instant&&this.ƀkc.jumpToTarget();}scrollToBottom(t){this.ƀkc.scrollToBottom(),t?.instant&&this.ƀkc.jumpToTarget();}};var Ti=class extends d{static{h(this,"LayoutContainer");}constructor(t={}){super(new components.LayoutContainer),this.ƀiv.layout={isLeaf:false,...t};}setLayout(t){return this.ƀiv.layout=t,this}debug(){return this.ƀiv.layout={debug:true},this}debugBackground(){return this.ƀiv.layout={backgroundColor:"#3080FF"},this}};var xo=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},N=class extends dt{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);}};N=xo([It()],N);var vo=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},bo=1500,ke=class{static{h(this,"CameraService");}createCamera(){return new N().attachToRoot()}getCameraPosition(){let t=N.getInstanceOrFail();return helpersLib.Vector.fromTo(t.offset.value,t.position.value)}setPosition(t){let e=N.getInstanceOrFail();e.targetPosition.value=t;}setTransition(t){let e=N.getInstanceOrFail();e.focusingNewTargetInfo.value={time:y.time,duration:t?.duration??bo,position:e.position.value,roundPosition:t?.roundPosition??false,roundPositionThreshold:t?.roundPositionThreshold??0,focusingAnimation:t?.animation??exports.FocusingAnimation.Instant};}update(t,e){let i=N.getInstanceOrFail(),s=i.targetPosition.value;s&&(i.focusingNewTargetInfo.value?this.ƀgh(i,s,t):i.position.value=s);}ƀgh(t,e,i){let s=t.focusingNewTargetInfo.value;if(s.focusingAnimation===exports.FocusingAnimation.Instant)this.ƀbi(t,e);else {let r=(i-s.time)/s.duration;if(r>=1)this.ƀbi(t,e);else {let o;s.focusingAnimation===exports.FocusingAnimation.EaseInOut?o=U.easeInOut(r):s.focusingAnimation===exports.FocusingAnimation.EaseOut?o=U.easeOut(r):o=1;let a=s.position.lerp(e,o);s.roundPosition&&(Math.abs(a.x-s.position.x)>=s.roundPositionThreshold&&(a=new helpersLib.Vector(Math.round(a.x),a.y)),Math.abs(a.y-s.position.y)>=s.roundPositionThreshold&&(a=new helpersLib.Vector(a.x,Math.round(a.y)))),t.position.value=a;}}}ƀbi(t,e){t.position.value=e,t.focusingNewTargetInfo.value=void 0;}};ke=vo([u()],ke);var Po=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},So=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},Ri=class{static{h(this,"CameraController");}constructor(t){this.ƀav=t;}createCamera(){return this.ƀav.createCamera().id}update(t,e){this.ƀav.update(t,e);}setPosition(t){this.ƀav.setPosition(t);}setTransition(t){this.ƀav.setTransition(t);}getCameraPosition(){return this.ƀav.getCameraPosition()}};Ri=Po([lt(exports.CameraGateway),So("design:paramtypes",[ke])],Ri);var ze=class{static{h(this,"PositionConversionHelper");}static includeScaleInScreenPosition(t,e,i){if(e!==1){let s=helpersLib.Vector.fromTo(i,t).multiplyNumber(1/e);return i.add(s)}else return t}};var Eo=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Ro=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},Gt=class extends Z{static{h(this,"CameraView");}constructor(t){super(),this.ƀdi=t,this.ƀld=(()=>{let e=new d().attach(this);return e.ƀiv=y.instance.ƀiu.stage,e})(),this.ƀjw=new d().setAlpha(0).displayParent(this.ƀld).attach(this),this.ƀag=A.createRectangle(new helpersLib.Vector(1,1),helpersLib.ColorHelper.black).toSprite({cache:true}).setAlpha(0).displayParent(this.ƀld).attach(this),this.ƀad=new d().displayParent(this.ƀjw).attach(this),this.ƀau=new d().displayParent(this.ƀjw).attach(this),this.ƀdv=new d().setSortableChildren(true).displayParent(this.ƀjw).attach(this),this.ƀat=new d().setSortableChildren(true).displayParent(this.ƀau).attach(this),this.ƀdu=new d().setSortableChildren(true).setRenderGroup().setZIndex(20).displayParent(this.ƀat).attach(this),this.ƀgu=new d().setSortableChildren(true).setRenderGroup().setZIndex(10).displayParent(this.ƀat).attach(this),this.ƀac=new d().setRenderGroup().setZIndex(0).displayParent(this.ƀat).attach(this),this.ƀh=new O(this.ƀjw,"alpha",{duration:500,animation:b.easeInOutCubic,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀah=new O(this.ƀag,"alpha",{duration:500,animation:b.easeInOutCubic,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),y.instance.screenSize.subscribe(e=>{this.ƀag.aspectRatio=e.x/e.y,this.ƀag.scale=Math.max(e.x,e.y),this.ƀag.setPosition(helpersLib.Vector.zero,{holdFrom:helpersLib.Vector.zero});}).attach(this),this.ƀdi.position.subscribe(e=>{this.ƀat.position=this.ƀbv(e);}).attach(this),this.ƀdi.offset.subscribe(e=>{this.ƀau.position=e;}).attach(this),this.ƀah.set({alpha:0}),this.ƀh.set({alpha:0});}screenPositonToStagePosition(t){let e=ze.includeScaleInScreenPosition(t,this.ƀld.scale,y.instance.screenSizeCenter.value);return new helpersLib.Vector(e.x-this.ƀat.position.x-this.ƀau.position.x,e.y-this.ƀat.position.y-this.ƀau.position.y)}getLayers(){return {backgroundScreen:this.ƀad.id,background:this.ƀac.id,main:this.ƀgu.id,foreground:this.ƀdu.id,foregroundScreen:this.ƀdv.id}}appear(t,e,i){switch(e){case "alpha":return this.ƀah.set({alpha:0}),this.ƀh.set({alpha:t?0:1}),actionsLib.SingleEvent.instant().async(()=>i>0&&w.wait(i),"tap").async(()=>this.ƀh.animate({alpha:t?1:0})).chain(this);case "pureBlack":return this.ƀh.set({alpha:1}),this.ƀah.set({alpha:t?1:0}),actionsLib.SingleEvent.instant().async(()=>i>0&&w.wait(i),"tap").async(()=>this.ƀah.animate({alpha:t?0:1})).chain(this);case "instant":return this.ƀh.set({alpha:t?1:0}),this.ƀah.set({alpha:t?0:1}),actionsLib.SingleEvent.instant();default:{throw new Error}}}ƀbv(t){return helpersLib.Vector.fromTo(t,y.instance.screenSizeCenter.value)}};Gt=Eo([oi({entity:N}),Ro("design:paramtypes",[N])],Gt);var Co=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Ci=class{static{h(this,"CameraViewController");}getLayers(){let t=N.getInstanceOrFail().id;return Gt.getInstanceOrFail(t).getLayers()}appear(t,e,i){let s=N.getInstanceOrFail().id;return Gt.getInstanceOrFail(s).appear(t,e,i)}screenPositonToStagePosition(t){let e=N.getInstanceOrFail().id;return Gt.getInstanceOrFail(e).screenPositonToStagePosition(t)}};Ci=Co([lt(Bt)],Ci);var Ao=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Oo=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)};exports.KeyboardService=class Ai{static{h(this,"KeyboardService");}constructor(){this.ƀgj=new actionsLib.Action,this.keyPressed=this.ƀgj.notifier,this.ƀgk=new actionsLib.Action,this.keyReleased=this.ƀgk.notifier,this.ƀgq=new Set,this.ƀgp=new Set,window.addEventListener("keydown",t=>{this.ƀgq.add(t.code),this.ƀgp.add(t.code),!t.repeat&&this.ƀgj.trigger({key:t.key,code:t.code});}),window.addEventListener("keyup",t=>{this.ƀgq.delete(t.code),this.ƀgk.trigger({key:t.key,code:t.code});}),window.addEventListener("blur",()=>{this.ƀgq.clear();}),w.afterSceneUpdateAction.subscribe(()=>this.ƀgp.clear()).attachToRoot();}isKeyDown(t,e){return (e?.onlyPressedThisFrame?this.ƀgp:this.ƀgq).has(t)}};exports.KeyboardService=Ao([u(),Oo("design:paramtypes",[])],exports.KeyboardService);var Mo=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Do=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)};exports.MouseService=class we{static{h(this,"MouseService");}constructor(){this.ƀfz=new actionsLib.Variable(false),this.initialMouseMovementHappened=this.ƀfz.notifier,this.ƀle=new actionsLib.Variable(helpersLib.Vector.zero,{notifyOnChange:true}),this.stagePosition=this.ƀle.notifier,this.ƀjy=new actionsLib.Variable(helpersLib.Vector.zero,{notifyOnChange:true}),this.screenPosition=this.ƀjy.notifier,this.ƀgt=new actionsLib.Variable(false),this.mainButtonState=this.ƀgt.notifier,this.ƀkd=new actionsLib.Variable(false),this.secondaryButtonState=this.ƀkd.notifier,this.ƀlg(),window.addEventListener("pointerdown",t=>{t.button===0?this.ƀgt.value=true:t.button===2&&(this.ƀkd.value=true);},{capture:true}),window.addEventListener("pointerup",t=>{t.button===0?this.ƀgt.value=false:t.button===2&&(this.ƀkd.value=false);},{capture:true}),window.addEventListener("blur",()=>{this.ƀgt.value=false,this.ƀkd.value=false;},{capture:true});}ƀlg(){let t=helpersLib.Vector.zero;window.addEventListener("pointermove",e=>{t=new helpersLib.Vector(e.clientX,e.clientY),this.ƀfz.value=true;},{capture:true}),w.beforeSceneUpdateAction.subscribe(()=>{this.ƀjy.value=this.ƀbc(t);}).attachToRoot(),w.afterSceneUpdateAction.subscribe(()=>{this.ƀle.value=y.camera.screenPositonToStagePosition(this.ƀjy.value);}).attachToRoot();}ƀbc(t){let i=y.instance.renderer.canvas.getBoundingClientRect(),s=i.width,r=i.height;if(s<=0||r<=0)return helpersLib.Vector.zero;let o=y.instance.renderer.screen,a=(t.x-i.left)/s*o.width,l=(t.y-i.top)/r*o.height;return a=helpersLib.NumberHelper.clamp(a,0,o.width),l=helpersLib.NumberHelper.clamp(l,0,o.height),new helpersLib.Vector(a,l)}};exports.MouseService=Mo([u(),Do("design:paramtypes",[])],exports.MouseService);var Bo=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Go=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)};exports.MouseTargetFocusService=class Oi{static{h(this,"MouseTargetFocusService");}get focusedInLastFrame(){return this.ƀdt}get lastFocusedPosition(){return this.ƀgm}constructor(t){this.ƀhi=t,this.ƀhy=new actionsLib.Action,this.onTargetFocus=this.ƀhy.notifier,this.ƀma=0,this.ƀmb=false,this.ƀdt=false,this.ƀgm=void 0,w.beforeSceneUpdateAction.subscribe(e=>this.ƀme(e.delta)).attachToRoot();}ƀme(t){if(this.ƀhj){let e=this.ƀeu(this.ƀhi.stagePosition.value,this.ƀhj);this.ƀij===void 0?this.ƀij=e:this.ƀay(e,t);}this.ƀhj=this.ƀhi.stagePosition.value;}ƀay(t,e){this.ƀij-t>10?(this.ƀma=Math.max(250,this.ƀma),this.ƀmb=true):this.ƀma>1e3&&(this.ƀmb=true);let i=this.ƀma>=300&&this.ƀmb;this.ƀgi(i,t,e);}ƀgi(t,e,i){(t||e>this.ƀij)&&(this.ƀij=e),t?(this.ƀmb=false,this.ƀma=0,this.ƀdt=true,this.ƀgm=this.ƀhi.stagePosition.value,this.ƀhy.trigger(this.ƀgm)):(this.ƀma+=i,this.ƀdt=false);}ƀeu(t,e){let i=helpersLib.Vector.fromTo(t,e);return Math.abs(i.x)+Math.abs(i.y)}};exports.MouseTargetFocusService=Bo([u(),Go("design:paramtypes",[exports.MouseService])],exports.MouseTargetFocusService);var Mi=10.8,Di=10.01;exports.PhysicsShapeType=void 0;(function(n){n[n.Point=1]="Point",n[n.Circle=2]="Circle",n[n.Polygon=3]="Polygon",n[n.Rectangle=4]="Rectangle";})(exports.PhysicsShapeType||(exports.PhysicsShapeType={}));var m=class n{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,s){return (t&s)!==0&&(i&e)!==0}static canCollideWith(t,e){return t.shapes.some(i=>e.shapes.some(s=>n.arePhysicsGroupsCollidable(i.collisionGroup,i.collisionMask,s.collisionGroup,s.collisionMask)))}static cloneP2Body(t){let e=new X__default.default.Body({position:t.position,angle:t.angle,type:t.type});return e.shapes=t.shapes,e}};var xt="border";var Ho=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r};exports.PhysicsGateway=class xe extends ht(){static{h(this,"PhysicsGateway");}};exports.PhysicsGateway=Ho([u()],exports.PhysicsGateway);var jo=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},vt=class extends ht(){static{h(this,"PhysicsInternalGateway");}};vt=jo([u()],vt);var S=class n extends Q{static{h(this,"PhysicsEntity");}static{this.ƀid=new Map;}static{this.ƀin=new Map;}static getFromP2BodyID(t){return n.ƀid.get(t)}static getFromP2BodyIDOrFail(t){let e=n.ƀid.get(t);if(!e)throw new Error(`PhysicsEntity with p2BodyID ${t} not found`);return e}static getPhysicsInstanceOrFail(t){let e=n.ƀin.get(t);if(!e)throw new Error(`PhysicsEntity with id ${t} not found`);return e}static getPhysicsEntities(){return Array.from(n.ƀin.values())}get area(){return this.ƀv}get mass(){return this.ƀgx}get collisions(){return this.ƀbe}constructor(t,e,i){super(),this.ƀhs=new actionsLib.Action,this.onCollision=this.ƀhs.notifier,this.type="dynamic",this.ƀv=0,this.ƀgx=0,this.ƀbe=[],this.physicsWorldID=t,this.ƀip=E.get(vt);let s=this.ƀip.getMaterial(this.physicsWorldID,e.shapeDefinition.materialName),r=this.ƀip.getMaterialDefinition(this.physicsWorldID,e.shapeDefinition.materialName);if(this.type=i,this.physicsBodyGroup=e.shapeDefinition.group,this.includeInPathfinding=e.includeOnPathfinding,this.ƀio=this.ƀip.getGroupConstant(this.physicsWorldID,this.physicsBodyGroup),this.ƀiq=this.ƀip.getMaskConstant(this.physicsWorldID,this.physicsBodyGroup),this.p2Body=this.ƀip.createBody(this.physicsWorldID,e,s,r,this.type),this.ƀv=this.p2Body.getArea(),this.ƀgx=this.p2Body.mass,this.p2Body.position=m.vectorToArray(e.position),this.p2Body.angle=e.rotation.value,!this.ƀip.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!");n.ƀid.set(this.p2Body.id,this),n.ƀin.set(this.id,this);}destroy(){this.destroyed||(super.destroy(),this.ƀip.removeBody(this.physicsWorldID,this.p2Body),n.ƀid.delete(this.p2Body.id),n.ƀin.delete(this.id));}canCollideWith(t){return m.arePhysicsGroupsCollidable(this.ƀio,this.ƀiq,t.ƀio,t.ƀiq)}ƀkf(t){this.ƀbe=t,t.length>0&&this.ƀhs.trigger(t);}};var ve=class extends S{static{h(this,"ImmovablePhysicsEntity");}constructor(t,e){super(t,e,"static"),this.position=m.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 Bi=class extends Q{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),w.beforeSceneUpdateAction.subscribe(({time:t,delta:e})=>{this.ƀlk(t,e);}).attach(this);}ƀlk(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 Gi=class extends S{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.ƀfs=false,this.ƀft=false,this.ƀfv=false,this.ƀfu=false,this.ƀik(),this.ƀgr(),E.get(vt).subscribeToPhysicsStep(t,({time:i,delta:s})=>this.ƀlk(i,s)).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}}ƀlk(t,e){this.ƀfs=true,this.ƀft=true,this.ƀfv=true,this.ƀfu=true,this.ƀik();}ƀik(){this.position.value=m.arrayToVector(this.p2Body.position),this.rotation.value=new helpersLib.Radian(this.p2Body.angle),this.velocity.value=m.arrayToVector(this.p2Body.velocity),this.rotationalSpeed.value=this.p2Body.angularVelocity;}ƀgr(){this.position.subscribe(t=>{this.ƀfs?this.ƀfs=false:this.p2Body.position=[t.x,t.y];}).attach(this),this.rotation.subscribe(t=>{this.ƀft?this.ƀft=false:this.p2Body.angle=t.value;}).attach(this),this.velocity.subscribe(t=>{this.ƀfv?this.ƀfv=false:this.p2Body.velocity=[t.x,t.y];}).attach(this),this.rotationalSpeed.subscribe(t=>{this.ƀfu?this.ƀfu=false:this.p2Body.angularVelocity=t;}).attach(this);}};var ko=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},zo=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},P=class extends Q{static{h(this,"PhysicsWorldEntity");}constructor(t,e,i,s,r,o,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=s,this.materialDefinitions=r,this.physicsBodyGroupToP2Group=o,this.physicsBodyGroupToP2Mask=a;}};P=ko([It(),zo("design:paramtypes",[helpersLib.Vector,Boolean,X__default.default.World,Map,Map,Map,Map])],P);var Ko=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},st=class{static{h(this,"PhysicsBodyGroupService");}createBodyGroupsAndMasks(t,e){let i=new Map,s=new Map;return t.map((r,o)=>{if(o>31)return console.error("Cannot have more than 32 physics body groups"),{};i.set(r,1<<o),s.set(r,0);}),e.map(([r,o])=>{if(!i.has(r))throw new Error(`Physics body group "${r}" not found`);if(!i.has(o))throw new Error(`Physics body group "${o}" not found`);let a=s.get(r),l=s.get(o),c=i.get(r),p=i.get(o);s.set(r,a|p),s.set(o,l|c);}),{physicsBodyGroupToP2Group:i,physicsBodyGroupToP2Mask:s}}getGroupConstant(t,e){return P.getInstanceByIDOrFail(t).physicsBodyGroupToP2Group.get(e)}getMaskConstant(t,e){return P.getInstanceByIDOrFail(t).physicsBodyGroupToP2Mask.get(e)}canCollide(t,e,i){let s=t.physicsBodyGroupToP2Group.get(e),r=t.physicsBodyGroupToP2Mask.get(e),o=t.physicsBodyGroupToP2Group.get(i),a=t.physicsBodyGroupToP2Mask.get(i);return (r&o)!==0&&(a&s)!==0}};st=Ko([u()],st);var Zo=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Qo=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},Xe=class{static{h(this,"AvailabilityGridCacheService");}constructor(t){this.ƀim=t;}getCollidableGrids(t,e){let i=[];return t.availabilityGridCache.forEach((s,r)=>{s.forEach((o,a)=>{this.ƀim.canCollide(t,a,e)&&i.push({grid:o,cellSize:r});});}),i}get(t,e,i){return t.availabilityGridCache.get(e)?.get(i)}set(t,e,i,s){let r=t.availabilityGridCache.get(e);r||(r=new Map,t.availabilityGridCache.set(e,r)),r.set(i,s);}clear(t){t.availabilityGridCache.clear();}};Xe=Zo([u(),Qo("design:paramtypes",[st])],Xe);var qo=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},tn=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},bt=class{static{h(this,"AvailabilityGridService");}constructor(t,e){this.ƀim=t,this.ƀaa=e;}onBodyAdded(t,e,i){e.aabbNeedsUpdate=true,e.updateAABB();let s=m.aabbToBoundingBox(e.aabb);this.ƀaa.getCollidableGrids(t,i).forEach(r=>{let o=_.areaToGridArea(s,r.cellSize);r.grid.setArea(o,false);});}findClosestAvailableSpace(t,e,i,s=50){return e.aabbNeedsUpdate=true,e.updateAABB(),ne.findByConvertingGridSpace(this.getAvilabilityGrid(t,s,i),m.aabbToBoundingBox(e.aabb),s)}getAvilabilityGrid(t,e,i){let s=this.ƀaa.get(t,e,i);return s||(s=this.ƀcd(t,e,i),this.ƀaa.set(t,e,i,s)),s}ƀcd(t,e,i){let s=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(r=>{let o=S.getFromP2BodyIDOrFail(r.id);if(o.includeInPathfinding&&this.ƀim.canCollide(t,o.physicsBodyGroup,i)){let a=this.ƀek(r,e);s.setArea(a,false);}}),s}ƀek(t,e){let i=m.aabbToBoundingBox(t.aabb);return _.areaToGridArea(i,e)}};bt=qo([u(),tn("design:paramtypes",[st,Xe])],bt);var sn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},on=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},Kt=class{static{h(this,"PathFinderService");}constructor(t){this.ƀil=t;}findPathAStar(t,e,i,s,r){r||(r={}),r.neighborType===void 0&&(r.neighborType="orthogonal"),r.gridCellSize===void 0&&(r.gridCellSize=50);let o=P.getInstanceByIDOrFail(t),a,l;helpersLib.Comparator.isNumber(i)?(l=S.getPhysicsInstanceOrFail(i).p2Body,a=m.arrayToVector(l.position)):a=i;let c=_.positionToGridPosition(e,r.gridCellSize),p=_.positionToGridPosition(a,r.gridCellSize),f=this.ƀil.getAvilabilityGrid(o,r.gridCellSize,s);if(l){let v=m.aabbToBoundingBox(l.aabb),x=_.areaToGridArea(v,r.gridCellSize);f.setArea(x,true);}let g=ae.findPath(f,c,p,r.neighborType);return g.path=g.path.map(v=>_.gridPositionToPosition(v,r.gridCellSize)),g}findPathDirection(t,e,i,s,r=50){let o=P.getInstanceByIDOrFail(t),a;if(helpersLib.Comparator.isNumber(i)){let g=S.getPhysicsInstanceOrFail(i);a=m.aabbToBoundingBox(g.p2Body.aabb);}else a=new helpersLib.Rectangle(i,i);let l=_.areaToGridArea(a,r),c=JSON.stringify({targetGridArea:l,collidableWithGroup:s}),p=o.vectorFieldCache.get(c);if(!p){let g=this.ƀil.getAvilabilityGrid(o,r,s);p=new he(l,g),o.vectorFieldCache.set(c,p);}let f=_.positionToGridPosition(e,r);return p.getDirectionToTarget(f)}};Kt=sn([u(),on("design:paramtypes",[bt])],Kt);var an=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},hn=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},nt=class{static{h(this,"TestVisualsService");}constructor(t,e){this.ƀab=t,this.ƀif=e;}printPathfindingTestGrid(t,e,i,s,r,o){let a=P.getInstanceByIDOrFail(t);this.ƀab.getAvilabilityGrid(a,o,s).map((c,p)=>({position:_.gridPositionToPosition(p,o),availability:c})).forEach(c=>{if(c.position.isInsideRectangle(r)){let p=this.ƀif.findPathDirection(t,c.position,i,s),f;p===void 0?f=A.createRectangleBorders(new helpersLib.Vector(8,8),2,helpersLib.ColorHelper.red).toSprite().displayParent(e).setPosition(c.position,{round:false}).attach(a):f=A.createArrow(25,c.availability?helpersLib.ColorHelper.green:helpersLib.ColorHelper.red).toSprite().displayParent(e).setPosition(c.position,{round:false}).setRotation(p).attach(a),new O(f,"alpha",{duration:1e3,animation:b.easeIn}).animate({alpha:0}).tap(()=>f.destroy()).attach(f);}});}createExplosionDebugVisual(t,e,i,s,r,o=300){let a=new d().displayParent(e).setAlpha(.5).attach(t);A.createCircle(r,helpersLib.ColorHelper.blue).toSprite().displayParent(a).setPosition(s,{round:false}).setAlpha(.5).attach(t),i.forEach(c=>{let p=c.hits.length>0?helpersLib.ColorHelper.red:helpersLib.ColorHelper.white;A.createVector(s,c.line.to,p).toSprite().displayParent(a).attach(t);}),new O(a,"alpha",{duration:o,animation:b.easeIn}).animate({alpha:0}).tap(()=>a.destroy()).attach(a);}createElipticExplosionDebugVisual(t,e,i,s,r,o,a=300){let l=new d().displayParent(e).setAlpha(.5).attach(t);A.createElipse(o,helpersLib.ColorHelper.blue).toSprite().displayParent(l).setPosition(s,{round:false}).setRotation(r).setAlpha(.5).attach(t),i.forEach(p=>{let f=p.hits.length>0?helpersLib.ColorHelper.red:helpersLib.ColorHelper.white;A.createVector(p.line.from,p.line.to,f).toSprite().displayParent(l).attach(t);}),new O(l,"alpha",{duration:a,animation:b.easeIn}).animate({alpha:0}).tap(()=>l.destroy()).attach(l);}createPhysicsEntityShapeVisual(t,e,i){let s=i?.overridePosition??m.arrayToVector(t.position),r=i?.overrideRotation??new helpersLib.Radian(t.angle),o=i?.color??helpersLib.ColorHelper.blue,a=new d().displayParent(e).setPosition(s,{round:false}).setRotation(r).setAlpha(.5).attachToRoot();t.shapes.forEach(c=>{this.ƀda(c,o).displayParent(a).attachToRoot();}),new O(a,"alpha",{duration:1e3,animation:b.easeIn}).animate({alpha:0}).tap(()=>a.destroy()).attach(a);}ƀda(t,e){switch(t.type){case X__default.default.Shape.PARTICLE:throw new Error("Not implemented");case X__default.default.Shape.LINE:throw new Error("Not implemented");case X__default.default.Shape.PLANE:throw new Error("Not implemented");case X__default.default.Shape.CIRCLE:throw new Error("Not implemented");case X__default.default.Shape.CAPSULE:throw new Error("Not implemented");case X__default.default.Shape.BOX:throw new Error("Not implemented");case X__default.default.Shape.HEIGHTFIELD:throw new Error("Not implemented");case X__default.default.Shape.CONVEX:return this.ƀcz(t,e);default:{t.type;throw new Error}}}ƀcz(t,e){let i=[t.vertices.map(s=>({x:s[0],y:s[1]}))];return A.createPolygon(i,e).toSprite()}};nt=an([u(),hn("design:paramtypes",[bt,Kt])],nt);var pn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},un=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},Ke=class{static{h(this,"HitTestService");}constructor(t){this.ƀlt=t;}hitTest(t,e){let i=t.world,s=S.getFromP2BodyIDOrFail(t.id),r=m.cloneP2Body(t);this.ƀt(r,e);let o=i.broadphase.aabbQuery(i,this.ƀdy(r)).map(l=>S.getFromP2BodyIDOrFail(l.id)).filter(l=>l.includeInPathfinding).filter(l=>s.canCollideWith(l)).map(l=>m.cloneP2Body(l.p2Body)),a=false;if(o.length!==0){let l=new X__default.default.World;l.addBody(r),o.forEach(c=>l.addBody(c)),l.step(1,1,1),a=l.narrowphase.contactEquations.some(c=>c.bodyA===r||c.bodyB===r),l.clear();}if(e?.testLayerID){let l=a?helpersLib.ColorHelper.red:helpersLib.ColorHelper.green;this.ƀlt.createPhysicsEntityShapeVisual(t,e.testLayerID,{overridePosition:e.overridePosition,overrideRotation:e.overrideRotation,color:l});}return a}ƀt(t,e){e?.overridePosition&&(t.position=m.vectorToArray(e.overridePosition)),e?.overrideRotation&&(t.angle=e.overrideRotation.value);}ƀdy(t){return t.aabbNeedsUpdate=true,t.updateAABB(),t.aabb}};Ke=pn([u(),un("design:paramtypes",[nt])],Ke);var dn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Ze=class{static{h(this,"CollisionsService");}registerPhysicsWorld(t){t.p2World.on("beginContact",e=>{e.contactEquations.forEach(i=>{this.ƀjn(t,i);});});}step(t,e,i){S.getPhysicsEntities().forEach(s=>{s.ƀbe=[];}),t.p2World.narrowphase.contactEquations.forEach(s=>{this.ƀjn(t,s);}),t.bodiesInContactWith.forEach((s,r)=>{this.ƀfi(s.p2Body),s.entity.ƀkf(t.collisionReports.get(r)||[]);}),t.bodiesInContactWith.clear(),t.collisionReports.clear();}ƀfi(t){let e=m.arrayToVector(t.velocity);e.length>Mi&&(e=e.normalize(Mi),t.velocity=m.vectorToArray(e)),t.angularVelocity=Math.min(Math.max(t.angularVelocity,-Di),Di);}ƀjn(t,e){let i=S.getFromP2BodyID(e.bodyA.id),s=S.getFromP2BodyID(e.bodyB.id);if(i&&s){t.bodiesInContactWith.set(e.bodyA.id,{p2Body:e.bodyA,entity:i}),t.bodiesInContactWith.set(e.bodyB.id,{p2Body:e.bodyB,entity:s});let r=t.collisionReports.get(e.bodyA.id)||[],o=t.collisionReports.get(e.bodyB.id)||[],{collisionDetailsA:a,collisionDetailsB:l}=this.ƀed(i,s,e);r.push({self:a,target:l}),o.push({self:l,target:a}),t.collisionReports.set(e.bodyA.id,r),t.collisionReports.set(e.bodyB.id,o);}else console.warn("ContactEquationOrganiser: Entity not found for contact equation",e);}ƀed(t,e,i){let s=t.convertToDTO(),r=e.convertToDTO(),o=m.arrayToVector(i.contactPointA),a=m.arrayToVector(i.contactPointB),{normalA:l,normalB:c}=this.ƀes(i);return {collisionDetailsA:this.ƀec(s,i.bodyA.mass,o,l,t.area),collisionDetailsB:this.ƀec(r,i.bodyB.mass,a,c,e.area)}}ƀec(t,e,i,s,r){let o,a=i.add(t.position);return {body:t,getPositionReletiveToObject:h(()=>(o||(o=i.rotate(t.rotation.multiply(-1).vector)),o),"getPositionReletiveToObject"),getPositionOnWorld:h(()=>(a||(a=i.add(t.position)),a),"getPositionOnWorld"),position:i,mass:e,area:r,normal:s}}ƀes(t){let e=m.arrayToVector(t.normalA),i=e.multiplyNumber(-1);return {normalA:e,normalB:i}}};Ze=dn([u()],Ze);var mn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},yn=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},Qe=class extends ve{static{h(this,"BorderEntity");}constructor(t,e){super(t,e);}};Qe=mn([It(),yn("design:paramtypes",[Number,Object])],Qe);var gn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Y=1e4,qe=class{static{h(this,"BorderService");}createBorders(t,e,i){this.ƀbx(t,new helpersLib.Vector(e.x/2,-Y/2),new helpersLib.Vector(e.x+Y*2,Y),i),this.ƀbx(t,new helpersLib.Vector(e.x/2,e.y+Y/2),new helpersLib.Vector(e.x+Y*2,Y),i),this.ƀbx(t,new helpersLib.Vector(-Y/2,e.y/2),new helpersLib.Vector(Y,e.y+Y*2),i),this.ƀbx(t,new helpersLib.Vector(e.x+Y/2,e.y/2),new helpersLib.Vector(Y,e.y+Y*2),i);}ƀbx(t,e,i,s){return new Qe(t,{shapeDefinition:{materialName:xt,group:s,shapeType:exports.PhysicsShapeType.Rectangle,shapeData:i},position:e,rotation:helpersLib.Radian.get0,addInEmptySpace:false,includeOnPathfinding:true}).attachByID(t)}};qe=gn([u()],qe);var xn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Tr=new X__default.default.Material,vn={id:xt,density:Number.MAX_SAFE_INTEGER,velocityDrag:1,rotationalDrag:1},Zt=class{static{h(this,"MaterialsService");}createMaterials(t,e,i,s){let r=new Map,o=new Map;if(i.forEach(a=>{r.set(a.id,new X__default.default.Material),o.set(a.id,a);}),r.has(xt))throw new Error(`Material with name ${xt} cannot be defined, pick another name for the material.`);return r.set(xt,Tr),o.set(xt,vn),this.ƀc(t,e,i,s,r),{materials:r,materialDefinitions:o}}getMaterial(t,e){let i=P.getInstanceByIDOrFail(t);return this.ƀer(e,i.materials)}getMaterialDefinition(t,e){let i=P.getInstanceByIDOrFail(t);return this.ƀeq(e,i.materialDefinitions)}ƀer(t,e){let i=e.get(t);if(!i)throw new Error(`Could not find material with name ${t}.`);return i}ƀeq(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,s,r){this.ƀeh(i.map(o=>o.id),s).forEach(o=>{let a=this.ƀer(o.materialA,r),l=this.ƀer(o.materialB,r);t.addContactMaterial(new X__default.default.ContactMaterial(a,l,{friction:o.friction,restitution:o.bounciness,stiffness:o.stiffness,relaxation:o.relaxation}));}),this.ƀd(t,e,i,r);}ƀeh(t,e){let i=new Map;e.forEach(r=>{let o=i.get(r.materialA);o||(o=new Map,i.set(r.materialA,o)),o.set(r.materialB,r);});let s=[];return t.forEach((r,o)=>{for(let a=o;a<t.length;a++){let l=t[a],c=i.get(r)?.get(l);c?s.push(c):s.push({materialA:r,materialB:l,friction:0,bounciness:0,relaxation:4,stiffness:1e6});}}),s}ƀd(t,e,i,s){i.forEach(r=>{let o=this.ƀer(r.id,s);t.addContactMaterial(new X__default.default.ContactMaterial(o,Tr,{friction:e.friction,restitution:e.bounciness,stiffness:e.stiffness,relaxation:e.relaxation}));});}};Zt=xn([u()],Zt);var bn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Pn=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},Qt=class{static{h(this,"PhysicsWorldService");}constructor(t,e,i,s,r){this.ƀhb=t,this.ƀal=e,this.ƀab=i,this.ƀbf=s,this.ƀim=r;}createPhysicsWorld(t){let e=new X__default.default.World({gravity:[0,0]}),{materials:i,materialDefinitions:s}=this.ƀhb.createMaterials(e,t.borderProperties,t.materialDefinitions,t.materialContactDefinitions),{physicsBodyGroupToP2Group:r,physicsBodyGroupToP2Mask:o}=this.ƀim.createBodyGroupsAndMasks(t.physicsBodyGroups,t.interactingBodyGroups),a=new P(t.mapSize,t.modifyUpdateCycle,e,i,s,r,o).attachByID(t.attachTo);return a.onDestroy().tap(()=>{e.clear(),t.modifyUpdateCycle&&w.cleanUpdateModifier();}).attachToRoot(),this.ƀal.createBorders(a.id,t.mapSize,t.borderProperties.borderBodyGroup),this.ƀbf.registerPhysicsWorld(a),t.modifyUpdateCycle?w.registerUpdateModifier((l,c)=>this.ƀlk(a,l,c)):w.beforeSceneUpdateAction.subscribe(({time:l,delta:c})=>{this.ƀlk(a,l,c);}).attach(a),a.id}addBody(t,e,i,s,r){let o=P.getInstanceByIDOrFail(t);if(i){let a=this.ƀab.findClosestAvailableSpace(o,e,s);return a?(e.position[0]+=a.x,e.position[1]+=a.y,o.p2World.addBody(e),r&&this.ƀab.onBodyAdded(o,e,s),true):false}else return o.p2World.addBody(e),r&&this.ƀab.onBodyAdded(o,e,s),true}removeBody(t,e){P.getInstanceByID(t)?.p2World.removeBody(e);}ƀlk(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 s=e+i;this.ƀbf.step(t,s,i),t.onPhysicsStep.trigger({time:s,delta:i}),t.lastP2Time.value=t.p2World.time;}return i}setPaused(t,e){P.getInstanceByIDOrFail(e).paused.set(t);}};Qt=bn([u(),Pn("design:paramtypes",[Zt,qe,bt,Ze,st])],Qt);var Tn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},te=class{static{h(this,"RayCastingService");}castClosest(t,e,i){let s=new X__default.default.RaycastResult,r=new X__default.default.Ray({mode:X__default.default.Ray.CLOSEST,from:m.vectorToArray(e.from),to:m.vectorToArray(e.to),collisionGroup:t.physicsBodyGroupToP2Group.get(i),collisionMask:t.physicsBodyGroupToP2Mask.get(i)});if(t.p2World.raycast(s,r),s.hasHit())return this.ƀbs(s,e)}castAllFirstContacts(t,e,i){let s=new Map,r=new X__default.default.Ray({mode:X__default.default.Ray.ALL,from:m.vectorToArray(e.from),to:m.vectorToArray(e.to),collisionGroup:t.physicsBodyGroupToP2Group.get(i),collisionMask:t.physicsBodyGroupToP2Mask.get(i),callback:h(o=>{let a=s.get(o.body);!s.has(o.body)||o.fraction<a.fraction?s.set(o.body,this.ƀbs(o,e)):o.fraction===a.fraction&&a.isExternal()&&s.set(o.body,this.ƀbs(o,e));},"callback")});return t.p2World.raycast(new X__default.default.RaycastResult,r),Array.from(s.values())}ƀbs(t,e){let i=t.fraction,s=m.arrayToVector(t.normal),r,o,a;return {body:t.body,hitPosition:h(()=>(r===void 0&&(r=e.from.lerp(e.to,i)),r),"hitPosition"),hitDistance:h(()=>(o===void 0&&(o=e.length*i),o),"hitDistance"),isExternal:h(()=>(a===void 0&&(a=e.fromTo.dotProduct(s)<0),a),"isExternal"),normal:s,fraction:i,line:e}}};te=Tn([u()],te);var En=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Tt=class{static{h(this,"ImpactService");}applyImpulse(t,e,i,s){let r=i.normalize(s),o=[e.x-t.position[0],e.y-t.position[1]];t.applyImpulse(m.vectorToArray(r),o);}};Tt=En([u()],Tt);var Rn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},ee=class{static{h(this,"RayCastHitConverterService");}toExplosionHits(t,e=true){let i=new Map;return t.forEach(s=>{s.hits.forEach(r=>{let o=i.get(r.body);if(o){let a=r.fraction<o.closestRaycastHit.fraction?r:o.closestRaycastHit;o.rayCastHits.push(r),i.set(r.body,{hitCount:o.hitCount+1,closestRaycastHit:a,rayCastHits:o.rayCastHits,isExternal:e?o.isExternal:o.isExternal&&r.isExternal(),explosionCenter:r.line.from});}else {let a=r.isExternal();i.set(r.body,{hitCount:1,closestRaycastHit:r,rayCastHits:[r],isExternal:a,explosionCenter:r.line.from});}});}),[...i.values()].map(s=>this.ƀbt(s,t.length))}ƀbt(t,e){let i=t.hitCount/e,s=t.rayCastHits;if(t.isExternal)return {body:S.getFromP2BodyIDOrFail(t.closestRaycastHit.body.id).convertToDTO(),p2Body:t.closestRaycastHit.body,isExternal:true,normal:t.closestRaycastHit.normal,fraction:t.closestRaycastHit.fraction,ratioOfHits:i,raycastResults:s,getHitPosition:t.closestRaycastHit.hitPosition,getHitDistance:t.closestRaycastHit.hitDistance};{let r=m.arrayToVector(t.closestRaycastHit.body.position);return {body:S.getFromP2BodyIDOrFail(t.closestRaycastHit.body.id).convertToDTO(),p2Body:t.closestRaycastHit.body,isExternal:false,normal:helpersLib.Vector.fromTo(r,t.explosionCenter).normalize(),fraction:0,ratioOfHits:i,raycastResults:s,getHitPosition:h(()=>t.explosionCenter,"getHitPosition"),getHitDistance:h(()=>0,"getHitDistance")}}}};ee=Rn([u()],ee);var Cn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},An=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},Dn=15,ei=class{static{h(this,"ElipticExplosionService");}constructor(t,e,i,s){this.ƀji=t,this.ƀlt=e,this.ƀjh=i,this.ƀfw=s;}createElipticExplosion(t,e,i,s,r,o,a){let l=P.getInstanceByIDOrFail(t),c=this.ƀci(e,i,s,r,a?.hitOnlyClosest===true,l),p=this.ƀjh.toExplosionHits(c,false);return this.ƀr(p,o),a?.testLayerID&&this.ƀlt.createElipticExplosionDebugVisual(l,a.testLayerID,c,e,i,s,a.debugRayDuration),p.map(f=>{let{p2Body:g,...v}=f;return v})}ƀci(t,e,i,s,r,o){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 f=l.normalize(i.y);a.push(new helpersLib.Line(t,t.add(f))),a.push(new helpersLib.Line(t,t.add(f.multiplyNumber(-1))));let g=Math.round(i.y/Dn),v=i.y/(g*2+1)*2,x=l.normalize(v),M=i.x,L=Math.pow(i.y,2);return helpersLib.ArrayHelper.createIntegerArray(g).forEach(I=>{let K=v*(I+1),_t=x.multiplyNumber(I+1),$=c.normalize(this.ƀfa(M,L,K)),H=t.add(_t);a.push(new helpersLib.Line(H,H.add($))),a.push(new helpersLib.Line(H,H.add($.multiplyNumber(-1))));let j=t.add(_t.multiplyNumber(-1));a.push(new helpersLib.Line(j,j.add($))),a.push(new helpersLib.Line(j,j.add($.multiplyNumber(-1))));}),a.map(I=>{if(r){let K=this.ƀji.castClosest(o,I,s);return {line:I,hits:K?[K]:[]}}else {let K=this.ƀji.castAllFirstContacts(o,I,s);return {line:I,hits:K}}})}ƀfa(t,e,i){return Math.sqrt(1-Math.pow(i,2)/e)*t}ƀr(t,e){t.forEach(i=>{i.raycastResults.forEach(s=>{let r,o;s.isExternal()?(r=s.line.fromTo,o=e*2):(r=s.line.fromTo.multiplyNumber(-1),o=e*(1-s.fraction)*8),this.ƀfw.applyImpulse(s.body,s.hitPosition(),r,o);});});}};ei=Cn([u(),An("design:paramtypes",[te,nt,ee,Tt])],ei);var Bn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Gn=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},ii=class{static{h(this,"ExplosionService");}constructor(t,e,i,s){this.ƀji=t,this.ƀlt=e,this.ƀjh=i,this.ƀfw=s;}createExplosion(t,e,i,s,r,o){let a=P.getInstanceByIDOrFail(t),l=this.ƀey(i),c=this.ƀci(e,i,s,l,o?.hitOnlyClosest===true,a),p=this.ƀjh.toExplosionHits(c);return this.ƀr(e,i,r,l,p),o?.testLayerID&&this.ƀlt.createExplosionDebugVisual(a,o.testLayerID,c,e,i,o.debugRayDuration),p}ƀci(t,e,i,s,r,o){let a=new helpersLib.Radian(helpersLib.PI_360/s),l=new helpersLib.Vector(0,-e),c=a.vector;return helpersLib.ArrayHelper.createEmptyArray(s).map(()=>{let p=t.add(l);return l=l.rotate(c),new helpersLib.Line(t,p)}).map(p=>{if(r){let f=this.ƀji.castClosest(o,p,i);return {line:p,hits:f?[f]:[]}}else {let f=this.ƀji.castAllFirstContacts(o,p,i);return {line:p,hits:f}}})}ƀr(t,e,i,s,r){r.forEach(o=>{if(o.isExternal)o.raycastResults.forEach(a=>{let l=i*(1-a.fraction);this.ƀfw.applyImpulse(a.body,a.hitPosition(),a.line.fromTo,l);});else {let a=helpersLib.Vector.fromTo(t,m.arrayToVector(o.p2Body.position)),l=a.length/e,c=i*s*l/2;this.ƀfw.applyImpulse(o.p2Body,o.getHitPosition(),a,c);}});}ƀey(t){return t>100?Math.floor(t*.3):Math.floor(t*.26+4)}};ii=Bn([u(),Gn("design:paramtypes",[te,nt,ee,Tt])],ii);var Ln=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},ie=class{static{h(this,"PhysicsQueryService");}getMapSize(t){let e=P.getInstanceByIDOrFail(t);return {dimentions:e.mapSize,center:e.mapSizeCenter}}subscribeToPhysicsStep(t,e){return P.getInstanceByIDOrFail(t).onPhysicsStep.subscribe(e)}};ie=Ln([u()],ie);var Hn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},jn=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},_i=class{static{h(this,"PhysicsController");}constructor(t,e,i,s,r,o,a,l){this.ƀit=t,this.ƀif=e,this.ƀlt=i,this.ƀdm=s,this.ƀde=r,this.ƀfo=o,this.ƀis=a,this.ƀfw=l;}createPhysicsWorld(t){return this.ƀit.createPhysicsWorld(t)}getMapSize(t){return this.ƀis.getMapSize(t)}setPaused(t,e){this.ƀit.setPaused(t,e);}hitTest(t,e){let i=S.getPhysicsInstanceOrFail(t);return this.ƀfo.hitTest(i.p2Body,e)}findPath(t,e,i,s,r){return this.ƀif.findPathAStar(t,e,i,s,{neighborType:r})}findPathDirection(t,e,i,s){return this.ƀif.findPathDirection(t,e,i,s)}applyImpulse(t,e,i,s){let r=S.getPhysicsInstanceOrFail(t);this.ƀfw.applyImpulse(r.p2Body,e,i,s);}createExplosion(t,e,i,s,r,o){return this.ƀdm.createExplosion(t,e,i,s,r,o)}createElipticExplosion(t,e,i,s,r,o,a){return this.ƀde.createElipticExplosion(t,e,i,s,r,o,a)}printPathfindingTestGrid(t,e,i,s,r,o=50){this.ƀlt.printPathfindingTestGrid(t,e,i,s,r,o);}};_i=Hn([lt(exports.PhysicsGateway),jn("design:paramtypes",[Qt,Kt,nt,ii,ei,Ke,ie,Tt])],_i);var Un=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},ri=class{static{h(this,"ShapeCreationService");}createBody(t,e,i,s,r){let o=P.getInstanceByIDOrFail(t);if(!o.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.ƀbz(o,void 0,i,s,e.shapeDefinition.group,r);case exports.PhysicsShapeType.Circle:return this.ƀbz(o,e.shapeDefinition.shapeData,i,s,e.shapeDefinition.group,r);case exports.PhysicsShapeType.Polygon:return this.ƀch(o,e.shapeDefinition.shapeData,i,s,e.shapeDefinition.group,r);case exports.PhysicsShapeType.Rectangle:return this.ƀcj(o,e.shapeDefinition.shapeData,i,s,e.shapeDefinition.group,r);default:{e.shapeDefinition.shapeType;throw new Error}}}ƀbz(t,e,i,s,r,o){let a=new X__default.default.Circle({collisionGroup:t.physicsBodyGroupToP2Group.get(r),collisionMask:t.physicsBodyGroupToP2Mask.get(r),radius:e});a.material=i;let l=new X__default.default.Body({type:o==="dynamic"?X__default.default.Body.DYNAMIC:X__default.default.Body.STATIC,mass:s.density,damping:s.velocityDrag,angularDamping:s.rotationalDrag});return l.addShape(a),l}ƀch(t,e,i,s,r,o){let a=t.physicsBodyGroupToP2Group.get(r),l=t.physicsBodyGroupToP2Mask.get(r),c=e.map(g=>new X__default.default.Convex({vertices:g.map(v=>[v.x,v.y]),collisionGroup:a,collisionMask:l})).map(g=>(g.material=i,g)),p=c.reduce((g,v)=>g+v.area,0),f=new X__default.default.Body({type:o==="dynamic"?X__default.default.Body.DYNAMIC:X__default.default.Body.STATIC,mass:p,damping:s.velocityDrag,angularDamping:s.rotationalDrag});return c.forEach(g=>f.addShape(g)),f.setDensity(s.density),f}ƀcj(t,e,i,s,r,o){let a=new X__default.default.Box({width:e.x,height:e.y,collisionGroup:t.physicsBodyGroupToP2Group.get(r),collisionMask:t.physicsBodyGroupToP2Mask.get(r)});a.material=i;let l=e.x*e.y,c=new X__default.default.Body({type:o==="dynamic"?X__default.default.Body.DYNAMIC:X__default.default.Body.STATIC,mass:l,damping:s.velocityDrag,angularDamping:s.rotationalDrag});return c.addShape(a),c.setDensity(s.density),c}};ri=Un([u()],ri);var Wn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},$n=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},Vi=class{static{h(this,"PhysicsInternalController");}constructor(t,e,i,s,r){this.ƀit=t,this.ƀir=e,this.ƀkq=i,this.ƀis=s,this.ƀim=r;}createBody(t,e,i,s,r){return this.ƀkq.createBody(t,e,i,s,r)}getMaterial(t,e){return this.ƀir.getMaterial(t,e)}getMaterialDefinition(t,e){return this.ƀir.getMaterialDefinition(t,e)}getGroupConstant(t,e){return this.ƀim.getGroupConstant(t,e)}getMaskConstant(t,e){return this.ƀim.getMaskConstant(t,e)}addBody(t,e,i,s,r){return this.ƀit.addBody(t,e,i,s,r)}removeBody(t,e){this.ƀit.removeBody(t,e);}subscribeToPhysicsStep(t,e){return this.ƀis.subscribeToPhysicsStep(t,e)}};Vi=Wn([lt(vt),$n("design:paramtypes",[Qt,Zt,ri,ie,st])],Vi);exports.AdvancedSound=wt;exports.AnimationFlicker=Li;exports.AnimationInterpolationFunctions=U;exports.Animations=b;exports.Animator=O;exports.BORDER_MATERIAL_NAME=xt;exports.BardLegendsTestingHelper=T;exports.Camera=le;exports.ClosestAvailableSpaceHelper=ne;exports.Container=d;exports.ControllerDecorator=lt;exports.DEFAULT_SHADER_RESOLUTION=k;exports.DeltaTime=pi;exports.DisplayObjectArray=xi;exports.ElectronGame=lr;exports.Entity=Q;exports.EntityDecorator=It;exports.FadeInContent=Yi;exports.Game=y;exports.Gateway=ht;exports.Graphics=A;exports.ImmovablePhysicsEntity=ve;exports.LayoutContainer=Ti;exports.MenuEntity=bi;exports.MenuUI=me;exports.MenuView=Pi;exports.MovableEntity=Bi;exports.MovablePhysicsEntity=Gi;exports.Music=pe;exports.MusicPlayer=mi;exports.PathFinder=ae;exports.PhysicsEntity=S;exports.Placeholder=yi;exports.ROTATIONAL_SPEED_LIMIT=Di;exports.RichText=gi;exports.SOUND_TRANSITION_DURATION=rt;exports.SPEED_LIMIT=Mi;exports.Scene=Vt;exports.SceneDecorator=Nr;exports.ScrollAreaUI=Si;exports.ScrollMaskUI=Ot;exports.Service=E;exports.ServiceDecorator=u;exports.SingletonEntity=dt;exports.SlideInContent=tr;exports.SlideInContentByIndex=ci;exports.SlideStateAnimation=De;exports.Sound=ce;exports.Sprite=et;exports.StateAnimation=jt;exports.Text=de;exports.ThroughEmptyStateAnimation=Re;exports.UpdatableContainer=wi;exports.UpdateCycle=w;exports.VectorFieldPathFinder=he;exports.VectorSet=oe;exports.View=Z;exports.ViewDecorator=oi;
|