bard-legends-framework 1.0.1 → 1.0.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/dist/index.d.mts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -902,11 +902,13 @@ interface MaterialContactDefinition {
|
|
|
902
902
|
readonly friction: number;
|
|
903
903
|
readonly bounciness: number;
|
|
904
904
|
readonly stiffness: number;
|
|
905
|
+
readonly relaxation: number;
|
|
905
906
|
}
|
|
906
907
|
interface BorderProperties {
|
|
907
908
|
readonly friction: number;
|
|
908
909
|
readonly bounciness: number;
|
|
909
910
|
readonly stiffness: number;
|
|
911
|
+
readonly relaxation: number;
|
|
910
912
|
readonly borderBodyGroup: PhysicsBodyGroup;
|
|
911
913
|
}
|
|
912
914
|
|
package/dist/index.d.ts
CHANGED
|
@@ -902,11 +902,13 @@ interface MaterialContactDefinition {
|
|
|
902
902
|
readonly friction: number;
|
|
903
903
|
readonly bounciness: number;
|
|
904
904
|
readonly stiffness: number;
|
|
905
|
+
readonly relaxation: number;
|
|
905
906
|
}
|
|
906
907
|
interface BorderProperties {
|
|
907
908
|
readonly friction: number;
|
|
908
909
|
readonly bounciness: number;
|
|
909
910
|
readonly stiffness: number;
|
|
911
|
+
readonly relaxation: number;
|
|
910
912
|
readonly borderBodyGroup: PhysicsBodyGroup;
|
|
911
913
|
}
|
|
912
914
|
|
package/dist/index.js
CHANGED
|
@@ -64,4 +64,4 @@
|
|
|
64
64
|
highestAlpha = centerColor.a;`,e+=`
|
|
65
65
|
|
|
66
66
|
gl_FragColor = vec4(color, 1.0) * highestAlpha;
|
|
67
|
-
}`,e}constructor(t,e){if(super(o.ƀef(),o.ƀdo(t*R)),this.ƀcw=t,this.resolution=R,this.ƀcw=t*R,this.ƀcw<0)throw new Error("ExpandWithColorFilter: Expand * resolution cannot be smaller than 0");if(this.ƀcw>10)throw new Error("ExpandWithColorFilter: Expand * resolution cannot be higher than 10");helpersLib.Comparator.isInteger(this.ƀcw)||(this.ƀcw=Math.floor(this.ƀcw));let i=helpersLib.ColorHelper.normalize(e);this.uniforms.color=new Float32Array([i.red,i.green,i.blue]),this.uniforms.expandSquared=this.ƀcw*this.ƀcw,this.padding=this.ƀcw;}apply(t,e,i,r){this.uniforms.pixelSize=new Float32Array([1/(e.width*R),1/(e.height*R)]),t.applyFilter(this,e,i,r);}};var Ee=class extends V__namespace.Filter{static{h(this,"GlowFilter");}constructor(t){super(),this.resolution=R;let e={blurRadius:1,expand:0,color:helpersLib.ColorHelper.white,blendMode:exports.BlendMode.Screen,...t};this.ƀcx=new Te(e.expand,e.color);let i=helpersLib.Comparator.isNumber(e.blurRadius)?new helpersLib.Vector(e.blurRadius,e.blurRadius):e.blurRadius;this.ƀah=new Rt(i),this.padding=Math.max(i.x,i.y)+e.expand,this.ƀah.blendMode=V__namespace.BLEND_MODES.SCREEN;}apply(t,e,i,r){let s=t.getFilterTexture();this.ƀcx.apply(t,e,s,V__namespace.CLEAR_MODES.CLEAR),this.ƀah.apply(t,s,i,r),t.returnFilterTexture(s);}};var qt=class o{static{h(this,"GlowSpriteGenerator");}static{this.ƀei=new Map;}static createGlowSpriteFromSprite(t,e,i){let r=this.ƀbc(e),s=helpersLib.Comparator.isNumber(r.blurRadius)?new helpersLib.Vector(r.blurRadius,r.blurRadius):r.blurRadius,n=this.ƀdq(t.texture,s,r.expand,r.color,i),a=new V__namespace.Sprite(n);return this.ƀir(a,helpersLib.Vector.fromVec2(t.anchor),Math.max(s.x,s.y)+r.expand),a.alpha=r.glowAlpha,a.blendMode=r.blendMode,a}static ƀdq(t,e,i,r,s){if(!t.id)throw new Error("GlowSpriteGenerator: baseTexture should have an id");if(s){let n=`${t.id}-${i}-${e.x}-${e.y}-${r.r}-${r.g}-${r.b}`;if(o.ƀei.has(n))return o.ƀei.get(n);{let a=this.ƀdr(t,e,i,r);return o.ƀei.set(n,a),a}}else return this.ƀdr(t,e,i,r)}static ƀdr(t,e,i,r){let s=new V__namespace.Sprite(t);this.ƀcz(s,Math.max(e.x,e.y)+i),s.filters=[new Ee({blurRadius:e,expand:i,color:r})];let n=w.instance.renderer.generateTexture(s);return n.id=M.insertAsset(n),s.destroy(),n}static ƀir(t,e,i){let r=(i+(t.width-i*2)*e.x)/t.width,s=(i+(t.height-i*2)*e.y)/t.height;t.anchor.set(r,s);}static ƀcz(t,e){if(t.isSprite){let s=new V__namespace.Graphics;t.addChild(s);}let i=t.width,r=t.height;t.calculateBounds=function(){this._bounds.clear(),this._bounds.addFrame(this.transform,-e,-e,i+e,r+e);};}static ƀbc(t){let e={glowAlpha:1,blurRadius:5,expand:0,color:helpersLib.ColorHelper.white,blendMode:exports.BlendMode.Add};return t&&(e={...e,...t}),e}};G.onHardReset.subscribe(()=>{qt.ƀei.clear();}).attachToRoot();var Z=class o extends u{static{h(this,"Sprite");}static createByName(t){let e=w.setupOptions.spriteDefinitions[t];if(!e)throw new Error(`Sprite: Could not find sprite definition with name ${t}.`);return new o(e)}static createSnapshotSprite(t){let e=t.pixiContainer,i=e.parent;i&&i.removeChild(e);let r=w.instance.renderer.generateTexture(e,{resolution:2,scaleMode:V__namespace.SCALE_MODES.LINEAR,multisample:V__namespace.MSAA_QUALITY.HIGH});i&&i.addChild(e);let n={id:M.insertAsset(r),scale:t.scale,size:t.size,anchor:helpersLib.Vector.zero,boundingShapes:void 0,destroyAssetOnDestroy:true};return new o(n,{ignoreAnchor:true})}constructor(t,e={}){if(super(),this.ƀjq=1,!t)throw new Error("Sprite: spriteDefinition cannot be nullish!");this.ƀiz=t,this.pixiSprite=new V__namespace.Sprite(M.getAsset(t.id)),this.pixiContainer.addChild(this.pixiSprite),this.setTextureScale(t.scale),e.textureSize&&(this.pixiSprite.width=e.textureSize.x,this.pixiSprite.height=e.textureSize.y),e.texturePosition&&this.pixiSprite.position.set(e.texturePosition.x,e.texturePosition.y),e.ignoreAnchor||this.pixiSprite.anchor.set(t.anchor.x,t.anchor.y);}destroy(){this.destroyed||(super.destroy(),this.ƀfz?.destroy(),this.ƀaj?.destroy(),this.ƀiz.destroyAssetOnDestroy&&(M.destroyAsset(this.ƀiz.id),this.ƀhn&&M.destroyAsset(this.ƀhn.texture.id)),this.ƀhn&&!this.ƀhn.destroyed&&this.ƀhn.destroy());}setTextureScale(t){return this.textureScale=t,this}get textureScale(){return this.ƀjq}set textureScale(t){this.ƀjq=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.ƀiz.boundingShapes&&!this.pixiContainer.hitArea&&(this.pixiContainer.hitArea=new xe(this.ƀiz.boundingShapes,this.size,helpersLib.Vector.fromVec2(this.ƀiz.anchor)));}setMipmap(t){return this.mipmap=t,this}get mipmap(){return this.pixiSprite.texture.baseTexture.mipmap===V__namespace.MIPMAP_MODES.ON}set mipmap(t){t?this.pixiSprite.texture.baseTexture.mipmap=V__namespace.MIPMAP_MODES.ON:this.pixiSprite.texture.baseTexture.mipmap=V__namespace.MIPMAP_MODES.OFF;}setBlendMode(t){return this.blendMode=t,this}get blendMode(){return this.pixiSprite.blendMode}set blendMode(t){this.pixiSprite.blendMode=t;}setTint(t){return this.tint=t,this}get tint(){return new V__namespace.Color(this.pixiSprite.tint).toRgb()}set tint(t){this.pixiSprite.tint=t;}setShapeAlpha(t){return this.pixiSprite.alpha=t,this}get shapeAlpha(){return this.pixiSprite.alpha}set shapeAlpha(t){this.pixiSprite.alpha=t;}setGlowAlpha(t){return this.glowAlpha=t,this}get glowAlpha(){if(this.ƀhn)return this.ƀhn.alpha;throw new Error("Sprite: getGlowFilterAlpha cannot be called before glow filter is added.")}set glowAlpha(t){if(this.ƀhn)this.ƀhn.alpha=t;else throw new Error("Sprite: setGlowFilterAlpha cannot be called before glow filter is added.")}getAlignmentVector(t){let e=helpersLib.Vector.fromVec2(this.ƀiz.anchor).to(t);return new helpersLib.Vector(this.size.x*e.x,this.size.y*e.y)}setGlowEffect(t){return this.ƀhn&&(this.ƀhn.destroy(),this.ƀhn=void 0),t&&(this.ƀhn=qt.createGlowSpriteFromSprite(this.pixiSprite,t,!this.ƀiz.destroyAssetOnDestroy),this.ƀhn.position.set(this.pixiSprite.x,this.pixiSprite.y),this.ƀhn.scale.set(this.pixiSprite.scale.x,this.pixiSprite.scale.y),this.pixiContainer.addChild(this.ƀhn)),this}showBoundingShape(t){return t?this.ƀaj||(this.ƀaj=this.ƀbs().setAlpha(.3).setTint({r:0,g:0,b:200}).displayParent(this)):this.ƀaj&&(this.ƀaj.destroy(),this.ƀaj=void 0),this}getBoundingMask(){if(!this.ƀfz){if(!this.ƀiz.boundingShapes)throw new Error("Sprite: cropOverflowingParts cannot be used without polygonDefinition!");this.ƀfz=this.ƀbs(),this.ƀfz.pixiSprite._maskRefCount=Number.POSITIVE_INFINITY,this.ƀfz.pixiSprite.renderable=false,this.ƀfz.displayParent(this);}return this.ƀfz}ƀbs(){if(!this.ƀiz.boundingShapes)throw new Error("Sprite: bounding shape cannot be created without polygonDefinition!");return E.createPolygon(this.ƀiz.boundingShapes,helpersLib.ColorHelper.white).toSprite().attach(this)}download(){let t=w.instance.renderer.extract.canvas(this.pixiContainer);if(!t.toBlob)throw new Error("Sprite: canvas.toBlob is undefined!");return t.toBlob(e=>{if(!e)throw new Error("Sprite: blob is undefined!");let i=document.createElement("a");document.body.append(i),i.download="sprite.png",i.href=URL.createObjectURL(e),i.click(),i.remove();},"image/png"),this}};var Re=class{static{h(this,"DashedLineHelper");}static getLines(t,e,i){let r=helpersLib.Vector.fromTo(t,e),s=r.normalize(),n=r.length-i.lineStartGap-i.lineEndGap,a=[];if(n<=0)return a;let l=t.add(s.normalize(i.lineStartGap));if(n<=i.dashGap+i.dashLength*.5)return a.push({from:l,to:l.add(s.normalize(n))}),a;let c=n-i.dashGap,p=i.dashLength+i.dashGap,f=Math.floor(c/p),g=c-p*f;f>=1&&g<i.dashLength&&(g+=p,f--);let T=s.normalize(g/2),J=s.normalize(i.dashGap);if(a.push({from:l,to:l.add(T)}),l=l.add(T),f>0){let ot=s.normalize(i.dashLength);helpersLib.ArrayHelper.createEmptyArray(f).forEach(()=>{l=l.add(J),a.push({from:l,to:l.add(ot)}),l=l.add(ot);});}return l=l.add(J),a.push({from:l,to:l.add(T)}),a}};var E=class o extends u{static{h(this,"Graphics");}static{this.ƀcq=new Map;}static createArrow(t,e){let i=new V__namespace.Graphics,r=[[{x:0,y:-t/2},{x:t*3/8,y:-t/8},{x:t/4,y:0},{x:0,y:-t/4},{x:-t/4,y:0},{x:-t*3/8,y:-t/8}],[{x:0,y:-t/4},{x:t/8-t/30,y:-t/8-t/30},{x:t/8-t/30,y:t*7/16},{x:-t/8+t/30,y:t*7/16},{x:-t/8+t/30,y:-t/8-t/30}]];return i.beginFill(e),r.forEach(s=>{i.drawPolygon(s.map(n=>new V__namespace.Point(n.x,n.y)));}),i.endFill(),new o(i,JSON.stringify({type:"arrow",size:t,color:e}))}static createDashedLine(t,e,i){let r={width:2,dashLength:10,dashGap:4,lineStartGap:0,lineEndGap:0,color:helpersLib.ColorHelper.white,...i},s=new V__namespace.Graphics;return s.lineStyle(r.width,r.color),Re.getLines(t,e,r).forEach(a=>{s.moveTo(a.from.x,a.from.y).lineTo(a.to.x,a.to.y);}),new o(s,JSON.stringify({type:"dashedLine",from:t,to:e,options:r}))}static createVector(t,e,i){let r=new V__namespace.Graphics;return r.lineStyle(2,i),r.moveTo(t.x,t.y),r.lineTo(e.x,e.y),r.lineStyle(1,i),r.beginFill(helpersLib.ColorHelper.white),r.drawCircle(t.x,t.y,3),r.endFill(),new o(r,JSON.stringify({type:"line",start:t,end:e,color:i}))}static createRectangleBorders(t,e,i){let r=new V__namespace.Graphics;return r.beginFill(i),r.drawRect(0,0,t.x,e),r.drawRect(0,e,e,t.y-e*2),r.drawRect(t.x-e,e,e,t.y-e*2),r.drawRect(0,t.y-e,t.x,e),r.endFill(),new o(r,JSON.stringify({type:"rectangle-borders",size:t,borderSize:e,color:i}))}static createRectangle(t,e=helpersLib.ColorHelper.white){let i=new V__namespace.Graphics;return i.beginFill(e),i.drawRect(0,0,t.x,t.y),i.endFill(),new o(i,JSON.stringify({type:"rectangle",size:t,color:e}))}static createCircle(t,e){let i=new V__namespace.Graphics;return i.beginFill(e),i.drawCircle(0,0,t),i.endFill(),new o(i,JSON.stringify({type:"circle",radius:t,color:e}))}static createElipse(t,e){let i=new V__namespace.Graphics;return i.beginFill(e),i.drawEllipse(0,0,t.x,t.y),i.endFill(),new o(i,JSON.stringify({type:"elipse",size:t,color:e}))}static createPolygon(t,e){let i=new V__namespace.Graphics,r=JSON.stringify({type:"polygon",polygon:t,color:e});return i.beginFill(e),t.forEach(s=>{i.drawPolygon(s.map(n=>new V__namespace.Point(n.x,n.y)));}),i.endFill(),new o(i,r)}static createRegularPolygon(t,e,i){let r=new V__namespace.Graphics,s=new helpersLib.Radian(helpersLib.PI_360/t);r.beginFill(i),r.moveTo(e,0);for(let n=1;n<=t;n++){let l=s.multiply(n).vector.normalize(e),c=e+l.x,p=e+l.y;r.lineTo(c,p);}return r.endFill(),new o(r,JSON.stringify({type:"regular-polygon",sides:t,radius:e,color:i}))}constructor(t,e){super(),this.pixiContainer.addChild(t),this.pixiGraphics=t,this.ƀal=e;}destroy(){this.destroyed||(super.destroy(),!this.pixiGraphics.destroyed&&this.pixiGraphics.destroy());}toSprite(t){let e={cacheName:this.ƀal,cache:false,...t},i=this.ƀec(e.cacheName,e.cache),r={id:i.assetID,scale:1,size:i.bounds,anchor:{x:0,y:0},boundingShapes:void 0,destroyAssetOnDestroy:!e.cache},s=new Z(r,{texturePosition:i.bounds,ignoreAnchor:true});return this.attachToRoot(),this.destroy(),s}ƀec(t,e){if(e){let i=o.ƀcq.get(t);return i||(i=this.ƀce(),o.ƀcq.set(t,i)),i}else return this.ƀce()}ƀce(){let t=w.instance.renderer.generateTexture(this.pixiGraphics);t.id=M.insertAsset(t);let e=this.pixiGraphics.getBounds();return {assetID:t.id,bounds:new helpersLib.Vector(e.x,e.y)}}};var hi=class extends u{static{h(this,"Placeholder");}constructor(t){super(),this.ƀho=new V__namespace.Graphics,this.ƀho.beginFill(0,1e-9),this.ƀho.drawRect(0,0,t.x,t.y),this.ƀho.endFill(),this.pixiContainer.addChild(this.ƀho);}destroy(){this.destroyed||(super.destroy(),this.ƀho.destroy());}};var Mt=class{static{h(this,"TextStyleConverter");}static getPixiTextStyle(t){let e={color:helpersLib.ColorHelper.white,align:"center",fontFamily:"Arial",fontStyle:"normal",fontSize:18,lineHeight:void 0,wordWrapWidth:void 0,lineThrough:false,...t},i=t?.dropShadow===true?{}:t?.dropShadow,r={};if(i){let s={blur:4,angle:helpersLib.Radian.get60,distance:10,color:helpersLib.ColorHelper.black,alpha:.5,...i};r={dropShadow:true,dropShadowBlur:s.blur,dropShadowAngle:s.angle.value,dropShadowDistance:s.distance,dropShadowColor:helpersLib.ColorHelper.rgbToHex(s.color),dropShadowAlpha:s.alpha};}return {fontFamily:e.fontFamily,fill:helpersLib.ColorHelper.rgbToHex(e.color),align:e.align,fontSize:e.fontSize,fontStyle:e.fontStyle,lineHeight:e.lineHeight,wordWrapWidth:e.wordWrapWidth,wordWrap:e.wordWrapWidth!==void 0,lineThrough:e.lineThrough,...r}}};var Ae=class{static{h(this,"RichTextDataInConverter");}static process(t,e){let i=new Set(e.styles?Object.keys(e.styles):[]),r=scriptEngineLib.RichTextSeparator.process(t,i),s=this.ƀfc(r,e),n=this.ƀr(s);return this.ƀix(n)}static ƀfc(t,e){let i=new Map,r=new Map,s=h((a,l)=>{if(r.has(l))return r.get(l);let c=Mt.getPixiTextStyle(a);return r.set(l,c),c},"GetPixiStyle");return t.map(a=>{let{style:l,cacheKey:c}=this.ƀdm(a.tags,e,i),p=s(l,c),f=V__namespace.TextMetrics.measureText(" ",new V__namespace.TextStyle(p),false);return {text:a.text,cacheKey:c,style:l,pixiStyle:p,spaceWidth:f.width}})}static ƀdm(t,e,i){let r=t.join("+");if(i.has(r))return {style:i.get(r),cacheKey:r};let s=this.ƀba(t,e);return i.set(r,s),{style:s,cacheKey:r}}static ƀba(t,e){let i={...e.default};for(let l of t)e.styles&&e.styles[l]&&(i={...i,...e.styles[l]});let{wordWrapWidth:r,align:s,dropShadow:n,...a}=i;return a}static ƀr(t){let e=[],i=[];return t.forEach((r,s)=>{r.text.split(/\r?\n/).forEach((a,l)=>{l>0&&(e.push(i),i=[]),i.push({text:a,cacheKey:r.cacheKey,style:r.style,pixiStyle:r.pixiStyle,spaceWidth:r.spaceWidth});});}),e.push(i),e}static ƀix(t){let e=[];return t.forEach(i=>{if(i.length===0)throw new Error("Internal Error: Line is unexpectedly empty");let r=i.flatMap(s=>this.ƀiy(s.text).map(a=>{let l=new V__namespace.TextStyle(s.pixiStyle),c=V__namespace.TextMetrics.measureText(a,l,false);return {text:a,whitespace:a.trim()==="",style:{cacheKey:s.cacheKey,style:s.style,pixiStyle:l,height:c.height,ascent:c.fontProperties.ascent,descent:c.fontProperties.descent,width:c.width,spaceWidth:s.spaceWidth}}}));e.push(r);}),e}static ƀiy(t){if(t==="")return [""];let e=[],i="",r=t[0]===" ";for(let s=0;s<t.length;s++){let n=t[s],a=n===" ";a===r?i+=n:(e.push(i),i=n,r=a);}return i&&e.push(i),e}};var Oe=class{static{h(this,"ConsistentSpaceTextWrapper");}static wrapText(t,e){return t.forEach(i=>{i.forEach((r,s)=>{if(e.isSpaceAvailable(new helpersLib.Vector(r.style.width,r.style.height)))if(r.whitespace&&s===i.length-2){let n=i[i.length-1];e.isSpaceAvailable(new helpersLib.Vector(n.style.width+r.style.width,n.style.height))?e.insertWord(r):this.ƀkm(r,e);}else e.insertWord(r);else e.lineIsEmpty?e.insertWord(r):r.whitespace?this.ƀkm(r,e):(e.newLine(),e.insertWord(r));}),e.newLine();}),e.print()}static ƀkm(t,e){let i=Math.max(0,Math.floor(e.remainingWidth/t.style.spaceWidth)),r=Math.max(0,Math.min(i,t.text.length-1));if(r>0){let n={text:" ".repeat(r),whitespace:true,style:{...t.style,width:r*t.style.spaceWidth}};e.insertWord(n);}e.newLine();let s=t.text.length-r-1;if(s>0){let n={text:" ".repeat(s),whitespace:true,style:{...t.style,width:s*t.style.spaceWidth}};e.insertWord(n);}}};var Me=class{static{h(this,"RichTextTypewriter");}get lineIsEmpty(){return this.ƀch.length===0}get remainingWidth(){return this.ƀkl-this.ƀcj}constructor(t,e){if(this.ƀkl=t,this.ƀfr=[],this.ƀch=[],this.ƀcj=0,this.ƀfq=new helpersLib.Vector(0,0),this.ƀci=0,this.ƀeu=e?.horizontalAlignment??"left",this.ƀkd=e?.verticalAlignment??"bottom",e?.rectangleCutOption){if(e.rectangleCutOption.position.x<0||e.rectangleCutOption.position.x>=this.ƀkl||e.rectangleCutOption.position.y<0)throw new Error("Rectangle cut position is out of bounds");this.ƀck={direction:e.rectangleCutOption.direction,rectangle:this.ƀbo(e.rectangleCutOption)};}}isSpaceAvailable(t){let e=Math.max(this.ƀci,t.y),i=this.ƀdu(this.ƀfq.y,this.ƀfq.y+e);return this.ƀcj+t.x<=i}insertWord(t){let e=Math.max(this.ƀci,t.style.height);if(this.ƀch.length===0){let i=this.ƀdv(this.ƀfq.y,this.ƀfq.y+e);this.ƀfq=new helpersLib.Vector(i,this.ƀfq.y),this.ƀcj=this.ƀfq.x;}this.ƀch.push({chunk:t,position:new helpersLib.Vector(this.ƀcj,this.ƀfq.y)}),this.ƀci=e,this.ƀcj+=t.style.width;}newLine(){let t=this.ƀfq.y+this.ƀci,e=this.ƀdv(t,t);this.ƀdb(),this.ƀfq=new helpersLib.Vector(e,t),this.ƀcj=this.ƀfq.x,this.ƀci=0;}print(){return this.ƀdb(),this.ƀfr}ƀdb(){this.ƀch.length>0&&(this.ƀfr.push(this.ƀg(this.ƀch)),this.ƀch=[]);}ƀg(t){return t=this.ƀkf(t),t=this.ƀew(t),t}ƀew(t){if(this.ƀeu==="left")return t;let e=this.ƀfq.y+this.ƀci,i=this.ƀdv(this.ƀfq.y,e),s=this.ƀdu(this.ƀfq.y,e)-i,n=Math.min(s,t.reduce((l,c)=>l+c.chunk.style.width,0)),a;return this.ƀeu==="center"?a=(s-n)/2:a=s-n,t.map(l=>(l={chunk:l.chunk,position:new helpersLib.Vector(l.position.x+a,l.position.y)},l))}ƀkf(t){let e=Math.max(...t.map(r=>r.chunk.style.ascent)),i=Math.max(...t.map(r=>r.chunk.style.descent));return t.map(r=>{let s;switch(this.ƀkd){case "top":s=i-r.chunk.style.descent;break;case "center":s=(i-r.chunk.style.descent+e-r.chunk.style.ascent)*.5;break;case "bottom":s=e-r.chunk.style.ascent;break}return r={chunk:r.chunk,position:new helpersLib.Vector(r.position.x,r.position.y+s)},r})}ƀdv(t,e){return this.ƀck&&(this.ƀck.direction==="topLeft"||this.ƀck.direction==="bottomLeft")&&(this.ƀck.rectangle.isPointInside(new helpersLib.Vector(0,t),{includeEdges:false})||this.ƀck.rectangle.isPointInside(new helpersLib.Vector(0,e),{includeEdges:false}))?this.ƀck.rectangle.bottomRight.x:0}ƀdu(t,e){return this.ƀck&&(this.ƀck.direction==="topRight"||this.ƀck.direction==="bottomRight")&&(this.ƀck.rectangle.isPointInside(new helpersLib.Vector(this.ƀkl,t),{includeEdges:false})||this.ƀck.rectangle.isPointInside(new helpersLib.Vector(this.ƀkl,e),{includeEdges:false}))?this.ƀck.rectangle.topLeft.x:this.ƀkl}ƀbo(t){let e,i;switch(t.direction){case "topRight":e=new helpersLib.Vector(t.position.x,-1/0),i=new helpersLib.Vector(1/0,t.position.y);break;case "topLeft":e=new helpersLib.Vector(-1/0,-1/0),i=t.position;break;case "bottomRight":e=t.position,i=new helpersLib.Vector(1/0,1/0);break;case "bottomLeft":e=new helpersLib.Vector(-1/0,t.position.y),i=new helpersLib.Vector(t.position.x,1/0);break}return new helpersLib.Rectangle(e,i)}};var De=class{static{h(this,"RichTextDataOutConverter");}static process(t){return t=this.ƀgd(t),t=this.ƀjw(t),this.ƀau(t)}static ƀgd(t){return t.map(e=>{let i=[],r,s=true;return e.forEach(n=>{if(!r||r.chunk.style.cacheKey!==n.chunk.style.cacheKey)r&&i.push(r),r=n,s=n.chunk.whitespace;else {let a=r.chunk.text+n.chunk.text;s=n.chunk.whitespace&&s,r={chunk:{text:a,whitespace:s,style:{...r.chunk.style,width:r.chunk.style.width+n.chunk.style.width}},position:r.position};}}),r&&i.push(r),i})}static ƀjw(t){return t.map(e=>{if(e.length===0)return [];let i=e.pop();if(!i.chunk.whitespace||i.chunk.text===""){let r=i.chunk.text.length,s=i.chunk.text.trimEnd();r!==s.length?e.push({chunk:{text:s,whitespace:false,style:{...i.chunk.style,width:i.chunk.style.width-(r-s.length)*i.chunk.style.spaceWidth}},position:i.position}):e.push(i);}return e})}static ƀau(t){return t.flatMap(e=>e.map(i=>({text:i.chunk.text,style:i.chunk.style.style,position:i.position}))).filter(e=>e.text.trim()!=="")}};var ee=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=Ae.process(t,e),r=new Me(e.default.wordWrapWidth??1/0,{rectangleCutOption:e.rectangleCut,verticalAlignment:e.verticalAlignment,horizontalAlignment:e.default.align}),s=Oe.wrapText(i,r);return De.process(s)}};var Cs=1,zi=1/Cs,ie=class extends u{static{h(this,"Text");}get ƀjo(){if(!this.ƀjp){let t=new V__namespace.TextStyle(this.ƀhq);this.ƀjp=V__namespace.TextMetrics.measureText(this.ƀjn,t);}return this.ƀjp}get ascent(){return this.ƀjo.fontProperties.ascent}constructor(t,e){super(),this.ƀhq=Mt.getPixiTextStyle(e),this.setText(t);}destroy(){this.destroyed||(super.destroy(),!this.ƀhp.destroyed&&this.ƀhp.destroy());}setAnchor(t){return this.anchor=t,this}get anchor(){return new helpersLib.Vector(this.ƀhp.anchor.x,this.ƀhp.anchor.y)}set anchor(t){this.ƀhp.anchor.set(t.x,t.y);}setPosition(t,e){if(e?.holdFrom){let i=this.ƀhq.dropShadowDistance??0,r=new helpersLib.Vector(e.holdFrom.x*i,e.holdFrom.y*i);t=t.add(r);}return super.setPosition(t,e),this}setText(t){return this.ƀjn!==t&&(this.ƀjn=t,this.ƀhx()),this}setColor(t){let e=helpersLib.ColorHelper.rgbToHex(t);return this.ƀhq.fill!==e&&(this.ƀhq.fill=e,this.ƀhx()),this}ƀhx(){this.ƀhp?.destroy(),this.ƀji?.destroy(),this.ƀji=void 0,this.ƀjp=void 0;let t=new V__namespace.TextStyle(this.ƀhq);this.ƀhp=new V__namespace.Text(this.ƀjn,t),this.ƀhp.scale.set(zi,zi),this.pixiContainer.addChild(this.ƀhp),this.ƀhq.lineThrough&&(this.ƀji=this.ƀe(this.ƀhp,this.ƀhq.fill),this.pixiContainer.addChild(this.ƀji));}ƀe(t,e){let i=V__namespace.TextMetrics.measureText(t.text,t.style),r=Math.max(1,Math.round(i.lineHeight*.07)),s=r%2*.5,n=new V__namespace.Graphics;n.lineStyle(r,e);let a=0;return i.lines.forEach((l,c)=>{let p=V__namespace.TextMetrics.measureText(l,t.style),f=Math.round(a+(p.fontProperties.ascent-p.fontProperties.descent)*.6+p.fontProperties.descent)+s,g=0;t.style.align==="center"?g=0+(t.width-p.width)*.5:t.style.align==="right"&&(g=0+t.width-p.width),g=Math.floor(g),n.moveTo(Math.floor(g),f),n.lineTo(Math.floor(g+p.width),f),a+=p.lineHeight;}),n.endFill(),n}};var li=class extends u{static{h(this,"RichText");}constructor(t,e){super(),ee.process(t,e).forEach(r=>new ie(r.text,r.style).setPosition(r.position).displayParent(this).attach(this));}};var ci=class extends u{static{h(this,"UpdatableContainer");}},pi=class extends u{static{h(this,"DisplayObjectArray");}constructor(t,e){super(),this.ƀbu=t,this.ƀcn=new Map,this.ƀgx={trackBy:h((i,r)=>r,"trackBy"),positioning:{direction:"vertical",spacing:0},...e};}set(t){let e=new Set(this.ƀcn.values()),i=0;t.forEach((r,s)=>{let n=this.ƀgx.trackBy(r,s),a;this.ƀcn.has(n)?(a=this.ƀcn.get(n),e.delete(a),a.update(r)):(a=this.ƀbu(r).displayParent(this).attach(this),this.ƀcn.set(n,a)),this.ƀgx.positioning.direction==="horizontal"?(a.x=i,i+=a.size.x+this.ƀgx.positioning.spacing):(a.y=i,i+=a.size.y+this.ƀgx.positioning.spacing);}),e.forEach(r=>{r.destroy();});}};var Bt=class o extends u{static{h(this,"Menu");}static{this.ƀju=false;}static closeAll(){return o.ƀgw?o.ƀgw.close():actionsLib.SingleEvent.instant()}constructor(t,e){super(),this.ƀgp=new actionsLib.SingleAction,this.onOpen=this.ƀgp.notifier,this.ƀgk=new actionsLib.SingleAction,this.onClose=this.ƀgk.notifier;let i={closeOnBackgroundClick:true,appearAnimationDuration:150,darkeningAlpha:.3,...e};this.setZIndex(100).setAlpha(0),this.ƀn=new O(this,"alpha",{animation:S.easeInOutCubic,duration:i.appearAnimationDuration,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀz=E.createRectangle(new helpersLib.Vector(1,1),helpersLib.ColorHelper.black).toSprite({cache:true}).setAlpha(i.darkeningAlpha).setInteractive(true).displayParent(this).attach(this),this.ƀgc=Z.createByName(t).setPosition(new helpersLib.Vector(0,0)).setInteractive(true).displayParent(this).attach(this),w.instance.screenSize.subscribe(r=>{this.ƀz.aspectRatio=r.x/r.y,this.ƀz.scale=Math.max(r.x,r.y),this.ƀz.setPosition(helpersLib.Vector.zero,{holdFrom:helpersLib.Vector.half}),this.setPosition(r.multiplyNumber(.5));}).attach(this),o.ƀgw=this,this.onDestroy().tap(()=>{o.ƀgw=void 0;}).attachToRoot(),i.closeOnBackgroundClick&&this.ƀz.on(exports.ContainerEventType.Click,()=>{o.ƀju||this.ƀp(false);}).attach(this),this.ƀp(true);}getBoundingMask(){return this.ƀgc.getBoundingMask()}close(){return this.ƀp(false)}ƀp(t){if(o.ƀju)throw new Error("WindowUI: cannot iterate while in transition");return o.ƀju=true,this.ƀn.animate({alpha:t?1:0}).chain(this).tap(()=>{o.ƀju=false,t?this.ƀgp.resolve():(this.ƀgk.resolve(),this.destroy());}).chainToRoot()}};var ui=class extends gt{static{h(this,"MenuEntity");}constructor(t,e){super(),this.ƀgn=new actionsLib.SingleAction,this.onCreate=this.ƀgn.notifier,this.ƀgp=new actionsLib.SingleAction,this.onOpen=this.ƀgp.notifier,this.ƀgk=new actionsLib.SingleAction,this.onClose=this.ƀgk.notifier,Bt.closeAll().tap(()=>{if(!St.getActiveScene())throw new Error("WindowEntity: constructor is called when there is no active scene!");w.pause.effect(true).attach(this),this.ƀgc=new Bt(t,e).displayParent(w.camera.layers.foregroundScreen).attach(this),this.ƀgn.resolve(this.ƀgc),this.ƀgc.onOpen.subscribe(()=>this.ƀgp.resolve()).attach(this),this.ƀgc.onClose.subscribe(()=>{this.destroy(),this.ƀgk.resolve();}).attach(this);}).attach(this);}close(){if(this.ƀgc){let t=this.onClose.toSingleEvent().destroyIfNotAttached();return this.ƀgc.close(),t}else return this.onCreate.asyncMapQueue(()=>this.close()).singleChain(this)}};var Rs=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Is=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)};exports.MouseService=class wt{static{h(this,"MouseService");}get initialMouseMoveHappened(){return this.ƀfe.value}getStagePosition(){return this.ƀja.value}getScreenPosition(){return this.ƀih.value}getMainButtonState(){return this.ƀfw.value}getSecondaryButtonState(){return this.ƀin.value}constructor(){this.ƀfe=new actionsLib.Variable(false),this.onInitialMouseMove=this.ƀfe.notifier,this.ƀja=new actionsLib.Variable(helpersLib.Vector.zero,{notifyOnChange:true}),this.stagePosition=this.ƀja.notifier,this.ƀih=new actionsLib.Variable(helpersLib.Vector.zero,{notifyOnChange:true}),this.screenPosition=this.ƀih.notifier,this.ƀfw=new actionsLib.Variable(false),this.mainButtonState=this.ƀfw.notifier,this.ƀin=new actionsLib.Variable(false),this.secondaryButtonState=this.ƀin.notifier,this.ƀjb(),window.addEventListener("mousedown",t=>{t.button===0?this.ƀfw.value=true:t.button===2&&(this.ƀin.value=true);}),window.addEventListener("mouseup",t=>{t.button===0?this.ƀfw.value=false:t.button===2&&(this.ƀin.value=false);}),window.addEventListener("blur",()=>{this.ƀfw.value=false,this.ƀin.value=false;});}ƀjb(){let t=helpersLib.Vector.zero;window.addEventListener("mousemove",e=>{t=new helpersLib.Vector(e.clientX,e.clientY),this.ƀfe.value=true;}),y.beforeSceneUpdateAction.subscribe(()=>{this.ƀih.value=t;}).attachToRoot(),y.afterSceneUpdateAction.subscribe(()=>{let e=w.instance.screenPositonToStagePosition(this.ƀih.value);e.isEqual(this.ƀja.value)?w.instance.renderer.events.onPointerMove(new PointerEvent("pointermove",{clientX:this.ƀih.value.x,clientY:this.ƀih.value.y,pointerType:"mouse"})):this.ƀja.value=e;}).attachToRoot();}};exports.MouseService=Rs([d(),Is("design:paramtypes",[])],exports.MouseService);var se=class extends u{static{h(this,"MouseWheelListenerUI");}constructor(t){super(),this.ƀgt=new actionsLib.Action,this.onWheel=this.ƀgt.notifier,this.ƀep=(e=>{let i=P.get(exports.MouseService).getScreenPosition(),r=this.ƀkk.getBounds();i.x>=r.x&&i.x<=r.x+r.width&&i.y>=r.y&&i.y<=r.y+r.height&&this.ƀgt.trigger(e.deltaY);}).bind(this),this.ƀkk=new V__namespace.Graphics,this.ƀkk.beginFill(0,1e-9),this.ƀkk.drawRect(0,0,t.x,t.y),this.ƀkk.endFill(),this.pixiContainer.addChild(this.ƀkk),window.addEventListener("wheel",this.ƀep);}destroy(){this.destroyed||(super.destroy(),this.ƀkk.destroy(),window.removeEventListener("wheel",this.ƀep));}};var Ms=.65,Ds=.01,Fe=class{static{h(this,"SmoothScroller");}get scrollHeight(){return this.ƀil}get contentSize(){return this.ƀbh.size.ceil()}constructor(t,e,i,r){this.ƀbh=t,this.ƀu=e,this.ƀgz=i,this.ƀiw=r,this.ƀff=false,this.ƀil=e-i*2,this.ƀbh.y=i,this.ƀjj=i;}onWheel(t){this.setTarget(this.ƀjj-t*Ms);}scrollToTop(){this.setTarget(1/0);}scrollToBottom(){this.setTarget(-1/0);}setTarget(t){this.ƀjj=helpersLib.NumberHelper.clamp(t,this.ƀu-this.ƀgz-this.contentSize.y,this.ƀgz);}jumpToTarget(){this.ƀbh.y=this.ƀjj;}update(t){let e=this.contentSize;if(e.y<=this.ƀil){switch(this.ƀiw){case "start":this.ƀjj=this.ƀgz;break;case "center":this.ƀjj=(this.ƀu-e.y)*.5;break;case "end":this.ƀjj=this.ƀu-e.y-this.ƀgz;break}this.ƀff||(this.ƀbh.y=this.ƀjj);}this.ƀff=true;let i=this.ƀjj-this.ƀbh.y;this.ƀbh.y=this.ƀbh.y+i*Ds*t;}};var mi=class{static{h(this,"AnimationEaseInOutFlatter");}start(){}multiplierFunction(t){return 3*(1-t)*Math.pow(t,2)+Math.pow(t,3)}},xt=class o extends u{static{h(this,"ScrollMaskUI");}static{this.ƀcq=new Map;}constructor(t,e,i,r=exports.ScrollDirection.Vertical){if(super(),i<0)throw new Error("The padding of the scroll mask cannot be lower than '0'");if(e.y<i*2)throw new Error(`The height of the scroll mask cannot be lower than '${i*2}'`);let s=new u;r===exports.ScrollDirection.Horizontal?this.ƀby(e,i,s):this.ƀcf(e,i,s),this.ƀfz=Z.createSnapshotSprite(s).attach(this),s.destroy(),t.setMask(this.ƀfz);}ƀcf(t,e,i){e>0&&this.ƀbv(new helpersLib.Vector(t.x,e)).displayParent(i).attach(i),E.createRectangle(new helpersLib.Vector(t.x,t.y-e*2),helpersLib.ColorHelper.white).toSprite().setPosition(new helpersLib.Vector(0,e),{round:false}).displayParent(i).attach(i),e>0&&this.ƀbv(new helpersLib.Vector(t.x,e)).setPosition(new helpersLib.Vector(t.x,t.y),{round:false}).setRotation(helpersLib.Radian.get180).displayParent(i).attach(i);}ƀby(t,e,i){e>0&&this.ƀbv(new helpersLib.Vector(t.y,e)).setPosition(new helpersLib.Vector(0,t.y),{round:false}).setRotation(helpersLib.Radian.get270).displayParent(i).attach(i),E.createRectangle(new helpersLib.Vector(t.x-e*2,t.y),helpersLib.ColorHelper.white).toSprite().setPosition(new helpersLib.Vector(e,0),{round:false}).displayParent(i).attach(i),e>0&&this.ƀbv(new helpersLib.Vector(t.y,e)).setPosition(new helpersLib.Vector(t.x,0),{round:false}).setRotation(helpersLib.Radian.get90).displayParent(i).attach(i);}ƀbv(t){let i={id:this.ƀbw(t.y),scale:1,size:t,anchor:{x:0,y:0},boundingShapes:void 0};return new Z(i,{textureSize:t,ignoreAnchor:true})}ƀbw(t){let e=JSON.stringify({type:"gradient",length:t}),i=o.ƀcq.get(e);if(!i){let r=document.createElement("canvas");r.width=1,r.height=t;let s=r.getContext("2d");if(s){let n=new mi;helpersLib.ArrayHelper.createIntegerArray(t).forEach(l=>{let c=`rgba(255, 255, 255, ${n.multiplierFunction(l/t)})`;s.fillStyle=c,s.fillRect(0,l,1,1);});let a=V__namespace.Texture.from(r);i=M.insertAsset(a),o.ƀcq.set(e,i);}else throw new Error("Canvas context is null")}return i}};var Fs=15,gi=class extends u{static{h(this,"ScrollAreaUI");}get contentAreaSize(){return this.ƀbi}get contentSize(){return this.ƀim.contentSize}constructor(t,e={}){super();let i={padding:Fs,smallContentAlign:"start",...e};if(i.padding<0)throw new Error("The padding of the scroll mask cannot be lower than '0'");if(i.padding>t.y*.5)throw new Error("The padding of the scroll mask cannot be higher than half of the size of the area");let r=new u().displayParent(this).attach(this);new xt(r,t,i.padding).attach(this);let s=new u().displayParent(r).attach(this);this.ƀim=new Fe(s,t.y,i.padding,i.smallContentAlign),this.ƀbi=new helpersLib.Vector(t.x,this.ƀim.scrollHeight),new se(t).displayParent(r).attach(this).onWheel.subscribe(a=>this.ƀim.onWheel(a)).attach(this),y.afterSceneUpdateAction.subscribe(a=>this.ƀim.update(a.delta)).attach(this),this.addChildTo=s;}scrollToTop(t){this.ƀim.scrollToTop(),t?.instant&&this.ƀim.jumpToTarget();}scrollToBottom(t){this.ƀim.scrollToBottom(),t?.instant&&this.ƀim.jumpToTarget();}};var _s=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Ls=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)};exports.KeyboardService=class yi{static{h(this,"KeyboardService");}constructor(){this.ƀfm=new actionsLib.Action,this.keyPressed=this.ƀfm.notifier,this.ƀfn=new actionsLib.Action,this.keyReleased=this.ƀfn.notifier,this.ƀft=new Set,this.ƀfs=new Set,window.addEventListener("keydown",t=>{this.ƀft.add(t.key),this.ƀfs.add(t.key),!t.repeat&&this.ƀfm.trigger(t.key);}),window.addEventListener("keyup",t=>{this.ƀft.delete(t.key),this.ƀfn.trigger(t.key);}),window.addEventListener("blur",()=>{this.ƀft.clear();}),y.afterSceneUpdateAction.subscribe(()=>{this.ƀfs.clear();}).attachToRoot();}isKeyDown(t){return this.ƀft.has(t)}isKeyJustPressed(t){return this.ƀfs.has(t)}};exports.KeyboardService=_s([d(),Ls("design:paramtypes",[])],exports.KeyboardService);var Vs=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Ns=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)};exports.MouseTargetFocusService=class wi{static{h(this,"MouseTargetFocusService");}get focusedInLastFrame(){return this.ƀdc}get lastFocusedPosition(){return this.ƀfp}constructor(t){this.ƀgf=t,this.ƀgr=new actionsLib.Action,this.onTargetFocus=this.ƀgr.notifier,this.ƀjt=0,this.ƀjv=false,this.ƀdc=false,this.ƀfp=void 0,y.beforeSceneUpdateAction.subscribe(e=>this.ƀjx(e.delta)).attachToRoot();}ƀjx(t){if(this.ƀgg){let e=this.ƀeb(this.ƀgf.getStagePosition(),this.ƀgg);this.ƀhb===void 0?this.ƀhb=e:this.ƀat(e,t);}this.ƀgg=this.ƀgf.getStagePosition();}ƀat(t,e){this.ƀhb-t>10?(this.ƀjt=Math.max(250,this.ƀjt),this.ƀjv=true):this.ƀjt>1e3&&(this.ƀjv=true);let i=this.ƀjt>=300&&this.ƀjv;this.ƀfk(i,t,e);}ƀfk(t,e,i){(t||e>this.ƀhb)&&(this.ƀhb=e),t?(this.ƀjv=false,this.ƀjt=0,this.ƀdc=true,this.ƀfp=this.ƀgf.getStagePosition(),this.ƀgr.trigger(this.ƀfp)):(this.ƀjt+=i,this.ƀdc=false);}ƀeb(t,e){let i=helpersLib.Vector.fromTo(t,e);return Math.abs(i.x)+Math.abs(i.y)}};exports.MouseTargetFocusService=Vs([d(),Ns("design:paramtypes",[exports.MouseService])],exports.MouseTargetFocusService);var x;(function(o){o[o.Hidden=1]="Hidden",o[o.Visible=2]="Visible",o[o.Appearing=3]="Appearing",o[o.Disappearing=4]="Disappearing",o[o.DisappearToChange=5]="DisappearToChange";})(x||(x={}));var _e=class extends actionsLib.Attachable{static{h(this,"FadeInStateAnimation");}get currentState(){return {value:this.ƀi.value,state:this.ƀje,queuedState:this.ƀhs,animationState:this.ƀm}}constructor(t){super(),this.ƀi={value:0},this.ƀm=x.Hidden,this.ƀgq=new actionsLib.Action,this.ƀgs=new actionsLib.Action,this.ƀgx={duration:500,animation:S.lineer,...t},this.ƀi.value=0,this.ƀn=new O(this.ƀi,"value",{duration:this.ƀgx.duration,animation:this.ƀgx.animation,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀn.value.subscribe(()=>{this.ƀi.value!==1&&this.ƀi.value!==0&&this.ƀgs.trigger(this.ƀi.value);}).attach(this);}setState(t,e){if(e?.instant){this.ƀn.completeAnimation(),this.ƀm=t!==void 0?x.Visible:x.Hidden,this.ƀhs=void 0;let i=t!==void 0?1:0,r=this.ƀje!==t;r&&(this.ƀje=t,this.ƀgq.trigger(this.ƀje)),(r||this.ƀi.value!==i)&&(this.ƀi.value=i,this.ƀgs.trigger(this.ƀi.value));}else switch(this.ƀm){case x.Hidden:t!==void 0&&(this.ƀm=x.Appearing,this.ƀhs=void 0,this.ƀje=t,this.ƀgq.trigger(this.ƀje),this.ƀn.animate({value:1}).tap(()=>this.ƀgm()).attach(this));break;case x.Visible:t===void 0?(this.ƀm=x.Disappearing,this.ƀhs=void 0,this.ƀn.animate({value:0}).tap(()=>this.ƀgm()).attach(this)):t!==this.ƀje&&(this.ƀm=x.DisappearToChange,this.ƀhs=t,this.ƀn.animate({value:0}).tap(()=>this.ƀgm()).attach(this));break;case x.Appearing:t===void 0?(this.ƀm=x.Disappearing,this.ƀhs=void 0,this.ƀn.animate({value:0},{duration:this.ƀi.value*this.ƀgx.duration}).tap(()=>this.ƀgm()).attach(this)):t!==this.ƀje&&(this.ƀi.value>0?(this.ƀm=x.DisappearToChange,this.ƀhs=t,this.ƀn.animate({value:0},{duration:this.ƀi.value*this.ƀgx.duration}).tap(()=>this.ƀgm()).attach(this)):(this.ƀhs=void 0,this.ƀje=t,this.ƀgq.trigger(this.ƀje)));break;case x.Disappearing:t===this.ƀje?(this.ƀm=x.Appearing,this.ƀn.animate({value:1},{duration:(1-this.ƀi.value)*this.ƀgx.duration}).tap(()=>this.ƀgm()).attach(this)):t!==void 0&&(this.ƀm=x.DisappearToChange,this.ƀhs=t);break;case x.DisappearToChange:t===void 0?(this.ƀm=x.Disappearing,this.ƀhs=void 0):t===this.ƀje?(this.ƀm=x.Appearing,this.ƀhs=void 0,this.ƀn.animate({value:1},{duration:(1-this.ƀi.value)*this.ƀgx.duration}).tap(()=>this.ƀgm()).attach(this)):t!==this.ƀhs&&(this.ƀhs=t);break}}ƀgm(){switch(this.ƀm){case x.Appearing:this.ƀi.value===1&&(this.ƀm=x.Visible,this.ƀgs.trigger(this.ƀi.value));break;case x.Disappearing:if(this.ƀhs!==void 0)throw new Error("FadeInStateAnimation: Unexpected state, disappearing should not have a queued value");this.ƀi.value===0&&(this.ƀm=x.Hidden,this.ƀje=void 0,this.ƀgq.trigger(this.ƀje),this.ƀgs.trigger(this.ƀi.value));break;case x.DisappearToChange:if(this.ƀhs===void 0)throw new Error("FadeInStateAnimation: Unexpected state, disappearToChange should always have a queued value");this.ƀi.value===0&&(this.ƀm=x.Appearing,this.ƀje=this.ƀhs,this.ƀhs=void 0,this.ƀgq.trigger(this.ƀje),this.ƀgs.trigger(this.ƀi.value),this.ƀn.animate({value:1}).tap(()=>this.ƀgm()).attach(this));break;case x.Hidden:case x.Visible:return}}onStateChange(t){return this.ƀgq.subscribe(e=>t(e)).attach(this),this}onValueChange(t){return this.ƀgs.subscribe(e=>t(e)).attach(this),this}};var Qi=class extends u{static{h(this,"FadeInContent");}constructor(t,e){super(),this.ƀbu=t;let i={duration:200,animation:S.easeInOut,...e};this.alpha=0,this.ƀjf=new _e(i).onStateChange(r=>{this.ƀbh?.destroy(),this.ƀbh=void 0,r!==void 0&&(this.ƀbh=new u().displayParent(this).attach(this),this.ƀbu({state:r,container:this.ƀbh}));}).onValueChange(r=>{this.alpha=r;}).attach(this);}setState(t,e){return this.ƀjf.setState(t,e),this}};var A;(function(o){o[o.Idle=1]="Idle",o[o.Transitioning=2]="Transitioning",o[o.Reverting=3]="Reverting";})(A||(A={}));var Le=class extends actionsLib.Attachable{static{h(this,"StateAnimation");}get currentState(){return {value:this.ƀi.value,state:this.ƀje,nextState:this.ƀgi,queuedState:this.ƀhs,animationState:this.ƀm}}constructor(t){super(),this.ƀi={value:0},this.ƀm=A.Idle,this.ƀgq=new actionsLib.Action,this.ƀgs=new actionsLib.Action,this.ƀgx={duration:500,animation:S.lineer,...t},this.ƀn=new O(this.ƀi,"value",{duration:this.ƀgx.duration,animation:this.ƀgx.animation,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀn.value.subscribe(()=>{this.ƀi.value!==1&&this.ƀi.value!==0&&this.ƀgs.trigger(this.ƀi.value);}).attach(this);}setState(t,e){if(this.ƀje===void 0)this.ƀje=t,this.ƀgq.trigger({state:this.ƀje,nextState:this.ƀgi}),this.ƀgs.trigger(this.ƀi.value);else if(e?.instant)this.ƀn.completeAnimation(),this.ƀm=A.Idle,this.ƀje=t,this.ƀgi=void 0,this.ƀi.value=0,this.ƀgq.trigger({state:this.ƀje,nextState:this.ƀgi}),this.ƀgs.trigger(this.ƀi.value);else switch(this.ƀm){case A.Idle:t!==this.ƀje&&(this.ƀm=A.Transitioning,this.ƀgi=t,this.ƀi.value=0,this.ƀgq.trigger({state:this.ƀje,nextState:this.ƀgi}),this.ƀgs.trigger(this.ƀi.value),this.ƀn.animate({value:1}).tap(()=>this.ƀgm()).attach(this));break;case A.Transitioning:t!==this.ƀgi&&(t===this.ƀje?(this.ƀm=A.Reverting,this.ƀn.animate({value:0},{duration:this.ƀi.value*this.ƀgx.duration}).tap(()=>this.ƀgm()).attach(this)):this.ƀhs=t);break;case A.Reverting:t!==this.ƀje&&(t===this.ƀgi?(this.ƀm=A.Transitioning,this.ƀn.animate({value:1},{duration:(1-this.ƀi.value)*this.ƀgx.duration}).tap(()=>this.ƀgm()).attach(this)):this.ƀhs=t);break}}ƀgm(){switch(this.ƀm){case A.Transitioning:this.ƀi.value===1&&(this.ƀi.value=0,this.ƀhs!==void 0?(this.ƀm=A.Transitioning,this.ƀje=this.ƀgi,this.ƀgi=this.ƀhs,this.ƀhs=void 0,this.ƀgq.trigger({state:this.ƀje,nextState:this.ƀgi}),this.ƀn.animate({value:1}).tap(()=>this.ƀgm()).attach(this)):(this.ƀm=A.Idle,this.ƀje=this.ƀgi,this.ƀgi=void 0,this.ƀgq.trigger({state:this.ƀje,nextState:this.ƀgi})),this.ƀgs.trigger(this.ƀi.value));break;case A.Reverting:if(this.ƀje===void 0)throw new Error("StateAnimation: state must be defined when reverting!");this.ƀi.value===0&&(this.ƀhs!==void 0?(this.ƀm=A.Transitioning,this.ƀgi=this.ƀhs,this.ƀhs=void 0,this.ƀi.value=0,this.ƀgq.trigger({state:this.ƀje,nextState:this.ƀgi}),this.ƀn.animate({value:1}).tap(()=>this.ƀgm()).attach(this)):(this.ƀm=A.Idle,this.ƀgi=void 0,this.ƀi.value=0,this.ƀgq.trigger({state:this.ƀje,nextState:this.ƀgi})),this.ƀgs.trigger(this.ƀi.value));break;case A.Idle:break}}onStateChange(t){return this.ƀgq.subscribe(e=>t(e.state,e.nextState)).attach(this),this}onValueChange(t){return this.ƀgs.subscribe(e=>t(e)).attach(this),this}};exports.SlideStateAnimationState=void 0;(function(o){o[o.Appear=1]="Appear",o[o.Disappear=2]="Disappear";})(exports.SlideStateAnimationState||(exports.SlideStateAnimationState={}));var C;(function(o){o[o.Idle=1]="Idle",o[o.TransitionForward=2]="TransitionForward",o[o.TransitionBackward=3]="TransitionBackward",o[o.Reverting=4]="Reverting";})(C||(C={}));var Ve=class extends actionsLib.Attachable{static{h(this,"SlideStateAnimation");}constructor(t){super(),this.ƀm=C.Idle,this.ƀgq=new actionsLib.Action,this.ƀgs=new actionsLib.Action,this.ƀgx={duration:500,animation:S.easeInOutCubic,...t},this.ƀjf=new Le({duration:this.ƀgx.duration,animation:this.ƀgx.animation}).onStateChange((e,i)=>this.ƀen(e,i)).onValueChange(e=>this.ƀeo(e)).attach(this);}setIndex(t,e){if(!helpersLib.Comparator.isInteger(t))throw new Error("SlideStateAnimation: index must be an integer!");this.ƀfd===void 0?(this.ƀfd=t,this.ƀgq.trigger({state:exports.SlideStateAnimationState.Appear,index:t}),this.ƀjf.setState(t,e)):this.ƀfd!==t?this.ƀgh!==t?this.ƀm===C.Idle?(this.ƀm=t>this.ƀfd?C.TransitionForward:C.TransitionBackward,this.ƀgh=t,this.ƀgq.trigger({state:exports.SlideStateAnimationState.Appear,index:this.ƀgh}),this.ƀjf.setState(t,e)):this.ƀjf.setState(t,e):this.ƀm===C.Reverting&&this.ƀgh===t&&(this.ƀm=t>this.ƀfd?C.TransitionForward:C.TransitionBackward,this.ƀjf.setState(t,e)):(this.ƀm===C.TransitionForward||this.ƀm===C.TransitionBackward)&&(this.ƀm=C.Reverting,this.ƀjf.setState(t,e));}ƀen(t,e){switch(this.ƀfd!==void 0&&this.ƀfd!==t&&this.ƀfd!==e&&this.ƀgq.trigger({state:exports.SlideStateAnimationState.Disappear,index:this.ƀfd}),this.ƀgh!==void 0&&this.ƀgh!==t&&this.ƀgh!==e&&this.ƀgq.trigger({state:exports.SlideStateAnimationState.Disappear,index:this.ƀgh}),e!==void 0&&e!==this.ƀfd&&e!==this.ƀgh&&this.ƀgq.trigger({state:exports.SlideStateAnimationState.Appear,index:e}),this.ƀm){case C.TransitionForward:case C.TransitionBackward:e===void 0?(this.ƀm=C.Idle,this.ƀfd=this.ƀgh,this.ƀgh=void 0):this.ƀfd!==t&&this.ƀel(t,e);break;case C.Reverting:e===void 0?(this.ƀm=C.Idle,this.ƀgh=void 0):this.ƀfd!==e&&this.ƀel(t,e);break}}ƀeo(t){let e=1;(this.ƀm===C.TransitionBackward||this.ƀm===C.Reverting&&this.ƀfd!==void 0&&this.ƀgh!==void 0&&this.ƀfd>this.ƀgh)&&(e=-1),(this.ƀm===C.Idle||t!==0)&&this.ƀgs.trigger({value:helpersLib.NumberHelper.ensurePositiveZero(-e*t),index:this.ƀfd}),this.ƀgh!==void 0&&this.ƀgs.trigger({value:helpersLib.NumberHelper.ensurePositiveZero(e*(1-t)),index:this.ƀgh});}ƀel(t,e){this.ƀfd=t,this.ƀgh=e,this.ƀgs.trigger({value:0,index:this.ƀfd}),this.ƀm=this.ƀfd<this.ƀgh?C.TransitionForward:C.TransitionBackward;}onStateChange(t){return this.ƀgq.subscribe(e=>t(e.state,e.index)).attach(this),this}onValueChange(t){return this.ƀgs.subscribe(e=>t(e.value,e.index)).attach(this),this}};exports.ScrollDirection=void 0;(function(o){o[o.Horizontal=1]="Horizontal",o[o.Vertical=2]="Vertical";})(exports.ScrollDirection||(exports.ScrollDirection={}));var xi=class extends u{static{h(this,"SlideInContentByIndex");}constructor(t,e){super(),this.ƀbu=t,this.ƀcl="x",this.ƀbj=new Map,this.ƀgx={duration:300,animation:S.easeInOutCubic,size:new helpersLib.Vector(500,500),margin:20,direction:exports.ScrollDirection.Horizontal,...e};let i=this.ƀgx.direction===exports.ScrollDirection.Horizontal?new helpersLib.Vector(this.ƀgx.size.x+this.ƀgx.margin*2,this.ƀgx.size.y):new helpersLib.Vector(this.ƀgx.size.x,this.ƀgx.size.y+this.ƀgx.margin*2),r=new u().setPosition(this.ƀgx.direction===exports.ScrollDirection.Horizontal?new helpersLib.Vector(-this.ƀgx.margin,0):new helpersLib.Vector(0,-this.ƀgx.margin),{round:false}).displayParent(this).attach(this);this.ƀbz(i,this.ƀgx.margin,this.ƀgx.direction,r),this.ƀcl=this.ƀgx.direction===exports.ScrollDirection.Horizontal?"x":"y",this.ƀjf=new Ve({duration:this.ƀgx.duration,animation:this.ƀgx.animation}).onStateChange((s,n)=>{if(s===exports.SlideStateAnimationState.Appear){let a=new u().displayParent(this).attach(this);this.ƀbj.set(n,a),this.ƀbu({index:n,container:a});}else {let a=this.ƀbj.get(n);a&&(a.destroy(),this.ƀbj.delete(n));}}).onValueChange((s,n)=>{let a=this.ƀbj.get(n);if(a){let l={x:0,y:0};l[this.ƀcl]=i[this.ƀcl]*s+this.ƀgx.margin,a.setPosition(helpersLib.Vector.fromVec2(l),{round:false});}}).attach(this),this.addChildTo=r;}setIndex(t,e){return this.ƀjf.setIndex(t,e),this}ƀbz(t,e,i,r){new xt(r,new helpersLib.Vector(t.x,t.y),e,i).attach(this);}},ir=class extends xi{static{h(this,"SlideInContent");}constructor(t,e,i){super(r=>{let s=this.indexToItem.get(r.index);if(s)e({index:r.index,item:s,container:r.container});else throw new Error(`SlideInContent: The item with index '${r.index}' is not part of the items list`)},i),this.itemToIndex=new Map,this.indexToItem=new Map,t.forEach((r,s)=>{this.itemToIndex.set(r,s),this.indexToItem.set(s,r);});}setItem(t,e){let i=this.itemToIndex.get(t);if(i!==void 0)this.setIndex(i,e);else throw new Error(`SlideInContent: The item '${t}' is not part of the items list`);return this}};var bt=class{static{h(this,"VectorSet");}constructor(){this.ƀkb=new Map;}add(t){let e=this.ƀkb.get(t.x);e||(e=new Set,this.ƀkb.set(t.x,e)),e.add(t.y);}has(t){let e=this.ƀkb.get(t.x);return e?e.has(t.y):false}delete(t){let e=this.ƀkb.get(t.x);return e?e.delete(t.y):false}};var vi=class{static{h(this,"DeltaTime");}static adjustMultiplier(t,e){return Math.pow(t,e)}};var B=class{static{h(this,"PositionToGridPositionConverter");}static areaToGridArea(t,e){return new helpersLib.Rectangle(this.positionToGridPosition(t.topLeft,e),this.positionToGridPosition(t.bottomRight,e))}static positionToGridPosition(t,e){return t.divideNumber(e).floor()}static gridPositionToPosition(t,e){return t.add(new helpersLib.Vector(.5,.5)).multiplyNumber(e)}};var oe=class{static{h(this,"ClosestAvailableSpaceHelper");}static findByConvertingGridSpace(t,e,i){let r=new helpersLib.Vector(Math.ceil(e.size.x/i)-1,Math.ceil(e.size.y/i)-1),s=B.areaToGridArea(e,i);if(this.ƀas(t,s))return helpersLib.Vector.zero;let n=t.movePositionInsideGrid(s.topLeft),a=helpersLib.Vector.fromTo(s.topLeft,n),l=this.find(t,n,r);if(l){let c=l.add(a),p=helpersLib.Vector.fromTo(s.topLeft.multiplyNumber(i),e.topLeft);return new helpersLib.Vector(c.x*i+((r.x+1)*i-e.size.x)/2-p.x,c.y*i+((r.y+1)*i-e.size.y)/2-p.y)}}static find(t,e,i){let r=new bt,s=new helpersLib.Queue(e);for(;s.notEmpty;){let n=s.pop();r.add(n);let a=new helpersLib.Rectangle(n,n.add(i));if(this.ƀas(t,a))return helpersLib.Vector.fromTo(e,n);t.getNeighborPositions(n,helpersLib.GridNeighborType.Ortogonal).forEach(l=>{r.has(l)||s.add(l);});}}static ƀas(t,e){if(!t.isAreaWithinBounds(e))return false;for(let i=e.topLeft.y;i<=e.bottomRight.y;i++)for(let r=e.topLeft.x;r<=e.bottomRight.x;r++)if(!t.get(new helpersLib.Vector(r,i)))return false;return true}};var rr=class{static{h(this,"PathfinderNode");}constructor(t,e,i,r=void 0){this.position=t,this.distanceFromStart=e,this.distanceToEnd=i,this.parent=r,this.closed=false;}get pathLength(){return this.distanceFromStart+this.distanceToEnd}isEqual(t){return helpersLib.Vector.isEqual(this.position,t)}createSolutionPath(t){let e=[this.position],i=this.parent;for(;i!==void 0;)e.push(i.position),i=i.parent;return e.reverse(),{directPathAvailable:t,path:e}}getDistance(t){return this.position.getDistance(t)}},to=class{static{h(this,"PathfinderGrid");}constructor(t,e){this.ƀek=t,this.ƀjc=e,this.ƀgv=new helpersLib.BinaryHeap("min"),this.ƀaw=[],this.ƀgj=new helpersLib.Grid({size:t.size,defaultValue:void 0});let i=new rr(this.ƀjc,0,Number.MAX_SAFE_INTEGER);this.ƀgv.add(i.pathLength,i);}get hasOpenNodes(){return this.ƀgv.size>0}getNeighbors(t,e){return this.ƀek.getNeighborPositions(t.position,e).filter(i=>this.ƀek.get(i)).map(i=>this.ƀgj.get(i)||this.ƀca(i))}popLowestPathCostNode(){let t=this.ƀgv.pop();return this.ƀgv.delete(t),t.closed=true,this.ƀaw.push(t),t}changeNodeCost(t,e,i,r){this.ƀgv.delete(t),t.distanceFromStart=e,t.distanceToEnd=t.getDistance(i),t.parent=r,this.ƀgv.add(t.pathLength,t);}getBestClosedNode(){return this.ƀaw.reduce((t,e)=>t.distanceToEnd<e.distanceToEnd?t:e)}ƀca(t){let e=new rr(t,Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER);return this.ƀgj.set(t,e),this.ƀgv.add(e.pathLength,e),e}},ne=class{static{h(this,"PathFinder");}static findPath(t,e,i,r){let s=new to(t,e);for(;s.hasOpenNodes;){let n=s.popLowestPathCostNode();if(n.isEqual(i))return n.createSolutionPath(true);let a=s.getNeighbors(n,r);for(let l of a)if(!l.closed){let c=n.distanceFromStart+n.getDistance(l.position);c<l.distanceFromStart&&s.changeNodeCost(l,c,i,n);}}return s.getBestClosedNode().createSolutionPath(false)}};var ae=class{static{h(this,"VectorFieldPathFinder");}constructor(t,e){this.ƀjk=t,this.ƀw=e,this.ƀer=this.ƀdt(this.ƀw.size),this.ƀkj=new helpersLib.Grid({size:this.ƀw.size,defaultValue:this.ƀer}),this.ƀcm=new helpersLib.Grid({size:this.ƀw.size,defaultValue:void 0});let i=new bt,r=new helpersLib.Queue;for(this.ƀdi(this.ƀw.cropAreaOutsideOfTheGrid(t)).forEach(n=>{this.ƀkj.set(n,0),r.add(n);});r.notEmpty;){let n=r.pop();if(!i.has(n)){i.add(n);let a=this.ƀkj.getOrFail(n);this.ƀdy(n,this.ƀw).forEach(l=>{if(!i.has(l.position)){let c=this.ƀkj.getOrFail(l.position),p=a+l.distance;this.ƀw.getOrFail(l.position)&&p<c&&(this.ƀkj.set(l.position,p),r.add(l.position));}});}}}getDirectionToTarget(t){if(!t.isInsideRectangle(this.ƀjk)){if(t=this.ƀkj.movePositionInsideGrid(t),this.ƀcm.has(t))return this.ƀcm.get(t);{let e=this.ƀdy(t,this.ƀw),i;return this.ƀkj.getOrFail(t)>=this.ƀer?e.some(s=>this.ƀw.get(s.position))&&(e.some(n=>!this.ƀw.get(n.position))?i=this.ƀdn(e):i=this.ƀdj(t,e)):i=this.ƀdj(t,e),this.ƀcm.set(t,i),i}}}ƀdn(t){let e=t.filter(i=>this.ƀw.get(i.position)).map(i=>i.direction.radian);return helpersLib.Radian.getAverage(...e)}ƀdj(t,e){let i=e.filter(r=>this.ƀkj.getOrFail(r.position)<this.ƀer).reduce((r,s)=>{let n=this.ƀkj.getOrFail(s.position)+s.distance;return n<r.bestWeight?(r.bestDirections=[s.direction],r.bestWeight=n):n===r.bestWeight&&r.bestDirections.push(s.direction),r},{bestDirections:[],bestWeight:this.ƀer}).bestDirections;return this.ƀed(i,t)}ƀed(t,e){if(t.length>0){let i=t.reduce((r,s)=>r.add(s),helpersLib.Vector.zero);if(i.isZero()||!this.ƀfi(e,i))return helpersLib.Random.pickRandomElement(t).radian;if(t.length>=1)return i.radian}}ƀfi(t,e){let i=t.add(this.ƀkc(e));return this.ƀw.isPointWithinBounds(i)&&this.ƀw.getOrFail(i)}ƀdy(t,e){return this.ƀkj.getNeighborDirections(t,helpersLib.GridNeighborType.All).map(i=>({position:t.add(i),direction:i,distance:i.x!==0&&i.y!==0?14:10}))}ƀdi(t){let e=[];for(let i=t.topLeft.y;i<=t.bottomRight.y;i++)for(let r=t.topLeft.x;r<=t.bottomRight.x;r++)e.push(new helpersLib.Vector(r,i));return e}ƀkc(t){let e=t.normalize().round();return new helpersLib.Vector(e.x,e.y)}ƀdt(t){return (t.x+t.y)*20}};var oo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},no=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},v=class extends ${static{h(this,"PhysicsWorldEntity");}constructor(t,e,i,r,s,n,a){super(),this.materialDefinitions=new Map,this.physicsBodyGroupToP2Group=new Map,this.physicsBodyGroupToP2Mask=new Map,this.availabilityGridCache=new Map,this.vectorFieldCache=new Map,this.bodiesInContactWith=new Map,this.collisionReports=new Map,this.paused=new actionsLib.Variable(false),this.lastP2Time=new actionsLib.Variable(0),this.onPhysicsStep=new actionsLib.Action,this.mapSize=t,this.mapSizeCenter=this.mapSize.multiplyNumber(.5),this.modifyUpdateCycle=e,this.p2World=i,this.materials=r,this.materialDefinitions=s,this.physicsBodyGroupToP2Group=n,this.physicsBodyGroupToP2Mask=a;}};v=oo([mt(),no("design:paramtypes",[helpersLib.Vector,Boolean,W__default.default.World,Map,Map,Map,Map])],v);var co=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},K=class{static{h(this,"PhysicsBodyGroupService");}createBodyGroupsAndMasks(t,e){let i=new Map,r=new Map;return t.map((s,n)=>{if(n>31)return console.error("Cannot have more than 32 physics body groups"),{};i.set(s,1<<n),r.set(s,0);}),e.map(([s,n])=>{if(!i.has(s))throw new Error(`Physics body group "${s}" not found`);if(!i.has(n))throw new Error(`Physics body group "${n}" not found`);let a=r.get(s),l=r.get(n),c=i.get(s),p=i.get(n);r.set(s,a|p),r.set(n,l|c);}),{physicsBodyGroupToP2Group:i,physicsBodyGroupToP2Mask:r}}getGroupConstant(t,e){return v.getInstanceByIDOrFail(t).physicsBodyGroupToP2Group.get(e)}getMaskConstant(t,e){return v.getInstanceByIDOrFail(t).physicsBodyGroupToP2Mask.get(e)}canCollide(t,e,i){let r=t.physicsBodyGroupToP2Group.get(e),s=t.physicsBodyGroupToP2Mask.get(e),n=t.physicsBodyGroupToP2Group.get(i),a=t.physicsBodyGroupToP2Mask.get(i);return (s&n)!==0&&(a&r)!==0}};K=co([d()],K);var po=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},uo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Ne=class{static{h(this,"AvailabilityGridCacheService");}constructor(t){this.ƀhe=t;}getCollidableGrids(t,e){let i=[];return t.availabilityGridCache.forEach((r,s)=>{r.forEach((n,a)=>{this.ƀhe.canCollide(t,a,e)&&i.push({grid:n,cellSize:s});});}),i}get(t,e,i){return t.availabilityGridCache.get(e)?.get(i)}set(t,e,i,r){let s=t.availabilityGridCache.get(e);s||(s=new Map,t.availabilityGridCache.set(e,s)),s.set(i,r);}clear(t){t.availabilityGridCache.clear();}};Ne=po([d(),uo("design:paramtypes",[K])],Ne);var fo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},mo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},ct=class{static{h(this,"AvailabilityGridService");}constructor(t,e){this.ƀhe=t,this.ƀx=e;}onBodyAdded(t,e,i){e.aabbNeedsUpdate=true,e.updateAABB();let r=m.aabbToBoundingBox(e.aabb);this.ƀx.getCollidableGrids(t,i).forEach(s=>{let n=B.areaToGridArea(r,s.cellSize);s.grid.setArea(n,false);});}findClosestAvailableSpace(t,e,i,r=Gt){return e.aabbNeedsUpdate=true,e.updateAABB(),oe.findByConvertingGridSpace(this.getAvilabilityGrid(t,r,i),m.aabbToBoundingBox(e.aabb),r)}getAvilabilityGrid(t,e,i){let r=this.ƀx.get(t,e,i);return r||(r=this.ƀbx(t,e,i),this.ƀx.set(t,e,i,r)),r}ƀbx(t,e,i){let r=new helpersLib.Grid({size:new helpersLib.Vector(Math.floor(t.mapSize.x/e),Math.floor(t.mapSize.y/e)),defaultValue:true});return t.p2World.bodies.forEach(s=>{let n=b.getFromP2BodyIDOrFail(s.id);if(n.includeInPathfinding&&this.ƀhe.canCollide(t,n.physicsBodyGroup,i)){let a=this.ƀds(s,e);r.setArea(a,false);}}),r}ƀds(t,e){let i=m.aabbToBoundingBox(t.aabb);return B.areaToGridArea(i,e)}};ct=fo([d(),mo("design:paramtypes",[K,Ne])],ct);var wo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},xo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Gt=50,Ft=class{static{h(this,"PathFinderService");}constructor(t){this.ƀhd=t;}findPathAStar(t,e,i,r,s){s||(s={}),s.neighborType===void 0&&(s.neighborType=helpersLib.GridNeighborType.Ortogonal),s.gridCellSize===void 0&&(s.gridCellSize=Gt);let n=v.getInstanceByIDOrFail(t),a,l;helpersLib.Comparator.isNumber(i)?(l=b.getPhysicsInstanceOrFail(i).p2Body,a=m.arrayToVector(l.position)):a=i;let c=B.positionToGridPosition(e,s.gridCellSize),p=B.positionToGridPosition(a,s.gridCellSize),f=this.ƀhd.getAvilabilityGrid(n,s.gridCellSize,r);if(l){let T=m.aabbToBoundingBox(l.aabb),J=B.areaToGridArea(T,s.gridCellSize);f.setArea(J,true);}let g=ne.findPath(f,c,p,s.neighborType);return g.path=g.path.map(T=>B.gridPositionToPosition(T,s.gridCellSize)),g}findPathDirection(t,e,i,r,s=Gt){let n=v.getInstanceByIDOrFail(t),a;if(helpersLib.Comparator.isNumber(i)){let g=b.getPhysicsInstanceOrFail(i);a=m.aabbToBoundingBox(g.p2Body.aabb);}else a=new helpersLib.Rectangle(i,i);let l=B.areaToGridArea(a,s),c=JSON.stringify({targetGridArea:l,collidableWithGroup:r}),p=n.vectorFieldCache.get(c);if(!p){let g=this.ƀhd.getAvilabilityGrid(n,s,r);p=new ae(l,g),n.vectorFieldCache.set(c,p);}let f=B.positionToGridPosition(e,s);return p.getDirectionToTarget(f)}};Ft=wo([d(),xo("design:paramtypes",[ct])],Ft);var Po=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},j=new U;exports.PhysicsGateway=class Pi{static{h(this,"PhysicsGateway");}createPhysicsWorld(t){return j.trigger("createPhysicsWorld",t)}getMapSize(t){return j.trigger("getMapSize",t)}setPaused(t,e){return j.trigger("setPaused",t,e)}hitTest(t,e){return j.trigger("hitTest",t,e)}findPath(t,e,i,r,s){return j.trigger("findPath",t,e,i,r,s)}findPathDirection(t,e,i,r){return j.trigger("findPathDirection",t,e,i,r)}applyImpulse(t,e,i,r){return j.trigger("applyImpulse",t,e,i,r)}createExplosion(t,e,i,r,s,n){return j.trigger("createExplosion",t,e,i,r,s,n)}createElipticExplosion(t,e,i,r,s,n,a){return j.trigger("createElipticExplosion",t,e,i,r,s,n,a)}printPathfindingTestGrid(t,e,i,r,s,n=Gt){return j.trigger("printPathfindingTestGrid",t,e,i,r,s,n)}};exports.PhysicsGateway=Po([d()],exports.PhysicsGateway);var So=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Co=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},q=class{static{h(this,"TestVisualsService");}constructor(t,e){this.ƀy=t,this.ƀha=e;}printPathfindingTestGrid(t,e,i,r,s,n){let a=v.getInstanceByIDOrFail(t);this.ƀy.getAvilabilityGrid(a,n,r).map((c,p)=>({position:B.gridPositionToPosition(p,n),availability:c})).forEach(c=>{if(c.position.isInsideRectangle(s)){let p=this.ƀha.findPathDirection(t,c.position,i,r),f;p===void 0?f=E.createRectangleBorders(new helpersLib.Vector(8,8),2,helpersLib.ColorHelper.red).toSprite().displayParent(e).setPosition(c.position,{round:false}).attach(a):f=E.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:S.easeIn}).animate({alpha:0}).tap(()=>f.destroy()).attach(f);}});}createExplosionDebugVisual(t,e,i,r,s,n=300){let a=new u().displayParent(e).setAlpha(.5).attach(t);E.createCircle(s,helpersLib.ColorHelper.blue).toSprite().displayParent(a).setPosition(r,{round:false}).setAlpha(.5).attach(t),i.forEach(c=>{let p=c.hits.length>0?helpersLib.ColorHelper.red:helpersLib.ColorHelper.white;E.createVector(r,c.line.to,p).toSprite().displayParent(a).attach(t);}),new O(a,"alpha",{duration:n,animation:S.easeIn}).animate({alpha:0}).tap(()=>a.destroy()).attach(a);}createElipticExplosionDebugVisual(t,e,i,r,s,n,a=300){let l=new u().displayParent(e).setAlpha(.5).attach(t);E.createElipse(n,helpersLib.ColorHelper.blue).toSprite().displayParent(l).setPosition(r,{round:false}).setRotation(s).setAlpha(.5).attach(t),i.forEach(p=>{let f=p.hits.length>0?helpersLib.ColorHelper.red:helpersLib.ColorHelper.white;E.createVector(p.line.from,p.line.to,f).toSprite().displayParent(l).attach(t);}),new O(l,"alpha",{duration:a,animation:S.easeIn}).animate({alpha:0}).tap(()=>l.destroy()).attach(l);}createPhysicsEntityShapeVisual(t,e,i){let r=i?.overridePosition??m.arrayToVector(t.position),s=i?.overrideRotation??new helpersLib.Radian(t.angle),n=i?.color??helpersLib.ColorHelper.blue,a=new u().displayParent(e).setPosition(r,{round:false}).setRotation(s).setAlpha(.5).attachToRoot();t.shapes.forEach(c=>{this.ƀcp(c,n).displayParent(a).attachToRoot();}),new O(a,"alpha",{duration:1e3,animation:S.easeIn}).animate({alpha:0}).tap(()=>a.destroy()).attach(a);}ƀcp(t,e){switch(t.type){case W__default.default.Shape.PARTICLE:throw new Error("Not implemented");case W__default.default.Shape.LINE:throw new Error("Not implemented");case W__default.default.Shape.PLANE:throw new Error("Not implemented");case W__default.default.Shape.CIRCLE:throw new Error("Not implemented");case W__default.default.Shape.CAPSULE:throw new Error("Not implemented");case W__default.default.Shape.BOX:throw new Error("Not implemented");case W__default.default.Shape.HEIGHTFIELD:throw new Error("Not implemented");case W__default.default.Shape.CONVEX:return this.ƀco(t,e);default:throw new Error("Not implemented")}}ƀco(t,e){let i=[t.vertices.map(r=>({x:r[0],y:r[1]}))];return E.createPolygon(i,e).toSprite()}};q=So([d(),Co("design:paramtypes",[ct,Ft])],q);var Ro=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Io=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},je=class{static{h(this,"HitTestService");}constructor(t){this.ƀjm=t;}hitTest(t,e){let i=t.world,r=b.getFromP2BodyIDOrFail(t.id),s=m.cloneP2Body(t);this.ƀs(s,e);let n=i.broadphase.aabbQuery(i,this.ƀdg(s)).map(l=>b.getFromP2BodyIDOrFail(l.id)).filter(l=>l.includeInPathfinding).filter(l=>r.canCollideWith(l)).map(l=>m.cloneP2Body(l.p2Body)),a=false;if(n.length!==0){let l=new W__default.default.World;l.addBody(s),n.forEach(c=>l.addBody(c)),l.step(1,1,1),a=l.narrowphase.contactEquations.some(c=>c.bodyA===s||c.bodyB===s),l.clear();}if(e?.testLayerID){let l=a?helpersLib.ColorHelper.red:helpersLib.ColorHelper.green;this.ƀjm.createPhysicsEntityShapeVisual(t,e.testLayerID,{overridePosition:e.overridePosition,overrideRotation:e.overrideRotation,color:l});}return a}ƀs(t,e){e?.overridePosition&&(t.position=m.vectorToArray(e.overridePosition)),e?.overrideRotation&&(t.angle=e.overrideRotation.value);}ƀdg(t){return t.aabbNeedsUpdate=true,t.updateAABB(),t.aabb}};je=Ro([d(),Io("design:paramtypes",[q])],je);var Oo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},He=class{static{h(this,"CollisionsService");}registerPhysicsWorld(t){t.p2World.on("beginContact",e=>{e.contactEquations.forEach(i=>{this.ƀhy(t,i);});});}step(t,e,i){b.getPhysicsEntities().forEach(r=>{r.ƀax=[];}),t.p2World.narrowphase.contactEquations.forEach(r=>{this.ƀhy(t,r);}),t.bodiesInContactWith.forEach((r,s)=>{this.ƀem(r.p2Body),r.entity.ƀip(t.collisionReports.get(s)||[]);}),t.bodiesInContactWith.clear(),t.collisionReports.clear();}ƀem(t){let e=m.arrayToVector(t.velocity);e.length>10.8&&(e=e.normalize(10.8),t.velocity=m.vectorToArray(e)),t.angularVelocity=Math.min(Math.max(t.angularVelocity,-10.01),10.01);}ƀhy(t,e){let i=b.getFromP2BodyID(e.bodyA.id),r=b.getFromP2BodyID(e.bodyB.id);if(i&&r){t.bodiesInContactWith.set(e.bodyA.id,{p2Body:e.bodyA,entity:i}),t.bodiesInContactWith.set(e.bodyB.id,{p2Body:e.bodyB,entity:r});let s=t.collisionReports.get(e.bodyA.id)||[],n=t.collisionReports.get(e.bodyB.id)||[],{collisionDetailsA:a,collisionDetailsB:l}=this.ƀdl(i,r,e);s.push({self:a,target:l}),n.push({self:l,target:a}),t.collisionReports.set(e.bodyA.id,s),t.collisionReports.set(e.bodyB.id,n);}else console.warn("ContactEquationOrganiser: Entity not found for contact equation",e);}ƀdl(t,e,i){let r=t.convertToDTO(),s=e.convertToDTO(),n=m.arrayToVector(i.contactPointA),a=m.arrayToVector(i.contactPointB),{normalA:l,normalB:c}=this.ƀdz(i);return {collisionDetailsA:this.ƀdk(r,i.bodyA.mass,n,l,t.area),collisionDetailsB:this.ƀdk(s,i.bodyB.mass,a,c,e.area)}}ƀdk(t,e,i,r,s){let n,a=i.add(t.position);return {body:t,getPositionReletiveToObject:h(()=>(n||(n=i.rotate(t.rotation.multiply(-1).vector)),n),"getPositionReletiveToObject"),getPositionOnWorld:h(()=>(a||(a=i.add(t.position)),a),"getPositionOnWorld"),position:i,mass:e,area:s,normal:r}}ƀdz(t){let e=m.arrayToVector(t.normalA),i=e.multiplyNumber(-1);return {normalA:e,normalB:i}}};He=Oo([d()],He);var Mo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Do=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},We=class extends $t{static{h(this,"BorderEntity");}constructor(t,e){super(t,e);}};We=Mo([mt(),Do("design:paramtypes",[Number,Object])],We);var Bo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},H=1e4,Ue=class{static{h(this,"BorderService");}createBorders(t,e,i){this.ƀbr(t,new helpersLib.Vector(e.x/2,-H/2),new helpersLib.Vector(e.x+H*2,H),i),this.ƀbr(t,new helpersLib.Vector(e.x/2,e.y+H/2),new helpersLib.Vector(e.x+H*2,H),i),this.ƀbr(t,new helpersLib.Vector(-H/2,e.y/2),new helpersLib.Vector(H,e.y+H*2),i),this.ƀbr(t,new helpersLib.Vector(e.x+H/2,e.y/2),new helpersLib.Vector(H,e.y+H*2),i);}ƀbr(t,e,i,r){return new We(t,{shapeDefinition:{materialName:ht,group:r,shapeType:exports.PhysicsShapeType.Rectangle,shapeData:i},position:e,rotation:helpersLib.Radian.get0,addInEmptySpace:false,includeOnPathfinding:true}).attachByID(t)}};Ue=Bo([d()],Ue);var Fo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},hr=new W__default.default.Material,_o={id:ht,density:Number.MAX_SAFE_INTEGER,velocityDrag:1,rotationalDrag:1},_t=class{static{h(this,"MaterialsService");}createMaterials(t,e,i,r){let s=new Map,n=new Map;if(i.forEach(a=>{s.set(a.id,new W__default.default.Material),n.set(a.id,a);}),s.has(ht))throw new Error(`Material with name ${ht} cannot be defined, pick another name for the material.`);return s.set(ht,hr),n.set(ht,_o),this.ƀc(t,e,i,r,s),{materials:s,materialDefinitions:n}}getMaterial(t,e){let i=v.getInstanceByIDOrFail(t);return this.ƀdx(e,i.materials)}getMaterialDefinition(t,e){let i=v.getInstanceByIDOrFail(t);return this.ƀdw(e,i.materialDefinitions)}ƀdx(t,e){let i=e.get(t);if(!i)throw new Error(`Could not find material with name ${t}.`);return i}ƀdw(t,e){let i=e.get(t);if(!i)throw new Error(`Could not find material definition with name ${t}.`);return i}ƀc(t,e,i,r,s){this.ƀdp(i.map(n=>n.id),r).forEach(n=>{let a=this.ƀdx(n.materialA,s),l=this.ƀdx(n.materialB,s);t.addContactMaterial(new W__default.default.ContactMaterial(a,l,{friction:n.friction,restitution:n.bounciness,stiffness:n.stiffness}));}),this.ƀd(t,e,i,s);}ƀdp(t,e){let i=new Map;e.forEach(s=>{let n=i.get(s.materialA);n||(n=new Map,i.set(s.materialA,n)),n.set(s.materialB,s);});let r=[];return t.forEach((s,n)=>{for(let a=n;a<t.length;a++){let l=t[a],c=i.get(s)?.get(l);c?r.push(c):r.push({materialA:s,materialB:l,friction:0,bounciness:0,stiffness:1e6});}}),r}ƀd(t,e,i,r){i.forEach(s=>{let n=this.ƀdx(s.id,r);t.addContactMaterial(new W__default.default.ContactMaterial(n,hr,{friction:e.friction,restitution:e.bounciness,stiffness:e.stiffness}));});}};_t=Fo([d()],_t);var Lo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Vo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Lt=class{static{h(this,"PhysicsWorldService");}constructor(t,e,i,r,s){this.ƀgb=t,this.ƀai=e,this.ƀy=i,this.ƀay=r,this.ƀhe=s;}createPhysicsWorld(t){let e=new W__default.default.World({gravity:[0,0]}),{materials:i,materialDefinitions:r}=this.ƀgb.createMaterials(e,t.borderProperties,t.materialDefinitions,t.materialContactDefinitions),{physicsBodyGroupToP2Group:s,physicsBodyGroupToP2Mask:n}=this.ƀhe.createBodyGroupsAndMasks(t.physicsBodyGroups,t.interactingBodyGroups),a=new v(t.mapSize,t.modifyUpdateCycle,e,i,r,s,n).attachByID(t.attachTo);return a.onDestroy().tap(()=>{e.clear(),t.modifyUpdateCycle&&y.cleanUpdateModifier();}).attachToRoot(),this.ƀai.createBorders(a.id,t.mapSize,t.borderProperties.borderBodyGroup),this.ƀay.registerPhysicsWorld(a),t.modifyUpdateCycle?y.registerUpdateModifier((l,c)=>this.ƀjg(a,l,c)):y.beforeSceneUpdateAction.subscribe(({time:l,delta:c})=>{this.ƀjg(a,l,c);}).attach(a),a.id}addBody(t,e,i,r,s){let n=v.getInstanceByIDOrFail(t);if(i){let a=this.ƀy.findClosestAvailableSpace(n,e,r);return a?(e.position[0]+=a.x,e.position[1]+=a.y,n.p2World.addBody(e),s&&this.ƀy.onBodyAdded(n,e,r),true):false}else return n.p2World.addBody(e),s&&this.ƀy.onBodyAdded(n,e,r),true}removeBody(t,e){v.getInstanceByID(t)?.p2World.removeBody(e);}ƀjg(t,e,i){if(!t.paused.value){t.availabilityGridCache.clear(),t.vectorFieldCache.clear(),t.p2World.step(i,i,i),t.modifyUpdateCycle&&(i=t.p2World.time-t.lastP2Time.value);let r=e+i;this.ƀay.step(t,r,i),t.onPhysicsStep.trigger({time:r,delta:i}),t.lastP2Time.value=t.p2World.time;}return i}setPaused(t,e){v.getInstanceByIDOrFail(e).paused.set(t);}};Lt=Lo([d(),Vo("design:paramtypes",[_t,Ue,ct,He,K])],Lt);var jo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Nt=class{static{h(this,"RayCastingService");}castClosest(t,e,i){let r=new W__default.default.RaycastResult,s=new W__default.default.Ray({mode:W__default.default.Ray.CLOSEST,from:m.vectorToArray(e.from),to:m.vectorToArray(e.to),collisionGroup:t.physicsBodyGroupToP2Group.get(i),collisionMask:t.physicsBodyGroupToP2Mask.get(i)});if(t.p2World.raycast(r,s),r.hasHit())return this.ƀbm(r,e)}castAllFirstContacts(t,e,i){let r=new Map,s=new W__default.default.Ray({mode:W__default.default.Ray.ALL,from:m.vectorToArray(e.from),to:m.vectorToArray(e.to),collisionGroup:t.physicsBodyGroupToP2Group.get(i),collisionMask:t.physicsBodyGroupToP2Mask.get(i),callback:h(n=>{let a=r.get(n.body);!r.has(n.body)||n.fraction<a.fraction?r.set(n.body,this.ƀbm(n,e)):n.fraction===a.fraction&&a.isExternal()&&r.set(n.body,this.ƀbm(n,e));},"callback")});return t.p2World.raycast(new W__default.default.RaycastResult,s),Array.from(r.values())}ƀbm(t,e){let i=t.fraction,r=m.arrayToVector(t.normal),s,n,a;return {body:t.body,hitPosition:h(()=>(s===void 0&&(s=e.from.lerp(e.to,i)),s),"hitPosition"),hitDistance:h(()=>(n===void 0&&(n=e.length*i),n),"hitDistance"),isExternal:h(()=>(a===void 0&&(a=e.fromTo.dotProduct(r)<0),a),"isExternal"),normal:r,fraction:i,line:e}}};Nt=jo([d()],Nt);var Ho=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},ut=class{static{h(this,"ImpactService");}applyImpulse(t,e,i,r){let s=i.normalize(r),n=[e.x-t.position[0],e.y-t.position[1]];t.applyImpulse(m.vectorToArray(s),n);}};ut=Ho([d()],ut);var Wo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},jt=class{static{h(this,"RayCastHitConverterService");}toExplosionHits(t,e=true){let i=new Map;return t.forEach(r=>{r.hits.forEach(s=>{let n=i.get(s.body);if(n){let a=s.fraction<n.closestRaycastHit.fraction?s:n.closestRaycastHit;n.rayCastHits.push(s),i.set(s.body,{hitCount:n.hitCount+1,closestRaycastHit:a,rayCastHits:n.rayCastHits,isExternal:e?n.isExternal:n.isExternal&&s.isExternal(),explosionCenter:s.line.from});}else {let a=s.isExternal();i.set(s.body,{hitCount:1,closestRaycastHit:s,rayCastHits:[s],isExternal:a,explosionCenter:s.line.from});}});}),[...i.values()].map(r=>this.ƀbn(r,t.length))}ƀbn(t,e){let i=t.hitCount/e,r=t.rayCastHits;if(t.isExternal)return {body:b.getFromP2BodyIDOrFail(t.closestRaycastHit.body.id).convertToDTO(),p2Body:t.closestRaycastHit.body,isExternal:true,normal:t.closestRaycastHit.normal,fraction:t.closestRaycastHit.fraction,ratioOfHits:i,raycastResults:r,getHitPosition:t.closestRaycastHit.hitPosition,getHitDistance:t.closestRaycastHit.hitDistance};{let s=m.arrayToVector(t.closestRaycastHit.body.position);return {body:b.getFromP2BodyIDOrFail(t.closestRaycastHit.body.id).convertToDTO(),p2Body:t.closestRaycastHit.body,isExternal:false,normal:helpersLib.Vector.fromTo(s,t.explosionCenter).normalize(),fraction:0,ratioOfHits:i,raycastResults:r,getHitPosition:h(()=>t.explosionCenter,"getHitPosition"),getHitDistance:h(()=>0,"getHitDistance")}}}};jt=Wo([d()],jt);var $o=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},zo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Yo=15,ze=class{static{h(this,"ElipticExplosionService");}constructor(t,e,i,r){this.ƀhu=t,this.ƀjm=e,this.ƀht=i,this.ƀfb=r;}createElipticExplosion(t,e,i,r,s,n,a){let l=v.getInstanceByIDOrFail(t),c=this.ƀcc(e,i,r,s,a?.hitOnlyClosest===true,l),p=this.ƀht.toExplosionHits(c,false);return this.ƀq(p,n),a?.testLayerID&&this.ƀjm.createElipticExplosionDebugVisual(l,a.testLayerID,c,e,i,r,a.debugRayDuration),p.map(f=>{let{p2Body:g,...T}=f;return T})}ƀcc(t,e,i,r,s,n){let a=[],l=e.vector,c=e.add(helpersLib.Radian.get90).vector,p=c.normalize(i.x);a.push(new helpersLib.Line(t,t.add(p))),a.push(new helpersLib.Line(t,t.add(p.multiplyNumber(-1))));let 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/Yo),T=i.y/(g*2+1)*2,J=l.normalize(T),ot=i.x,Wt=Math.pow(i.y,2);return helpersLib.ArrayHelper.createIntegerArray(g).forEach(nt=>{let tt=T*(nt+1),Ti=J.multiplyNumber(nt+1),he=c.normalize(this.ƀeh(ot,Wt,tt)),le=t.add(Ti);a.push(new helpersLib.Line(le,le.add(he))),a.push(new helpersLib.Line(le,le.add(he.multiplyNumber(-1))));let ce=t.add(Ti.multiplyNumber(-1));a.push(new helpersLib.Line(ce,ce.add(he))),a.push(new helpersLib.Line(ce,ce.add(he.multiplyNumber(-1))));}),a.map(nt=>{if(s){let tt=this.ƀhu.castClosest(n,nt,r);return {line:nt,hits:tt?[tt]:[]}}else {let tt=this.ƀhu.castAllFirstContacts(n,nt,r);return {line:nt,hits:tt}}})}ƀeh(t,e,i){return Math.sqrt(1-Math.pow(i,2)/e)*t}ƀq(t,e){t.forEach(i=>{i.raycastResults.forEach(r=>{let s,n;r.isExternal()?(s=r.line.fromTo,n=e*2):(s=r.line.fromTo.multiplyNumber(-1),n=e*(1-r.fraction)*8),this.ƀfb.applyImpulse(r.body,r.hitPosition(),s,n);});});}};ze=$o([d(),zo("design:paramtypes",[Nt,q,jt,ut])],ze);var Xo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Zo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},ke=class{static{h(this,"ExplosionService");}constructor(t,e,i,r){this.ƀhu=t,this.ƀjm=e,this.ƀht=i,this.ƀfb=r;}createExplosion(t,e,i,r,s,n){let a=v.getInstanceByIDOrFail(t),l=this.ƀee(i),c=this.ƀcc(e,i,r,l,n?.hitOnlyClosest===true,a),p=this.ƀht.toExplosionHits(c);return this.ƀq(e,i,s,l,p),n?.testLayerID&&this.ƀjm.createExplosionDebugVisual(a,n.testLayerID,c,e,i,n.debugRayDuration),p}ƀcc(t,e,i,r,s,n){let a=new helpersLib.Radian(helpersLib.PI_360/r),l=new helpersLib.Vector(0,-e),c=a.vector;return helpersLib.ArrayHelper.createEmptyArray(r).map(()=>{let p=t.add(l);return l=l.rotate(c),new helpersLib.Line(t,p)}).map(p=>{if(s){let f=this.ƀhu.castClosest(n,p,i);return {line:p,hits:f?[f]:[]}}else {let f=this.ƀhu.castAllFirstContacts(n,p,i);return {line:p,hits:f}}})}ƀq(t,e,i,r,s){s.forEach(n=>{if(n.isExternal)n.raycastResults.forEach(a=>{let l=i*(1-a.fraction);this.ƀfb.applyImpulse(a.body,a.hitPosition(),a.line.fromTo,l);});else {let a=helpersLib.Vector.fromTo(t,m.arrayToVector(n.p2Body.position)),l=a.length/e,c=i*r*l/2;this.ƀfb.applyImpulse(n.p2Body,n.getHitPosition(),a,c);}});}ƀee(t){return t>100?Math.floor(t*.3):Math.floor(t*.26+4)}};ke=Xo([d(),Zo("design:paramtypes",[Nt,q,jt,ut])],ke);var en=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Ht=class{static{h(this,"PhysicsQueryService");}getMapSize(t){let e=v.getInstanceByIDOrFail(t);return {dimentions:e.mapSize,center:e.mapSizeCenter}}subscribeToPhysicsStep(t,e){return v.getInstanceByIDOrFail(t).onPhysicsStep.subscribe(e)}};Ht=en([d()],Ht);var rn=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},sn=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Si=class{static{h(this,"PhysicsController");}constructor(t,e,i,r,s,n,a,l){this.ƀhl=t,this.ƀha=e,this.ƀjm=i,this.ƀcy=r,this.ƀct=s,this.ƀes=n,this.ƀhk=a,this.ƀfb=l;}createPhysicsWorld(t){return this.ƀhl.createPhysicsWorld(t)}getMapSize(t){return this.ƀhk.getMapSize(t)}setPaused(t,e){this.ƀhl.setPaused(t,e);}hitTest(t,e){let i=b.getPhysicsInstanceOrFail(t);return this.ƀes.hitTest(i.p2Body,e)}findPath(t,e,i,r,s){return this.ƀha.findPathAStar(t,e,i,r,{neighborType:s})}findPathDirection(t,e,i,r){return this.ƀha.findPathDirection(t,e,i,r)}applyImpulse(t,e,i,r){let s=b.getPhysicsInstanceOrFail(t);this.ƀfb.applyImpulse(s.p2Body,e,i,r);}createExplosion(t,e,i,r,s,n){return this.ƀcy.createExplosion(t,e,i,r,s,n)}createElipticExplosion(t,e,i,r,s,n,a){return this.ƀct.createElipticExplosion(t,e,i,r,s,n,a)}printPathfindingTestGrid(t,e,i,r,s,n){this.ƀjm.printPathfindingTestGrid(t,e,i,r,s,n);}};Si=rn([et({controllerLink:j}),sn("design:paramtypes",[Lt,Ft,q,ke,ze,je,Ht,ut])],Si);var on=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Je=class{static{h(this,"ShapeCreationService");}createBody(t,e,i,r,s){let n=v.getInstanceByIDOrFail(t);if(!n.physicsBodyGroupToP2Group.has(e.shapeDefinition.group))throw new Error(`Physics body group "${e.shapeDefinition.group}" not found`);switch(e.shapeDefinition.shapeType){case exports.PhysicsShapeType.Point:return this.ƀbt(n,void 0,i,r,e.shapeDefinition.group,s);case exports.PhysicsShapeType.Circle:return this.ƀbt(n,e.shapeDefinition.shapeData,i,r,e.shapeDefinition.group,s);case exports.PhysicsShapeType.Polygon:return this.ƀcb(n,e.shapeDefinition.shapeData,i,r,e.shapeDefinition.group,s);case exports.PhysicsShapeType.Rectangle:return this.ƀcd(n,e.shapeDefinition.shapeData,i,r,e.shapeDefinition.group,s)}}ƀbt(t,e,i,r,s,n){let a=new W__default.default.Circle({collisionGroup:t.physicsBodyGroupToP2Group.get(s),collisionMask:t.physicsBodyGroupToP2Mask.get(s),radius:e});a.material=i;let l=new W__default.default.Body({type:n==="dynamic"?W__default.default.Body.DYNAMIC:W__default.default.Body.STATIC,mass:r.density,damping:r.velocityDrag,angularDamping:r.rotationalDrag});return l.addShape(a),l}ƀcb(t,e,i,r,s,n){let a=t.physicsBodyGroupToP2Group.get(s),l=t.physicsBodyGroupToP2Mask.get(s),c=e.map(g=>new W__default.default.Convex({vertices:g.map(T=>[T.x,T.y]),collisionGroup:a,collisionMask:l})).map(g=>(g.material=i,g)),p=c.reduce((g,T)=>g+T.area,0),f=new W__default.default.Body({type:n==="dynamic"?W__default.default.Body.DYNAMIC:W__default.default.Body.STATIC,mass:p,damping:r.velocityDrag,angularDamping:r.rotationalDrag});return c.forEach(g=>f.addShape(g)),f.setDensity(r.density),f}ƀcd(t,e,i,r,s,n){let a=new W__default.default.Box({width:e.x,height:e.y,collisionGroup:t.physicsBodyGroupToP2Group.get(s),collisionMask:t.physicsBodyGroupToP2Mask.get(s)});a.material=i;let l=e.x*e.y,c=new W__default.default.Body({type:n==="dynamic"?W__default.default.Body.DYNAMIC:W__default.default.Body.STATIC,mass:l,damping:r.velocityDrag,angularDamping:r.rotationalDrag});return c.addShape(a),c.setDensity(r.density),c}};Je=on([d()],Je);var nn=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},an=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Ci=class{static{h(this,"PhysicsInternalController");}constructor(t,e,i,r,s){this.ƀhl=t,this.ƀhj=e,this.ƀiu=i,this.ƀhk=r,this.ƀhe=s;}createBody(t,e,i,r,s){return this.ƀiu.createBody(t,e,i,r,s)}getMaterial(t,e){return this.ƀhj.getMaterial(t,e)}getMaterialDefinition(t,e){return this.ƀhj.getMaterialDefinition(t,e)}getGroupConstant(t,e){return this.ƀhe.getGroupConstant(t,e)}getMaskConstant(t,e){return this.ƀhe.getMaskConstant(t,e)}addBody(t,e,i,r,s){return this.ƀhl.addBody(t,e,i,r,s)}removeBody(t,e){this.ƀhl.removeBody(t,e);}subscribeToPhysicsStep(t,e){return this.ƀhk.subscribeToPhysicsStep(t,e)}};Ci=nn([et({controllerLink:Y}),an("design:paramtypes",[Lt,_t,Je,Ht,K])],Ci);exports.AnimationFlicker=Oi;exports.AnimationInterpolationFunctions=X;exports.Animations=S;exports.Animator=O;exports.BORDER_MATERIAL_NAME=ht;exports.BardLegendsHardReset=G;exports.Camera=Kt;exports.ClosestAvailableSpaceHelper=oe;exports.Container=u;exports.ControllerDecorator=et;exports.ControllerLink=U;exports.DEFAULT_RESOLUTION=R;exports.DeltaTime=vi;exports.DisplayObjectArray=pi;exports.Entity=$;exports.EntityDecorator=mt;exports.FadeInContent=Qi;exports.FadeInStateAnimation=_e;exports.Game=w;exports.Graphics=E;exports.ImmovablePhysicsEntity=$t;exports.Menu=Bt;exports.MenuEntity=ui;exports.MouseWheelListenerUI=se;exports.MovableEntity=Ze;exports.MovablePhysicsEntity=Ke;exports.PathFinder=ne;exports.PhysicsEntity=b;exports.Placeholder=hi;exports.PositionConversionHelper=Yt;exports.ROTATIONAL_SPEED_LIMIT=qe;exports.RichText=li;exports.SPEED_LIMIT=Qe;exports.Scene=St;exports.SceneDecorator=wr;exports.ScrollAreaUI=gi;exports.ScrollMaskUI=xt;exports.Service=P;exports.ServiceDecorator=d;exports.SingletonEntity=gt;exports.SlideInContent=ir;exports.SlideInContentByIndex=xi;exports.SlideStateAnimation=Ve;exports.Sprite=Z;exports.StateAnimation=Le;exports.Text=ie;exports.UpdatableContainer=ci;exports.UpdateCycle=y;exports.VectorFieldPathFinder=ae;exports.VectorSet=bt;exports.View=Ut;exports.ViewDecorator=Xe;
|
|
67
|
+
}`,e}constructor(t,e){if(super(o.ƀef(),o.ƀdo(t*R)),this.ƀcw=t,this.resolution=R,this.ƀcw=t*R,this.ƀcw<0)throw new Error("ExpandWithColorFilter: Expand * resolution cannot be smaller than 0");if(this.ƀcw>10)throw new Error("ExpandWithColorFilter: Expand * resolution cannot be higher than 10");helpersLib.Comparator.isInteger(this.ƀcw)||(this.ƀcw=Math.floor(this.ƀcw));let i=helpersLib.ColorHelper.normalize(e);this.uniforms.color=new Float32Array([i.red,i.green,i.blue]),this.uniforms.expandSquared=this.ƀcw*this.ƀcw,this.padding=this.ƀcw;}apply(t,e,i,r){this.uniforms.pixelSize=new Float32Array([1/(e.width*R),1/(e.height*R)]),t.applyFilter(this,e,i,r);}};var Ee=class extends V__namespace.Filter{static{h(this,"GlowFilter");}constructor(t){super(),this.resolution=R;let e={blurRadius:1,expand:0,color:helpersLib.ColorHelper.white,blendMode:exports.BlendMode.Screen,...t};this.ƀcx=new Te(e.expand,e.color);let i=helpersLib.Comparator.isNumber(e.blurRadius)?new helpersLib.Vector(e.blurRadius,e.blurRadius):e.blurRadius;this.ƀah=new Rt(i),this.padding=Math.max(i.x,i.y)+e.expand,this.ƀah.blendMode=V__namespace.BLEND_MODES.SCREEN;}apply(t,e,i,r){let s=t.getFilterTexture();this.ƀcx.apply(t,e,s,V__namespace.CLEAR_MODES.CLEAR),this.ƀah.apply(t,s,i,r),t.returnFilterTexture(s);}};var qt=class o{static{h(this,"GlowSpriteGenerator");}static{this.ƀei=new Map;}static createGlowSpriteFromSprite(t,e,i){let r=this.ƀbc(e),s=helpersLib.Comparator.isNumber(r.blurRadius)?new helpersLib.Vector(r.blurRadius,r.blurRadius):r.blurRadius,n=this.ƀdq(t.texture,s,r.expand,r.color,i),a=new V__namespace.Sprite(n);return this.ƀir(a,helpersLib.Vector.fromVec2(t.anchor),Math.max(s.x,s.y)+r.expand),a.alpha=r.glowAlpha,a.blendMode=r.blendMode,a}static ƀdq(t,e,i,r,s){if(!t.id)throw new Error("GlowSpriteGenerator: baseTexture should have an id");if(s){let n=`${t.id}-${i}-${e.x}-${e.y}-${r.r}-${r.g}-${r.b}`;if(o.ƀei.has(n))return o.ƀei.get(n);{let a=this.ƀdr(t,e,i,r);return o.ƀei.set(n,a),a}}else return this.ƀdr(t,e,i,r)}static ƀdr(t,e,i,r){let s=new V__namespace.Sprite(t);this.ƀcz(s,Math.max(e.x,e.y)+i),s.filters=[new Ee({blurRadius:e,expand:i,color:r})];let n=w.instance.renderer.generateTexture(s);return n.id=M.insertAsset(n),s.destroy(),n}static ƀir(t,e,i){let r=(i+(t.width-i*2)*e.x)/t.width,s=(i+(t.height-i*2)*e.y)/t.height;t.anchor.set(r,s);}static ƀcz(t,e){if(t.isSprite){let s=new V__namespace.Graphics;t.addChild(s);}let i=t.width,r=t.height;t.calculateBounds=function(){this._bounds.clear(),this._bounds.addFrame(this.transform,-e,-e,i+e,r+e);};}static ƀbc(t){let e={glowAlpha:1,blurRadius:5,expand:0,color:helpersLib.ColorHelper.white,blendMode:exports.BlendMode.Add};return t&&(e={...e,...t}),e}};G.onHardReset.subscribe(()=>{qt.ƀei.clear();}).attachToRoot();var Z=class o extends u{static{h(this,"Sprite");}static createByName(t){let e=w.setupOptions.spriteDefinitions[t];if(!e)throw new Error(`Sprite: Could not find sprite definition with name ${t}.`);return new o(e)}static createSnapshotSprite(t){let e=t.pixiContainer,i=e.parent;i&&i.removeChild(e);let r=w.instance.renderer.generateTexture(e,{resolution:2,scaleMode:V__namespace.SCALE_MODES.LINEAR,multisample:V__namespace.MSAA_QUALITY.HIGH});i&&i.addChild(e);let n={id:M.insertAsset(r),scale:t.scale,size:t.size,anchor:helpersLib.Vector.zero,boundingShapes:void 0,destroyAssetOnDestroy:true};return new o(n,{ignoreAnchor:true})}constructor(t,e={}){if(super(),this.ƀjq=1,!t)throw new Error("Sprite: spriteDefinition cannot be nullish!");this.ƀiz=t,this.pixiSprite=new V__namespace.Sprite(M.getAsset(t.id)),this.pixiContainer.addChild(this.pixiSprite),this.setTextureScale(t.scale),e.textureSize&&(this.pixiSprite.width=e.textureSize.x,this.pixiSprite.height=e.textureSize.y),e.texturePosition&&this.pixiSprite.position.set(e.texturePosition.x,e.texturePosition.y),e.ignoreAnchor||this.pixiSprite.anchor.set(t.anchor.x,t.anchor.y);}destroy(){this.destroyed||(super.destroy(),this.ƀfz?.destroy(),this.ƀaj?.destroy(),this.ƀiz.destroyAssetOnDestroy&&(M.destroyAsset(this.ƀiz.id),this.ƀhn&&M.destroyAsset(this.ƀhn.texture.id)),this.ƀhn&&!this.ƀhn.destroyed&&this.ƀhn.destroy());}setTextureScale(t){return this.textureScale=t,this}get textureScale(){return this.ƀjq}set textureScale(t){this.ƀjq=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.ƀiz.boundingShapes&&!this.pixiContainer.hitArea&&(this.pixiContainer.hitArea=new xe(this.ƀiz.boundingShapes,this.size,helpersLib.Vector.fromVec2(this.ƀiz.anchor)));}setMipmap(t){return this.mipmap=t,this}get mipmap(){return this.pixiSprite.texture.baseTexture.mipmap===V__namespace.MIPMAP_MODES.ON}set mipmap(t){t?this.pixiSprite.texture.baseTexture.mipmap=V__namespace.MIPMAP_MODES.ON:this.pixiSprite.texture.baseTexture.mipmap=V__namespace.MIPMAP_MODES.OFF;}setBlendMode(t){return this.blendMode=t,this}get blendMode(){return this.pixiSprite.blendMode}set blendMode(t){this.pixiSprite.blendMode=t;}setTint(t){return this.tint=t,this}get tint(){return new V__namespace.Color(this.pixiSprite.tint).toRgb()}set tint(t){this.pixiSprite.tint=t;}setShapeAlpha(t){return this.pixiSprite.alpha=t,this}get shapeAlpha(){return this.pixiSprite.alpha}set shapeAlpha(t){this.pixiSprite.alpha=t;}setGlowAlpha(t){return this.glowAlpha=t,this}get glowAlpha(){if(this.ƀhn)return this.ƀhn.alpha;throw new Error("Sprite: getGlowFilterAlpha cannot be called before glow filter is added.")}set glowAlpha(t){if(this.ƀhn)this.ƀhn.alpha=t;else throw new Error("Sprite: setGlowFilterAlpha cannot be called before glow filter is added.")}getAlignmentVector(t){let e=helpersLib.Vector.fromVec2(this.ƀiz.anchor).to(t);return new helpersLib.Vector(this.size.x*e.x,this.size.y*e.y)}setGlowEffect(t){return this.ƀhn&&(this.ƀhn.destroy(),this.ƀhn=void 0),t&&(this.ƀhn=qt.createGlowSpriteFromSprite(this.pixiSprite,t,!this.ƀiz.destroyAssetOnDestroy),this.ƀhn.position.set(this.pixiSprite.x,this.pixiSprite.y),this.ƀhn.scale.set(this.pixiSprite.scale.x,this.pixiSprite.scale.y),this.pixiContainer.addChild(this.ƀhn)),this}showBoundingShape(t){return t?this.ƀaj||(this.ƀaj=this.ƀbs().setAlpha(.3).setTint({r:0,g:0,b:200}).displayParent(this)):this.ƀaj&&(this.ƀaj.destroy(),this.ƀaj=void 0),this}getBoundingMask(){if(!this.ƀfz){if(!this.ƀiz.boundingShapes)throw new Error("Sprite: cropOverflowingParts cannot be used without polygonDefinition!");this.ƀfz=this.ƀbs(),this.ƀfz.pixiSprite._maskRefCount=Number.POSITIVE_INFINITY,this.ƀfz.pixiSprite.renderable=false,this.ƀfz.displayParent(this);}return this.ƀfz}ƀbs(){if(!this.ƀiz.boundingShapes)throw new Error("Sprite: bounding shape cannot be created without polygonDefinition!");return E.createPolygon(this.ƀiz.boundingShapes,helpersLib.ColorHelper.white).toSprite().attach(this)}download(){let t=w.instance.renderer.extract.canvas(this.pixiContainer);if(!t.toBlob)throw new Error("Sprite: canvas.toBlob is undefined!");return t.toBlob(e=>{if(!e)throw new Error("Sprite: blob is undefined!");let i=document.createElement("a");document.body.append(i),i.download="sprite.png",i.href=URL.createObjectURL(e),i.click(),i.remove();},"image/png"),this}};var Re=class{static{h(this,"DashedLineHelper");}static getLines(t,e,i){let r=helpersLib.Vector.fromTo(t,e),s=r.normalize(),n=r.length-i.lineStartGap-i.lineEndGap,a=[];if(n<=0)return a;let l=t.add(s.normalize(i.lineStartGap));if(n<=i.dashGap+i.dashLength*.5)return a.push({from:l,to:l.add(s.normalize(n))}),a;let c=n-i.dashGap,p=i.dashLength+i.dashGap,f=Math.floor(c/p),g=c-p*f;f>=1&&g<i.dashLength&&(g+=p,f--);let T=s.normalize(g/2),J=s.normalize(i.dashGap);if(a.push({from:l,to:l.add(T)}),l=l.add(T),f>0){let ot=s.normalize(i.dashLength);helpersLib.ArrayHelper.createEmptyArray(f).forEach(()=>{l=l.add(J),a.push({from:l,to:l.add(ot)}),l=l.add(ot);});}return l=l.add(J),a.push({from:l,to:l.add(T)}),a}};var E=class o extends u{static{h(this,"Graphics");}static{this.ƀcq=new Map;}static createArrow(t,e){let i=new V__namespace.Graphics,r=[[{x:0,y:-t/2},{x:t*3/8,y:-t/8},{x:t/4,y:0},{x:0,y:-t/4},{x:-t/4,y:0},{x:-t*3/8,y:-t/8}],[{x:0,y:-t/4},{x:t/8-t/30,y:-t/8-t/30},{x:t/8-t/30,y:t*7/16},{x:-t/8+t/30,y:t*7/16},{x:-t/8+t/30,y:-t/8-t/30}]];return i.beginFill(e),r.forEach(s=>{i.drawPolygon(s.map(n=>new V__namespace.Point(n.x,n.y)));}),i.endFill(),new o(i,JSON.stringify({type:"arrow",size:t,color:e}))}static createDashedLine(t,e,i){let r={width:2,dashLength:10,dashGap:4,lineStartGap:0,lineEndGap:0,color:helpersLib.ColorHelper.white,...i},s=new V__namespace.Graphics;return s.lineStyle(r.width,r.color),Re.getLines(t,e,r).forEach(a=>{s.moveTo(a.from.x,a.from.y).lineTo(a.to.x,a.to.y);}),new o(s,JSON.stringify({type:"dashedLine",from:t,to:e,options:r}))}static createVector(t,e,i){let r=new V__namespace.Graphics;return r.lineStyle(2,i),r.moveTo(t.x,t.y),r.lineTo(e.x,e.y),r.lineStyle(1,i),r.beginFill(helpersLib.ColorHelper.white),r.drawCircle(t.x,t.y,3),r.endFill(),new o(r,JSON.stringify({type:"line",start:t,end:e,color:i}))}static createRectangleBorders(t,e,i){let r=new V__namespace.Graphics;return r.beginFill(i),r.drawRect(0,0,t.x,e),r.drawRect(0,e,e,t.y-e*2),r.drawRect(t.x-e,e,e,t.y-e*2),r.drawRect(0,t.y-e,t.x,e),r.endFill(),new o(r,JSON.stringify({type:"rectangle-borders",size:t,borderSize:e,color:i}))}static createRectangle(t,e=helpersLib.ColorHelper.white){let i=new V__namespace.Graphics;return i.beginFill(e),i.drawRect(0,0,t.x,t.y),i.endFill(),new o(i,JSON.stringify({type:"rectangle",size:t,color:e}))}static createCircle(t,e){let i=new V__namespace.Graphics;return i.beginFill(e),i.drawCircle(0,0,t),i.endFill(),new o(i,JSON.stringify({type:"circle",radius:t,color:e}))}static createElipse(t,e){let i=new V__namespace.Graphics;return i.beginFill(e),i.drawEllipse(0,0,t.x,t.y),i.endFill(),new o(i,JSON.stringify({type:"elipse",size:t,color:e}))}static createPolygon(t,e){let i=new V__namespace.Graphics,r=JSON.stringify({type:"polygon",polygon:t,color:e});return i.beginFill(e),t.forEach(s=>{i.drawPolygon(s.map(n=>new V__namespace.Point(n.x,n.y)));}),i.endFill(),new o(i,r)}static createRegularPolygon(t,e,i){let r=new V__namespace.Graphics,s=new helpersLib.Radian(helpersLib.PI_360/t);r.beginFill(i),r.moveTo(e,0);for(let n=1;n<=t;n++){let l=s.multiply(n).vector.normalize(e),c=e+l.x,p=e+l.y;r.lineTo(c,p);}return r.endFill(),new o(r,JSON.stringify({type:"regular-polygon",sides:t,radius:e,color:i}))}constructor(t,e){super(),this.pixiContainer.addChild(t),this.pixiGraphics=t,this.ƀal=e;}destroy(){this.destroyed||(super.destroy(),!this.pixiGraphics.destroyed&&this.pixiGraphics.destroy());}toSprite(t){let e={cacheName:this.ƀal,cache:false,...t},i=this.ƀec(e.cacheName,e.cache),r={id:i.assetID,scale:1,size:i.bounds,anchor:{x:0,y:0},boundingShapes:void 0,destroyAssetOnDestroy:!e.cache},s=new Z(r,{texturePosition:i.bounds,ignoreAnchor:true});return this.attachToRoot(),this.destroy(),s}ƀec(t,e){if(e){let i=o.ƀcq.get(t);return i||(i=this.ƀce(),o.ƀcq.set(t,i)),i}else return this.ƀce()}ƀce(){let t=w.instance.renderer.generateTexture(this.pixiGraphics);t.id=M.insertAsset(t);let e=this.pixiGraphics.getBounds();return {assetID:t.id,bounds:new helpersLib.Vector(e.x,e.y)}}};var hi=class extends u{static{h(this,"Placeholder");}constructor(t){super(),this.ƀho=new V__namespace.Graphics,this.ƀho.beginFill(0,1e-9),this.ƀho.drawRect(0,0,t.x,t.y),this.ƀho.endFill(),this.pixiContainer.addChild(this.ƀho);}destroy(){this.destroyed||(super.destroy(),this.ƀho.destroy());}};var Mt=class{static{h(this,"TextStyleConverter");}static getPixiTextStyle(t){let e={color:helpersLib.ColorHelper.white,align:"center",fontFamily:"Arial",fontStyle:"normal",fontSize:18,lineHeight:void 0,wordWrapWidth:void 0,lineThrough:false,...t},i=t?.dropShadow===true?{}:t?.dropShadow,r={};if(i){let s={blur:4,angle:helpersLib.Radian.get60,distance:10,color:helpersLib.ColorHelper.black,alpha:.5,...i};r={dropShadow:true,dropShadowBlur:s.blur,dropShadowAngle:s.angle.value,dropShadowDistance:s.distance,dropShadowColor:helpersLib.ColorHelper.rgbToHex(s.color),dropShadowAlpha:s.alpha};}return {fontFamily:e.fontFamily,fill:helpersLib.ColorHelper.rgbToHex(e.color),align:e.align,fontSize:e.fontSize,fontStyle:e.fontStyle,lineHeight:e.lineHeight,wordWrapWidth:e.wordWrapWidth,wordWrap:e.wordWrapWidth!==void 0,lineThrough:e.lineThrough,...r}}};var Ae=class{static{h(this,"RichTextDataInConverter");}static process(t,e){let i=new Set(e.styles?Object.keys(e.styles):[]),r=scriptEngineLib.RichTextSeparator.process(t,i),s=this.ƀfc(r,e),n=this.ƀr(s);return this.ƀix(n)}static ƀfc(t,e){let i=new Map,r=new Map,s=h((a,l)=>{if(r.has(l))return r.get(l);let c=Mt.getPixiTextStyle(a);return r.set(l,c),c},"GetPixiStyle");return t.map(a=>{let{style:l,cacheKey:c}=this.ƀdm(a.tags,e,i),p=s(l,c),f=V__namespace.TextMetrics.measureText(" ",new V__namespace.TextStyle(p),false);return {text:a.text,cacheKey:c,style:l,pixiStyle:p,spaceWidth:f.width}})}static ƀdm(t,e,i){let r=t.join("+");if(i.has(r))return {style:i.get(r),cacheKey:r};let s=this.ƀba(t,e);return i.set(r,s),{style:s,cacheKey:r}}static ƀba(t,e){let i={...e.default};for(let l of t)e.styles&&e.styles[l]&&(i={...i,...e.styles[l]});let{wordWrapWidth:r,align:s,dropShadow:n,...a}=i;return a}static ƀr(t){let e=[],i=[];return t.forEach((r,s)=>{r.text.split(/\r?\n/).forEach((a,l)=>{l>0&&(e.push(i),i=[]),i.push({text:a,cacheKey:r.cacheKey,style:r.style,pixiStyle:r.pixiStyle,spaceWidth:r.spaceWidth});});}),e.push(i),e}static ƀix(t){let e=[];return t.forEach(i=>{if(i.length===0)throw new Error("Internal Error: Line is unexpectedly empty");let r=i.flatMap(s=>this.ƀiy(s.text).map(a=>{let l=new V__namespace.TextStyle(s.pixiStyle),c=V__namespace.TextMetrics.measureText(a,l,false);return {text:a,whitespace:a.trim()==="",style:{cacheKey:s.cacheKey,style:s.style,pixiStyle:l,height:c.height,ascent:c.fontProperties.ascent,descent:c.fontProperties.descent,width:c.width,spaceWidth:s.spaceWidth}}}));e.push(r);}),e}static ƀiy(t){if(t==="")return [""];let e=[],i="",r=t[0]===" ";for(let s=0;s<t.length;s++){let n=t[s],a=n===" ";a===r?i+=n:(e.push(i),i=n,r=a);}return i&&e.push(i),e}};var Oe=class{static{h(this,"ConsistentSpaceTextWrapper");}static wrapText(t,e){return t.forEach(i=>{i.forEach((r,s)=>{if(e.isSpaceAvailable(new helpersLib.Vector(r.style.width,r.style.height)))if(r.whitespace&&s===i.length-2){let n=i[i.length-1];e.isSpaceAvailable(new helpersLib.Vector(n.style.width+r.style.width,n.style.height))?e.insertWord(r):this.ƀkm(r,e);}else e.insertWord(r);else e.lineIsEmpty?e.insertWord(r):r.whitespace?this.ƀkm(r,e):(e.newLine(),e.insertWord(r));}),e.newLine();}),e.print()}static ƀkm(t,e){let i=Math.max(0,Math.floor(e.remainingWidth/t.style.spaceWidth)),r=Math.max(0,Math.min(i,t.text.length-1));if(r>0){let n={text:" ".repeat(r),whitespace:true,style:{...t.style,width:r*t.style.spaceWidth}};e.insertWord(n);}e.newLine();let s=t.text.length-r-1;if(s>0){let n={text:" ".repeat(s),whitespace:true,style:{...t.style,width:s*t.style.spaceWidth}};e.insertWord(n);}}};var Me=class{static{h(this,"RichTextTypewriter");}get lineIsEmpty(){return this.ƀch.length===0}get remainingWidth(){return this.ƀkl-this.ƀcj}constructor(t,e){if(this.ƀkl=t,this.ƀfr=[],this.ƀch=[],this.ƀcj=0,this.ƀfq=new helpersLib.Vector(0,0),this.ƀci=0,this.ƀeu=e?.horizontalAlignment??"left",this.ƀkd=e?.verticalAlignment??"bottom",e?.rectangleCutOption){if(e.rectangleCutOption.position.x<0||e.rectangleCutOption.position.x>=this.ƀkl||e.rectangleCutOption.position.y<0)throw new Error("Rectangle cut position is out of bounds");this.ƀck={direction:e.rectangleCutOption.direction,rectangle:this.ƀbo(e.rectangleCutOption)};}}isSpaceAvailable(t){let e=Math.max(this.ƀci,t.y),i=this.ƀdu(this.ƀfq.y,this.ƀfq.y+e);return this.ƀcj+t.x<=i}insertWord(t){let e=Math.max(this.ƀci,t.style.height);if(this.ƀch.length===0){let i=this.ƀdv(this.ƀfq.y,this.ƀfq.y+e);this.ƀfq=new helpersLib.Vector(i,this.ƀfq.y),this.ƀcj=this.ƀfq.x;}this.ƀch.push({chunk:t,position:new helpersLib.Vector(this.ƀcj,this.ƀfq.y)}),this.ƀci=e,this.ƀcj+=t.style.width;}newLine(){let t=this.ƀfq.y+this.ƀci,e=this.ƀdv(t,t);this.ƀdb(),this.ƀfq=new helpersLib.Vector(e,t),this.ƀcj=this.ƀfq.x,this.ƀci=0;}print(){return this.ƀdb(),this.ƀfr}ƀdb(){this.ƀch.length>0&&(this.ƀfr.push(this.ƀg(this.ƀch)),this.ƀch=[]);}ƀg(t){return t=this.ƀkf(t),t=this.ƀew(t),t}ƀew(t){if(this.ƀeu==="left")return t;let e=this.ƀfq.y+this.ƀci,i=this.ƀdv(this.ƀfq.y,e),s=this.ƀdu(this.ƀfq.y,e)-i,n=Math.min(s,t.reduce((l,c)=>l+c.chunk.style.width,0)),a;return this.ƀeu==="center"?a=(s-n)/2:a=s-n,t.map(l=>(l={chunk:l.chunk,position:new helpersLib.Vector(l.position.x+a,l.position.y)},l))}ƀkf(t){let e=Math.max(...t.map(r=>r.chunk.style.ascent)),i=Math.max(...t.map(r=>r.chunk.style.descent));return t.map(r=>{let s;switch(this.ƀkd){case "top":s=i-r.chunk.style.descent;break;case "center":s=(i-r.chunk.style.descent+e-r.chunk.style.ascent)*.5;break;case "bottom":s=e-r.chunk.style.ascent;break}return r={chunk:r.chunk,position:new helpersLib.Vector(r.position.x,r.position.y+s)},r})}ƀdv(t,e){return this.ƀck&&(this.ƀck.direction==="topLeft"||this.ƀck.direction==="bottomLeft")&&(this.ƀck.rectangle.isPointInside(new helpersLib.Vector(0,t),{includeEdges:false})||this.ƀck.rectangle.isPointInside(new helpersLib.Vector(0,e),{includeEdges:false}))?this.ƀck.rectangle.bottomRight.x:0}ƀdu(t,e){return this.ƀck&&(this.ƀck.direction==="topRight"||this.ƀck.direction==="bottomRight")&&(this.ƀck.rectangle.isPointInside(new helpersLib.Vector(this.ƀkl,t),{includeEdges:false})||this.ƀck.rectangle.isPointInside(new helpersLib.Vector(this.ƀkl,e),{includeEdges:false}))?this.ƀck.rectangle.topLeft.x:this.ƀkl}ƀbo(t){let e,i;switch(t.direction){case "topRight":e=new helpersLib.Vector(t.position.x,-1/0),i=new helpersLib.Vector(1/0,t.position.y);break;case "topLeft":e=new helpersLib.Vector(-1/0,-1/0),i=t.position;break;case "bottomRight":e=t.position,i=new helpersLib.Vector(1/0,1/0);break;case "bottomLeft":e=new helpersLib.Vector(-1/0,t.position.y),i=new helpersLib.Vector(t.position.x,1/0);break}return new helpersLib.Rectangle(e,i)}};var De=class{static{h(this,"RichTextDataOutConverter");}static process(t){return t=this.ƀgd(t),t=this.ƀjw(t),this.ƀau(t)}static ƀgd(t){return t.map(e=>{let i=[],r,s=true;return e.forEach(n=>{if(!r||r.chunk.style.cacheKey!==n.chunk.style.cacheKey)r&&i.push(r),r=n,s=n.chunk.whitespace;else {let a=r.chunk.text+n.chunk.text;s=n.chunk.whitespace&&s,r={chunk:{text:a,whitespace:s,style:{...r.chunk.style,width:r.chunk.style.width+n.chunk.style.width}},position:r.position};}}),r&&i.push(r),i})}static ƀjw(t){return t.map(e=>{if(e.length===0)return [];let i=e.pop();if(!i.chunk.whitespace||i.chunk.text===""){let r=i.chunk.text.length,s=i.chunk.text.trimEnd();r!==s.length?e.push({chunk:{text:s,whitespace:false,style:{...i.chunk.style,width:i.chunk.style.width-(r-s.length)*i.chunk.style.spaceWidth}},position:i.position}):e.push(i);}return e})}static ƀau(t){return t.flatMap(e=>e.map(i=>({text:i.chunk.text,style:i.chunk.style.style,position:i.position}))).filter(e=>e.text.trim()!=="")}};var ee=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=Ae.process(t,e),r=new Me(e.default.wordWrapWidth??1/0,{rectangleCutOption:e.rectangleCut,verticalAlignment:e.verticalAlignment,horizontalAlignment:e.default.align}),s=Oe.wrapText(i,r);return De.process(s)}};var Cs=1,zi=1/Cs,ie=class extends u{static{h(this,"Text");}get ƀjo(){if(!this.ƀjp){let t=new V__namespace.TextStyle(this.ƀhq);this.ƀjp=V__namespace.TextMetrics.measureText(this.ƀjn,t);}return this.ƀjp}get ascent(){return this.ƀjo.fontProperties.ascent}constructor(t,e){super(),this.ƀhq=Mt.getPixiTextStyle(e),this.setText(t);}destroy(){this.destroyed||(super.destroy(),!this.ƀhp.destroyed&&this.ƀhp.destroy());}setAnchor(t){return this.anchor=t,this}get anchor(){return new helpersLib.Vector(this.ƀhp.anchor.x,this.ƀhp.anchor.y)}set anchor(t){this.ƀhp.anchor.set(t.x,t.y);}setPosition(t,e){if(e?.holdFrom){let i=this.ƀhq.dropShadowDistance??0,r=new helpersLib.Vector(e.holdFrom.x*i,e.holdFrom.y*i);t=t.add(r);}return super.setPosition(t,e),this}setText(t){return this.ƀjn!==t&&(this.ƀjn=t,this.ƀhx()),this}setColor(t){let e=helpersLib.ColorHelper.rgbToHex(t);return this.ƀhq.fill!==e&&(this.ƀhq.fill=e,this.ƀhx()),this}ƀhx(){this.ƀhp?.destroy(),this.ƀji?.destroy(),this.ƀji=void 0,this.ƀjp=void 0;let t=new V__namespace.TextStyle(this.ƀhq);this.ƀhp=new V__namespace.Text(this.ƀjn,t),this.ƀhp.scale.set(zi,zi),this.pixiContainer.addChild(this.ƀhp),this.ƀhq.lineThrough&&(this.ƀji=this.ƀe(this.ƀhp,this.ƀhq.fill),this.pixiContainer.addChild(this.ƀji));}ƀe(t,e){let i=V__namespace.TextMetrics.measureText(t.text,t.style),r=Math.max(1,Math.round(i.lineHeight*.07)),s=r%2*.5,n=new V__namespace.Graphics;n.lineStyle(r,e);let a=0;return i.lines.forEach((l,c)=>{let p=V__namespace.TextMetrics.measureText(l,t.style),f=Math.round(a+(p.fontProperties.ascent-p.fontProperties.descent)*.6+p.fontProperties.descent)+s,g=0;t.style.align==="center"?g=0+(t.width-p.width)*.5:t.style.align==="right"&&(g=0+t.width-p.width),g=Math.floor(g),n.moveTo(Math.floor(g),f),n.lineTo(Math.floor(g+p.width),f),a+=p.lineHeight;}),n.endFill(),n}};var li=class extends u{static{h(this,"RichText");}constructor(t,e){super(),ee.process(t,e).forEach(r=>new ie(r.text,r.style).setPosition(r.position).displayParent(this).attach(this));}};var ci=class extends u{static{h(this,"UpdatableContainer");}},pi=class extends u{static{h(this,"DisplayObjectArray");}constructor(t,e){super(),this.ƀbu=t,this.ƀcn=new Map,this.ƀgx={trackBy:h((i,r)=>r,"trackBy"),positioning:{direction:"vertical",spacing:0},...e};}set(t){let e=new Set(this.ƀcn.values()),i=0;t.forEach((r,s)=>{let n=this.ƀgx.trackBy(r,s),a;this.ƀcn.has(n)?(a=this.ƀcn.get(n),e.delete(a),a.update(r)):(a=this.ƀbu(r).displayParent(this).attach(this),this.ƀcn.set(n,a)),this.ƀgx.positioning.direction==="horizontal"?(a.x=i,i+=a.size.x+this.ƀgx.positioning.spacing):(a.y=i,i+=a.size.y+this.ƀgx.positioning.spacing);}),e.forEach(r=>{r.destroy();});}};var Bt=class o extends u{static{h(this,"Menu");}static{this.ƀju=false;}static closeAll(){return o.ƀgw?o.ƀgw.close():actionsLib.SingleEvent.instant()}constructor(t,e){super(),this.ƀgp=new actionsLib.SingleAction,this.onOpen=this.ƀgp.notifier,this.ƀgk=new actionsLib.SingleAction,this.onClose=this.ƀgk.notifier;let i={closeOnBackgroundClick:true,appearAnimationDuration:150,darkeningAlpha:.3,...e};this.setZIndex(100).setAlpha(0),this.ƀn=new O(this,"alpha",{animation:S.easeInOutCubic,duration:i.appearAnimationDuration,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀz=E.createRectangle(new helpersLib.Vector(1,1),helpersLib.ColorHelper.black).toSprite({cache:true}).setAlpha(i.darkeningAlpha).setInteractive(true).displayParent(this).attach(this),this.ƀgc=Z.createByName(t).setPosition(new helpersLib.Vector(0,0)).setInteractive(true).displayParent(this).attach(this),w.instance.screenSize.subscribe(r=>{this.ƀz.aspectRatio=r.x/r.y,this.ƀz.scale=Math.max(r.x,r.y),this.ƀz.setPosition(helpersLib.Vector.zero,{holdFrom:helpersLib.Vector.half}),this.setPosition(r.multiplyNumber(.5));}).attach(this),o.ƀgw=this,this.onDestroy().tap(()=>{o.ƀgw=void 0;}).attachToRoot(),i.closeOnBackgroundClick&&this.ƀz.on(exports.ContainerEventType.Click,()=>{o.ƀju||this.ƀp(false);}).attach(this),this.ƀp(true);}getBoundingMask(){return this.ƀgc.getBoundingMask()}close(){return this.ƀp(false)}ƀp(t){if(o.ƀju)throw new Error("WindowUI: cannot iterate while in transition");return o.ƀju=true,this.ƀn.animate({alpha:t?1:0}).chain(this).tap(()=>{o.ƀju=false,t?this.ƀgp.resolve():(this.ƀgk.resolve(),this.destroy());}).chainToRoot()}};var ui=class extends gt{static{h(this,"MenuEntity");}constructor(t,e){super(),this.ƀgn=new actionsLib.SingleAction,this.onCreate=this.ƀgn.notifier,this.ƀgp=new actionsLib.SingleAction,this.onOpen=this.ƀgp.notifier,this.ƀgk=new actionsLib.SingleAction,this.onClose=this.ƀgk.notifier,Bt.closeAll().tap(()=>{if(!St.getActiveScene())throw new Error("WindowEntity: constructor is called when there is no active scene!");w.pause.effect(true).attach(this),this.ƀgc=new Bt(t,e).displayParent(w.camera.layers.foregroundScreen).attach(this),this.ƀgn.resolve(this.ƀgc),this.ƀgc.onOpen.subscribe(()=>this.ƀgp.resolve()).attach(this),this.ƀgc.onClose.subscribe(()=>{this.destroy(),this.ƀgk.resolve();}).attach(this);}).attach(this);}close(){if(this.ƀgc){let t=this.onClose.toSingleEvent().destroyIfNotAttached();return this.ƀgc.close(),t}else return this.onCreate.asyncMapQueue(()=>this.close()).singleChain(this)}};var Rs=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Is=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)};exports.MouseService=class wt{static{h(this,"MouseService");}get initialMouseMoveHappened(){return this.ƀfe.value}getStagePosition(){return this.ƀja.value}getScreenPosition(){return this.ƀih.value}getMainButtonState(){return this.ƀfw.value}getSecondaryButtonState(){return this.ƀin.value}constructor(){this.ƀfe=new actionsLib.Variable(false),this.onInitialMouseMove=this.ƀfe.notifier,this.ƀja=new actionsLib.Variable(helpersLib.Vector.zero,{notifyOnChange:true}),this.stagePosition=this.ƀja.notifier,this.ƀih=new actionsLib.Variable(helpersLib.Vector.zero,{notifyOnChange:true}),this.screenPosition=this.ƀih.notifier,this.ƀfw=new actionsLib.Variable(false),this.mainButtonState=this.ƀfw.notifier,this.ƀin=new actionsLib.Variable(false),this.secondaryButtonState=this.ƀin.notifier,this.ƀjb(),window.addEventListener("mousedown",t=>{t.button===0?this.ƀfw.value=true:t.button===2&&(this.ƀin.value=true);}),window.addEventListener("mouseup",t=>{t.button===0?this.ƀfw.value=false:t.button===2&&(this.ƀin.value=false);}),window.addEventListener("blur",()=>{this.ƀfw.value=false,this.ƀin.value=false;});}ƀjb(){let t=helpersLib.Vector.zero;window.addEventListener("mousemove",e=>{t=new helpersLib.Vector(e.clientX,e.clientY),this.ƀfe.value=true;}),y.beforeSceneUpdateAction.subscribe(()=>{this.ƀih.value=t;}).attachToRoot(),y.afterSceneUpdateAction.subscribe(()=>{let e=w.instance.screenPositonToStagePosition(this.ƀih.value);e.isEqual(this.ƀja.value)?w.instance.renderer.events.onPointerMove(new PointerEvent("pointermove",{clientX:this.ƀih.value.x,clientY:this.ƀih.value.y,pointerType:"mouse"})):this.ƀja.value=e;}).attachToRoot();}};exports.MouseService=Rs([d(),Is("design:paramtypes",[])],exports.MouseService);var se=class extends u{static{h(this,"MouseWheelListenerUI");}constructor(t){super(),this.ƀgt=new actionsLib.Action,this.onWheel=this.ƀgt.notifier,this.ƀep=(e=>{let i=P.get(exports.MouseService).getScreenPosition(),r=this.ƀkk.getBounds();i.x>=r.x&&i.x<=r.x+r.width&&i.y>=r.y&&i.y<=r.y+r.height&&this.ƀgt.trigger(e.deltaY);}).bind(this),this.ƀkk=new V__namespace.Graphics,this.ƀkk.beginFill(0,1e-9),this.ƀkk.drawRect(0,0,t.x,t.y),this.ƀkk.endFill(),this.pixiContainer.addChild(this.ƀkk),window.addEventListener("wheel",this.ƀep);}destroy(){this.destroyed||(super.destroy(),this.ƀkk.destroy(),window.removeEventListener("wheel",this.ƀep));}};var Ms=.65,Ds=.01,Fe=class{static{h(this,"SmoothScroller");}get scrollHeight(){return this.ƀil}get contentSize(){return this.ƀbh.size.ceil()}constructor(t,e,i,r){this.ƀbh=t,this.ƀu=e,this.ƀgz=i,this.ƀiw=r,this.ƀff=false,this.ƀil=e-i*2,this.ƀbh.y=i,this.ƀjj=i;}onWheel(t){this.setTarget(this.ƀjj-t*Ms);}scrollToTop(){this.setTarget(1/0);}scrollToBottom(){this.setTarget(-1/0);}setTarget(t){this.ƀjj=helpersLib.NumberHelper.clamp(t,this.ƀu-this.ƀgz-this.contentSize.y,this.ƀgz);}jumpToTarget(){this.ƀbh.y=this.ƀjj;}update(t){let e=this.contentSize;if(e.y<=this.ƀil){switch(this.ƀiw){case "start":this.ƀjj=this.ƀgz;break;case "center":this.ƀjj=(this.ƀu-e.y)*.5;break;case "end":this.ƀjj=this.ƀu-e.y-this.ƀgz;break}this.ƀff||(this.ƀbh.y=this.ƀjj);}this.ƀff=true;let i=this.ƀjj-this.ƀbh.y;this.ƀbh.y=this.ƀbh.y+i*Ds*t;}};var mi=class{static{h(this,"AnimationEaseInOutFlatter");}start(){}multiplierFunction(t){return 3*(1-t)*Math.pow(t,2)+Math.pow(t,3)}},xt=class o extends u{static{h(this,"ScrollMaskUI");}static{this.ƀcq=new Map;}constructor(t,e,i,r=exports.ScrollDirection.Vertical){if(super(),i<0)throw new Error("The padding of the scroll mask cannot be lower than '0'");if(e.y<i*2)throw new Error(`The height of the scroll mask cannot be lower than '${i*2}'`);let s=new u;r===exports.ScrollDirection.Horizontal?this.ƀby(e,i,s):this.ƀcf(e,i,s),this.ƀfz=Z.createSnapshotSprite(s).attach(this),s.destroy(),t.setMask(this.ƀfz);}ƀcf(t,e,i){e>0&&this.ƀbv(new helpersLib.Vector(t.x,e)).displayParent(i).attach(i),E.createRectangle(new helpersLib.Vector(t.x,t.y-e*2),helpersLib.ColorHelper.white).toSprite().setPosition(new helpersLib.Vector(0,e),{round:false}).displayParent(i).attach(i),e>0&&this.ƀbv(new helpersLib.Vector(t.x,e)).setPosition(new helpersLib.Vector(t.x,t.y),{round:false}).setRotation(helpersLib.Radian.get180).displayParent(i).attach(i);}ƀby(t,e,i){e>0&&this.ƀbv(new helpersLib.Vector(t.y,e)).setPosition(new helpersLib.Vector(0,t.y),{round:false}).setRotation(helpersLib.Radian.get270).displayParent(i).attach(i),E.createRectangle(new helpersLib.Vector(t.x-e*2,t.y),helpersLib.ColorHelper.white).toSprite().setPosition(new helpersLib.Vector(e,0),{round:false}).displayParent(i).attach(i),e>0&&this.ƀbv(new helpersLib.Vector(t.y,e)).setPosition(new helpersLib.Vector(t.x,0),{round:false}).setRotation(helpersLib.Radian.get90).displayParent(i).attach(i);}ƀbv(t){let i={id:this.ƀbw(t.y),scale:1,size:t,anchor:{x:0,y:0},boundingShapes:void 0};return new Z(i,{textureSize:t,ignoreAnchor:true})}ƀbw(t){let e=JSON.stringify({type:"gradient",length:t}),i=o.ƀcq.get(e);if(!i){let r=document.createElement("canvas");r.width=1,r.height=t;let s=r.getContext("2d");if(s){let n=new mi;helpersLib.ArrayHelper.createIntegerArray(t).forEach(l=>{let c=`rgba(255, 255, 255, ${n.multiplierFunction(l/t)})`;s.fillStyle=c,s.fillRect(0,l,1,1);});let a=V__namespace.Texture.from(r);i=M.insertAsset(a),o.ƀcq.set(e,i);}else throw new Error("Canvas context is null")}return i}};var Fs=15,gi=class extends u{static{h(this,"ScrollAreaUI");}get contentAreaSize(){return this.ƀbi}get contentSize(){return this.ƀim.contentSize}constructor(t,e={}){super();let i={padding:Fs,smallContentAlign:"start",...e};if(i.padding<0)throw new Error("The padding of the scroll mask cannot be lower than '0'");if(i.padding>t.y*.5)throw new Error("The padding of the scroll mask cannot be higher than half of the size of the area");let r=new u().displayParent(this).attach(this);new xt(r,t,i.padding).attach(this);let s=new u().displayParent(r).attach(this);this.ƀim=new Fe(s,t.y,i.padding,i.smallContentAlign),this.ƀbi=new helpersLib.Vector(t.x,this.ƀim.scrollHeight),new se(t).displayParent(r).attach(this).onWheel.subscribe(a=>this.ƀim.onWheel(a)).attach(this),y.afterSceneUpdateAction.subscribe(a=>this.ƀim.update(a.delta)).attach(this),this.addChildTo=s;}scrollToTop(t){this.ƀim.scrollToTop(),t?.instant&&this.ƀim.jumpToTarget();}scrollToBottom(t){this.ƀim.scrollToBottom(),t?.instant&&this.ƀim.jumpToTarget();}};var _s=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Ls=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)};exports.KeyboardService=class yi{static{h(this,"KeyboardService");}constructor(){this.ƀfm=new actionsLib.Action,this.keyPressed=this.ƀfm.notifier,this.ƀfn=new actionsLib.Action,this.keyReleased=this.ƀfn.notifier,this.ƀft=new Set,this.ƀfs=new Set,window.addEventListener("keydown",t=>{this.ƀft.add(t.key),this.ƀfs.add(t.key),!t.repeat&&this.ƀfm.trigger(t.key);}),window.addEventListener("keyup",t=>{this.ƀft.delete(t.key),this.ƀfn.trigger(t.key);}),window.addEventListener("blur",()=>{this.ƀft.clear();}),y.afterSceneUpdateAction.subscribe(()=>{this.ƀfs.clear();}).attachToRoot();}isKeyDown(t){return this.ƀft.has(t)}isKeyJustPressed(t){return this.ƀfs.has(t)}};exports.KeyboardService=_s([d(),Ls("design:paramtypes",[])],exports.KeyboardService);var Vs=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Ns=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)};exports.MouseTargetFocusService=class wi{static{h(this,"MouseTargetFocusService");}get focusedInLastFrame(){return this.ƀdc}get lastFocusedPosition(){return this.ƀfp}constructor(t){this.ƀgf=t,this.ƀgr=new actionsLib.Action,this.onTargetFocus=this.ƀgr.notifier,this.ƀjt=0,this.ƀjv=false,this.ƀdc=false,this.ƀfp=void 0,y.beforeSceneUpdateAction.subscribe(e=>this.ƀjx(e.delta)).attachToRoot();}ƀjx(t){if(this.ƀgg){let e=this.ƀeb(this.ƀgf.getStagePosition(),this.ƀgg);this.ƀhb===void 0?this.ƀhb=e:this.ƀat(e,t);}this.ƀgg=this.ƀgf.getStagePosition();}ƀat(t,e){this.ƀhb-t>10?(this.ƀjt=Math.max(250,this.ƀjt),this.ƀjv=true):this.ƀjt>1e3&&(this.ƀjv=true);let i=this.ƀjt>=300&&this.ƀjv;this.ƀfk(i,t,e);}ƀfk(t,e,i){(t||e>this.ƀhb)&&(this.ƀhb=e),t?(this.ƀjv=false,this.ƀjt=0,this.ƀdc=true,this.ƀfp=this.ƀgf.getStagePosition(),this.ƀgr.trigger(this.ƀfp)):(this.ƀjt+=i,this.ƀdc=false);}ƀeb(t,e){let i=helpersLib.Vector.fromTo(t,e);return Math.abs(i.x)+Math.abs(i.y)}};exports.MouseTargetFocusService=Vs([d(),Ns("design:paramtypes",[exports.MouseService])],exports.MouseTargetFocusService);var x;(function(o){o[o.Hidden=1]="Hidden",o[o.Visible=2]="Visible",o[o.Appearing=3]="Appearing",o[o.Disappearing=4]="Disappearing",o[o.DisappearToChange=5]="DisappearToChange";})(x||(x={}));var _e=class extends actionsLib.Attachable{static{h(this,"FadeInStateAnimation");}get currentState(){return {value:this.ƀi.value,state:this.ƀje,queuedState:this.ƀhs,animationState:this.ƀm}}constructor(t){super(),this.ƀi={value:0},this.ƀm=x.Hidden,this.ƀgq=new actionsLib.Action,this.ƀgs=new actionsLib.Action,this.ƀgx={duration:500,animation:S.lineer,...t},this.ƀi.value=0,this.ƀn=new O(this.ƀi,"value",{duration:this.ƀgx.duration,animation:this.ƀgx.animation,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀn.value.subscribe(()=>{this.ƀi.value!==1&&this.ƀi.value!==0&&this.ƀgs.trigger(this.ƀi.value);}).attach(this);}setState(t,e){if(e?.instant){this.ƀn.completeAnimation(),this.ƀm=t!==void 0?x.Visible:x.Hidden,this.ƀhs=void 0;let i=t!==void 0?1:0,r=this.ƀje!==t;r&&(this.ƀje=t,this.ƀgq.trigger(this.ƀje)),(r||this.ƀi.value!==i)&&(this.ƀi.value=i,this.ƀgs.trigger(this.ƀi.value));}else switch(this.ƀm){case x.Hidden:t!==void 0&&(this.ƀm=x.Appearing,this.ƀhs=void 0,this.ƀje=t,this.ƀgq.trigger(this.ƀje),this.ƀn.animate({value:1}).tap(()=>this.ƀgm()).attach(this));break;case x.Visible:t===void 0?(this.ƀm=x.Disappearing,this.ƀhs=void 0,this.ƀn.animate({value:0}).tap(()=>this.ƀgm()).attach(this)):t!==this.ƀje&&(this.ƀm=x.DisappearToChange,this.ƀhs=t,this.ƀn.animate({value:0}).tap(()=>this.ƀgm()).attach(this));break;case x.Appearing:t===void 0?(this.ƀm=x.Disappearing,this.ƀhs=void 0,this.ƀn.animate({value:0},{duration:this.ƀi.value*this.ƀgx.duration}).tap(()=>this.ƀgm()).attach(this)):t!==this.ƀje&&(this.ƀi.value>0?(this.ƀm=x.DisappearToChange,this.ƀhs=t,this.ƀn.animate({value:0},{duration:this.ƀi.value*this.ƀgx.duration}).tap(()=>this.ƀgm()).attach(this)):(this.ƀhs=void 0,this.ƀje=t,this.ƀgq.trigger(this.ƀje)));break;case x.Disappearing:t===this.ƀje?(this.ƀm=x.Appearing,this.ƀn.animate({value:1},{duration:(1-this.ƀi.value)*this.ƀgx.duration}).tap(()=>this.ƀgm()).attach(this)):t!==void 0&&(this.ƀm=x.DisappearToChange,this.ƀhs=t);break;case x.DisappearToChange:t===void 0?(this.ƀm=x.Disappearing,this.ƀhs=void 0):t===this.ƀje?(this.ƀm=x.Appearing,this.ƀhs=void 0,this.ƀn.animate({value:1},{duration:(1-this.ƀi.value)*this.ƀgx.duration}).tap(()=>this.ƀgm()).attach(this)):t!==this.ƀhs&&(this.ƀhs=t);break}}ƀgm(){switch(this.ƀm){case x.Appearing:this.ƀi.value===1&&(this.ƀm=x.Visible,this.ƀgs.trigger(this.ƀi.value));break;case x.Disappearing:if(this.ƀhs!==void 0)throw new Error("FadeInStateAnimation: Unexpected state, disappearing should not have a queued value");this.ƀi.value===0&&(this.ƀm=x.Hidden,this.ƀje=void 0,this.ƀgq.trigger(this.ƀje),this.ƀgs.trigger(this.ƀi.value));break;case x.DisappearToChange:if(this.ƀhs===void 0)throw new Error("FadeInStateAnimation: Unexpected state, disappearToChange should always have a queued value");this.ƀi.value===0&&(this.ƀm=x.Appearing,this.ƀje=this.ƀhs,this.ƀhs=void 0,this.ƀgq.trigger(this.ƀje),this.ƀgs.trigger(this.ƀi.value),this.ƀn.animate({value:1}).tap(()=>this.ƀgm()).attach(this));break;case x.Hidden:case x.Visible:return}}onStateChange(t){return this.ƀgq.subscribe(e=>t(e)).attach(this),this}onValueChange(t){return this.ƀgs.subscribe(e=>t(e)).attach(this),this}};var Qi=class extends u{static{h(this,"FadeInContent");}constructor(t,e){super(),this.ƀbu=t;let i={duration:200,animation:S.easeInOut,...e};this.alpha=0,this.ƀjf=new _e(i).onStateChange(r=>{this.ƀbh?.destroy(),this.ƀbh=void 0,r!==void 0&&(this.ƀbh=new u().displayParent(this).attach(this),this.ƀbu({state:r,container:this.ƀbh}));}).onValueChange(r=>{this.alpha=r;}).attach(this);}setState(t,e){return this.ƀjf.setState(t,e),this}};var A;(function(o){o[o.Idle=1]="Idle",o[o.Transitioning=2]="Transitioning",o[o.Reverting=3]="Reverting";})(A||(A={}));var Le=class extends actionsLib.Attachable{static{h(this,"StateAnimation");}get currentState(){return {value:this.ƀi.value,state:this.ƀje,nextState:this.ƀgi,queuedState:this.ƀhs,animationState:this.ƀm}}constructor(t){super(),this.ƀi={value:0},this.ƀm=A.Idle,this.ƀgq=new actionsLib.Action,this.ƀgs=new actionsLib.Action,this.ƀgx={duration:500,animation:S.lineer,...t},this.ƀn=new O(this.ƀi,"value",{duration:this.ƀgx.duration,animation:this.ƀgx.animation,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀn.value.subscribe(()=>{this.ƀi.value!==1&&this.ƀi.value!==0&&this.ƀgs.trigger(this.ƀi.value);}).attach(this);}setState(t,e){if(this.ƀje===void 0)this.ƀje=t,this.ƀgq.trigger({state:this.ƀje,nextState:this.ƀgi}),this.ƀgs.trigger(this.ƀi.value);else if(e?.instant)this.ƀn.completeAnimation(),this.ƀm=A.Idle,this.ƀje=t,this.ƀgi=void 0,this.ƀi.value=0,this.ƀgq.trigger({state:this.ƀje,nextState:this.ƀgi}),this.ƀgs.trigger(this.ƀi.value);else switch(this.ƀm){case A.Idle:t!==this.ƀje&&(this.ƀm=A.Transitioning,this.ƀgi=t,this.ƀi.value=0,this.ƀgq.trigger({state:this.ƀje,nextState:this.ƀgi}),this.ƀgs.trigger(this.ƀi.value),this.ƀn.animate({value:1}).tap(()=>this.ƀgm()).attach(this));break;case A.Transitioning:t!==this.ƀgi&&(t===this.ƀje?(this.ƀm=A.Reverting,this.ƀn.animate({value:0},{duration:this.ƀi.value*this.ƀgx.duration}).tap(()=>this.ƀgm()).attach(this)):this.ƀhs=t);break;case A.Reverting:t!==this.ƀje&&(t===this.ƀgi?(this.ƀm=A.Transitioning,this.ƀn.animate({value:1},{duration:(1-this.ƀi.value)*this.ƀgx.duration}).tap(()=>this.ƀgm()).attach(this)):this.ƀhs=t);break}}ƀgm(){switch(this.ƀm){case A.Transitioning:this.ƀi.value===1&&(this.ƀi.value=0,this.ƀhs!==void 0?(this.ƀm=A.Transitioning,this.ƀje=this.ƀgi,this.ƀgi=this.ƀhs,this.ƀhs=void 0,this.ƀgq.trigger({state:this.ƀje,nextState:this.ƀgi}),this.ƀn.animate({value:1}).tap(()=>this.ƀgm()).attach(this)):(this.ƀm=A.Idle,this.ƀje=this.ƀgi,this.ƀgi=void 0,this.ƀgq.trigger({state:this.ƀje,nextState:this.ƀgi})),this.ƀgs.trigger(this.ƀi.value));break;case A.Reverting:if(this.ƀje===void 0)throw new Error("StateAnimation: state must be defined when reverting!");this.ƀi.value===0&&(this.ƀhs!==void 0?(this.ƀm=A.Transitioning,this.ƀgi=this.ƀhs,this.ƀhs=void 0,this.ƀi.value=0,this.ƀgq.trigger({state:this.ƀje,nextState:this.ƀgi}),this.ƀn.animate({value:1}).tap(()=>this.ƀgm()).attach(this)):(this.ƀm=A.Idle,this.ƀgi=void 0,this.ƀi.value=0,this.ƀgq.trigger({state:this.ƀje,nextState:this.ƀgi})),this.ƀgs.trigger(this.ƀi.value));break;case A.Idle:break}}onStateChange(t){return this.ƀgq.subscribe(e=>t(e.state,e.nextState)).attach(this),this}onValueChange(t){return this.ƀgs.subscribe(e=>t(e)).attach(this),this}};exports.SlideStateAnimationState=void 0;(function(o){o[o.Appear=1]="Appear",o[o.Disappear=2]="Disappear";})(exports.SlideStateAnimationState||(exports.SlideStateAnimationState={}));var C;(function(o){o[o.Idle=1]="Idle",o[o.TransitionForward=2]="TransitionForward",o[o.TransitionBackward=3]="TransitionBackward",o[o.Reverting=4]="Reverting";})(C||(C={}));var Ve=class extends actionsLib.Attachable{static{h(this,"SlideStateAnimation");}constructor(t){super(),this.ƀm=C.Idle,this.ƀgq=new actionsLib.Action,this.ƀgs=new actionsLib.Action,this.ƀgx={duration:500,animation:S.easeInOutCubic,...t},this.ƀjf=new Le({duration:this.ƀgx.duration,animation:this.ƀgx.animation}).onStateChange((e,i)=>this.ƀen(e,i)).onValueChange(e=>this.ƀeo(e)).attach(this);}setIndex(t,e){if(!helpersLib.Comparator.isInteger(t))throw new Error("SlideStateAnimation: index must be an integer!");this.ƀfd===void 0?(this.ƀfd=t,this.ƀgq.trigger({state:exports.SlideStateAnimationState.Appear,index:t}),this.ƀjf.setState(t,e)):this.ƀfd!==t?this.ƀgh!==t?this.ƀm===C.Idle?(this.ƀm=t>this.ƀfd?C.TransitionForward:C.TransitionBackward,this.ƀgh=t,this.ƀgq.trigger({state:exports.SlideStateAnimationState.Appear,index:this.ƀgh}),this.ƀjf.setState(t,e)):this.ƀjf.setState(t,e):this.ƀm===C.Reverting&&this.ƀgh===t&&(this.ƀm=t>this.ƀfd?C.TransitionForward:C.TransitionBackward,this.ƀjf.setState(t,e)):(this.ƀm===C.TransitionForward||this.ƀm===C.TransitionBackward)&&(this.ƀm=C.Reverting,this.ƀjf.setState(t,e));}ƀen(t,e){switch(this.ƀfd!==void 0&&this.ƀfd!==t&&this.ƀfd!==e&&this.ƀgq.trigger({state:exports.SlideStateAnimationState.Disappear,index:this.ƀfd}),this.ƀgh!==void 0&&this.ƀgh!==t&&this.ƀgh!==e&&this.ƀgq.trigger({state:exports.SlideStateAnimationState.Disappear,index:this.ƀgh}),e!==void 0&&e!==this.ƀfd&&e!==this.ƀgh&&this.ƀgq.trigger({state:exports.SlideStateAnimationState.Appear,index:e}),this.ƀm){case C.TransitionForward:case C.TransitionBackward:e===void 0?(this.ƀm=C.Idle,this.ƀfd=this.ƀgh,this.ƀgh=void 0):this.ƀfd!==t&&this.ƀel(t,e);break;case C.Reverting:e===void 0?(this.ƀm=C.Idle,this.ƀgh=void 0):this.ƀfd!==e&&this.ƀel(t,e);break}}ƀeo(t){let e=1;(this.ƀm===C.TransitionBackward||this.ƀm===C.Reverting&&this.ƀfd!==void 0&&this.ƀgh!==void 0&&this.ƀfd>this.ƀgh)&&(e=-1),(this.ƀm===C.Idle||t!==0)&&this.ƀgs.trigger({value:helpersLib.NumberHelper.ensurePositiveZero(-e*t),index:this.ƀfd}),this.ƀgh!==void 0&&this.ƀgs.trigger({value:helpersLib.NumberHelper.ensurePositiveZero(e*(1-t)),index:this.ƀgh});}ƀel(t,e){this.ƀfd=t,this.ƀgh=e,this.ƀgs.trigger({value:0,index:this.ƀfd}),this.ƀm=this.ƀfd<this.ƀgh?C.TransitionForward:C.TransitionBackward;}onStateChange(t){return this.ƀgq.subscribe(e=>t(e.state,e.index)).attach(this),this}onValueChange(t){return this.ƀgs.subscribe(e=>t(e.value,e.index)).attach(this),this}};exports.ScrollDirection=void 0;(function(o){o[o.Horizontal=1]="Horizontal",o[o.Vertical=2]="Vertical";})(exports.ScrollDirection||(exports.ScrollDirection={}));var xi=class extends u{static{h(this,"SlideInContentByIndex");}constructor(t,e){super(),this.ƀbu=t,this.ƀcl="x",this.ƀbj=new Map,this.ƀgx={duration:300,animation:S.easeInOutCubic,size:new helpersLib.Vector(500,500),margin:20,direction:exports.ScrollDirection.Horizontal,...e};let i=this.ƀgx.direction===exports.ScrollDirection.Horizontal?new helpersLib.Vector(this.ƀgx.size.x+this.ƀgx.margin*2,this.ƀgx.size.y):new helpersLib.Vector(this.ƀgx.size.x,this.ƀgx.size.y+this.ƀgx.margin*2),r=new u().setPosition(this.ƀgx.direction===exports.ScrollDirection.Horizontal?new helpersLib.Vector(-this.ƀgx.margin,0):new helpersLib.Vector(0,-this.ƀgx.margin),{round:false}).displayParent(this).attach(this);this.ƀbz(i,this.ƀgx.margin,this.ƀgx.direction,r),this.ƀcl=this.ƀgx.direction===exports.ScrollDirection.Horizontal?"x":"y",this.ƀjf=new Ve({duration:this.ƀgx.duration,animation:this.ƀgx.animation}).onStateChange((s,n)=>{if(s===exports.SlideStateAnimationState.Appear){let a=new u().displayParent(this).attach(this);this.ƀbj.set(n,a),this.ƀbu({index:n,container:a});}else {let a=this.ƀbj.get(n);a&&(a.destroy(),this.ƀbj.delete(n));}}).onValueChange((s,n)=>{let a=this.ƀbj.get(n);if(a){let l={x:0,y:0};l[this.ƀcl]=i[this.ƀcl]*s+this.ƀgx.margin,a.setPosition(helpersLib.Vector.fromVec2(l),{round:false});}}).attach(this),this.addChildTo=r;}setIndex(t,e){return this.ƀjf.setIndex(t,e),this}ƀbz(t,e,i,r){new xt(r,new helpersLib.Vector(t.x,t.y),e,i).attach(this);}},ir=class extends xi{static{h(this,"SlideInContent");}constructor(t,e,i){super(r=>{let s=this.indexToItem.get(r.index);if(s)e({index:r.index,item:s,container:r.container});else throw new Error(`SlideInContent: The item with index '${r.index}' is not part of the items list`)},i),this.itemToIndex=new Map,this.indexToItem=new Map,t.forEach((r,s)=>{this.itemToIndex.set(r,s),this.indexToItem.set(s,r);});}setItem(t,e){let i=this.itemToIndex.get(t);if(i!==void 0)this.setIndex(i,e);else throw new Error(`SlideInContent: The item '${t}' is not part of the items list`);return this}};var bt=class{static{h(this,"VectorSet");}constructor(){this.ƀkb=new Map;}add(t){let e=this.ƀkb.get(t.x);e||(e=new Set,this.ƀkb.set(t.x,e)),e.add(t.y);}has(t){let e=this.ƀkb.get(t.x);return e?e.has(t.y):false}delete(t){let e=this.ƀkb.get(t.x);return e?e.delete(t.y):false}};var vi=class{static{h(this,"DeltaTime");}static adjustMultiplier(t,e){return Math.pow(t,e)}};var B=class{static{h(this,"PositionToGridPositionConverter");}static areaToGridArea(t,e){return new helpersLib.Rectangle(this.positionToGridPosition(t.topLeft,e),this.positionToGridPosition(t.bottomRight,e))}static positionToGridPosition(t,e){return t.divideNumber(e).floor()}static gridPositionToPosition(t,e){return t.add(new helpersLib.Vector(.5,.5)).multiplyNumber(e)}};var oe=class{static{h(this,"ClosestAvailableSpaceHelper");}static findByConvertingGridSpace(t,e,i){let r=new helpersLib.Vector(Math.ceil(e.size.x/i)-1,Math.ceil(e.size.y/i)-1),s=B.areaToGridArea(e,i);if(this.ƀas(t,s))return helpersLib.Vector.zero;let n=t.movePositionInsideGrid(s.topLeft),a=helpersLib.Vector.fromTo(s.topLeft,n),l=this.find(t,n,r);if(l){let c=l.add(a),p=helpersLib.Vector.fromTo(s.topLeft.multiplyNumber(i),e.topLeft);return new helpersLib.Vector(c.x*i+((r.x+1)*i-e.size.x)/2-p.x,c.y*i+((r.y+1)*i-e.size.y)/2-p.y)}}static find(t,e,i){let r=new bt,s=new helpersLib.Queue(e);for(;s.notEmpty;){let n=s.pop();r.add(n);let a=new helpersLib.Rectangle(n,n.add(i));if(this.ƀas(t,a))return helpersLib.Vector.fromTo(e,n);t.getNeighborPositions(n,helpersLib.GridNeighborType.Ortogonal).forEach(l=>{r.has(l)||s.add(l);});}}static ƀas(t,e){if(!t.isAreaWithinBounds(e))return false;for(let i=e.topLeft.y;i<=e.bottomRight.y;i++)for(let r=e.topLeft.x;r<=e.bottomRight.x;r++)if(!t.get(new helpersLib.Vector(r,i)))return false;return true}};var rr=class{static{h(this,"PathfinderNode");}constructor(t,e,i,r=void 0){this.position=t,this.distanceFromStart=e,this.distanceToEnd=i,this.parent=r,this.closed=false;}get pathLength(){return this.distanceFromStart+this.distanceToEnd}isEqual(t){return helpersLib.Vector.isEqual(this.position,t)}createSolutionPath(t){let e=[this.position],i=this.parent;for(;i!==void 0;)e.push(i.position),i=i.parent;return e.reverse(),{directPathAvailable:t,path:e}}getDistance(t){return this.position.getDistance(t)}},to=class{static{h(this,"PathfinderGrid");}constructor(t,e){this.ƀek=t,this.ƀjc=e,this.ƀgv=new helpersLib.BinaryHeap("min"),this.ƀaw=[],this.ƀgj=new helpersLib.Grid({size:t.size,defaultValue:void 0});let i=new rr(this.ƀjc,0,Number.MAX_SAFE_INTEGER);this.ƀgv.add(i.pathLength,i);}get hasOpenNodes(){return this.ƀgv.size>0}getNeighbors(t,e){return this.ƀek.getNeighborPositions(t.position,e).filter(i=>this.ƀek.get(i)).map(i=>this.ƀgj.get(i)||this.ƀca(i))}popLowestPathCostNode(){let t=this.ƀgv.pop();return this.ƀgv.delete(t),t.closed=true,this.ƀaw.push(t),t}changeNodeCost(t,e,i,r){this.ƀgv.delete(t),t.distanceFromStart=e,t.distanceToEnd=t.getDistance(i),t.parent=r,this.ƀgv.add(t.pathLength,t);}getBestClosedNode(){return this.ƀaw.reduce((t,e)=>t.distanceToEnd<e.distanceToEnd?t:e)}ƀca(t){let e=new rr(t,Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER);return this.ƀgj.set(t,e),this.ƀgv.add(e.pathLength,e),e}},ne=class{static{h(this,"PathFinder");}static findPath(t,e,i,r){let s=new to(t,e);for(;s.hasOpenNodes;){let n=s.popLowestPathCostNode();if(n.isEqual(i))return n.createSolutionPath(true);let a=s.getNeighbors(n,r);for(let l of a)if(!l.closed){let c=n.distanceFromStart+n.getDistance(l.position);c<l.distanceFromStart&&s.changeNodeCost(l,c,i,n);}}return s.getBestClosedNode().createSolutionPath(false)}};var ae=class{static{h(this,"VectorFieldPathFinder");}constructor(t,e){this.ƀjk=t,this.ƀw=e,this.ƀer=this.ƀdt(this.ƀw.size),this.ƀkj=new helpersLib.Grid({size:this.ƀw.size,defaultValue:this.ƀer}),this.ƀcm=new helpersLib.Grid({size:this.ƀw.size,defaultValue:void 0});let i=new bt,r=new helpersLib.Queue;for(this.ƀdi(this.ƀw.cropAreaOutsideOfTheGrid(t)).forEach(n=>{this.ƀkj.set(n,0),r.add(n);});r.notEmpty;){let n=r.pop();if(!i.has(n)){i.add(n);let a=this.ƀkj.getOrFail(n);this.ƀdy(n,this.ƀw).forEach(l=>{if(!i.has(l.position)){let c=this.ƀkj.getOrFail(l.position),p=a+l.distance;this.ƀw.getOrFail(l.position)&&p<c&&(this.ƀkj.set(l.position,p),r.add(l.position));}});}}}getDirectionToTarget(t){if(!t.isInsideRectangle(this.ƀjk)){if(t=this.ƀkj.movePositionInsideGrid(t),this.ƀcm.has(t))return this.ƀcm.get(t);{let e=this.ƀdy(t,this.ƀw),i;return this.ƀkj.getOrFail(t)>=this.ƀer?e.some(s=>this.ƀw.get(s.position))&&(e.some(n=>!this.ƀw.get(n.position))?i=this.ƀdn(e):i=this.ƀdj(t,e)):i=this.ƀdj(t,e),this.ƀcm.set(t,i),i}}}ƀdn(t){let e=t.filter(i=>this.ƀw.get(i.position)).map(i=>i.direction.radian);return helpersLib.Radian.getAverage(...e)}ƀdj(t,e){let i=e.filter(r=>this.ƀkj.getOrFail(r.position)<this.ƀer).reduce((r,s)=>{let n=this.ƀkj.getOrFail(s.position)+s.distance;return n<r.bestWeight?(r.bestDirections=[s.direction],r.bestWeight=n):n===r.bestWeight&&r.bestDirections.push(s.direction),r},{bestDirections:[],bestWeight:this.ƀer}).bestDirections;return this.ƀed(i,t)}ƀed(t,e){if(t.length>0){let i=t.reduce((r,s)=>r.add(s),helpersLib.Vector.zero);if(i.isZero()||!this.ƀfi(e,i))return helpersLib.Random.pickRandomElement(t).radian;if(t.length>=1)return i.radian}}ƀfi(t,e){let i=t.add(this.ƀkc(e));return this.ƀw.isPointWithinBounds(i)&&this.ƀw.getOrFail(i)}ƀdy(t,e){return this.ƀkj.getNeighborDirections(t,helpersLib.GridNeighborType.All).map(i=>({position:t.add(i),direction:i,distance:i.x!==0&&i.y!==0?14:10}))}ƀdi(t){let e=[];for(let i=t.topLeft.y;i<=t.bottomRight.y;i++)for(let r=t.topLeft.x;r<=t.bottomRight.x;r++)e.push(new helpersLib.Vector(r,i));return e}ƀkc(t){let e=t.normalize().round();return new helpersLib.Vector(e.x,e.y)}ƀdt(t){return (t.x+t.y)*20}};var oo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},no=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},v=class extends ${static{h(this,"PhysicsWorldEntity");}constructor(t,e,i,r,s,n,a){super(),this.materialDefinitions=new Map,this.physicsBodyGroupToP2Group=new Map,this.physicsBodyGroupToP2Mask=new Map,this.availabilityGridCache=new Map,this.vectorFieldCache=new Map,this.bodiesInContactWith=new Map,this.collisionReports=new Map,this.paused=new actionsLib.Variable(false),this.lastP2Time=new actionsLib.Variable(0),this.onPhysicsStep=new actionsLib.Action,this.mapSize=t,this.mapSizeCenter=this.mapSize.multiplyNumber(.5),this.modifyUpdateCycle=e,this.p2World=i,this.materials=r,this.materialDefinitions=s,this.physicsBodyGroupToP2Group=n,this.physicsBodyGroupToP2Mask=a;}};v=oo([mt(),no("design:paramtypes",[helpersLib.Vector,Boolean,W__default.default.World,Map,Map,Map,Map])],v);var co=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},K=class{static{h(this,"PhysicsBodyGroupService");}createBodyGroupsAndMasks(t,e){let i=new Map,r=new Map;return t.map((s,n)=>{if(n>31)return console.error("Cannot have more than 32 physics body groups"),{};i.set(s,1<<n),r.set(s,0);}),e.map(([s,n])=>{if(!i.has(s))throw new Error(`Physics body group "${s}" not found`);if(!i.has(n))throw new Error(`Physics body group "${n}" not found`);let a=r.get(s),l=r.get(n),c=i.get(s),p=i.get(n);r.set(s,a|p),r.set(n,l|c);}),{physicsBodyGroupToP2Group:i,physicsBodyGroupToP2Mask:r}}getGroupConstant(t,e){return v.getInstanceByIDOrFail(t).physicsBodyGroupToP2Group.get(e)}getMaskConstant(t,e){return v.getInstanceByIDOrFail(t).physicsBodyGroupToP2Mask.get(e)}canCollide(t,e,i){let r=t.physicsBodyGroupToP2Group.get(e),s=t.physicsBodyGroupToP2Mask.get(e),n=t.physicsBodyGroupToP2Group.get(i),a=t.physicsBodyGroupToP2Mask.get(i);return (s&n)!==0&&(a&r)!==0}};K=co([d()],K);var po=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},uo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Ne=class{static{h(this,"AvailabilityGridCacheService");}constructor(t){this.ƀhe=t;}getCollidableGrids(t,e){let i=[];return t.availabilityGridCache.forEach((r,s)=>{r.forEach((n,a)=>{this.ƀhe.canCollide(t,a,e)&&i.push({grid:n,cellSize:s});});}),i}get(t,e,i){return t.availabilityGridCache.get(e)?.get(i)}set(t,e,i,r){let s=t.availabilityGridCache.get(e);s||(s=new Map,t.availabilityGridCache.set(e,s)),s.set(i,r);}clear(t){t.availabilityGridCache.clear();}};Ne=po([d(),uo("design:paramtypes",[K])],Ne);var fo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},mo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},ct=class{static{h(this,"AvailabilityGridService");}constructor(t,e){this.ƀhe=t,this.ƀx=e;}onBodyAdded(t,e,i){e.aabbNeedsUpdate=true,e.updateAABB();let r=m.aabbToBoundingBox(e.aabb);this.ƀx.getCollidableGrids(t,i).forEach(s=>{let n=B.areaToGridArea(r,s.cellSize);s.grid.setArea(n,false);});}findClosestAvailableSpace(t,e,i,r=Gt){return e.aabbNeedsUpdate=true,e.updateAABB(),oe.findByConvertingGridSpace(this.getAvilabilityGrid(t,r,i),m.aabbToBoundingBox(e.aabb),r)}getAvilabilityGrid(t,e,i){let r=this.ƀx.get(t,e,i);return r||(r=this.ƀbx(t,e,i),this.ƀx.set(t,e,i,r)),r}ƀbx(t,e,i){let r=new helpersLib.Grid({size:new helpersLib.Vector(Math.floor(t.mapSize.x/e),Math.floor(t.mapSize.y/e)),defaultValue:true});return t.p2World.bodies.forEach(s=>{let n=b.getFromP2BodyIDOrFail(s.id);if(n.includeInPathfinding&&this.ƀhe.canCollide(t,n.physicsBodyGroup,i)){let a=this.ƀds(s,e);r.setArea(a,false);}}),r}ƀds(t,e){let i=m.aabbToBoundingBox(t.aabb);return B.areaToGridArea(i,e)}};ct=fo([d(),mo("design:paramtypes",[K,Ne])],ct);var wo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},xo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Gt=50,Ft=class{static{h(this,"PathFinderService");}constructor(t){this.ƀhd=t;}findPathAStar(t,e,i,r,s){s||(s={}),s.neighborType===void 0&&(s.neighborType=helpersLib.GridNeighborType.Ortogonal),s.gridCellSize===void 0&&(s.gridCellSize=Gt);let n=v.getInstanceByIDOrFail(t),a,l;helpersLib.Comparator.isNumber(i)?(l=b.getPhysicsInstanceOrFail(i).p2Body,a=m.arrayToVector(l.position)):a=i;let c=B.positionToGridPosition(e,s.gridCellSize),p=B.positionToGridPosition(a,s.gridCellSize),f=this.ƀhd.getAvilabilityGrid(n,s.gridCellSize,r);if(l){let T=m.aabbToBoundingBox(l.aabb),J=B.areaToGridArea(T,s.gridCellSize);f.setArea(J,true);}let g=ne.findPath(f,c,p,s.neighborType);return g.path=g.path.map(T=>B.gridPositionToPosition(T,s.gridCellSize)),g}findPathDirection(t,e,i,r,s=Gt){let n=v.getInstanceByIDOrFail(t),a;if(helpersLib.Comparator.isNumber(i)){let g=b.getPhysicsInstanceOrFail(i);a=m.aabbToBoundingBox(g.p2Body.aabb);}else a=new helpersLib.Rectangle(i,i);let l=B.areaToGridArea(a,s),c=JSON.stringify({targetGridArea:l,collidableWithGroup:r}),p=n.vectorFieldCache.get(c);if(!p){let g=this.ƀhd.getAvilabilityGrid(n,s,r);p=new ae(l,g),n.vectorFieldCache.set(c,p);}let f=B.positionToGridPosition(e,s);return p.getDirectionToTarget(f)}};Ft=wo([d(),xo("design:paramtypes",[ct])],Ft);var Po=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},j=new U;exports.PhysicsGateway=class Pi{static{h(this,"PhysicsGateway");}createPhysicsWorld(t){return j.trigger("createPhysicsWorld",t)}getMapSize(t){return j.trigger("getMapSize",t)}setPaused(t,e){return j.trigger("setPaused",t,e)}hitTest(t,e){return j.trigger("hitTest",t,e)}findPath(t,e,i,r,s){return j.trigger("findPath",t,e,i,r,s)}findPathDirection(t,e,i,r){return j.trigger("findPathDirection",t,e,i,r)}applyImpulse(t,e,i,r){return j.trigger("applyImpulse",t,e,i,r)}createExplosion(t,e,i,r,s,n){return j.trigger("createExplosion",t,e,i,r,s,n)}createElipticExplosion(t,e,i,r,s,n,a){return j.trigger("createElipticExplosion",t,e,i,r,s,n,a)}printPathfindingTestGrid(t,e,i,r,s,n=Gt){return j.trigger("printPathfindingTestGrid",t,e,i,r,s,n)}};exports.PhysicsGateway=Po([d()],exports.PhysicsGateway);var So=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Co=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},q=class{static{h(this,"TestVisualsService");}constructor(t,e){this.ƀy=t,this.ƀha=e;}printPathfindingTestGrid(t,e,i,r,s,n){let a=v.getInstanceByIDOrFail(t);this.ƀy.getAvilabilityGrid(a,n,r).map((c,p)=>({position:B.gridPositionToPosition(p,n),availability:c})).forEach(c=>{if(c.position.isInsideRectangle(s)){let p=this.ƀha.findPathDirection(t,c.position,i,r),f;p===void 0?f=E.createRectangleBorders(new helpersLib.Vector(8,8),2,helpersLib.ColorHelper.red).toSprite().displayParent(e).setPosition(c.position,{round:false}).attach(a):f=E.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:S.easeIn}).animate({alpha:0}).tap(()=>f.destroy()).attach(f);}});}createExplosionDebugVisual(t,e,i,r,s,n=300){let a=new u().displayParent(e).setAlpha(.5).attach(t);E.createCircle(s,helpersLib.ColorHelper.blue).toSprite().displayParent(a).setPosition(r,{round:false}).setAlpha(.5).attach(t),i.forEach(c=>{let p=c.hits.length>0?helpersLib.ColorHelper.red:helpersLib.ColorHelper.white;E.createVector(r,c.line.to,p).toSprite().displayParent(a).attach(t);}),new O(a,"alpha",{duration:n,animation:S.easeIn}).animate({alpha:0}).tap(()=>a.destroy()).attach(a);}createElipticExplosionDebugVisual(t,e,i,r,s,n,a=300){let l=new u().displayParent(e).setAlpha(.5).attach(t);E.createElipse(n,helpersLib.ColorHelper.blue).toSprite().displayParent(l).setPosition(r,{round:false}).setRotation(s).setAlpha(.5).attach(t),i.forEach(p=>{let f=p.hits.length>0?helpersLib.ColorHelper.red:helpersLib.ColorHelper.white;E.createVector(p.line.from,p.line.to,f).toSprite().displayParent(l).attach(t);}),new O(l,"alpha",{duration:a,animation:S.easeIn}).animate({alpha:0}).tap(()=>l.destroy()).attach(l);}createPhysicsEntityShapeVisual(t,e,i){let r=i?.overridePosition??m.arrayToVector(t.position),s=i?.overrideRotation??new helpersLib.Radian(t.angle),n=i?.color??helpersLib.ColorHelper.blue,a=new u().displayParent(e).setPosition(r,{round:false}).setRotation(s).setAlpha(.5).attachToRoot();t.shapes.forEach(c=>{this.ƀcp(c,n).displayParent(a).attachToRoot();}),new O(a,"alpha",{duration:1e3,animation:S.easeIn}).animate({alpha:0}).tap(()=>a.destroy()).attach(a);}ƀcp(t,e){switch(t.type){case W__default.default.Shape.PARTICLE:throw new Error("Not implemented");case W__default.default.Shape.LINE:throw new Error("Not implemented");case W__default.default.Shape.PLANE:throw new Error("Not implemented");case W__default.default.Shape.CIRCLE:throw new Error("Not implemented");case W__default.default.Shape.CAPSULE:throw new Error("Not implemented");case W__default.default.Shape.BOX:throw new Error("Not implemented");case W__default.default.Shape.HEIGHTFIELD:throw new Error("Not implemented");case W__default.default.Shape.CONVEX:return this.ƀco(t,e);default:throw new Error("Not implemented")}}ƀco(t,e){let i=[t.vertices.map(r=>({x:r[0],y:r[1]}))];return E.createPolygon(i,e).toSprite()}};q=So([d(),Co("design:paramtypes",[ct,Ft])],q);var Ro=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Io=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},je=class{static{h(this,"HitTestService");}constructor(t){this.ƀjm=t;}hitTest(t,e){let i=t.world,r=b.getFromP2BodyIDOrFail(t.id),s=m.cloneP2Body(t);this.ƀs(s,e);let n=i.broadphase.aabbQuery(i,this.ƀdg(s)).map(l=>b.getFromP2BodyIDOrFail(l.id)).filter(l=>l.includeInPathfinding).filter(l=>r.canCollideWith(l)).map(l=>m.cloneP2Body(l.p2Body)),a=false;if(n.length!==0){let l=new W__default.default.World;l.addBody(s),n.forEach(c=>l.addBody(c)),l.step(1,1,1),a=l.narrowphase.contactEquations.some(c=>c.bodyA===s||c.bodyB===s),l.clear();}if(e?.testLayerID){let l=a?helpersLib.ColorHelper.red:helpersLib.ColorHelper.green;this.ƀjm.createPhysicsEntityShapeVisual(t,e.testLayerID,{overridePosition:e.overridePosition,overrideRotation:e.overrideRotation,color:l});}return a}ƀs(t,e){e?.overridePosition&&(t.position=m.vectorToArray(e.overridePosition)),e?.overrideRotation&&(t.angle=e.overrideRotation.value);}ƀdg(t){return t.aabbNeedsUpdate=true,t.updateAABB(),t.aabb}};je=Ro([d(),Io("design:paramtypes",[q])],je);var Oo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},He=class{static{h(this,"CollisionsService");}registerPhysicsWorld(t){t.p2World.on("beginContact",e=>{e.contactEquations.forEach(i=>{this.ƀhy(t,i);});});}step(t,e,i){b.getPhysicsEntities().forEach(r=>{r.ƀax=[];}),t.p2World.narrowphase.contactEquations.forEach(r=>{this.ƀhy(t,r);}),t.bodiesInContactWith.forEach((r,s)=>{this.ƀem(r.p2Body),r.entity.ƀip(t.collisionReports.get(s)||[]);}),t.bodiesInContactWith.clear(),t.collisionReports.clear();}ƀem(t){let e=m.arrayToVector(t.velocity);e.length>10.8&&(e=e.normalize(10.8),t.velocity=m.vectorToArray(e)),t.angularVelocity=Math.min(Math.max(t.angularVelocity,-10.01),10.01);}ƀhy(t,e){let i=b.getFromP2BodyID(e.bodyA.id),r=b.getFromP2BodyID(e.bodyB.id);if(i&&r){t.bodiesInContactWith.set(e.bodyA.id,{p2Body:e.bodyA,entity:i}),t.bodiesInContactWith.set(e.bodyB.id,{p2Body:e.bodyB,entity:r});let s=t.collisionReports.get(e.bodyA.id)||[],n=t.collisionReports.get(e.bodyB.id)||[],{collisionDetailsA:a,collisionDetailsB:l}=this.ƀdl(i,r,e);s.push({self:a,target:l}),n.push({self:l,target:a}),t.collisionReports.set(e.bodyA.id,s),t.collisionReports.set(e.bodyB.id,n);}else console.warn("ContactEquationOrganiser: Entity not found for contact equation",e);}ƀdl(t,e,i){let r=t.convertToDTO(),s=e.convertToDTO(),n=m.arrayToVector(i.contactPointA),a=m.arrayToVector(i.contactPointB),{normalA:l,normalB:c}=this.ƀdz(i);return {collisionDetailsA:this.ƀdk(r,i.bodyA.mass,n,l,t.area),collisionDetailsB:this.ƀdk(s,i.bodyB.mass,a,c,e.area)}}ƀdk(t,e,i,r,s){let n,a=i.add(t.position);return {body:t,getPositionReletiveToObject:h(()=>(n||(n=i.rotate(t.rotation.multiply(-1).vector)),n),"getPositionReletiveToObject"),getPositionOnWorld:h(()=>(a||(a=i.add(t.position)),a),"getPositionOnWorld"),position:i,mass:e,area:s,normal:r}}ƀdz(t){let e=m.arrayToVector(t.normalA),i=e.multiplyNumber(-1);return {normalA:e,normalB:i}}};He=Oo([d()],He);var Mo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Do=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},We=class extends $t{static{h(this,"BorderEntity");}constructor(t,e){super(t,e);}};We=Mo([mt(),Do("design:paramtypes",[Number,Object])],We);var Bo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},H=1e4,Ue=class{static{h(this,"BorderService");}createBorders(t,e,i){this.ƀbr(t,new helpersLib.Vector(e.x/2,-H/2),new helpersLib.Vector(e.x+H*2,H),i),this.ƀbr(t,new helpersLib.Vector(e.x/2,e.y+H/2),new helpersLib.Vector(e.x+H*2,H),i),this.ƀbr(t,new helpersLib.Vector(-H/2,e.y/2),new helpersLib.Vector(H,e.y+H*2),i),this.ƀbr(t,new helpersLib.Vector(e.x+H/2,e.y/2),new helpersLib.Vector(H,e.y+H*2),i);}ƀbr(t,e,i,r){return new We(t,{shapeDefinition:{materialName:ht,group:r,shapeType:exports.PhysicsShapeType.Rectangle,shapeData:i},position:e,rotation:helpersLib.Radian.get0,addInEmptySpace:false,includeOnPathfinding:true}).attachByID(t)}};Ue=Bo([d()],Ue);var Fo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},hr=new W__default.default.Material,_o={id:ht,density:Number.MAX_SAFE_INTEGER,velocityDrag:1,rotationalDrag:1},_t=class{static{h(this,"MaterialsService");}createMaterials(t,e,i,r){let s=new Map,n=new Map;if(i.forEach(a=>{s.set(a.id,new W__default.default.Material),n.set(a.id,a);}),s.has(ht))throw new Error(`Material with name ${ht} cannot be defined, pick another name for the material.`);return s.set(ht,hr),n.set(ht,_o),this.ƀc(t,e,i,r,s),{materials:s,materialDefinitions:n}}getMaterial(t,e){let i=v.getInstanceByIDOrFail(t);return this.ƀdx(e,i.materials)}getMaterialDefinition(t,e){let i=v.getInstanceByIDOrFail(t);return this.ƀdw(e,i.materialDefinitions)}ƀdx(t,e){let i=e.get(t);if(!i)throw new Error(`Could not find material with name ${t}.`);return i}ƀdw(t,e){let i=e.get(t);if(!i)throw new Error(`Could not find material definition with name ${t}.`);return i}ƀc(t,e,i,r,s){this.ƀdp(i.map(n=>n.id),r).forEach(n=>{let a=this.ƀdx(n.materialA,s),l=this.ƀdx(n.materialB,s);t.addContactMaterial(new W__default.default.ContactMaterial(a,l,{friction:n.friction,restitution:n.bounciness,stiffness:n.stiffness,relaxation:n.relaxation}));}),this.ƀd(t,e,i,s);}ƀdp(t,e){let i=new Map;e.forEach(s=>{let n=i.get(s.materialA);n||(n=new Map,i.set(s.materialA,n)),n.set(s.materialB,s);});let r=[];return t.forEach((s,n)=>{for(let a=n;a<t.length;a++){let l=t[a],c=i.get(s)?.get(l);c?r.push(c):r.push({materialA:s,materialB:l,friction:0,bounciness:0,relaxation:4,stiffness:1e6});}}),r}ƀd(t,e,i,r){i.forEach(s=>{let n=this.ƀdx(s.id,r);t.addContactMaterial(new W__default.default.ContactMaterial(n,hr,{friction:e.friction,restitution:e.bounciness,stiffness:e.stiffness,relaxation:e.relaxation}));});}};_t=Fo([d()],_t);var Lo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Vo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Lt=class{static{h(this,"PhysicsWorldService");}constructor(t,e,i,r,s){this.ƀgb=t,this.ƀai=e,this.ƀy=i,this.ƀay=r,this.ƀhe=s;}createPhysicsWorld(t){let e=new W__default.default.World({gravity:[0,0]}),{materials:i,materialDefinitions:r}=this.ƀgb.createMaterials(e,t.borderProperties,t.materialDefinitions,t.materialContactDefinitions),{physicsBodyGroupToP2Group:s,physicsBodyGroupToP2Mask:n}=this.ƀhe.createBodyGroupsAndMasks(t.physicsBodyGroups,t.interactingBodyGroups),a=new v(t.mapSize,t.modifyUpdateCycle,e,i,r,s,n).attachByID(t.attachTo);return a.onDestroy().tap(()=>{e.clear(),t.modifyUpdateCycle&&y.cleanUpdateModifier();}).attachToRoot(),this.ƀai.createBorders(a.id,t.mapSize,t.borderProperties.borderBodyGroup),this.ƀay.registerPhysicsWorld(a),t.modifyUpdateCycle?y.registerUpdateModifier((l,c)=>this.ƀjg(a,l,c)):y.beforeSceneUpdateAction.subscribe(({time:l,delta:c})=>{this.ƀjg(a,l,c);}).attach(a),a.id}addBody(t,e,i,r,s){let n=v.getInstanceByIDOrFail(t);if(i){let a=this.ƀy.findClosestAvailableSpace(n,e,r);return a?(e.position[0]+=a.x,e.position[1]+=a.y,n.p2World.addBody(e),s&&this.ƀy.onBodyAdded(n,e,r),true):false}else return n.p2World.addBody(e),s&&this.ƀy.onBodyAdded(n,e,r),true}removeBody(t,e){v.getInstanceByID(t)?.p2World.removeBody(e);}ƀjg(t,e,i){if(!t.paused.value){t.availabilityGridCache.clear(),t.vectorFieldCache.clear(),t.p2World.step(i,i,i),t.modifyUpdateCycle&&(i=t.p2World.time-t.lastP2Time.value);let r=e+i;this.ƀay.step(t,r,i),t.onPhysicsStep.trigger({time:r,delta:i}),t.lastP2Time.value=t.p2World.time;}return i}setPaused(t,e){v.getInstanceByIDOrFail(e).paused.set(t);}};Lt=Lo([d(),Vo("design:paramtypes",[_t,Ue,ct,He,K])],Lt);var jo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Nt=class{static{h(this,"RayCastingService");}castClosest(t,e,i){let r=new W__default.default.RaycastResult,s=new W__default.default.Ray({mode:W__default.default.Ray.CLOSEST,from:m.vectorToArray(e.from),to:m.vectorToArray(e.to),collisionGroup:t.physicsBodyGroupToP2Group.get(i),collisionMask:t.physicsBodyGroupToP2Mask.get(i)});if(t.p2World.raycast(r,s),r.hasHit())return this.ƀbm(r,e)}castAllFirstContacts(t,e,i){let r=new Map,s=new W__default.default.Ray({mode:W__default.default.Ray.ALL,from:m.vectorToArray(e.from),to:m.vectorToArray(e.to),collisionGroup:t.physicsBodyGroupToP2Group.get(i),collisionMask:t.physicsBodyGroupToP2Mask.get(i),callback:h(n=>{let a=r.get(n.body);!r.has(n.body)||n.fraction<a.fraction?r.set(n.body,this.ƀbm(n,e)):n.fraction===a.fraction&&a.isExternal()&&r.set(n.body,this.ƀbm(n,e));},"callback")});return t.p2World.raycast(new W__default.default.RaycastResult,s),Array.from(r.values())}ƀbm(t,e){let i=t.fraction,r=m.arrayToVector(t.normal),s,n,a;return {body:t.body,hitPosition:h(()=>(s===void 0&&(s=e.from.lerp(e.to,i)),s),"hitPosition"),hitDistance:h(()=>(n===void 0&&(n=e.length*i),n),"hitDistance"),isExternal:h(()=>(a===void 0&&(a=e.fromTo.dotProduct(r)<0),a),"isExternal"),normal:r,fraction:i,line:e}}};Nt=jo([d()],Nt);var Ho=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},ut=class{static{h(this,"ImpactService");}applyImpulse(t,e,i,r){let s=i.normalize(r),n=[e.x-t.position[0],e.y-t.position[1]];t.applyImpulse(m.vectorToArray(s),n);}};ut=Ho([d()],ut);var Wo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},jt=class{static{h(this,"RayCastHitConverterService");}toExplosionHits(t,e=true){let i=new Map;return t.forEach(r=>{r.hits.forEach(s=>{let n=i.get(s.body);if(n){let a=s.fraction<n.closestRaycastHit.fraction?s:n.closestRaycastHit;n.rayCastHits.push(s),i.set(s.body,{hitCount:n.hitCount+1,closestRaycastHit:a,rayCastHits:n.rayCastHits,isExternal:e?n.isExternal:n.isExternal&&s.isExternal(),explosionCenter:s.line.from});}else {let a=s.isExternal();i.set(s.body,{hitCount:1,closestRaycastHit:s,rayCastHits:[s],isExternal:a,explosionCenter:s.line.from});}});}),[...i.values()].map(r=>this.ƀbn(r,t.length))}ƀbn(t,e){let i=t.hitCount/e,r=t.rayCastHits;if(t.isExternal)return {body:b.getFromP2BodyIDOrFail(t.closestRaycastHit.body.id).convertToDTO(),p2Body:t.closestRaycastHit.body,isExternal:true,normal:t.closestRaycastHit.normal,fraction:t.closestRaycastHit.fraction,ratioOfHits:i,raycastResults:r,getHitPosition:t.closestRaycastHit.hitPosition,getHitDistance:t.closestRaycastHit.hitDistance};{let s=m.arrayToVector(t.closestRaycastHit.body.position);return {body:b.getFromP2BodyIDOrFail(t.closestRaycastHit.body.id).convertToDTO(),p2Body:t.closestRaycastHit.body,isExternal:false,normal:helpersLib.Vector.fromTo(s,t.explosionCenter).normalize(),fraction:0,ratioOfHits:i,raycastResults:r,getHitPosition:h(()=>t.explosionCenter,"getHitPosition"),getHitDistance:h(()=>0,"getHitDistance")}}}};jt=Wo([d()],jt);var $o=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},zo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Yo=15,ze=class{static{h(this,"ElipticExplosionService");}constructor(t,e,i,r){this.ƀhu=t,this.ƀjm=e,this.ƀht=i,this.ƀfb=r;}createElipticExplosion(t,e,i,r,s,n,a){let l=v.getInstanceByIDOrFail(t),c=this.ƀcc(e,i,r,s,a?.hitOnlyClosest===true,l),p=this.ƀht.toExplosionHits(c,false);return this.ƀq(p,n),a?.testLayerID&&this.ƀjm.createElipticExplosionDebugVisual(l,a.testLayerID,c,e,i,r,a.debugRayDuration),p.map(f=>{let{p2Body:g,...T}=f;return T})}ƀcc(t,e,i,r,s,n){let a=[],l=e.vector,c=e.add(helpersLib.Radian.get90).vector,p=c.normalize(i.x);a.push(new helpersLib.Line(t,t.add(p))),a.push(new helpersLib.Line(t,t.add(p.multiplyNumber(-1))));let 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/Yo),T=i.y/(g*2+1)*2,J=l.normalize(T),ot=i.x,Wt=Math.pow(i.y,2);return helpersLib.ArrayHelper.createIntegerArray(g).forEach(nt=>{let tt=T*(nt+1),Ti=J.multiplyNumber(nt+1),he=c.normalize(this.ƀeh(ot,Wt,tt)),le=t.add(Ti);a.push(new helpersLib.Line(le,le.add(he))),a.push(new helpersLib.Line(le,le.add(he.multiplyNumber(-1))));let ce=t.add(Ti.multiplyNumber(-1));a.push(new helpersLib.Line(ce,ce.add(he))),a.push(new helpersLib.Line(ce,ce.add(he.multiplyNumber(-1))));}),a.map(nt=>{if(s){let tt=this.ƀhu.castClosest(n,nt,r);return {line:nt,hits:tt?[tt]:[]}}else {let tt=this.ƀhu.castAllFirstContacts(n,nt,r);return {line:nt,hits:tt}}})}ƀeh(t,e,i){return Math.sqrt(1-Math.pow(i,2)/e)*t}ƀq(t,e){t.forEach(i=>{i.raycastResults.forEach(r=>{let s,n;r.isExternal()?(s=r.line.fromTo,n=e*2):(s=r.line.fromTo.multiplyNumber(-1),n=e*(1-r.fraction)*8),this.ƀfb.applyImpulse(r.body,r.hitPosition(),s,n);});});}};ze=$o([d(),zo("design:paramtypes",[Nt,q,jt,ut])],ze);var Xo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Zo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},ke=class{static{h(this,"ExplosionService");}constructor(t,e,i,r){this.ƀhu=t,this.ƀjm=e,this.ƀht=i,this.ƀfb=r;}createExplosion(t,e,i,r,s,n){let a=v.getInstanceByIDOrFail(t),l=this.ƀee(i),c=this.ƀcc(e,i,r,l,n?.hitOnlyClosest===true,a),p=this.ƀht.toExplosionHits(c);return this.ƀq(e,i,s,l,p),n?.testLayerID&&this.ƀjm.createExplosionDebugVisual(a,n.testLayerID,c,e,i,n.debugRayDuration),p}ƀcc(t,e,i,r,s,n){let a=new helpersLib.Radian(helpersLib.PI_360/r),l=new helpersLib.Vector(0,-e),c=a.vector;return helpersLib.ArrayHelper.createEmptyArray(r).map(()=>{let p=t.add(l);return l=l.rotate(c),new helpersLib.Line(t,p)}).map(p=>{if(s){let f=this.ƀhu.castClosest(n,p,i);return {line:p,hits:f?[f]:[]}}else {let f=this.ƀhu.castAllFirstContacts(n,p,i);return {line:p,hits:f}}})}ƀq(t,e,i,r,s){s.forEach(n=>{if(n.isExternal)n.raycastResults.forEach(a=>{let l=i*(1-a.fraction);this.ƀfb.applyImpulse(a.body,a.hitPosition(),a.line.fromTo,l);});else {let a=helpersLib.Vector.fromTo(t,m.arrayToVector(n.p2Body.position)),l=a.length/e,c=i*r*l/2;this.ƀfb.applyImpulse(n.p2Body,n.getHitPosition(),a,c);}});}ƀee(t){return t>100?Math.floor(t*.3):Math.floor(t*.26+4)}};ke=Xo([d(),Zo("design:paramtypes",[Nt,q,jt,ut])],ke);var en=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Ht=class{static{h(this,"PhysicsQueryService");}getMapSize(t){let e=v.getInstanceByIDOrFail(t);return {dimentions:e.mapSize,center:e.mapSizeCenter}}subscribeToPhysicsStep(t,e){return v.getInstanceByIDOrFail(t).onPhysicsStep.subscribe(e)}};Ht=en([d()],Ht);var rn=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},sn=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Si=class{static{h(this,"PhysicsController");}constructor(t,e,i,r,s,n,a,l){this.ƀhl=t,this.ƀha=e,this.ƀjm=i,this.ƀcy=r,this.ƀct=s,this.ƀes=n,this.ƀhk=a,this.ƀfb=l;}createPhysicsWorld(t){return this.ƀhl.createPhysicsWorld(t)}getMapSize(t){return this.ƀhk.getMapSize(t)}setPaused(t,e){this.ƀhl.setPaused(t,e);}hitTest(t,e){let i=b.getPhysicsInstanceOrFail(t);return this.ƀes.hitTest(i.p2Body,e)}findPath(t,e,i,r,s){return this.ƀha.findPathAStar(t,e,i,r,{neighborType:s})}findPathDirection(t,e,i,r){return this.ƀha.findPathDirection(t,e,i,r)}applyImpulse(t,e,i,r){let s=b.getPhysicsInstanceOrFail(t);this.ƀfb.applyImpulse(s.p2Body,e,i,r);}createExplosion(t,e,i,r,s,n){return this.ƀcy.createExplosion(t,e,i,r,s,n)}createElipticExplosion(t,e,i,r,s,n,a){return this.ƀct.createElipticExplosion(t,e,i,r,s,n,a)}printPathfindingTestGrid(t,e,i,r,s,n){this.ƀjm.printPathfindingTestGrid(t,e,i,r,s,n);}};Si=rn([et({controllerLink:j}),sn("design:paramtypes",[Lt,Ft,q,ke,ze,je,Ht,ut])],Si);var on=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Je=class{static{h(this,"ShapeCreationService");}createBody(t,e,i,r,s){let n=v.getInstanceByIDOrFail(t);if(!n.physicsBodyGroupToP2Group.has(e.shapeDefinition.group))throw new Error(`Physics body group "${e.shapeDefinition.group}" not found`);switch(e.shapeDefinition.shapeType){case exports.PhysicsShapeType.Point:return this.ƀbt(n,void 0,i,r,e.shapeDefinition.group,s);case exports.PhysicsShapeType.Circle:return this.ƀbt(n,e.shapeDefinition.shapeData,i,r,e.shapeDefinition.group,s);case exports.PhysicsShapeType.Polygon:return this.ƀcb(n,e.shapeDefinition.shapeData,i,r,e.shapeDefinition.group,s);case exports.PhysicsShapeType.Rectangle:return this.ƀcd(n,e.shapeDefinition.shapeData,i,r,e.shapeDefinition.group,s)}}ƀbt(t,e,i,r,s,n){let a=new W__default.default.Circle({collisionGroup:t.physicsBodyGroupToP2Group.get(s),collisionMask:t.physicsBodyGroupToP2Mask.get(s),radius:e});a.material=i;let l=new W__default.default.Body({type:n==="dynamic"?W__default.default.Body.DYNAMIC:W__default.default.Body.STATIC,mass:r.density,damping:r.velocityDrag,angularDamping:r.rotationalDrag});return l.addShape(a),l}ƀcb(t,e,i,r,s,n){let a=t.physicsBodyGroupToP2Group.get(s),l=t.physicsBodyGroupToP2Mask.get(s),c=e.map(g=>new W__default.default.Convex({vertices:g.map(T=>[T.x,T.y]),collisionGroup:a,collisionMask:l})).map(g=>(g.material=i,g)),p=c.reduce((g,T)=>g+T.area,0),f=new W__default.default.Body({type:n==="dynamic"?W__default.default.Body.DYNAMIC:W__default.default.Body.STATIC,mass:p,damping:r.velocityDrag,angularDamping:r.rotationalDrag});return c.forEach(g=>f.addShape(g)),f.setDensity(r.density),f}ƀcd(t,e,i,r,s,n){let a=new W__default.default.Box({width:e.x,height:e.y,collisionGroup:t.physicsBodyGroupToP2Group.get(s),collisionMask:t.physicsBodyGroupToP2Mask.get(s)});a.material=i;let l=e.x*e.y,c=new W__default.default.Body({type:n==="dynamic"?W__default.default.Body.DYNAMIC:W__default.default.Body.STATIC,mass:l,damping:r.velocityDrag,angularDamping:r.rotationalDrag});return c.addShape(a),c.setDensity(r.density),c}};Je=on([d()],Je);var nn=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},an=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Ci=class{static{h(this,"PhysicsInternalController");}constructor(t,e,i,r,s){this.ƀhl=t,this.ƀhj=e,this.ƀiu=i,this.ƀhk=r,this.ƀhe=s;}createBody(t,e,i,r,s){return this.ƀiu.createBody(t,e,i,r,s)}getMaterial(t,e){return this.ƀhj.getMaterial(t,e)}getMaterialDefinition(t,e){return this.ƀhj.getMaterialDefinition(t,e)}getGroupConstant(t,e){return this.ƀhe.getGroupConstant(t,e)}getMaskConstant(t,e){return this.ƀhe.getMaskConstant(t,e)}addBody(t,e,i,r,s){return this.ƀhl.addBody(t,e,i,r,s)}removeBody(t,e){this.ƀhl.removeBody(t,e);}subscribeToPhysicsStep(t,e){return this.ƀhk.subscribeToPhysicsStep(t,e)}};Ci=nn([et({controllerLink:Y}),an("design:paramtypes",[Lt,_t,Je,Ht,K])],Ci);exports.AnimationFlicker=Oi;exports.AnimationInterpolationFunctions=X;exports.Animations=S;exports.Animator=O;exports.BORDER_MATERIAL_NAME=ht;exports.BardLegendsHardReset=G;exports.Camera=Kt;exports.ClosestAvailableSpaceHelper=oe;exports.Container=u;exports.ControllerDecorator=et;exports.ControllerLink=U;exports.DEFAULT_RESOLUTION=R;exports.DeltaTime=vi;exports.DisplayObjectArray=pi;exports.Entity=$;exports.EntityDecorator=mt;exports.FadeInContent=Qi;exports.FadeInStateAnimation=_e;exports.Game=w;exports.Graphics=E;exports.ImmovablePhysicsEntity=$t;exports.Menu=Bt;exports.MenuEntity=ui;exports.MouseWheelListenerUI=se;exports.MovableEntity=Ze;exports.MovablePhysicsEntity=Ke;exports.PathFinder=ne;exports.PhysicsEntity=b;exports.Placeholder=hi;exports.PositionConversionHelper=Yt;exports.ROTATIONAL_SPEED_LIMIT=qe;exports.RichText=li;exports.SPEED_LIMIT=Qe;exports.Scene=St;exports.SceneDecorator=wr;exports.ScrollAreaUI=gi;exports.ScrollMaskUI=xt;exports.Service=P;exports.ServiceDecorator=d;exports.SingletonEntity=gt;exports.SlideInContent=ir;exports.SlideInContentByIndex=xi;exports.SlideStateAnimation=Ve;exports.Sprite=Z;exports.StateAnimation=Le;exports.Text=ie;exports.UpdatableContainer=ci;exports.UpdateCycle=y;exports.VectorFieldPathFinder=ae;exports.VectorSet=bt;exports.View=Ut;exports.ViewDecorator=Xe;
|
package/dist/index.mjs
CHANGED
|
@@ -64,4 +64,4 @@ import {Action,ActionLib,SingleEvent,IDAttachable,Variable,Attachable,ActionSubs
|
|
|
64
64
|
highestAlpha = centerColor.a;`,e+=`
|
|
65
65
|
|
|
66
66
|
gl_FragColor = vec4(color, 1.0) * highestAlpha;
|
|
67
|
-
}`,e}constructor(t,e){if(super(o.ƀef(),o.ƀdo(t*R)),this.ƀcw=t,this.resolution=R,this.ƀcw=t*R,this.ƀcw<0)throw new Error("ExpandWithColorFilter: Expand * resolution cannot be smaller than 0");if(this.ƀcw>10)throw new Error("ExpandWithColorFilter: Expand * resolution cannot be higher than 10");Comparator.isInteger(this.ƀcw)||(this.ƀcw=Math.floor(this.ƀcw));let i=ColorHelper.normalize(e);this.uniforms.color=new Float32Array([i.red,i.green,i.blue]),this.uniforms.expandSquared=this.ƀcw*this.ƀcw,this.padding=this.ƀcw;}apply(t,e,i,r){this.uniforms.pixelSize=new Float32Array([1/(e.width*R),1/(e.height*R)]),t.applyFilter(this,e,i,r);}};var Ee=class extends V.Filter{static{h(this,"GlowFilter");}constructor(t){super(),this.resolution=R;let e={blurRadius:1,expand:0,color:ColorHelper.white,blendMode:Et.Screen,...t};this.ƀcx=new Te(e.expand,e.color);let i=Comparator.isNumber(e.blurRadius)?new Vector(e.blurRadius,e.blurRadius):e.blurRadius;this.ƀah=new Rt(i),this.padding=Math.max(i.x,i.y)+e.expand,this.ƀah.blendMode=V.BLEND_MODES.SCREEN;}apply(t,e,i,r){let s=t.getFilterTexture();this.ƀcx.apply(t,e,s,V.CLEAR_MODES.CLEAR),this.ƀah.apply(t,s,i,r),t.returnFilterTexture(s);}};var qt=class o{static{h(this,"GlowSpriteGenerator");}static{this.ƀei=new Map;}static createGlowSpriteFromSprite(t,e,i){let r=this.ƀbc(e),s=Comparator.isNumber(r.blurRadius)?new Vector(r.blurRadius,r.blurRadius):r.blurRadius,n=this.ƀdq(t.texture,s,r.expand,r.color,i),a=new V.Sprite(n);return this.ƀir(a,Vector.fromVec2(t.anchor),Math.max(s.x,s.y)+r.expand),a.alpha=r.glowAlpha,a.blendMode=r.blendMode,a}static ƀdq(t,e,i,r,s){if(!t.id)throw new Error("GlowSpriteGenerator: baseTexture should have an id");if(s){let n=`${t.id}-${i}-${e.x}-${e.y}-${r.r}-${r.g}-${r.b}`;if(o.ƀei.has(n))return o.ƀei.get(n);{let a=this.ƀdr(t,e,i,r);return o.ƀei.set(n,a),a}}else return this.ƀdr(t,e,i,r)}static ƀdr(t,e,i,r){let s=new V.Sprite(t);this.ƀcz(s,Math.max(e.x,e.y)+i),s.filters=[new Ee({blurRadius:e,expand:i,color:r})];let n=w.instance.renderer.generateTexture(s);return n.id=M.insertAsset(n),s.destroy(),n}static ƀir(t,e,i){let r=(i+(t.width-i*2)*e.x)/t.width,s=(i+(t.height-i*2)*e.y)/t.height;t.anchor.set(r,s);}static ƀcz(t,e){if(t.isSprite){let s=new V.Graphics;t.addChild(s);}let i=t.width,r=t.height;t.calculateBounds=function(){this._bounds.clear(),this._bounds.addFrame(this.transform,-e,-e,i+e,r+e);};}static ƀbc(t){let e={glowAlpha:1,blurRadius:5,expand:0,color:ColorHelper.white,blendMode:Et.Add};return t&&(e={...e,...t}),e}};G.onHardReset.subscribe(()=>{qt.ƀei.clear();}).attachToRoot();var Z=class o extends u{static{h(this,"Sprite");}static createByName(t){let e=w.setupOptions.spriteDefinitions[t];if(!e)throw new Error(`Sprite: Could not find sprite definition with name ${t}.`);return new o(e)}static createSnapshotSprite(t){let e=t.pixiContainer,i=e.parent;i&&i.removeChild(e);let r=w.instance.renderer.generateTexture(e,{resolution:2,scaleMode:V.SCALE_MODES.LINEAR,multisample:V.MSAA_QUALITY.HIGH});i&&i.addChild(e);let n={id:M.insertAsset(r),scale:t.scale,size:t.size,anchor:Vector.zero,boundingShapes:void 0,destroyAssetOnDestroy:true};return new o(n,{ignoreAnchor:true})}constructor(t,e={}){if(super(),this.ƀjq=1,!t)throw new Error("Sprite: spriteDefinition cannot be nullish!");this.ƀiz=t,this.pixiSprite=new V.Sprite(M.getAsset(t.id)),this.pixiContainer.addChild(this.pixiSprite),this.setTextureScale(t.scale),e.textureSize&&(this.pixiSprite.width=e.textureSize.x,this.pixiSprite.height=e.textureSize.y),e.texturePosition&&this.pixiSprite.position.set(e.texturePosition.x,e.texturePosition.y),e.ignoreAnchor||this.pixiSprite.anchor.set(t.anchor.x,t.anchor.y);}destroy(){this.destroyed||(super.destroy(),this.ƀfz?.destroy(),this.ƀaj?.destroy(),this.ƀiz.destroyAssetOnDestroy&&(M.destroyAsset(this.ƀiz.id),this.ƀhn&&M.destroyAsset(this.ƀhn.texture.id)),this.ƀhn&&!this.ƀhn.destroyed&&this.ƀhn.destroy());}setTextureScale(t){return this.textureScale=t,this}get textureScale(){return this.ƀjq}set textureScale(t){this.ƀjq=t,this.pixiSprite.scale.set(t);}get size(){return new Vector(this.pixiSprite.width,this.pixiSprite.height)}getMask(){return this.pixiSprite}set interactive(t){super.interactive=t,t&&this.ƀiz.boundingShapes&&!this.pixiContainer.hitArea&&(this.pixiContainer.hitArea=new xe(this.ƀiz.boundingShapes,this.size,Vector.fromVec2(this.ƀiz.anchor)));}setMipmap(t){return this.mipmap=t,this}get mipmap(){return this.pixiSprite.texture.baseTexture.mipmap===V.MIPMAP_MODES.ON}set mipmap(t){t?this.pixiSprite.texture.baseTexture.mipmap=V.MIPMAP_MODES.ON:this.pixiSprite.texture.baseTexture.mipmap=V.MIPMAP_MODES.OFF;}setBlendMode(t){return this.blendMode=t,this}get blendMode(){return this.pixiSprite.blendMode}set blendMode(t){this.pixiSprite.blendMode=t;}setTint(t){return this.tint=t,this}get tint(){return new V.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.ƀhn)return this.ƀhn.alpha;throw new Error("Sprite: getGlowFilterAlpha cannot be called before glow filter is added.")}set glowAlpha(t){if(this.ƀhn)this.ƀhn.alpha=t;else throw new Error("Sprite: setGlowFilterAlpha cannot be called before glow filter is added.")}getAlignmentVector(t){let e=Vector.fromVec2(this.ƀiz.anchor).to(t);return new Vector(this.size.x*e.x,this.size.y*e.y)}setGlowEffect(t){return this.ƀhn&&(this.ƀhn.destroy(),this.ƀhn=void 0),t&&(this.ƀhn=qt.createGlowSpriteFromSprite(this.pixiSprite,t,!this.ƀiz.destroyAssetOnDestroy),this.ƀhn.position.set(this.pixiSprite.x,this.pixiSprite.y),this.ƀhn.scale.set(this.pixiSprite.scale.x,this.pixiSprite.scale.y),this.pixiContainer.addChild(this.ƀhn)),this}showBoundingShape(t){return t?this.ƀaj||(this.ƀaj=this.ƀbs().setAlpha(.3).setTint({r:0,g:0,b:200}).displayParent(this)):this.ƀaj&&(this.ƀaj.destroy(),this.ƀaj=void 0),this}getBoundingMask(){if(!this.ƀfz){if(!this.ƀiz.boundingShapes)throw new Error("Sprite: cropOverflowingParts cannot be used without polygonDefinition!");this.ƀfz=this.ƀbs(),this.ƀfz.pixiSprite._maskRefCount=Number.POSITIVE_INFINITY,this.ƀfz.pixiSprite.renderable=false,this.ƀfz.displayParent(this);}return this.ƀfz}ƀbs(){if(!this.ƀiz.boundingShapes)throw new Error("Sprite: bounding shape cannot be created without polygonDefinition!");return E.createPolygon(this.ƀiz.boundingShapes,ColorHelper.white).toSprite().attach(this)}download(){let t=w.instance.renderer.extract.canvas(this.pixiContainer);if(!t.toBlob)throw new Error("Sprite: canvas.toBlob is undefined!");return t.toBlob(e=>{if(!e)throw new Error("Sprite: blob is undefined!");let i=document.createElement("a");document.body.append(i),i.download="sprite.png",i.href=URL.createObjectURL(e),i.click(),i.remove();},"image/png"),this}};var Re=class{static{h(this,"DashedLineHelper");}static getLines(t,e,i){let r=Vector.fromTo(t,e),s=r.normalize(),n=r.length-i.lineStartGap-i.lineEndGap,a=[];if(n<=0)return a;let l=t.add(s.normalize(i.lineStartGap));if(n<=i.dashGap+i.dashLength*.5)return a.push({from:l,to:l.add(s.normalize(n))}),a;let c=n-i.dashGap,p=i.dashLength+i.dashGap,f=Math.floor(c/p),g=c-p*f;f>=1&&g<i.dashLength&&(g+=p,f--);let T=s.normalize(g/2),J=s.normalize(i.dashGap);if(a.push({from:l,to:l.add(T)}),l=l.add(T),f>0){let ot=s.normalize(i.dashLength);ArrayHelper.createEmptyArray(f).forEach(()=>{l=l.add(J),a.push({from:l,to:l.add(ot)}),l=l.add(ot);});}return l=l.add(J),a.push({from:l,to:l.add(T)}),a}};var E=class o extends u{static{h(this,"Graphics");}static{this.ƀcq=new Map;}static createArrow(t,e){let i=new V.Graphics,r=[[{x:0,y:-t/2},{x:t*3/8,y:-t/8},{x:t/4,y:0},{x:0,y:-t/4},{x:-t/4,y:0},{x:-t*3/8,y:-t/8}],[{x:0,y:-t/4},{x:t/8-t/30,y:-t/8-t/30},{x:t/8-t/30,y:t*7/16},{x:-t/8+t/30,y:t*7/16},{x:-t/8+t/30,y:-t/8-t/30}]];return i.beginFill(e),r.forEach(s=>{i.drawPolygon(s.map(n=>new V.Point(n.x,n.y)));}),i.endFill(),new o(i,JSON.stringify({type:"arrow",size:t,color:e}))}static createDashedLine(t,e,i){let r={width:2,dashLength:10,dashGap:4,lineStartGap:0,lineEndGap:0,color:ColorHelper.white,...i},s=new V.Graphics;return s.lineStyle(r.width,r.color),Re.getLines(t,e,r).forEach(a=>{s.moveTo(a.from.x,a.from.y).lineTo(a.to.x,a.to.y);}),new o(s,JSON.stringify({type:"dashedLine",from:t,to:e,options:r}))}static createVector(t,e,i){let r=new V.Graphics;return r.lineStyle(2,i),r.moveTo(t.x,t.y),r.lineTo(e.x,e.y),r.lineStyle(1,i),r.beginFill(ColorHelper.white),r.drawCircle(t.x,t.y,3),r.endFill(),new o(r,JSON.stringify({type:"line",start:t,end:e,color:i}))}static createRectangleBorders(t,e,i){let r=new V.Graphics;return r.beginFill(i),r.drawRect(0,0,t.x,e),r.drawRect(0,e,e,t.y-e*2),r.drawRect(t.x-e,e,e,t.y-e*2),r.drawRect(0,t.y-e,t.x,e),r.endFill(),new o(r,JSON.stringify({type:"rectangle-borders",size:t,borderSize:e,color:i}))}static createRectangle(t,e=ColorHelper.white){let i=new V.Graphics;return i.beginFill(e),i.drawRect(0,0,t.x,t.y),i.endFill(),new o(i,JSON.stringify({type:"rectangle",size:t,color:e}))}static createCircle(t,e){let i=new V.Graphics;return i.beginFill(e),i.drawCircle(0,0,t),i.endFill(),new o(i,JSON.stringify({type:"circle",radius:t,color:e}))}static createElipse(t,e){let i=new V.Graphics;return i.beginFill(e),i.drawEllipse(0,0,t.x,t.y),i.endFill(),new o(i,JSON.stringify({type:"elipse",size:t,color:e}))}static createPolygon(t,e){let i=new V.Graphics,r=JSON.stringify({type:"polygon",polygon:t,color:e});return i.beginFill(e),t.forEach(s=>{i.drawPolygon(s.map(n=>new V.Point(n.x,n.y)));}),i.endFill(),new o(i,r)}static createRegularPolygon(t,e,i){let r=new V.Graphics,s=new Radian(PI_360/t);r.beginFill(i),r.moveTo(e,0);for(let n=1;n<=t;n++){let l=s.multiply(n).vector.normalize(e),c=e+l.x,p=e+l.y;r.lineTo(c,p);}return r.endFill(),new o(r,JSON.stringify({type:"regular-polygon",sides:t,radius:e,color:i}))}constructor(t,e){super(),this.pixiContainer.addChild(t),this.pixiGraphics=t,this.ƀal=e;}destroy(){this.destroyed||(super.destroy(),!this.pixiGraphics.destroyed&&this.pixiGraphics.destroy());}toSprite(t){let e={cacheName:this.ƀal,cache:false,...t},i=this.ƀec(e.cacheName,e.cache),r={id:i.assetID,scale:1,size:i.bounds,anchor:{x:0,y:0},boundingShapes:void 0,destroyAssetOnDestroy:!e.cache},s=new Z(r,{texturePosition:i.bounds,ignoreAnchor:true});return this.attachToRoot(),this.destroy(),s}ƀec(t,e){if(e){let i=o.ƀcq.get(t);return i||(i=this.ƀce(),o.ƀcq.set(t,i)),i}else return this.ƀce()}ƀce(){let t=w.instance.renderer.generateTexture(this.pixiGraphics);t.id=M.insertAsset(t);let e=this.pixiGraphics.getBounds();return {assetID:t.id,bounds:new Vector(e.x,e.y)}}};var hi=class extends u{static{h(this,"Placeholder");}constructor(t){super(),this.ƀho=new V.Graphics,this.ƀho.beginFill(0,1e-9),this.ƀho.drawRect(0,0,t.x,t.y),this.ƀho.endFill(),this.pixiContainer.addChild(this.ƀho);}destroy(){this.destroyed||(super.destroy(),this.ƀho.destroy());}};var Mt=class{static{h(this,"TextStyleConverter");}static getPixiTextStyle(t){let e={color:ColorHelper.white,align:"center",fontFamily:"Arial",fontStyle:"normal",fontSize:18,lineHeight:void 0,wordWrapWidth:void 0,lineThrough:false,...t},i=t?.dropShadow===true?{}:t?.dropShadow,r={};if(i){let s={blur:4,angle:Radian.get60,distance:10,color:ColorHelper.black,alpha:.5,...i};r={dropShadow:true,dropShadowBlur:s.blur,dropShadowAngle:s.angle.value,dropShadowDistance:s.distance,dropShadowColor:ColorHelper.rgbToHex(s.color),dropShadowAlpha:s.alpha};}return {fontFamily:e.fontFamily,fill:ColorHelper.rgbToHex(e.color),align:e.align,fontSize:e.fontSize,fontStyle:e.fontStyle,lineHeight:e.lineHeight,wordWrapWidth:e.wordWrapWidth,wordWrap:e.wordWrapWidth!==void 0,lineThrough:e.lineThrough,...r}}};var Ae=class{static{h(this,"RichTextDataInConverter");}static process(t,e){let i=new Set(e.styles?Object.keys(e.styles):[]),r=RichTextSeparator.process(t,i),s=this.ƀfc(r,e),n=this.ƀr(s);return this.ƀix(n)}static ƀfc(t,e){let i=new Map,r=new Map,s=h((a,l)=>{if(r.has(l))return r.get(l);let c=Mt.getPixiTextStyle(a);return r.set(l,c),c},"GetPixiStyle");return t.map(a=>{let{style:l,cacheKey:c}=this.ƀdm(a.tags,e,i),p=s(l,c),f=V.TextMetrics.measureText(" ",new V.TextStyle(p),false);return {text:a.text,cacheKey:c,style:l,pixiStyle:p,spaceWidth:f.width}})}static ƀdm(t,e,i){let r=t.join("+");if(i.has(r))return {style:i.get(r),cacheKey:r};let s=this.ƀba(t,e);return i.set(r,s),{style:s,cacheKey:r}}static ƀba(t,e){let i={...e.default};for(let l of t)e.styles&&e.styles[l]&&(i={...i,...e.styles[l]});let{wordWrapWidth:r,align:s,dropShadow:n,...a}=i;return a}static ƀr(t){let e=[],i=[];return t.forEach((r,s)=>{r.text.split(/\r?\n/).forEach((a,l)=>{l>0&&(e.push(i),i=[]),i.push({text:a,cacheKey:r.cacheKey,style:r.style,pixiStyle:r.pixiStyle,spaceWidth:r.spaceWidth});});}),e.push(i),e}static ƀix(t){let e=[];return t.forEach(i=>{if(i.length===0)throw new Error("Internal Error: Line is unexpectedly empty");let r=i.flatMap(s=>this.ƀiy(s.text).map(a=>{let l=new V.TextStyle(s.pixiStyle),c=V.TextMetrics.measureText(a,l,false);return {text:a,whitespace:a.trim()==="",style:{cacheKey:s.cacheKey,style:s.style,pixiStyle:l,height:c.height,ascent:c.fontProperties.ascent,descent:c.fontProperties.descent,width:c.width,spaceWidth:s.spaceWidth}}}));e.push(r);}),e}static ƀiy(t){if(t==="")return [""];let e=[],i="",r=t[0]===" ";for(let s=0;s<t.length;s++){let n=t[s],a=n===" ";a===r?i+=n:(e.push(i),i=n,r=a);}return i&&e.push(i),e}};var Oe=class{static{h(this,"ConsistentSpaceTextWrapper");}static wrapText(t,e){return t.forEach(i=>{i.forEach((r,s)=>{if(e.isSpaceAvailable(new Vector(r.style.width,r.style.height)))if(r.whitespace&&s===i.length-2){let n=i[i.length-1];e.isSpaceAvailable(new Vector(n.style.width+r.style.width,n.style.height))?e.insertWord(r):this.ƀkm(r,e);}else e.insertWord(r);else e.lineIsEmpty?e.insertWord(r):r.whitespace?this.ƀkm(r,e):(e.newLine(),e.insertWord(r));}),e.newLine();}),e.print()}static ƀkm(t,e){let i=Math.max(0,Math.floor(e.remainingWidth/t.style.spaceWidth)),r=Math.max(0,Math.min(i,t.text.length-1));if(r>0){let n={text:" ".repeat(r),whitespace:true,style:{...t.style,width:r*t.style.spaceWidth}};e.insertWord(n);}e.newLine();let s=t.text.length-r-1;if(s>0){let n={text:" ".repeat(s),whitespace:true,style:{...t.style,width:s*t.style.spaceWidth}};e.insertWord(n);}}};var Me=class{static{h(this,"RichTextTypewriter");}get lineIsEmpty(){return this.ƀch.length===0}get remainingWidth(){return this.ƀkl-this.ƀcj}constructor(t,e){if(this.ƀkl=t,this.ƀfr=[],this.ƀch=[],this.ƀcj=0,this.ƀfq=new Vector(0,0),this.ƀci=0,this.ƀeu=e?.horizontalAlignment??"left",this.ƀkd=e?.verticalAlignment??"bottom",e?.rectangleCutOption){if(e.rectangleCutOption.position.x<0||e.rectangleCutOption.position.x>=this.ƀkl||e.rectangleCutOption.position.y<0)throw new Error("Rectangle cut position is out of bounds");this.ƀck={direction:e.rectangleCutOption.direction,rectangle:this.ƀbo(e.rectangleCutOption)};}}isSpaceAvailable(t){let e=Math.max(this.ƀci,t.y),i=this.ƀdu(this.ƀfq.y,this.ƀfq.y+e);return this.ƀcj+t.x<=i}insertWord(t){let e=Math.max(this.ƀci,t.style.height);if(this.ƀch.length===0){let i=this.ƀdv(this.ƀfq.y,this.ƀfq.y+e);this.ƀfq=new Vector(i,this.ƀfq.y),this.ƀcj=this.ƀfq.x;}this.ƀch.push({chunk:t,position:new Vector(this.ƀcj,this.ƀfq.y)}),this.ƀci=e,this.ƀcj+=t.style.width;}newLine(){let t=this.ƀfq.y+this.ƀci,e=this.ƀdv(t,t);this.ƀdb(),this.ƀfq=new Vector(e,t),this.ƀcj=this.ƀfq.x,this.ƀci=0;}print(){return this.ƀdb(),this.ƀfr}ƀdb(){this.ƀch.length>0&&(this.ƀfr.push(this.ƀg(this.ƀch)),this.ƀch=[]);}ƀg(t){return t=this.ƀkf(t),t=this.ƀew(t),t}ƀew(t){if(this.ƀeu==="left")return t;let e=this.ƀfq.y+this.ƀci,i=this.ƀdv(this.ƀfq.y,e),s=this.ƀdu(this.ƀfq.y,e)-i,n=Math.min(s,t.reduce((l,c)=>l+c.chunk.style.width,0)),a;return this.ƀeu==="center"?a=(s-n)/2:a=s-n,t.map(l=>(l={chunk:l.chunk,position:new Vector(l.position.x+a,l.position.y)},l))}ƀkf(t){let e=Math.max(...t.map(r=>r.chunk.style.ascent)),i=Math.max(...t.map(r=>r.chunk.style.descent));return t.map(r=>{let s;switch(this.ƀkd){case "top":s=i-r.chunk.style.descent;break;case "center":s=(i-r.chunk.style.descent+e-r.chunk.style.ascent)*.5;break;case "bottom":s=e-r.chunk.style.ascent;break}return r={chunk:r.chunk,position:new Vector(r.position.x,r.position.y+s)},r})}ƀdv(t,e){return this.ƀck&&(this.ƀck.direction==="topLeft"||this.ƀck.direction==="bottomLeft")&&(this.ƀck.rectangle.isPointInside(new Vector(0,t),{includeEdges:false})||this.ƀck.rectangle.isPointInside(new Vector(0,e),{includeEdges:false}))?this.ƀck.rectangle.bottomRight.x:0}ƀdu(t,e){return this.ƀck&&(this.ƀck.direction==="topRight"||this.ƀck.direction==="bottomRight")&&(this.ƀck.rectangle.isPointInside(new Vector(this.ƀkl,t),{includeEdges:false})||this.ƀck.rectangle.isPointInside(new Vector(this.ƀkl,e),{includeEdges:false}))?this.ƀck.rectangle.topLeft.x:this.ƀkl}ƀbo(t){let e,i;switch(t.direction){case "topRight":e=new Vector(t.position.x,-1/0),i=new Vector(1/0,t.position.y);break;case "topLeft":e=new Vector(-1/0,-1/0),i=t.position;break;case "bottomRight":e=t.position,i=new Vector(1/0,1/0);break;case "bottomLeft":e=new Vector(-1/0,t.position.y),i=new Vector(t.position.x,1/0);break}return new Rectangle(e,i)}};var De=class{static{h(this,"RichTextDataOutConverter");}static process(t){return t=this.ƀgd(t),t=this.ƀjw(t),this.ƀau(t)}static ƀgd(t){return t.map(e=>{let i=[],r,s=true;return e.forEach(n=>{if(!r||r.chunk.style.cacheKey!==n.chunk.style.cacheKey)r&&i.push(r),r=n,s=n.chunk.whitespace;else {let a=r.chunk.text+n.chunk.text;s=n.chunk.whitespace&&s,r={chunk:{text:a,whitespace:s,style:{...r.chunk.style,width:r.chunk.style.width+n.chunk.style.width}},position:r.position};}}),r&&i.push(r),i})}static ƀjw(t){return t.map(e=>{if(e.length===0)return [];let i=e.pop();if(!i.chunk.whitespace||i.chunk.text===""){let r=i.chunk.text.length,s=i.chunk.text.trimEnd();r!==s.length?e.push({chunk:{text:s,whitespace:false,style:{...i.chunk.style,width:i.chunk.style.width-(r-s.length)*i.chunk.style.spaceWidth}},position:i.position}):e.push(i);}return e})}static ƀau(t){return t.flatMap(e=>e.map(i=>({text:i.chunk.text,style:i.chunk.style.style,position:i.position}))).filter(e=>e.text.trim()!=="")}};var ee=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=Ae.process(t,e),r=new Me(e.default.wordWrapWidth??1/0,{rectangleCutOption:e.rectangleCut,verticalAlignment:e.verticalAlignment,horizontalAlignment:e.default.align}),s=Oe.wrapText(i,r);return De.process(s)}};var Cs=1,zi=1/Cs,ie=class extends u{static{h(this,"Text");}get ƀjo(){if(!this.ƀjp){let t=new V.TextStyle(this.ƀhq);this.ƀjp=V.TextMetrics.measureText(this.ƀjn,t);}return this.ƀjp}get ascent(){return this.ƀjo.fontProperties.ascent}constructor(t,e){super(),this.ƀhq=Mt.getPixiTextStyle(e),this.setText(t);}destroy(){this.destroyed||(super.destroy(),!this.ƀhp.destroyed&&this.ƀhp.destroy());}setAnchor(t){return this.anchor=t,this}get anchor(){return new Vector(this.ƀhp.anchor.x,this.ƀhp.anchor.y)}set anchor(t){this.ƀhp.anchor.set(t.x,t.y);}setPosition(t,e){if(e?.holdFrom){let i=this.ƀhq.dropShadowDistance??0,r=new Vector(e.holdFrom.x*i,e.holdFrom.y*i);t=t.add(r);}return super.setPosition(t,e),this}setText(t){return this.ƀjn!==t&&(this.ƀjn=t,this.ƀhx()),this}setColor(t){let e=ColorHelper.rgbToHex(t);return this.ƀhq.fill!==e&&(this.ƀhq.fill=e,this.ƀhx()),this}ƀhx(){this.ƀhp?.destroy(),this.ƀji?.destroy(),this.ƀji=void 0,this.ƀjp=void 0;let t=new V.TextStyle(this.ƀhq);this.ƀhp=new V.Text(this.ƀjn,t),this.ƀhp.scale.set(zi,zi),this.pixiContainer.addChild(this.ƀhp),this.ƀhq.lineThrough&&(this.ƀji=this.ƀe(this.ƀhp,this.ƀhq.fill),this.pixiContainer.addChild(this.ƀji));}ƀe(t,e){let i=V.TextMetrics.measureText(t.text,t.style),r=Math.max(1,Math.round(i.lineHeight*.07)),s=r%2*.5,n=new V.Graphics;n.lineStyle(r,e);let a=0;return i.lines.forEach((l,c)=>{let p=V.TextMetrics.measureText(l,t.style),f=Math.round(a+(p.fontProperties.ascent-p.fontProperties.descent)*.6+p.fontProperties.descent)+s,g=0;t.style.align==="center"?g=0+(t.width-p.width)*.5:t.style.align==="right"&&(g=0+t.width-p.width),g=Math.floor(g),n.moveTo(Math.floor(g),f),n.lineTo(Math.floor(g+p.width),f),a+=p.lineHeight;}),n.endFill(),n}};var li=class extends u{static{h(this,"RichText");}constructor(t,e){super(),ee.process(t,e).forEach(r=>new ie(r.text,r.style).setPosition(r.position).displayParent(this).attach(this));}};var ci=class extends u{static{h(this,"UpdatableContainer");}},pi=class extends u{static{h(this,"DisplayObjectArray");}constructor(t,e){super(),this.ƀbu=t,this.ƀcn=new Map,this.ƀgx={trackBy:h((i,r)=>r,"trackBy"),positioning:{direction:"vertical",spacing:0},...e};}set(t){let e=new Set(this.ƀcn.values()),i=0;t.forEach((r,s)=>{let n=this.ƀgx.trackBy(r,s),a;this.ƀcn.has(n)?(a=this.ƀcn.get(n),e.delete(a),a.update(r)):(a=this.ƀbu(r).displayParent(this).attach(this),this.ƀcn.set(n,a)),this.ƀgx.positioning.direction==="horizontal"?(a.x=i,i+=a.size.x+this.ƀgx.positioning.spacing):(a.y=i,i+=a.size.y+this.ƀgx.positioning.spacing);}),e.forEach(r=>{r.destroy();});}};var Bt=class o extends u{static{h(this,"Menu");}static{this.ƀju=false;}static closeAll(){return o.ƀgw?o.ƀgw.close():SingleEvent.instant()}constructor(t,e){super(),this.ƀgp=new SingleAction,this.onOpen=this.ƀgp.notifier,this.ƀgk=new SingleAction,this.onClose=this.ƀgk.notifier;let i={closeOnBackgroundClick:true,appearAnimationDuration:150,darkeningAlpha:.3,...e};this.setZIndex(100).setAlpha(0),this.ƀn=new O(this,"alpha",{animation:S.easeInOutCubic,duration:i.appearAnimationDuration,reAnimateHandling:_.CompletePrevious,completionHandling:I.StayInCurrentState}),this.ƀz=E.createRectangle(new Vector(1,1),ColorHelper.black).toSprite({cache:true}).setAlpha(i.darkeningAlpha).setInteractive(true).displayParent(this).attach(this),this.ƀgc=Z.createByName(t).setPosition(new Vector(0,0)).setInteractive(true).displayParent(this).attach(this),w.instance.screenSize.subscribe(r=>{this.ƀz.aspectRatio=r.x/r.y,this.ƀz.scale=Math.max(r.x,r.y),this.ƀz.setPosition(Vector.zero,{holdFrom:Vector.half}),this.setPosition(r.multiplyNumber(.5));}).attach(this),o.ƀgw=this,this.onDestroy().tap(()=>{o.ƀgw=void 0;}).attachToRoot(),i.closeOnBackgroundClick&&this.ƀz.on(kt.Click,()=>{o.ƀju||this.ƀp(false);}).attach(this),this.ƀp(true);}getBoundingMask(){return this.ƀgc.getBoundingMask()}close(){return this.ƀp(false)}ƀp(t){if(o.ƀju)throw new Error("WindowUI: cannot iterate while in transition");return o.ƀju=true,this.ƀn.animate({alpha:t?1:0}).chain(this).tap(()=>{o.ƀju=false,t?this.ƀgp.resolve():(this.ƀgk.resolve(),this.destroy());}).chainToRoot()}};var ui=class extends gt{static{h(this,"MenuEntity");}constructor(t,e){super(),this.ƀgn=new SingleAction,this.onCreate=this.ƀgn.notifier,this.ƀgp=new SingleAction,this.onOpen=this.ƀgp.notifier,this.ƀgk=new SingleAction,this.onClose=this.ƀgk.notifier,Bt.closeAll().tap(()=>{if(!St.getActiveScene())throw new Error("WindowEntity: constructor is called when there is no active scene!");w.pause.effect(true).attach(this),this.ƀgc=new Bt(t,e).displayParent(w.camera.layers.foregroundScreen).attach(this),this.ƀgn.resolve(this.ƀgc),this.ƀgc.onOpen.subscribe(()=>this.ƀgp.resolve()).attach(this),this.ƀgc.onClose.subscribe(()=>{this.destroy(),this.ƀgk.resolve();}).attach(this);}).attach(this);}close(){if(this.ƀgc){let t=this.onClose.toSingleEvent().destroyIfNotAttached();return this.ƀgc.close(),t}else return this.onCreate.asyncMapQueue(()=>this.close()).singleChain(this)}};var Rs=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Is=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},wt=class{static{h(this,"MouseService");}get initialMouseMoveHappened(){return this.ƀfe.value}getStagePosition(){return this.ƀja.value}getScreenPosition(){return this.ƀih.value}getMainButtonState(){return this.ƀfw.value}getSecondaryButtonState(){return this.ƀin.value}constructor(){this.ƀfe=new Variable(false),this.onInitialMouseMove=this.ƀfe.notifier,this.ƀja=new Variable(Vector.zero,{notifyOnChange:true}),this.stagePosition=this.ƀja.notifier,this.ƀih=new Variable(Vector.zero,{notifyOnChange:true}),this.screenPosition=this.ƀih.notifier,this.ƀfw=new Variable(false),this.mainButtonState=this.ƀfw.notifier,this.ƀin=new Variable(false),this.secondaryButtonState=this.ƀin.notifier,this.ƀjb(),window.addEventListener("mousedown",t=>{t.button===0?this.ƀfw.value=true:t.button===2&&(this.ƀin.value=true);}),window.addEventListener("mouseup",t=>{t.button===0?this.ƀfw.value=false:t.button===2&&(this.ƀin.value=false);}),window.addEventListener("blur",()=>{this.ƀfw.value=false,this.ƀin.value=false;});}ƀjb(){let t=Vector.zero;window.addEventListener("mousemove",e=>{t=new Vector(e.clientX,e.clientY),this.ƀfe.value=true;}),y.beforeSceneUpdateAction.subscribe(()=>{this.ƀih.value=t;}).attachToRoot(),y.afterSceneUpdateAction.subscribe(()=>{let e=w.instance.screenPositonToStagePosition(this.ƀih.value);e.isEqual(this.ƀja.value)?w.instance.renderer.events.onPointerMove(new PointerEvent("pointermove",{clientX:this.ƀih.value.x,clientY:this.ƀih.value.y,pointerType:"mouse"})):this.ƀja.value=e;}).attachToRoot();}};wt=Rs([d(),Is("design:paramtypes",[])],wt);var se=class extends u{static{h(this,"MouseWheelListenerUI");}constructor(t){super(),this.ƀgt=new Action,this.onWheel=this.ƀgt.notifier,this.ƀep=(e=>{let i=P.get(wt).getScreenPosition(),r=this.ƀkk.getBounds();i.x>=r.x&&i.x<=r.x+r.width&&i.y>=r.y&&i.y<=r.y+r.height&&this.ƀgt.trigger(e.deltaY);}).bind(this),this.ƀkk=new V.Graphics,this.ƀkk.beginFill(0,1e-9),this.ƀkk.drawRect(0,0,t.x,t.y),this.ƀkk.endFill(),this.pixiContainer.addChild(this.ƀkk),window.addEventListener("wheel",this.ƀep);}destroy(){this.destroyed||(super.destroy(),this.ƀkk.destroy(),window.removeEventListener("wheel",this.ƀep));}};var Ms=.65,Ds=.01,Fe=class{static{h(this,"SmoothScroller");}get scrollHeight(){return this.ƀil}get contentSize(){return this.ƀbh.size.ceil()}constructor(t,e,i,r){this.ƀbh=t,this.ƀu=e,this.ƀgz=i,this.ƀiw=r,this.ƀff=false,this.ƀil=e-i*2,this.ƀbh.y=i,this.ƀjj=i;}onWheel(t){this.setTarget(this.ƀjj-t*Ms);}scrollToTop(){this.setTarget(1/0);}scrollToBottom(){this.setTarget(-1/0);}setTarget(t){this.ƀjj=NumberHelper.clamp(t,this.ƀu-this.ƀgz-this.contentSize.y,this.ƀgz);}jumpToTarget(){this.ƀbh.y=this.ƀjj;}update(t){let e=this.contentSize;if(e.y<=this.ƀil){switch(this.ƀiw){case "start":this.ƀjj=this.ƀgz;break;case "center":this.ƀjj=(this.ƀu-e.y)*.5;break;case "end":this.ƀjj=this.ƀu-e.y-this.ƀgz;break}this.ƀff||(this.ƀbh.y=this.ƀjj);}this.ƀff=true;let i=this.ƀjj-this.ƀbh.y;this.ƀbh.y=this.ƀbh.y+i*Ds*t;}};var mi=class{static{h(this,"AnimationEaseInOutFlatter");}start(){}multiplierFunction(t){return 3*(1-t)*Math.pow(t,2)+Math.pow(t,3)}},xt=class o extends u{static{h(this,"ScrollMaskUI");}static{this.ƀcq=new Map;}constructor(t,e,i,r=rt.Vertical){if(super(),i<0)throw new Error("The padding of the scroll mask cannot be lower than '0'");if(e.y<i*2)throw new Error(`The height of the scroll mask cannot be lower than '${i*2}'`);let s=new u;r===rt.Horizontal?this.ƀby(e,i,s):this.ƀcf(e,i,s),this.ƀfz=Z.createSnapshotSprite(s).attach(this),s.destroy(),t.setMask(this.ƀfz);}ƀcf(t,e,i){e>0&&this.ƀbv(new Vector(t.x,e)).displayParent(i).attach(i),E.createRectangle(new Vector(t.x,t.y-e*2),ColorHelper.white).toSprite().setPosition(new Vector(0,e),{round:false}).displayParent(i).attach(i),e>0&&this.ƀbv(new Vector(t.x,e)).setPosition(new Vector(t.x,t.y),{round:false}).setRotation(Radian.get180).displayParent(i).attach(i);}ƀby(t,e,i){e>0&&this.ƀbv(new Vector(t.y,e)).setPosition(new Vector(0,t.y),{round:false}).setRotation(Radian.get270).displayParent(i).attach(i),E.createRectangle(new Vector(t.x-e*2,t.y),ColorHelper.white).toSprite().setPosition(new Vector(e,0),{round:false}).displayParent(i).attach(i),e>0&&this.ƀbv(new Vector(t.y,e)).setPosition(new Vector(t.x,0),{round:false}).setRotation(Radian.get90).displayParent(i).attach(i);}ƀbv(t){let i={id:this.ƀbw(t.y),scale:1,size:t,anchor:{x:0,y:0},boundingShapes:void 0};return new Z(i,{textureSize:t,ignoreAnchor:true})}ƀbw(t){let e=JSON.stringify({type:"gradient",length:t}),i=o.ƀcq.get(e);if(!i){let r=document.createElement("canvas");r.width=1,r.height=t;let s=r.getContext("2d");if(s){let n=new mi;ArrayHelper.createIntegerArray(t).forEach(l=>{let c=`rgba(255, 255, 255, ${n.multiplierFunction(l/t)})`;s.fillStyle=c,s.fillRect(0,l,1,1);});let a=V.Texture.from(r);i=M.insertAsset(a),o.ƀcq.set(e,i);}else throw new Error("Canvas context is null")}return i}};var Fs=15,gi=class extends u{static{h(this,"ScrollAreaUI");}get contentAreaSize(){return this.ƀbi}get contentSize(){return this.ƀim.contentSize}constructor(t,e={}){super();let i={padding:Fs,smallContentAlign:"start",...e};if(i.padding<0)throw new Error("The padding of the scroll mask cannot be lower than '0'");if(i.padding>t.y*.5)throw new Error("The padding of the scroll mask cannot be higher than half of the size of the area");let r=new u().displayParent(this).attach(this);new xt(r,t,i.padding).attach(this);let s=new u().displayParent(r).attach(this);this.ƀim=new Fe(s,t.y,i.padding,i.smallContentAlign),this.ƀbi=new Vector(t.x,this.ƀim.scrollHeight),new se(t).displayParent(r).attach(this).onWheel.subscribe(a=>this.ƀim.onWheel(a)).attach(this),y.afterSceneUpdateAction.subscribe(a=>this.ƀim.update(a.delta)).attach(this),this.addChildTo=s;}scrollToTop(t){this.ƀim.scrollToTop(),t?.instant&&this.ƀim.jumpToTarget();}scrollToBottom(t){this.ƀim.scrollToBottom(),t?.instant&&this.ƀim.jumpToTarget();}};var _s=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Ls=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},yi=class{static{h(this,"KeyboardService");}constructor(){this.ƀfm=new Action,this.keyPressed=this.ƀfm.notifier,this.ƀfn=new Action,this.keyReleased=this.ƀfn.notifier,this.ƀft=new Set,this.ƀfs=new Set,window.addEventListener("keydown",t=>{this.ƀft.add(t.key),this.ƀfs.add(t.key),!t.repeat&&this.ƀfm.trigger(t.key);}),window.addEventListener("keyup",t=>{this.ƀft.delete(t.key),this.ƀfn.trigger(t.key);}),window.addEventListener("blur",()=>{this.ƀft.clear();}),y.afterSceneUpdateAction.subscribe(()=>{this.ƀfs.clear();}).attachToRoot();}isKeyDown(t){return this.ƀft.has(t)}isKeyJustPressed(t){return this.ƀfs.has(t)}};yi=_s([d(),Ls("design:paramtypes",[])],yi);var Vs=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Ns=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},wi=class{static{h(this,"MouseTargetFocusService");}get focusedInLastFrame(){return this.ƀdc}get lastFocusedPosition(){return this.ƀfp}constructor(t){this.ƀgf=t,this.ƀgr=new Action,this.onTargetFocus=this.ƀgr.notifier,this.ƀjt=0,this.ƀjv=false,this.ƀdc=false,this.ƀfp=void 0,y.beforeSceneUpdateAction.subscribe(e=>this.ƀjx(e.delta)).attachToRoot();}ƀjx(t){if(this.ƀgg){let e=this.ƀeb(this.ƀgf.getStagePosition(),this.ƀgg);this.ƀhb===void 0?this.ƀhb=e:this.ƀat(e,t);}this.ƀgg=this.ƀgf.getStagePosition();}ƀat(t,e){this.ƀhb-t>10?(this.ƀjt=Math.max(250,this.ƀjt),this.ƀjv=true):this.ƀjt>1e3&&(this.ƀjv=true);let i=this.ƀjt>=300&&this.ƀjv;this.ƀfk(i,t,e);}ƀfk(t,e,i){(t||e>this.ƀhb)&&(this.ƀhb=e),t?(this.ƀjv=false,this.ƀjt=0,this.ƀdc=true,this.ƀfp=this.ƀgf.getStagePosition(),this.ƀgr.trigger(this.ƀfp)):(this.ƀjt+=i,this.ƀdc=false);}ƀeb(t,e){let i=Vector.fromTo(t,e);return Math.abs(i.x)+Math.abs(i.y)}};wi=Vs([d(),Ns("design:paramtypes",[wt])],wi);var x;(function(o){o[o.Hidden=1]="Hidden",o[o.Visible=2]="Visible",o[o.Appearing=3]="Appearing",o[o.Disappearing=4]="Disappearing",o[o.DisappearToChange=5]="DisappearToChange";})(x||(x={}));var _e=class extends Attachable{static{h(this,"FadeInStateAnimation");}get currentState(){return {value:this.ƀi.value,state:this.ƀje,queuedState:this.ƀhs,animationState:this.ƀm}}constructor(t){super(),this.ƀi={value:0},this.ƀm=x.Hidden,this.ƀgq=new Action,this.ƀgs=new Action,this.ƀgx={duration:500,animation:S.lineer,...t},this.ƀi.value=0,this.ƀn=new O(this.ƀi,"value",{duration:this.ƀgx.duration,animation:this.ƀgx.animation,reAnimateHandling:_.CompletePrevious,completionHandling:I.StayInCurrentState}),this.ƀn.value.subscribe(()=>{this.ƀi.value!==1&&this.ƀi.value!==0&&this.ƀgs.trigger(this.ƀi.value);}).attach(this);}setState(t,e){if(e?.instant){this.ƀn.completeAnimation(),this.ƀm=t!==void 0?x.Visible:x.Hidden,this.ƀhs=void 0;let i=t!==void 0?1:0,r=this.ƀje!==t;r&&(this.ƀje=t,this.ƀgq.trigger(this.ƀje)),(r||this.ƀi.value!==i)&&(this.ƀi.value=i,this.ƀgs.trigger(this.ƀi.value));}else switch(this.ƀm){case x.Hidden:t!==void 0&&(this.ƀm=x.Appearing,this.ƀhs=void 0,this.ƀje=t,this.ƀgq.trigger(this.ƀje),this.ƀn.animate({value:1}).tap(()=>this.ƀgm()).attach(this));break;case x.Visible:t===void 0?(this.ƀm=x.Disappearing,this.ƀhs=void 0,this.ƀn.animate({value:0}).tap(()=>this.ƀgm()).attach(this)):t!==this.ƀje&&(this.ƀm=x.DisappearToChange,this.ƀhs=t,this.ƀn.animate({value:0}).tap(()=>this.ƀgm()).attach(this));break;case x.Appearing:t===void 0?(this.ƀm=x.Disappearing,this.ƀhs=void 0,this.ƀn.animate({value:0},{duration:this.ƀi.value*this.ƀgx.duration}).tap(()=>this.ƀgm()).attach(this)):t!==this.ƀje&&(this.ƀi.value>0?(this.ƀm=x.DisappearToChange,this.ƀhs=t,this.ƀn.animate({value:0},{duration:this.ƀi.value*this.ƀgx.duration}).tap(()=>this.ƀgm()).attach(this)):(this.ƀhs=void 0,this.ƀje=t,this.ƀgq.trigger(this.ƀje)));break;case x.Disappearing:t===this.ƀje?(this.ƀm=x.Appearing,this.ƀn.animate({value:1},{duration:(1-this.ƀi.value)*this.ƀgx.duration}).tap(()=>this.ƀgm()).attach(this)):t!==void 0&&(this.ƀm=x.DisappearToChange,this.ƀhs=t);break;case x.DisappearToChange:t===void 0?(this.ƀm=x.Disappearing,this.ƀhs=void 0):t===this.ƀje?(this.ƀm=x.Appearing,this.ƀhs=void 0,this.ƀn.animate({value:1},{duration:(1-this.ƀi.value)*this.ƀgx.duration}).tap(()=>this.ƀgm()).attach(this)):t!==this.ƀhs&&(this.ƀhs=t);break}}ƀgm(){switch(this.ƀm){case x.Appearing:this.ƀi.value===1&&(this.ƀm=x.Visible,this.ƀgs.trigger(this.ƀi.value));break;case x.Disappearing:if(this.ƀhs!==void 0)throw new Error("FadeInStateAnimation: Unexpected state, disappearing should not have a queued value");this.ƀi.value===0&&(this.ƀm=x.Hidden,this.ƀje=void 0,this.ƀgq.trigger(this.ƀje),this.ƀgs.trigger(this.ƀi.value));break;case x.DisappearToChange:if(this.ƀhs===void 0)throw new Error("FadeInStateAnimation: Unexpected state, disappearToChange should always have a queued value");this.ƀi.value===0&&(this.ƀm=x.Appearing,this.ƀje=this.ƀhs,this.ƀhs=void 0,this.ƀgq.trigger(this.ƀje),this.ƀgs.trigger(this.ƀi.value),this.ƀn.animate({value:1}).tap(()=>this.ƀgm()).attach(this));break;case x.Hidden:case x.Visible:return}}onStateChange(t){return this.ƀgq.subscribe(e=>t(e)).attach(this),this}onValueChange(t){return this.ƀgs.subscribe(e=>t(e)).attach(this),this}};var Qi=class extends u{static{h(this,"FadeInContent");}constructor(t,e){super(),this.ƀbu=t;let i={duration:200,animation:S.easeInOut,...e};this.alpha=0,this.ƀjf=new _e(i).onStateChange(r=>{this.ƀbh?.destroy(),this.ƀbh=void 0,r!==void 0&&(this.ƀbh=new u().displayParent(this).attach(this),this.ƀbu({state:r,container:this.ƀbh}));}).onValueChange(r=>{this.alpha=r;}).attach(this);}setState(t,e){return this.ƀjf.setState(t,e),this}};var A;(function(o){o[o.Idle=1]="Idle",o[o.Transitioning=2]="Transitioning",o[o.Reverting=3]="Reverting";})(A||(A={}));var Le=class extends Attachable{static{h(this,"StateAnimation");}get currentState(){return {value:this.ƀi.value,state:this.ƀje,nextState:this.ƀgi,queuedState:this.ƀhs,animationState:this.ƀm}}constructor(t){super(),this.ƀi={value:0},this.ƀm=A.Idle,this.ƀgq=new Action,this.ƀgs=new Action,this.ƀgx={duration:500,animation:S.lineer,...t},this.ƀn=new O(this.ƀi,"value",{duration:this.ƀgx.duration,animation:this.ƀgx.animation,reAnimateHandling:_.CompletePrevious,completionHandling:I.StayInCurrentState}),this.ƀn.value.subscribe(()=>{this.ƀi.value!==1&&this.ƀi.value!==0&&this.ƀgs.trigger(this.ƀi.value);}).attach(this);}setState(t,e){if(this.ƀje===void 0)this.ƀje=t,this.ƀgq.trigger({state:this.ƀje,nextState:this.ƀgi}),this.ƀgs.trigger(this.ƀi.value);else if(e?.instant)this.ƀn.completeAnimation(),this.ƀm=A.Idle,this.ƀje=t,this.ƀgi=void 0,this.ƀi.value=0,this.ƀgq.trigger({state:this.ƀje,nextState:this.ƀgi}),this.ƀgs.trigger(this.ƀi.value);else switch(this.ƀm){case A.Idle:t!==this.ƀje&&(this.ƀm=A.Transitioning,this.ƀgi=t,this.ƀi.value=0,this.ƀgq.trigger({state:this.ƀje,nextState:this.ƀgi}),this.ƀgs.trigger(this.ƀi.value),this.ƀn.animate({value:1}).tap(()=>this.ƀgm()).attach(this));break;case A.Transitioning:t!==this.ƀgi&&(t===this.ƀje?(this.ƀm=A.Reverting,this.ƀn.animate({value:0},{duration:this.ƀi.value*this.ƀgx.duration}).tap(()=>this.ƀgm()).attach(this)):this.ƀhs=t);break;case A.Reverting:t!==this.ƀje&&(t===this.ƀgi?(this.ƀm=A.Transitioning,this.ƀn.animate({value:1},{duration:(1-this.ƀi.value)*this.ƀgx.duration}).tap(()=>this.ƀgm()).attach(this)):this.ƀhs=t);break}}ƀgm(){switch(this.ƀm){case A.Transitioning:this.ƀi.value===1&&(this.ƀi.value=0,this.ƀhs!==void 0?(this.ƀm=A.Transitioning,this.ƀje=this.ƀgi,this.ƀgi=this.ƀhs,this.ƀhs=void 0,this.ƀgq.trigger({state:this.ƀje,nextState:this.ƀgi}),this.ƀn.animate({value:1}).tap(()=>this.ƀgm()).attach(this)):(this.ƀm=A.Idle,this.ƀje=this.ƀgi,this.ƀgi=void 0,this.ƀgq.trigger({state:this.ƀje,nextState:this.ƀgi})),this.ƀgs.trigger(this.ƀi.value));break;case A.Reverting:if(this.ƀje===void 0)throw new Error("StateAnimation: state must be defined when reverting!");this.ƀi.value===0&&(this.ƀhs!==void 0?(this.ƀm=A.Transitioning,this.ƀgi=this.ƀhs,this.ƀhs=void 0,this.ƀi.value=0,this.ƀgq.trigger({state:this.ƀje,nextState:this.ƀgi}),this.ƀn.animate({value:1}).tap(()=>this.ƀgm()).attach(this)):(this.ƀm=A.Idle,this.ƀgi=void 0,this.ƀi.value=0,this.ƀgq.trigger({state:this.ƀje,nextState:this.ƀgi})),this.ƀgs.trigger(this.ƀi.value));break;case A.Idle:break}}onStateChange(t){return this.ƀgq.subscribe(e=>t(e.state,e.nextState)).attach(this),this}onValueChange(t){return this.ƀgs.subscribe(e=>t(e)).attach(this),this}};var st;(function(o){o[o.Appear=1]="Appear",o[o.Disappear=2]="Disappear";})(st||(st={}));var C;(function(o){o[o.Idle=1]="Idle",o[o.TransitionForward=2]="TransitionForward",o[o.TransitionBackward=3]="TransitionBackward",o[o.Reverting=4]="Reverting";})(C||(C={}));var Ve=class extends Attachable{static{h(this,"SlideStateAnimation");}constructor(t){super(),this.ƀm=C.Idle,this.ƀgq=new Action,this.ƀgs=new Action,this.ƀgx={duration:500,animation:S.easeInOutCubic,...t},this.ƀjf=new Le({duration:this.ƀgx.duration,animation:this.ƀgx.animation}).onStateChange((e,i)=>this.ƀen(e,i)).onValueChange(e=>this.ƀeo(e)).attach(this);}setIndex(t,e){if(!Comparator.isInteger(t))throw new Error("SlideStateAnimation: index must be an integer!");this.ƀfd===void 0?(this.ƀfd=t,this.ƀgq.trigger({state:st.Appear,index:t}),this.ƀjf.setState(t,e)):this.ƀfd!==t?this.ƀgh!==t?this.ƀm===C.Idle?(this.ƀm=t>this.ƀfd?C.TransitionForward:C.TransitionBackward,this.ƀgh=t,this.ƀgq.trigger({state:st.Appear,index:this.ƀgh}),this.ƀjf.setState(t,e)):this.ƀjf.setState(t,e):this.ƀm===C.Reverting&&this.ƀgh===t&&(this.ƀm=t>this.ƀfd?C.TransitionForward:C.TransitionBackward,this.ƀjf.setState(t,e)):(this.ƀm===C.TransitionForward||this.ƀm===C.TransitionBackward)&&(this.ƀm=C.Reverting,this.ƀjf.setState(t,e));}ƀen(t,e){switch(this.ƀfd!==void 0&&this.ƀfd!==t&&this.ƀfd!==e&&this.ƀgq.trigger({state:st.Disappear,index:this.ƀfd}),this.ƀgh!==void 0&&this.ƀgh!==t&&this.ƀgh!==e&&this.ƀgq.trigger({state:st.Disappear,index:this.ƀgh}),e!==void 0&&e!==this.ƀfd&&e!==this.ƀgh&&this.ƀgq.trigger({state:st.Appear,index:e}),this.ƀm){case C.TransitionForward:case C.TransitionBackward:e===void 0?(this.ƀm=C.Idle,this.ƀfd=this.ƀgh,this.ƀgh=void 0):this.ƀfd!==t&&this.ƀel(t,e);break;case C.Reverting:e===void 0?(this.ƀm=C.Idle,this.ƀgh=void 0):this.ƀfd!==e&&this.ƀel(t,e);break}}ƀeo(t){let e=1;(this.ƀm===C.TransitionBackward||this.ƀm===C.Reverting&&this.ƀfd!==void 0&&this.ƀgh!==void 0&&this.ƀfd>this.ƀgh)&&(e=-1),(this.ƀm===C.Idle||t!==0)&&this.ƀgs.trigger({value:NumberHelper.ensurePositiveZero(-e*t),index:this.ƀfd}),this.ƀgh!==void 0&&this.ƀgs.trigger({value:NumberHelper.ensurePositiveZero(e*(1-t)),index:this.ƀgh});}ƀel(t,e){this.ƀfd=t,this.ƀgh=e,this.ƀgs.trigger({value:0,index:this.ƀfd}),this.ƀm=this.ƀfd<this.ƀgh?C.TransitionForward:C.TransitionBackward;}onStateChange(t){return this.ƀgq.subscribe(e=>t(e.state,e.index)).attach(this),this}onValueChange(t){return this.ƀgs.subscribe(e=>t(e.value,e.index)).attach(this),this}};var rt;(function(o){o[o.Horizontal=1]="Horizontal",o[o.Vertical=2]="Vertical";})(rt||(rt={}));var xi=class extends u{static{h(this,"SlideInContentByIndex");}constructor(t,e){super(),this.ƀbu=t,this.ƀcl="x",this.ƀbj=new Map,this.ƀgx={duration:300,animation:S.easeInOutCubic,size:new Vector(500,500),margin:20,direction:rt.Horizontal,...e};let i=this.ƀgx.direction===rt.Horizontal?new Vector(this.ƀgx.size.x+this.ƀgx.margin*2,this.ƀgx.size.y):new Vector(this.ƀgx.size.x,this.ƀgx.size.y+this.ƀgx.margin*2),r=new u().setPosition(this.ƀgx.direction===rt.Horizontal?new Vector(-this.ƀgx.margin,0):new Vector(0,-this.ƀgx.margin),{round:false}).displayParent(this).attach(this);this.ƀbz(i,this.ƀgx.margin,this.ƀgx.direction,r),this.ƀcl=this.ƀgx.direction===rt.Horizontal?"x":"y",this.ƀjf=new Ve({duration:this.ƀgx.duration,animation:this.ƀgx.animation}).onStateChange((s,n)=>{if(s===st.Appear){let a=new u().displayParent(this).attach(this);this.ƀbj.set(n,a),this.ƀbu({index:n,container:a});}else {let a=this.ƀbj.get(n);a&&(a.destroy(),this.ƀbj.delete(n));}}).onValueChange((s,n)=>{let a=this.ƀbj.get(n);if(a){let l={x:0,y:0};l[this.ƀcl]=i[this.ƀcl]*s+this.ƀgx.margin,a.setPosition(Vector.fromVec2(l),{round:false});}}).attach(this),this.addChildTo=r;}setIndex(t,e){return this.ƀjf.setIndex(t,e),this}ƀbz(t,e,i,r){new xt(r,new Vector(t.x,t.y),e,i).attach(this);}},ir=class extends xi{static{h(this,"SlideInContent");}constructor(t,e,i){super(r=>{let s=this.indexToItem.get(r.index);if(s)e({index:r.index,item:s,container:r.container});else throw new Error(`SlideInContent: The item with index '${r.index}' is not part of the items list`)},i),this.itemToIndex=new Map,this.indexToItem=new Map,t.forEach((r,s)=>{this.itemToIndex.set(r,s),this.indexToItem.set(s,r);});}setItem(t,e){let i=this.itemToIndex.get(t);if(i!==void 0)this.setIndex(i,e);else throw new Error(`SlideInContent: The item '${t}' is not part of the items list`);return this}};var bt=class{static{h(this,"VectorSet");}constructor(){this.ƀkb=new Map;}add(t){let e=this.ƀkb.get(t.x);e||(e=new Set,this.ƀkb.set(t.x,e)),e.add(t.y);}has(t){let e=this.ƀkb.get(t.x);return e?e.has(t.y):false}delete(t){let e=this.ƀkb.get(t.x);return e?e.delete(t.y):false}};var vi=class{static{h(this,"DeltaTime");}static adjustMultiplier(t,e){return Math.pow(t,e)}};var B=class{static{h(this,"PositionToGridPositionConverter");}static areaToGridArea(t,e){return new 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 Vector(.5,.5)).multiplyNumber(e)}};var oe=class{static{h(this,"ClosestAvailableSpaceHelper");}static findByConvertingGridSpace(t,e,i){let r=new Vector(Math.ceil(e.size.x/i)-1,Math.ceil(e.size.y/i)-1),s=B.areaToGridArea(e,i);if(this.ƀas(t,s))return Vector.zero;let n=t.movePositionInsideGrid(s.topLeft),a=Vector.fromTo(s.topLeft,n),l=this.find(t,n,r);if(l){let c=l.add(a),p=Vector.fromTo(s.topLeft.multiplyNumber(i),e.topLeft);return new Vector(c.x*i+((r.x+1)*i-e.size.x)/2-p.x,c.y*i+((r.y+1)*i-e.size.y)/2-p.y)}}static find(t,e,i){let r=new bt,s=new Queue(e);for(;s.notEmpty;){let n=s.pop();r.add(n);let a=new Rectangle(n,n.add(i));if(this.ƀas(t,a))return Vector.fromTo(e,n);t.getNeighborPositions(n,GridNeighborType.Ortogonal).forEach(l=>{r.has(l)||s.add(l);});}}static ƀas(t,e){if(!t.isAreaWithinBounds(e))return false;for(let i=e.topLeft.y;i<=e.bottomRight.y;i++)for(let r=e.topLeft.x;r<=e.bottomRight.x;r++)if(!t.get(new Vector(r,i)))return false;return true}};var rr=class{static{h(this,"PathfinderNode");}constructor(t,e,i,r=void 0){this.position=t,this.distanceFromStart=e,this.distanceToEnd=i,this.parent=r,this.closed=false;}get pathLength(){return this.distanceFromStart+this.distanceToEnd}isEqual(t){return Vector.isEqual(this.position,t)}createSolutionPath(t){let e=[this.position],i=this.parent;for(;i!==void 0;)e.push(i.position),i=i.parent;return e.reverse(),{directPathAvailable:t,path:e}}getDistance(t){return this.position.getDistance(t)}},to=class{static{h(this,"PathfinderGrid");}constructor(t,e){this.ƀek=t,this.ƀjc=e,this.ƀgv=new BinaryHeap("min"),this.ƀaw=[],this.ƀgj=new Grid({size:t.size,defaultValue:void 0});let i=new rr(this.ƀjc,0,Number.MAX_SAFE_INTEGER);this.ƀgv.add(i.pathLength,i);}get hasOpenNodes(){return this.ƀgv.size>0}getNeighbors(t,e){return this.ƀek.getNeighborPositions(t.position,e).filter(i=>this.ƀek.get(i)).map(i=>this.ƀgj.get(i)||this.ƀca(i))}popLowestPathCostNode(){let t=this.ƀgv.pop();return this.ƀgv.delete(t),t.closed=true,this.ƀaw.push(t),t}changeNodeCost(t,e,i,r){this.ƀgv.delete(t),t.distanceFromStart=e,t.distanceToEnd=t.getDistance(i),t.parent=r,this.ƀgv.add(t.pathLength,t);}getBestClosedNode(){return this.ƀaw.reduce((t,e)=>t.distanceToEnd<e.distanceToEnd?t:e)}ƀca(t){let e=new rr(t,Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER);return this.ƀgj.set(t,e),this.ƀgv.add(e.pathLength,e),e}},ne=class{static{h(this,"PathFinder");}static findPath(t,e,i,r){let s=new to(t,e);for(;s.hasOpenNodes;){let n=s.popLowestPathCostNode();if(n.isEqual(i))return n.createSolutionPath(true);let a=s.getNeighbors(n,r);for(let l of a)if(!l.closed){let c=n.distanceFromStart+n.getDistance(l.position);c<l.distanceFromStart&&s.changeNodeCost(l,c,i,n);}}return s.getBestClosedNode().createSolutionPath(false)}};var ae=class{static{h(this,"VectorFieldPathFinder");}constructor(t,e){this.ƀjk=t,this.ƀw=e,this.ƀer=this.ƀdt(this.ƀw.size),this.ƀkj=new Grid({size:this.ƀw.size,defaultValue:this.ƀer}),this.ƀcm=new Grid({size:this.ƀw.size,defaultValue:void 0});let i=new bt,r=new Queue;for(this.ƀdi(this.ƀw.cropAreaOutsideOfTheGrid(t)).forEach(n=>{this.ƀkj.set(n,0),r.add(n);});r.notEmpty;){let n=r.pop();if(!i.has(n)){i.add(n);let a=this.ƀkj.getOrFail(n);this.ƀdy(n,this.ƀw).forEach(l=>{if(!i.has(l.position)){let c=this.ƀkj.getOrFail(l.position),p=a+l.distance;this.ƀw.getOrFail(l.position)&&p<c&&(this.ƀkj.set(l.position,p),r.add(l.position));}});}}}getDirectionToTarget(t){if(!t.isInsideRectangle(this.ƀjk)){if(t=this.ƀkj.movePositionInsideGrid(t),this.ƀcm.has(t))return this.ƀcm.get(t);{let e=this.ƀdy(t,this.ƀw),i;return this.ƀkj.getOrFail(t)>=this.ƀer?e.some(s=>this.ƀw.get(s.position))&&(e.some(n=>!this.ƀw.get(n.position))?i=this.ƀdn(e):i=this.ƀdj(t,e)):i=this.ƀdj(t,e),this.ƀcm.set(t,i),i}}}ƀdn(t){let e=t.filter(i=>this.ƀw.get(i.position)).map(i=>i.direction.radian);return Radian.getAverage(...e)}ƀdj(t,e){let i=e.filter(r=>this.ƀkj.getOrFail(r.position)<this.ƀer).reduce((r,s)=>{let n=this.ƀkj.getOrFail(s.position)+s.distance;return n<r.bestWeight?(r.bestDirections=[s.direction],r.bestWeight=n):n===r.bestWeight&&r.bestDirections.push(s.direction),r},{bestDirections:[],bestWeight:this.ƀer}).bestDirections;return this.ƀed(i,t)}ƀed(t,e){if(t.length>0){let i=t.reduce((r,s)=>r.add(s),Vector.zero);if(i.isZero()||!this.ƀfi(e,i))return Random.pickRandomElement(t).radian;if(t.length>=1)return i.radian}}ƀfi(t,e){let i=t.add(this.ƀkc(e));return this.ƀw.isPointWithinBounds(i)&&this.ƀw.getOrFail(i)}ƀdy(t,e){return this.ƀkj.getNeighborDirections(t,GridNeighborType.All).map(i=>({position:t.add(i),direction:i,distance:i.x!==0&&i.y!==0?14:10}))}ƀdi(t){let e=[];for(let i=t.topLeft.y;i<=t.bottomRight.y;i++)for(let r=t.topLeft.x;r<=t.bottomRight.x;r++)e.push(new Vector(r,i));return e}ƀkc(t){let e=t.normalize().round();return new Vector(e.x,e.y)}ƀdt(t){return (t.x+t.y)*20}};var oo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},no=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},v=class extends ${static{h(this,"PhysicsWorldEntity");}constructor(t,e,i,r,s,n,a){super(),this.materialDefinitions=new Map,this.physicsBodyGroupToP2Group=new Map,this.physicsBodyGroupToP2Mask=new Map,this.availabilityGridCache=new Map,this.vectorFieldCache=new Map,this.bodiesInContactWith=new Map,this.collisionReports=new Map,this.paused=new Variable(false),this.lastP2Time=new Variable(0),this.onPhysicsStep=new Action,this.mapSize=t,this.mapSizeCenter=this.mapSize.multiplyNumber(.5),this.modifyUpdateCycle=e,this.p2World=i,this.materials=r,this.materialDefinitions=s,this.physicsBodyGroupToP2Group=n,this.physicsBodyGroupToP2Mask=a;}};v=oo([mt(),no("design:paramtypes",[Vector,Boolean,W.World,Map,Map,Map,Map])],v);var co=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},K=class{static{h(this,"PhysicsBodyGroupService");}createBodyGroupsAndMasks(t,e){let i=new Map,r=new Map;return t.map((s,n)=>{if(n>31)return console.error("Cannot have more than 32 physics body groups"),{};i.set(s,1<<n),r.set(s,0);}),e.map(([s,n])=>{if(!i.has(s))throw new Error(`Physics body group "${s}" not found`);if(!i.has(n))throw new Error(`Physics body group "${n}" not found`);let a=r.get(s),l=r.get(n),c=i.get(s),p=i.get(n);r.set(s,a|p),r.set(n,l|c);}),{physicsBodyGroupToP2Group:i,physicsBodyGroupToP2Mask:r}}getGroupConstant(t,e){return v.getInstanceByIDOrFail(t).physicsBodyGroupToP2Group.get(e)}getMaskConstant(t,e){return v.getInstanceByIDOrFail(t).physicsBodyGroupToP2Mask.get(e)}canCollide(t,e,i){let r=t.physicsBodyGroupToP2Group.get(e),s=t.physicsBodyGroupToP2Mask.get(e),n=t.physicsBodyGroupToP2Group.get(i),a=t.physicsBodyGroupToP2Mask.get(i);return (s&n)!==0&&(a&r)!==0}};K=co([d()],K);var po=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},uo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Ne=class{static{h(this,"AvailabilityGridCacheService");}constructor(t){this.ƀhe=t;}getCollidableGrids(t,e){let i=[];return t.availabilityGridCache.forEach((r,s)=>{r.forEach((n,a)=>{this.ƀhe.canCollide(t,a,e)&&i.push({grid:n,cellSize:s});});}),i}get(t,e,i){return t.availabilityGridCache.get(e)?.get(i)}set(t,e,i,r){let s=t.availabilityGridCache.get(e);s||(s=new Map,t.availabilityGridCache.set(e,s)),s.set(i,r);}clear(t){t.availabilityGridCache.clear();}};Ne=po([d(),uo("design:paramtypes",[K])],Ne);var fo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},mo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},ct=class{static{h(this,"AvailabilityGridService");}constructor(t,e){this.ƀhe=t,this.ƀx=e;}onBodyAdded(t,e,i){e.aabbNeedsUpdate=true,e.updateAABB();let r=m.aabbToBoundingBox(e.aabb);this.ƀx.getCollidableGrids(t,i).forEach(s=>{let n=B.areaToGridArea(r,s.cellSize);s.grid.setArea(n,false);});}findClosestAvailableSpace(t,e,i,r=Gt){return e.aabbNeedsUpdate=true,e.updateAABB(),oe.findByConvertingGridSpace(this.getAvilabilityGrid(t,r,i),m.aabbToBoundingBox(e.aabb),r)}getAvilabilityGrid(t,e,i){let r=this.ƀx.get(t,e,i);return r||(r=this.ƀbx(t,e,i),this.ƀx.set(t,e,i,r)),r}ƀbx(t,e,i){let r=new Grid({size:new Vector(Math.floor(t.mapSize.x/e),Math.floor(t.mapSize.y/e)),defaultValue:true});return t.p2World.bodies.forEach(s=>{let n=b.getFromP2BodyIDOrFail(s.id);if(n.includeInPathfinding&&this.ƀhe.canCollide(t,n.physicsBodyGroup,i)){let a=this.ƀds(s,e);r.setArea(a,false);}}),r}ƀds(t,e){let i=m.aabbToBoundingBox(t.aabb);return B.areaToGridArea(i,e)}};ct=fo([d(),mo("design:paramtypes",[K,Ne])],ct);var wo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},xo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Gt=50,Ft=class{static{h(this,"PathFinderService");}constructor(t){this.ƀhd=t;}findPathAStar(t,e,i,r,s){s||(s={}),s.neighborType===void 0&&(s.neighborType=GridNeighborType.Ortogonal),s.gridCellSize===void 0&&(s.gridCellSize=Gt);let n=v.getInstanceByIDOrFail(t),a,l;Comparator.isNumber(i)?(l=b.getPhysicsInstanceOrFail(i).p2Body,a=m.arrayToVector(l.position)):a=i;let c=B.positionToGridPosition(e,s.gridCellSize),p=B.positionToGridPosition(a,s.gridCellSize),f=this.ƀhd.getAvilabilityGrid(n,s.gridCellSize,r);if(l){let T=m.aabbToBoundingBox(l.aabb),J=B.areaToGridArea(T,s.gridCellSize);f.setArea(J,true);}let g=ne.findPath(f,c,p,s.neighborType);return g.path=g.path.map(T=>B.gridPositionToPosition(T,s.gridCellSize)),g}findPathDirection(t,e,i,r,s=Gt){let n=v.getInstanceByIDOrFail(t),a;if(Comparator.isNumber(i)){let g=b.getPhysicsInstanceOrFail(i);a=m.aabbToBoundingBox(g.p2Body.aabb);}else a=new Rectangle(i,i);let l=B.areaToGridArea(a,s),c=JSON.stringify({targetGridArea:l,collidableWithGroup:r}),p=n.vectorFieldCache.get(c);if(!p){let g=this.ƀhd.getAvilabilityGrid(n,s,r);p=new ae(l,g),n.vectorFieldCache.set(c,p);}let f=B.positionToGridPosition(e,s);return p.getDirectionToTarget(f)}};Ft=wo([d(),xo("design:paramtypes",[ct])],Ft);var Po=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},j=new U,Pi=class{static{h(this,"PhysicsGateway");}createPhysicsWorld(t){return j.trigger("createPhysicsWorld",t)}getMapSize(t){return j.trigger("getMapSize",t)}setPaused(t,e){return j.trigger("setPaused",t,e)}hitTest(t,e){return j.trigger("hitTest",t,e)}findPath(t,e,i,r,s){return j.trigger("findPath",t,e,i,r,s)}findPathDirection(t,e,i,r){return j.trigger("findPathDirection",t,e,i,r)}applyImpulse(t,e,i,r){return j.trigger("applyImpulse",t,e,i,r)}createExplosion(t,e,i,r,s,n){return j.trigger("createExplosion",t,e,i,r,s,n)}createElipticExplosion(t,e,i,r,s,n,a){return j.trigger("createElipticExplosion",t,e,i,r,s,n,a)}printPathfindingTestGrid(t,e,i,r,s,n=Gt){return j.trigger("printPathfindingTestGrid",t,e,i,r,s,n)}};Pi=Po([d()],Pi);var So=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Co=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},q=class{static{h(this,"TestVisualsService");}constructor(t,e){this.ƀy=t,this.ƀha=e;}printPathfindingTestGrid(t,e,i,r,s,n){let a=v.getInstanceByIDOrFail(t);this.ƀy.getAvilabilityGrid(a,n,r).map((c,p)=>({position:B.gridPositionToPosition(p,n),availability:c})).forEach(c=>{if(c.position.isInsideRectangle(s)){let p=this.ƀha.findPathDirection(t,c.position,i,r),f;p===void 0?f=E.createRectangleBorders(new Vector(8,8),2,ColorHelper.red).toSprite().displayParent(e).setPosition(c.position,{round:false}).attach(a):f=E.createArrow(25,c.availability?ColorHelper.green:ColorHelper.red).toSprite().displayParent(e).setPosition(c.position,{round:false}).setRotation(p).attach(a),new O(f,"alpha",{duration:1e3,animation:S.easeIn}).animate({alpha:0}).tap(()=>f.destroy()).attach(f);}});}createExplosionDebugVisual(t,e,i,r,s,n=300){let a=new u().displayParent(e).setAlpha(.5).attach(t);E.createCircle(s,ColorHelper.blue).toSprite().displayParent(a).setPosition(r,{round:false}).setAlpha(.5).attach(t),i.forEach(c=>{let p=c.hits.length>0?ColorHelper.red:ColorHelper.white;E.createVector(r,c.line.to,p).toSprite().displayParent(a).attach(t);}),new O(a,"alpha",{duration:n,animation:S.easeIn}).animate({alpha:0}).tap(()=>a.destroy()).attach(a);}createElipticExplosionDebugVisual(t,e,i,r,s,n,a=300){let l=new u().displayParent(e).setAlpha(.5).attach(t);E.createElipse(n,ColorHelper.blue).toSprite().displayParent(l).setPosition(r,{round:false}).setRotation(s).setAlpha(.5).attach(t),i.forEach(p=>{let f=p.hits.length>0?ColorHelper.red:ColorHelper.white;E.createVector(p.line.from,p.line.to,f).toSprite().displayParent(l).attach(t);}),new O(l,"alpha",{duration:a,animation:S.easeIn}).animate({alpha:0}).tap(()=>l.destroy()).attach(l);}createPhysicsEntityShapeVisual(t,e,i){let r=i?.overridePosition??m.arrayToVector(t.position),s=i?.overrideRotation??new Radian(t.angle),n=i?.color??ColorHelper.blue,a=new u().displayParent(e).setPosition(r,{round:false}).setRotation(s).setAlpha(.5).attachToRoot();t.shapes.forEach(c=>{this.ƀcp(c,n).displayParent(a).attachToRoot();}),new O(a,"alpha",{duration:1e3,animation:S.easeIn}).animate({alpha:0}).tap(()=>a.destroy()).attach(a);}ƀcp(t,e){switch(t.type){case W.Shape.PARTICLE:throw new Error("Not implemented");case W.Shape.LINE:throw new Error("Not implemented");case W.Shape.PLANE:throw new Error("Not implemented");case W.Shape.CIRCLE:throw new Error("Not implemented");case W.Shape.CAPSULE:throw new Error("Not implemented");case W.Shape.BOX:throw new Error("Not implemented");case W.Shape.HEIGHTFIELD:throw new Error("Not implemented");case W.Shape.CONVEX:return this.ƀco(t,e);default:throw new Error("Not implemented")}}ƀco(t,e){let i=[t.vertices.map(r=>({x:r[0],y:r[1]}))];return E.createPolygon(i,e).toSprite()}};q=So([d(),Co("design:paramtypes",[ct,Ft])],q);var Ro=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Io=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},je=class{static{h(this,"HitTestService");}constructor(t){this.ƀjm=t;}hitTest(t,e){let i=t.world,r=b.getFromP2BodyIDOrFail(t.id),s=m.cloneP2Body(t);this.ƀs(s,e);let n=i.broadphase.aabbQuery(i,this.ƀdg(s)).map(l=>b.getFromP2BodyIDOrFail(l.id)).filter(l=>l.includeInPathfinding).filter(l=>r.canCollideWith(l)).map(l=>m.cloneP2Body(l.p2Body)),a=false;if(n.length!==0){let l=new W.World;l.addBody(s),n.forEach(c=>l.addBody(c)),l.step(1,1,1),a=l.narrowphase.contactEquations.some(c=>c.bodyA===s||c.bodyB===s),l.clear();}if(e?.testLayerID){let l=a?ColorHelper.red:ColorHelper.green;this.ƀjm.createPhysicsEntityShapeVisual(t,e.testLayerID,{overridePosition:e.overridePosition,overrideRotation:e.overrideRotation,color:l});}return a}ƀs(t,e){e?.overridePosition&&(t.position=m.vectorToArray(e.overridePosition)),e?.overrideRotation&&(t.angle=e.overrideRotation.value);}ƀdg(t){return t.aabbNeedsUpdate=true,t.updateAABB(),t.aabb}};je=Ro([d(),Io("design:paramtypes",[q])],je);var Oo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},He=class{static{h(this,"CollisionsService");}registerPhysicsWorld(t){t.p2World.on("beginContact",e=>{e.contactEquations.forEach(i=>{this.ƀhy(t,i);});});}step(t,e,i){b.getPhysicsEntities().forEach(r=>{r.ƀax=[];}),t.p2World.narrowphase.contactEquations.forEach(r=>{this.ƀhy(t,r);}),t.bodiesInContactWith.forEach((r,s)=>{this.ƀem(r.p2Body),r.entity.ƀip(t.collisionReports.get(s)||[]);}),t.bodiesInContactWith.clear(),t.collisionReports.clear();}ƀem(t){let e=m.arrayToVector(t.velocity);e.length>10.8&&(e=e.normalize(10.8),t.velocity=m.vectorToArray(e)),t.angularVelocity=Math.min(Math.max(t.angularVelocity,-10.01),10.01);}ƀhy(t,e){let i=b.getFromP2BodyID(e.bodyA.id),r=b.getFromP2BodyID(e.bodyB.id);if(i&&r){t.bodiesInContactWith.set(e.bodyA.id,{p2Body:e.bodyA,entity:i}),t.bodiesInContactWith.set(e.bodyB.id,{p2Body:e.bodyB,entity:r});let s=t.collisionReports.get(e.bodyA.id)||[],n=t.collisionReports.get(e.bodyB.id)||[],{collisionDetailsA:a,collisionDetailsB:l}=this.ƀdl(i,r,e);s.push({self:a,target:l}),n.push({self:l,target:a}),t.collisionReports.set(e.bodyA.id,s),t.collisionReports.set(e.bodyB.id,n);}else console.warn("ContactEquationOrganiser: Entity not found for contact equation",e);}ƀdl(t,e,i){let r=t.convertToDTO(),s=e.convertToDTO(),n=m.arrayToVector(i.contactPointA),a=m.arrayToVector(i.contactPointB),{normalA:l,normalB:c}=this.ƀdz(i);return {collisionDetailsA:this.ƀdk(r,i.bodyA.mass,n,l,t.area),collisionDetailsB:this.ƀdk(s,i.bodyB.mass,a,c,e.area)}}ƀdk(t,e,i,r,s){let n,a=i.add(t.position);return {body:t,getPositionReletiveToObject:h(()=>(n||(n=i.rotate(t.rotation.multiply(-1).vector)),n),"getPositionReletiveToObject"),getPositionOnWorld:h(()=>(a||(a=i.add(t.position)),a),"getPositionOnWorld"),position:i,mass:e,area:s,normal:r}}ƀdz(t){let e=m.arrayToVector(t.normalA),i=e.multiplyNumber(-1);return {normalA:e,normalB:i}}};He=Oo([d()],He);var Mo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Do=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},We=class extends $t{static{h(this,"BorderEntity");}constructor(t,e){super(t,e);}};We=Mo([mt(),Do("design:paramtypes",[Number,Object])],We);var Bo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},H=1e4,Ue=class{static{h(this,"BorderService");}createBorders(t,e,i){this.ƀbr(t,new Vector(e.x/2,-H/2),new Vector(e.x+H*2,H),i),this.ƀbr(t,new Vector(e.x/2,e.y+H/2),new Vector(e.x+H*2,H),i),this.ƀbr(t,new Vector(-H/2,e.y/2),new Vector(H,e.y+H*2),i),this.ƀbr(t,new Vector(e.x+H/2,e.y/2),new Vector(H,e.y+H*2),i);}ƀbr(t,e,i,r){return new We(t,{shapeDefinition:{materialName:ht,group:r,shapeType:it.Rectangle,shapeData:i},position:e,rotation:Radian.get0,addInEmptySpace:false,includeOnPathfinding:true}).attachByID(t)}};Ue=Bo([d()],Ue);var Fo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},hr=new W.Material,_o={id:ht,density:Number.MAX_SAFE_INTEGER,velocityDrag:1,rotationalDrag:1},_t=class{static{h(this,"MaterialsService");}createMaterials(t,e,i,r){let s=new Map,n=new Map;if(i.forEach(a=>{s.set(a.id,new W.Material),n.set(a.id,a);}),s.has(ht))throw new Error(`Material with name ${ht} cannot be defined, pick another name for the material.`);return s.set(ht,hr),n.set(ht,_o),this.ƀc(t,e,i,r,s),{materials:s,materialDefinitions:n}}getMaterial(t,e){let i=v.getInstanceByIDOrFail(t);return this.ƀdx(e,i.materials)}getMaterialDefinition(t,e){let i=v.getInstanceByIDOrFail(t);return this.ƀdw(e,i.materialDefinitions)}ƀdx(t,e){let i=e.get(t);if(!i)throw new Error(`Could not find material with name ${t}.`);return i}ƀdw(t,e){let i=e.get(t);if(!i)throw new Error(`Could not find material definition with name ${t}.`);return i}ƀc(t,e,i,r,s){this.ƀdp(i.map(n=>n.id),r).forEach(n=>{let a=this.ƀdx(n.materialA,s),l=this.ƀdx(n.materialB,s);t.addContactMaterial(new W.ContactMaterial(a,l,{friction:n.friction,restitution:n.bounciness,stiffness:n.stiffness}));}),this.ƀd(t,e,i,s);}ƀdp(t,e){let i=new Map;e.forEach(s=>{let n=i.get(s.materialA);n||(n=new Map,i.set(s.materialA,n)),n.set(s.materialB,s);});let r=[];return t.forEach((s,n)=>{for(let a=n;a<t.length;a++){let l=t[a],c=i.get(s)?.get(l);c?r.push(c):r.push({materialA:s,materialB:l,friction:0,bounciness:0,stiffness:1e6});}}),r}ƀd(t,e,i,r){i.forEach(s=>{let n=this.ƀdx(s.id,r);t.addContactMaterial(new W.ContactMaterial(n,hr,{friction:e.friction,restitution:e.bounciness,stiffness:e.stiffness}));});}};_t=Fo([d()],_t);var Lo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Vo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Lt=class{static{h(this,"PhysicsWorldService");}constructor(t,e,i,r,s){this.ƀgb=t,this.ƀai=e,this.ƀy=i,this.ƀay=r,this.ƀhe=s;}createPhysicsWorld(t){let e=new W.World({gravity:[0,0]}),{materials:i,materialDefinitions:r}=this.ƀgb.createMaterials(e,t.borderProperties,t.materialDefinitions,t.materialContactDefinitions),{physicsBodyGroupToP2Group:s,physicsBodyGroupToP2Mask:n}=this.ƀhe.createBodyGroupsAndMasks(t.physicsBodyGroups,t.interactingBodyGroups),a=new v(t.mapSize,t.modifyUpdateCycle,e,i,r,s,n).attachByID(t.attachTo);return a.onDestroy().tap(()=>{e.clear(),t.modifyUpdateCycle&&y.cleanUpdateModifier();}).attachToRoot(),this.ƀai.createBorders(a.id,t.mapSize,t.borderProperties.borderBodyGroup),this.ƀay.registerPhysicsWorld(a),t.modifyUpdateCycle?y.registerUpdateModifier((l,c)=>this.ƀjg(a,l,c)):y.beforeSceneUpdateAction.subscribe(({time:l,delta:c})=>{this.ƀjg(a,l,c);}).attach(a),a.id}addBody(t,e,i,r,s){let n=v.getInstanceByIDOrFail(t);if(i){let a=this.ƀy.findClosestAvailableSpace(n,e,r);return a?(e.position[0]+=a.x,e.position[1]+=a.y,n.p2World.addBody(e),s&&this.ƀy.onBodyAdded(n,e,r),true):false}else return n.p2World.addBody(e),s&&this.ƀy.onBodyAdded(n,e,r),true}removeBody(t,e){v.getInstanceByID(t)?.p2World.removeBody(e);}ƀjg(t,e,i){if(!t.paused.value){t.availabilityGridCache.clear(),t.vectorFieldCache.clear(),t.p2World.step(i,i,i),t.modifyUpdateCycle&&(i=t.p2World.time-t.lastP2Time.value);let r=e+i;this.ƀay.step(t,r,i),t.onPhysicsStep.trigger({time:r,delta:i}),t.lastP2Time.value=t.p2World.time;}return i}setPaused(t,e){v.getInstanceByIDOrFail(e).paused.set(t);}};Lt=Lo([d(),Vo("design:paramtypes",[_t,Ue,ct,He,K])],Lt);var jo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Nt=class{static{h(this,"RayCastingService");}castClosest(t,e,i){let r=new W.RaycastResult,s=new W.Ray({mode:W.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(r,s),r.hasHit())return this.ƀbm(r,e)}castAllFirstContacts(t,e,i){let r=new Map,s=new W.Ray({mode:W.Ray.ALL,from:m.vectorToArray(e.from),to:m.vectorToArray(e.to),collisionGroup:t.physicsBodyGroupToP2Group.get(i),collisionMask:t.physicsBodyGroupToP2Mask.get(i),callback:h(n=>{let a=r.get(n.body);!r.has(n.body)||n.fraction<a.fraction?r.set(n.body,this.ƀbm(n,e)):n.fraction===a.fraction&&a.isExternal()&&r.set(n.body,this.ƀbm(n,e));},"callback")});return t.p2World.raycast(new W.RaycastResult,s),Array.from(r.values())}ƀbm(t,e){let i=t.fraction,r=m.arrayToVector(t.normal),s,n,a;return {body:t.body,hitPosition:h(()=>(s===void 0&&(s=e.from.lerp(e.to,i)),s),"hitPosition"),hitDistance:h(()=>(n===void 0&&(n=e.length*i),n),"hitDistance"),isExternal:h(()=>(a===void 0&&(a=e.fromTo.dotProduct(r)<0),a),"isExternal"),normal:r,fraction:i,line:e}}};Nt=jo([d()],Nt);var Ho=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},ut=class{static{h(this,"ImpactService");}applyImpulse(t,e,i,r){let s=i.normalize(r),n=[e.x-t.position[0],e.y-t.position[1]];t.applyImpulse(m.vectorToArray(s),n);}};ut=Ho([d()],ut);var Wo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},jt=class{static{h(this,"RayCastHitConverterService");}toExplosionHits(t,e=true){let i=new Map;return t.forEach(r=>{r.hits.forEach(s=>{let n=i.get(s.body);if(n){let a=s.fraction<n.closestRaycastHit.fraction?s:n.closestRaycastHit;n.rayCastHits.push(s),i.set(s.body,{hitCount:n.hitCount+1,closestRaycastHit:a,rayCastHits:n.rayCastHits,isExternal:e?n.isExternal:n.isExternal&&s.isExternal(),explosionCenter:s.line.from});}else {let a=s.isExternal();i.set(s.body,{hitCount:1,closestRaycastHit:s,rayCastHits:[s],isExternal:a,explosionCenter:s.line.from});}});}),[...i.values()].map(r=>this.ƀbn(r,t.length))}ƀbn(t,e){let i=t.hitCount/e,r=t.rayCastHits;if(t.isExternal)return {body:b.getFromP2BodyIDOrFail(t.closestRaycastHit.body.id).convertToDTO(),p2Body:t.closestRaycastHit.body,isExternal:true,normal:t.closestRaycastHit.normal,fraction:t.closestRaycastHit.fraction,ratioOfHits:i,raycastResults:r,getHitPosition:t.closestRaycastHit.hitPosition,getHitDistance:t.closestRaycastHit.hitDistance};{let s=m.arrayToVector(t.closestRaycastHit.body.position);return {body:b.getFromP2BodyIDOrFail(t.closestRaycastHit.body.id).convertToDTO(),p2Body:t.closestRaycastHit.body,isExternal:false,normal:Vector.fromTo(s,t.explosionCenter).normalize(),fraction:0,ratioOfHits:i,raycastResults:r,getHitPosition:h(()=>t.explosionCenter,"getHitPosition"),getHitDistance:h(()=>0,"getHitDistance")}}}};jt=Wo([d()],jt);var $o=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},zo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Yo=15,ze=class{static{h(this,"ElipticExplosionService");}constructor(t,e,i,r){this.ƀhu=t,this.ƀjm=e,this.ƀht=i,this.ƀfb=r;}createElipticExplosion(t,e,i,r,s,n,a){let l=v.getInstanceByIDOrFail(t),c=this.ƀcc(e,i,r,s,a?.hitOnlyClosest===true,l),p=this.ƀht.toExplosionHits(c,false);return this.ƀq(p,n),a?.testLayerID&&this.ƀjm.createElipticExplosionDebugVisual(l,a.testLayerID,c,e,i,r,a.debugRayDuration),p.map(f=>{let{p2Body:g,...T}=f;return T})}ƀcc(t,e,i,r,s,n){let a=[],l=e.vector,c=e.add(Radian.get90).vector,p=c.normalize(i.x);a.push(new Line(t,t.add(p))),a.push(new Line(t,t.add(p.multiplyNumber(-1))));let f=l.normalize(i.y);a.push(new Line(t,t.add(f))),a.push(new Line(t,t.add(f.multiplyNumber(-1))));let g=Math.round(i.y/Yo),T=i.y/(g*2+1)*2,J=l.normalize(T),ot=i.x,Wt=Math.pow(i.y,2);return ArrayHelper.createIntegerArray(g).forEach(nt=>{let tt=T*(nt+1),Ti=J.multiplyNumber(nt+1),he=c.normalize(this.ƀeh(ot,Wt,tt)),le=t.add(Ti);a.push(new Line(le,le.add(he))),a.push(new Line(le,le.add(he.multiplyNumber(-1))));let ce=t.add(Ti.multiplyNumber(-1));a.push(new Line(ce,ce.add(he))),a.push(new Line(ce,ce.add(he.multiplyNumber(-1))));}),a.map(nt=>{if(s){let tt=this.ƀhu.castClosest(n,nt,r);return {line:nt,hits:tt?[tt]:[]}}else {let tt=this.ƀhu.castAllFirstContacts(n,nt,r);return {line:nt,hits:tt}}})}ƀeh(t,e,i){return Math.sqrt(1-Math.pow(i,2)/e)*t}ƀq(t,e){t.forEach(i=>{i.raycastResults.forEach(r=>{let s,n;r.isExternal()?(s=r.line.fromTo,n=e*2):(s=r.line.fromTo.multiplyNumber(-1),n=e*(1-r.fraction)*8),this.ƀfb.applyImpulse(r.body,r.hitPosition(),s,n);});});}};ze=$o([d(),zo("design:paramtypes",[Nt,q,jt,ut])],ze);var Xo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Zo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},ke=class{static{h(this,"ExplosionService");}constructor(t,e,i,r){this.ƀhu=t,this.ƀjm=e,this.ƀht=i,this.ƀfb=r;}createExplosion(t,e,i,r,s,n){let a=v.getInstanceByIDOrFail(t),l=this.ƀee(i),c=this.ƀcc(e,i,r,l,n?.hitOnlyClosest===true,a),p=this.ƀht.toExplosionHits(c);return this.ƀq(e,i,s,l,p),n?.testLayerID&&this.ƀjm.createExplosionDebugVisual(a,n.testLayerID,c,e,i,n.debugRayDuration),p}ƀcc(t,e,i,r,s,n){let a=new Radian(PI_360/r),l=new Vector(0,-e),c=a.vector;return ArrayHelper.createEmptyArray(r).map(()=>{let p=t.add(l);return l=l.rotate(c),new Line(t,p)}).map(p=>{if(s){let f=this.ƀhu.castClosest(n,p,i);return {line:p,hits:f?[f]:[]}}else {let f=this.ƀhu.castAllFirstContacts(n,p,i);return {line:p,hits:f}}})}ƀq(t,e,i,r,s){s.forEach(n=>{if(n.isExternal)n.raycastResults.forEach(a=>{let l=i*(1-a.fraction);this.ƀfb.applyImpulse(a.body,a.hitPosition(),a.line.fromTo,l);});else {let a=Vector.fromTo(t,m.arrayToVector(n.p2Body.position)),l=a.length/e,c=i*r*l/2;this.ƀfb.applyImpulse(n.p2Body,n.getHitPosition(),a,c);}});}ƀee(t){return t>100?Math.floor(t*.3):Math.floor(t*.26+4)}};ke=Xo([d(),Zo("design:paramtypes",[Nt,q,jt,ut])],ke);var en=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Ht=class{static{h(this,"PhysicsQueryService");}getMapSize(t){let e=v.getInstanceByIDOrFail(t);return {dimentions:e.mapSize,center:e.mapSizeCenter}}subscribeToPhysicsStep(t,e){return v.getInstanceByIDOrFail(t).onPhysicsStep.subscribe(e)}};Ht=en([d()],Ht);var rn=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},sn=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Si=class{static{h(this,"PhysicsController");}constructor(t,e,i,r,s,n,a,l){this.ƀhl=t,this.ƀha=e,this.ƀjm=i,this.ƀcy=r,this.ƀct=s,this.ƀes=n,this.ƀhk=a,this.ƀfb=l;}createPhysicsWorld(t){return this.ƀhl.createPhysicsWorld(t)}getMapSize(t){return this.ƀhk.getMapSize(t)}setPaused(t,e){this.ƀhl.setPaused(t,e);}hitTest(t,e){let i=b.getPhysicsInstanceOrFail(t);return this.ƀes.hitTest(i.p2Body,e)}findPath(t,e,i,r,s){return this.ƀha.findPathAStar(t,e,i,r,{neighborType:s})}findPathDirection(t,e,i,r){return this.ƀha.findPathDirection(t,e,i,r)}applyImpulse(t,e,i,r){let s=b.getPhysicsInstanceOrFail(t);this.ƀfb.applyImpulse(s.p2Body,e,i,r);}createExplosion(t,e,i,r,s,n){return this.ƀcy.createExplosion(t,e,i,r,s,n)}createElipticExplosion(t,e,i,r,s,n,a){return this.ƀct.createElipticExplosion(t,e,i,r,s,n,a)}printPathfindingTestGrid(t,e,i,r,s,n){this.ƀjm.printPathfindingTestGrid(t,e,i,r,s,n);}};Si=rn([et({controllerLink:j}),sn("design:paramtypes",[Lt,Ft,q,ke,ze,je,Ht,ut])],Si);var on=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Je=class{static{h(this,"ShapeCreationService");}createBody(t,e,i,r,s){let n=v.getInstanceByIDOrFail(t);if(!n.physicsBodyGroupToP2Group.has(e.shapeDefinition.group))throw new Error(`Physics body group "${e.shapeDefinition.group}" not found`);switch(e.shapeDefinition.shapeType){case it.Point:return this.ƀbt(n,void 0,i,r,e.shapeDefinition.group,s);case it.Circle:return this.ƀbt(n,e.shapeDefinition.shapeData,i,r,e.shapeDefinition.group,s);case it.Polygon:return this.ƀcb(n,e.shapeDefinition.shapeData,i,r,e.shapeDefinition.group,s);case it.Rectangle:return this.ƀcd(n,e.shapeDefinition.shapeData,i,r,e.shapeDefinition.group,s)}}ƀbt(t,e,i,r,s,n){let a=new W.Circle({collisionGroup:t.physicsBodyGroupToP2Group.get(s),collisionMask:t.physicsBodyGroupToP2Mask.get(s),radius:e});a.material=i;let l=new W.Body({type:n==="dynamic"?W.Body.DYNAMIC:W.Body.STATIC,mass:r.density,damping:r.velocityDrag,angularDamping:r.rotationalDrag});return l.addShape(a),l}ƀcb(t,e,i,r,s,n){let a=t.physicsBodyGroupToP2Group.get(s),l=t.physicsBodyGroupToP2Mask.get(s),c=e.map(g=>new W.Convex({vertices:g.map(T=>[T.x,T.y]),collisionGroup:a,collisionMask:l})).map(g=>(g.material=i,g)),p=c.reduce((g,T)=>g+T.area,0),f=new W.Body({type:n==="dynamic"?W.Body.DYNAMIC:W.Body.STATIC,mass:p,damping:r.velocityDrag,angularDamping:r.rotationalDrag});return c.forEach(g=>f.addShape(g)),f.setDensity(r.density),f}ƀcd(t,e,i,r,s,n){let a=new W.Box({width:e.x,height:e.y,collisionGroup:t.physicsBodyGroupToP2Group.get(s),collisionMask:t.physicsBodyGroupToP2Mask.get(s)});a.material=i;let l=e.x*e.y,c=new W.Body({type:n==="dynamic"?W.Body.DYNAMIC:W.Body.STATIC,mass:l,damping:r.velocityDrag,angularDamping:r.rotationalDrag});return c.addShape(a),c.setDensity(r.density),c}};Je=on([d()],Je);var nn=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},an=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Ci=class{static{h(this,"PhysicsInternalController");}constructor(t,e,i,r,s){this.ƀhl=t,this.ƀhj=e,this.ƀiu=i,this.ƀhk=r,this.ƀhe=s;}createBody(t,e,i,r,s){return this.ƀiu.createBody(t,e,i,r,s)}getMaterial(t,e){return this.ƀhj.getMaterial(t,e)}getMaterialDefinition(t,e){return this.ƀhj.getMaterialDefinition(t,e)}getGroupConstant(t,e){return this.ƀhe.getGroupConstant(t,e)}getMaskConstant(t,e){return this.ƀhe.getMaskConstant(t,e)}addBody(t,e,i,r,s){return this.ƀhl.addBody(t,e,i,r,s)}removeBody(t,e){this.ƀhl.removeBody(t,e);}subscribeToPhysicsStep(t,e){return this.ƀhk.subscribeToPhysicsStep(t,e)}};Ci=nn([et({controllerLink:Y}),an("design:paramtypes",[Lt,_t,Je,Ht,K])],Ci);export{Oi as AnimationFlicker,X as AnimationInterpolationFunctions,S as Animations,I as AnimationsCompletionHandlingType,O as Animator,ht as BORDER_MATERIAL_NAME,G as BardLegendsHardReset,Et as BlendMode,Kt as Camera,It as CameraGateway,oe as ClosestAvailableSpaceHelper,u as Container,kt as ContainerEventType,et as ControllerDecorator,U as ControllerLink,ti as Cursor,R as DEFAULT_RESOLUTION,vi as DeltaTime,pi as DisplayObjectArray,$ as Entity,mt as EntityDecorator,Qi as FadeInContent,_e as FadeInStateAnimation,lt as FocusingAnimation,w as Game,E as Graphics,$t as ImmovablePhysicsEntity,yi as KeyboardService,Bt as Menu,ui as MenuEntity,wt as MouseService,wi as MouseTargetFocusService,se as MouseWheelListenerUI,Ze as MovableEntity,Ke as MovablePhysicsEntity,ne as PathFinder,b as PhysicsEntity,Pi as PhysicsGateway,it as PhysicsShapeType,hi as Placeholder,Yt as PositionConversionHelper,qe as ROTATIONAL_SPEED_LIMIT,_ as ReAnimateHandlingType,li as RichText,Qe as SPEED_LIMIT,St as Scene,wr as SceneDecorator,gi as ScrollAreaUI,rt as ScrollDirection,xt as ScrollMaskUI,P as Service,d as ServiceDecorator,gt as SingletonEntity,ir as SlideInContent,xi as SlideInContentByIndex,Ve as SlideStateAnimation,st as SlideStateAnimationState,Z as Sprite,Le as StateAnimation,ie as Text,ci as UpdatableContainer,y as UpdateCycle,ae as VectorFieldPathFinder,bt as VectorSet,Ut as View,Xe as ViewDecorator};
|
|
67
|
+
}`,e}constructor(t,e){if(super(o.ƀef(),o.ƀdo(t*R)),this.ƀcw=t,this.resolution=R,this.ƀcw=t*R,this.ƀcw<0)throw new Error("ExpandWithColorFilter: Expand * resolution cannot be smaller than 0");if(this.ƀcw>10)throw new Error("ExpandWithColorFilter: Expand * resolution cannot be higher than 10");Comparator.isInteger(this.ƀcw)||(this.ƀcw=Math.floor(this.ƀcw));let i=ColorHelper.normalize(e);this.uniforms.color=new Float32Array([i.red,i.green,i.blue]),this.uniforms.expandSquared=this.ƀcw*this.ƀcw,this.padding=this.ƀcw;}apply(t,e,i,r){this.uniforms.pixelSize=new Float32Array([1/(e.width*R),1/(e.height*R)]),t.applyFilter(this,e,i,r);}};var Ee=class extends V.Filter{static{h(this,"GlowFilter");}constructor(t){super(),this.resolution=R;let e={blurRadius:1,expand:0,color:ColorHelper.white,blendMode:Et.Screen,...t};this.ƀcx=new Te(e.expand,e.color);let i=Comparator.isNumber(e.blurRadius)?new Vector(e.blurRadius,e.blurRadius):e.blurRadius;this.ƀah=new Rt(i),this.padding=Math.max(i.x,i.y)+e.expand,this.ƀah.blendMode=V.BLEND_MODES.SCREEN;}apply(t,e,i,r){let s=t.getFilterTexture();this.ƀcx.apply(t,e,s,V.CLEAR_MODES.CLEAR),this.ƀah.apply(t,s,i,r),t.returnFilterTexture(s);}};var qt=class o{static{h(this,"GlowSpriteGenerator");}static{this.ƀei=new Map;}static createGlowSpriteFromSprite(t,e,i){let r=this.ƀbc(e),s=Comparator.isNumber(r.blurRadius)?new Vector(r.blurRadius,r.blurRadius):r.blurRadius,n=this.ƀdq(t.texture,s,r.expand,r.color,i),a=new V.Sprite(n);return this.ƀir(a,Vector.fromVec2(t.anchor),Math.max(s.x,s.y)+r.expand),a.alpha=r.glowAlpha,a.blendMode=r.blendMode,a}static ƀdq(t,e,i,r,s){if(!t.id)throw new Error("GlowSpriteGenerator: baseTexture should have an id");if(s){let n=`${t.id}-${i}-${e.x}-${e.y}-${r.r}-${r.g}-${r.b}`;if(o.ƀei.has(n))return o.ƀei.get(n);{let a=this.ƀdr(t,e,i,r);return o.ƀei.set(n,a),a}}else return this.ƀdr(t,e,i,r)}static ƀdr(t,e,i,r){let s=new V.Sprite(t);this.ƀcz(s,Math.max(e.x,e.y)+i),s.filters=[new Ee({blurRadius:e,expand:i,color:r})];let n=w.instance.renderer.generateTexture(s);return n.id=M.insertAsset(n),s.destroy(),n}static ƀir(t,e,i){let r=(i+(t.width-i*2)*e.x)/t.width,s=(i+(t.height-i*2)*e.y)/t.height;t.anchor.set(r,s);}static ƀcz(t,e){if(t.isSprite){let s=new V.Graphics;t.addChild(s);}let i=t.width,r=t.height;t.calculateBounds=function(){this._bounds.clear(),this._bounds.addFrame(this.transform,-e,-e,i+e,r+e);};}static ƀbc(t){let e={glowAlpha:1,blurRadius:5,expand:0,color:ColorHelper.white,blendMode:Et.Add};return t&&(e={...e,...t}),e}};G.onHardReset.subscribe(()=>{qt.ƀei.clear();}).attachToRoot();var Z=class o extends u{static{h(this,"Sprite");}static createByName(t){let e=w.setupOptions.spriteDefinitions[t];if(!e)throw new Error(`Sprite: Could not find sprite definition with name ${t}.`);return new o(e)}static createSnapshotSprite(t){let e=t.pixiContainer,i=e.parent;i&&i.removeChild(e);let r=w.instance.renderer.generateTexture(e,{resolution:2,scaleMode:V.SCALE_MODES.LINEAR,multisample:V.MSAA_QUALITY.HIGH});i&&i.addChild(e);let n={id:M.insertAsset(r),scale:t.scale,size:t.size,anchor:Vector.zero,boundingShapes:void 0,destroyAssetOnDestroy:true};return new o(n,{ignoreAnchor:true})}constructor(t,e={}){if(super(),this.ƀjq=1,!t)throw new Error("Sprite: spriteDefinition cannot be nullish!");this.ƀiz=t,this.pixiSprite=new V.Sprite(M.getAsset(t.id)),this.pixiContainer.addChild(this.pixiSprite),this.setTextureScale(t.scale),e.textureSize&&(this.pixiSprite.width=e.textureSize.x,this.pixiSprite.height=e.textureSize.y),e.texturePosition&&this.pixiSprite.position.set(e.texturePosition.x,e.texturePosition.y),e.ignoreAnchor||this.pixiSprite.anchor.set(t.anchor.x,t.anchor.y);}destroy(){this.destroyed||(super.destroy(),this.ƀfz?.destroy(),this.ƀaj?.destroy(),this.ƀiz.destroyAssetOnDestroy&&(M.destroyAsset(this.ƀiz.id),this.ƀhn&&M.destroyAsset(this.ƀhn.texture.id)),this.ƀhn&&!this.ƀhn.destroyed&&this.ƀhn.destroy());}setTextureScale(t){return this.textureScale=t,this}get textureScale(){return this.ƀjq}set textureScale(t){this.ƀjq=t,this.pixiSprite.scale.set(t);}get size(){return new Vector(this.pixiSprite.width,this.pixiSprite.height)}getMask(){return this.pixiSprite}set interactive(t){super.interactive=t,t&&this.ƀiz.boundingShapes&&!this.pixiContainer.hitArea&&(this.pixiContainer.hitArea=new xe(this.ƀiz.boundingShapes,this.size,Vector.fromVec2(this.ƀiz.anchor)));}setMipmap(t){return this.mipmap=t,this}get mipmap(){return this.pixiSprite.texture.baseTexture.mipmap===V.MIPMAP_MODES.ON}set mipmap(t){t?this.pixiSprite.texture.baseTexture.mipmap=V.MIPMAP_MODES.ON:this.pixiSprite.texture.baseTexture.mipmap=V.MIPMAP_MODES.OFF;}setBlendMode(t){return this.blendMode=t,this}get blendMode(){return this.pixiSprite.blendMode}set blendMode(t){this.pixiSprite.blendMode=t;}setTint(t){return this.tint=t,this}get tint(){return new V.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.ƀhn)return this.ƀhn.alpha;throw new Error("Sprite: getGlowFilterAlpha cannot be called before glow filter is added.")}set glowAlpha(t){if(this.ƀhn)this.ƀhn.alpha=t;else throw new Error("Sprite: setGlowFilterAlpha cannot be called before glow filter is added.")}getAlignmentVector(t){let e=Vector.fromVec2(this.ƀiz.anchor).to(t);return new Vector(this.size.x*e.x,this.size.y*e.y)}setGlowEffect(t){return this.ƀhn&&(this.ƀhn.destroy(),this.ƀhn=void 0),t&&(this.ƀhn=qt.createGlowSpriteFromSprite(this.pixiSprite,t,!this.ƀiz.destroyAssetOnDestroy),this.ƀhn.position.set(this.pixiSprite.x,this.pixiSprite.y),this.ƀhn.scale.set(this.pixiSprite.scale.x,this.pixiSprite.scale.y),this.pixiContainer.addChild(this.ƀhn)),this}showBoundingShape(t){return t?this.ƀaj||(this.ƀaj=this.ƀbs().setAlpha(.3).setTint({r:0,g:0,b:200}).displayParent(this)):this.ƀaj&&(this.ƀaj.destroy(),this.ƀaj=void 0),this}getBoundingMask(){if(!this.ƀfz){if(!this.ƀiz.boundingShapes)throw new Error("Sprite: cropOverflowingParts cannot be used without polygonDefinition!");this.ƀfz=this.ƀbs(),this.ƀfz.pixiSprite._maskRefCount=Number.POSITIVE_INFINITY,this.ƀfz.pixiSprite.renderable=false,this.ƀfz.displayParent(this);}return this.ƀfz}ƀbs(){if(!this.ƀiz.boundingShapes)throw new Error("Sprite: bounding shape cannot be created without polygonDefinition!");return E.createPolygon(this.ƀiz.boundingShapes,ColorHelper.white).toSprite().attach(this)}download(){let t=w.instance.renderer.extract.canvas(this.pixiContainer);if(!t.toBlob)throw new Error("Sprite: canvas.toBlob is undefined!");return t.toBlob(e=>{if(!e)throw new Error("Sprite: blob is undefined!");let i=document.createElement("a");document.body.append(i),i.download="sprite.png",i.href=URL.createObjectURL(e),i.click(),i.remove();},"image/png"),this}};var Re=class{static{h(this,"DashedLineHelper");}static getLines(t,e,i){let r=Vector.fromTo(t,e),s=r.normalize(),n=r.length-i.lineStartGap-i.lineEndGap,a=[];if(n<=0)return a;let l=t.add(s.normalize(i.lineStartGap));if(n<=i.dashGap+i.dashLength*.5)return a.push({from:l,to:l.add(s.normalize(n))}),a;let c=n-i.dashGap,p=i.dashLength+i.dashGap,f=Math.floor(c/p),g=c-p*f;f>=1&&g<i.dashLength&&(g+=p,f--);let T=s.normalize(g/2),J=s.normalize(i.dashGap);if(a.push({from:l,to:l.add(T)}),l=l.add(T),f>0){let ot=s.normalize(i.dashLength);ArrayHelper.createEmptyArray(f).forEach(()=>{l=l.add(J),a.push({from:l,to:l.add(ot)}),l=l.add(ot);});}return l=l.add(J),a.push({from:l,to:l.add(T)}),a}};var E=class o extends u{static{h(this,"Graphics");}static{this.ƀcq=new Map;}static createArrow(t,e){let i=new V.Graphics,r=[[{x:0,y:-t/2},{x:t*3/8,y:-t/8},{x:t/4,y:0},{x:0,y:-t/4},{x:-t/4,y:0},{x:-t*3/8,y:-t/8}],[{x:0,y:-t/4},{x:t/8-t/30,y:-t/8-t/30},{x:t/8-t/30,y:t*7/16},{x:-t/8+t/30,y:t*7/16},{x:-t/8+t/30,y:-t/8-t/30}]];return i.beginFill(e),r.forEach(s=>{i.drawPolygon(s.map(n=>new V.Point(n.x,n.y)));}),i.endFill(),new o(i,JSON.stringify({type:"arrow",size:t,color:e}))}static createDashedLine(t,e,i){let r={width:2,dashLength:10,dashGap:4,lineStartGap:0,lineEndGap:0,color:ColorHelper.white,...i},s=new V.Graphics;return s.lineStyle(r.width,r.color),Re.getLines(t,e,r).forEach(a=>{s.moveTo(a.from.x,a.from.y).lineTo(a.to.x,a.to.y);}),new o(s,JSON.stringify({type:"dashedLine",from:t,to:e,options:r}))}static createVector(t,e,i){let r=new V.Graphics;return r.lineStyle(2,i),r.moveTo(t.x,t.y),r.lineTo(e.x,e.y),r.lineStyle(1,i),r.beginFill(ColorHelper.white),r.drawCircle(t.x,t.y,3),r.endFill(),new o(r,JSON.stringify({type:"line",start:t,end:e,color:i}))}static createRectangleBorders(t,e,i){let r=new V.Graphics;return r.beginFill(i),r.drawRect(0,0,t.x,e),r.drawRect(0,e,e,t.y-e*2),r.drawRect(t.x-e,e,e,t.y-e*2),r.drawRect(0,t.y-e,t.x,e),r.endFill(),new o(r,JSON.stringify({type:"rectangle-borders",size:t,borderSize:e,color:i}))}static createRectangle(t,e=ColorHelper.white){let i=new V.Graphics;return i.beginFill(e),i.drawRect(0,0,t.x,t.y),i.endFill(),new o(i,JSON.stringify({type:"rectangle",size:t,color:e}))}static createCircle(t,e){let i=new V.Graphics;return i.beginFill(e),i.drawCircle(0,0,t),i.endFill(),new o(i,JSON.stringify({type:"circle",radius:t,color:e}))}static createElipse(t,e){let i=new V.Graphics;return i.beginFill(e),i.drawEllipse(0,0,t.x,t.y),i.endFill(),new o(i,JSON.stringify({type:"elipse",size:t,color:e}))}static createPolygon(t,e){let i=new V.Graphics,r=JSON.stringify({type:"polygon",polygon:t,color:e});return i.beginFill(e),t.forEach(s=>{i.drawPolygon(s.map(n=>new V.Point(n.x,n.y)));}),i.endFill(),new o(i,r)}static createRegularPolygon(t,e,i){let r=new V.Graphics,s=new Radian(PI_360/t);r.beginFill(i),r.moveTo(e,0);for(let n=1;n<=t;n++){let l=s.multiply(n).vector.normalize(e),c=e+l.x,p=e+l.y;r.lineTo(c,p);}return r.endFill(),new o(r,JSON.stringify({type:"regular-polygon",sides:t,radius:e,color:i}))}constructor(t,e){super(),this.pixiContainer.addChild(t),this.pixiGraphics=t,this.ƀal=e;}destroy(){this.destroyed||(super.destroy(),!this.pixiGraphics.destroyed&&this.pixiGraphics.destroy());}toSprite(t){let e={cacheName:this.ƀal,cache:false,...t},i=this.ƀec(e.cacheName,e.cache),r={id:i.assetID,scale:1,size:i.bounds,anchor:{x:0,y:0},boundingShapes:void 0,destroyAssetOnDestroy:!e.cache},s=new Z(r,{texturePosition:i.bounds,ignoreAnchor:true});return this.attachToRoot(),this.destroy(),s}ƀec(t,e){if(e){let i=o.ƀcq.get(t);return i||(i=this.ƀce(),o.ƀcq.set(t,i)),i}else return this.ƀce()}ƀce(){let t=w.instance.renderer.generateTexture(this.pixiGraphics);t.id=M.insertAsset(t);let e=this.pixiGraphics.getBounds();return {assetID:t.id,bounds:new Vector(e.x,e.y)}}};var hi=class extends u{static{h(this,"Placeholder");}constructor(t){super(),this.ƀho=new V.Graphics,this.ƀho.beginFill(0,1e-9),this.ƀho.drawRect(0,0,t.x,t.y),this.ƀho.endFill(),this.pixiContainer.addChild(this.ƀho);}destroy(){this.destroyed||(super.destroy(),this.ƀho.destroy());}};var Mt=class{static{h(this,"TextStyleConverter");}static getPixiTextStyle(t){let e={color:ColorHelper.white,align:"center",fontFamily:"Arial",fontStyle:"normal",fontSize:18,lineHeight:void 0,wordWrapWidth:void 0,lineThrough:false,...t},i=t?.dropShadow===true?{}:t?.dropShadow,r={};if(i){let s={blur:4,angle:Radian.get60,distance:10,color:ColorHelper.black,alpha:.5,...i};r={dropShadow:true,dropShadowBlur:s.blur,dropShadowAngle:s.angle.value,dropShadowDistance:s.distance,dropShadowColor:ColorHelper.rgbToHex(s.color),dropShadowAlpha:s.alpha};}return {fontFamily:e.fontFamily,fill:ColorHelper.rgbToHex(e.color),align:e.align,fontSize:e.fontSize,fontStyle:e.fontStyle,lineHeight:e.lineHeight,wordWrapWidth:e.wordWrapWidth,wordWrap:e.wordWrapWidth!==void 0,lineThrough:e.lineThrough,...r}}};var Ae=class{static{h(this,"RichTextDataInConverter");}static process(t,e){let i=new Set(e.styles?Object.keys(e.styles):[]),r=RichTextSeparator.process(t,i),s=this.ƀfc(r,e),n=this.ƀr(s);return this.ƀix(n)}static ƀfc(t,e){let i=new Map,r=new Map,s=h((a,l)=>{if(r.has(l))return r.get(l);let c=Mt.getPixiTextStyle(a);return r.set(l,c),c},"GetPixiStyle");return t.map(a=>{let{style:l,cacheKey:c}=this.ƀdm(a.tags,e,i),p=s(l,c),f=V.TextMetrics.measureText(" ",new V.TextStyle(p),false);return {text:a.text,cacheKey:c,style:l,pixiStyle:p,spaceWidth:f.width}})}static ƀdm(t,e,i){let r=t.join("+");if(i.has(r))return {style:i.get(r),cacheKey:r};let s=this.ƀba(t,e);return i.set(r,s),{style:s,cacheKey:r}}static ƀba(t,e){let i={...e.default};for(let l of t)e.styles&&e.styles[l]&&(i={...i,...e.styles[l]});let{wordWrapWidth:r,align:s,dropShadow:n,...a}=i;return a}static ƀr(t){let e=[],i=[];return t.forEach((r,s)=>{r.text.split(/\r?\n/).forEach((a,l)=>{l>0&&(e.push(i),i=[]),i.push({text:a,cacheKey:r.cacheKey,style:r.style,pixiStyle:r.pixiStyle,spaceWidth:r.spaceWidth});});}),e.push(i),e}static ƀix(t){let e=[];return t.forEach(i=>{if(i.length===0)throw new Error("Internal Error: Line is unexpectedly empty");let r=i.flatMap(s=>this.ƀiy(s.text).map(a=>{let l=new V.TextStyle(s.pixiStyle),c=V.TextMetrics.measureText(a,l,false);return {text:a,whitespace:a.trim()==="",style:{cacheKey:s.cacheKey,style:s.style,pixiStyle:l,height:c.height,ascent:c.fontProperties.ascent,descent:c.fontProperties.descent,width:c.width,spaceWidth:s.spaceWidth}}}));e.push(r);}),e}static ƀiy(t){if(t==="")return [""];let e=[],i="",r=t[0]===" ";for(let s=0;s<t.length;s++){let n=t[s],a=n===" ";a===r?i+=n:(e.push(i),i=n,r=a);}return i&&e.push(i),e}};var Oe=class{static{h(this,"ConsistentSpaceTextWrapper");}static wrapText(t,e){return t.forEach(i=>{i.forEach((r,s)=>{if(e.isSpaceAvailable(new Vector(r.style.width,r.style.height)))if(r.whitespace&&s===i.length-2){let n=i[i.length-1];e.isSpaceAvailable(new Vector(n.style.width+r.style.width,n.style.height))?e.insertWord(r):this.ƀkm(r,e);}else e.insertWord(r);else e.lineIsEmpty?e.insertWord(r):r.whitespace?this.ƀkm(r,e):(e.newLine(),e.insertWord(r));}),e.newLine();}),e.print()}static ƀkm(t,e){let i=Math.max(0,Math.floor(e.remainingWidth/t.style.spaceWidth)),r=Math.max(0,Math.min(i,t.text.length-1));if(r>0){let n={text:" ".repeat(r),whitespace:true,style:{...t.style,width:r*t.style.spaceWidth}};e.insertWord(n);}e.newLine();let s=t.text.length-r-1;if(s>0){let n={text:" ".repeat(s),whitespace:true,style:{...t.style,width:s*t.style.spaceWidth}};e.insertWord(n);}}};var Me=class{static{h(this,"RichTextTypewriter");}get lineIsEmpty(){return this.ƀch.length===0}get remainingWidth(){return this.ƀkl-this.ƀcj}constructor(t,e){if(this.ƀkl=t,this.ƀfr=[],this.ƀch=[],this.ƀcj=0,this.ƀfq=new Vector(0,0),this.ƀci=0,this.ƀeu=e?.horizontalAlignment??"left",this.ƀkd=e?.verticalAlignment??"bottom",e?.rectangleCutOption){if(e.rectangleCutOption.position.x<0||e.rectangleCutOption.position.x>=this.ƀkl||e.rectangleCutOption.position.y<0)throw new Error("Rectangle cut position is out of bounds");this.ƀck={direction:e.rectangleCutOption.direction,rectangle:this.ƀbo(e.rectangleCutOption)};}}isSpaceAvailable(t){let e=Math.max(this.ƀci,t.y),i=this.ƀdu(this.ƀfq.y,this.ƀfq.y+e);return this.ƀcj+t.x<=i}insertWord(t){let e=Math.max(this.ƀci,t.style.height);if(this.ƀch.length===0){let i=this.ƀdv(this.ƀfq.y,this.ƀfq.y+e);this.ƀfq=new Vector(i,this.ƀfq.y),this.ƀcj=this.ƀfq.x;}this.ƀch.push({chunk:t,position:new Vector(this.ƀcj,this.ƀfq.y)}),this.ƀci=e,this.ƀcj+=t.style.width;}newLine(){let t=this.ƀfq.y+this.ƀci,e=this.ƀdv(t,t);this.ƀdb(),this.ƀfq=new Vector(e,t),this.ƀcj=this.ƀfq.x,this.ƀci=0;}print(){return this.ƀdb(),this.ƀfr}ƀdb(){this.ƀch.length>0&&(this.ƀfr.push(this.ƀg(this.ƀch)),this.ƀch=[]);}ƀg(t){return t=this.ƀkf(t),t=this.ƀew(t),t}ƀew(t){if(this.ƀeu==="left")return t;let e=this.ƀfq.y+this.ƀci,i=this.ƀdv(this.ƀfq.y,e),s=this.ƀdu(this.ƀfq.y,e)-i,n=Math.min(s,t.reduce((l,c)=>l+c.chunk.style.width,0)),a;return this.ƀeu==="center"?a=(s-n)/2:a=s-n,t.map(l=>(l={chunk:l.chunk,position:new Vector(l.position.x+a,l.position.y)},l))}ƀkf(t){let e=Math.max(...t.map(r=>r.chunk.style.ascent)),i=Math.max(...t.map(r=>r.chunk.style.descent));return t.map(r=>{let s;switch(this.ƀkd){case "top":s=i-r.chunk.style.descent;break;case "center":s=(i-r.chunk.style.descent+e-r.chunk.style.ascent)*.5;break;case "bottom":s=e-r.chunk.style.ascent;break}return r={chunk:r.chunk,position:new Vector(r.position.x,r.position.y+s)},r})}ƀdv(t,e){return this.ƀck&&(this.ƀck.direction==="topLeft"||this.ƀck.direction==="bottomLeft")&&(this.ƀck.rectangle.isPointInside(new Vector(0,t),{includeEdges:false})||this.ƀck.rectangle.isPointInside(new Vector(0,e),{includeEdges:false}))?this.ƀck.rectangle.bottomRight.x:0}ƀdu(t,e){return this.ƀck&&(this.ƀck.direction==="topRight"||this.ƀck.direction==="bottomRight")&&(this.ƀck.rectangle.isPointInside(new Vector(this.ƀkl,t),{includeEdges:false})||this.ƀck.rectangle.isPointInside(new Vector(this.ƀkl,e),{includeEdges:false}))?this.ƀck.rectangle.topLeft.x:this.ƀkl}ƀbo(t){let e,i;switch(t.direction){case "topRight":e=new Vector(t.position.x,-1/0),i=new Vector(1/0,t.position.y);break;case "topLeft":e=new Vector(-1/0,-1/0),i=t.position;break;case "bottomRight":e=t.position,i=new Vector(1/0,1/0);break;case "bottomLeft":e=new Vector(-1/0,t.position.y),i=new Vector(t.position.x,1/0);break}return new Rectangle(e,i)}};var De=class{static{h(this,"RichTextDataOutConverter");}static process(t){return t=this.ƀgd(t),t=this.ƀjw(t),this.ƀau(t)}static ƀgd(t){return t.map(e=>{let i=[],r,s=true;return e.forEach(n=>{if(!r||r.chunk.style.cacheKey!==n.chunk.style.cacheKey)r&&i.push(r),r=n,s=n.chunk.whitespace;else {let a=r.chunk.text+n.chunk.text;s=n.chunk.whitespace&&s,r={chunk:{text:a,whitespace:s,style:{...r.chunk.style,width:r.chunk.style.width+n.chunk.style.width}},position:r.position};}}),r&&i.push(r),i})}static ƀjw(t){return t.map(e=>{if(e.length===0)return [];let i=e.pop();if(!i.chunk.whitespace||i.chunk.text===""){let r=i.chunk.text.length,s=i.chunk.text.trimEnd();r!==s.length?e.push({chunk:{text:s,whitespace:false,style:{...i.chunk.style,width:i.chunk.style.width-(r-s.length)*i.chunk.style.spaceWidth}},position:i.position}):e.push(i);}return e})}static ƀau(t){return t.flatMap(e=>e.map(i=>({text:i.chunk.text,style:i.chunk.style.style,position:i.position}))).filter(e=>e.text.trim()!=="")}};var ee=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=Ae.process(t,e),r=new Me(e.default.wordWrapWidth??1/0,{rectangleCutOption:e.rectangleCut,verticalAlignment:e.verticalAlignment,horizontalAlignment:e.default.align}),s=Oe.wrapText(i,r);return De.process(s)}};var Cs=1,zi=1/Cs,ie=class extends u{static{h(this,"Text");}get ƀjo(){if(!this.ƀjp){let t=new V.TextStyle(this.ƀhq);this.ƀjp=V.TextMetrics.measureText(this.ƀjn,t);}return this.ƀjp}get ascent(){return this.ƀjo.fontProperties.ascent}constructor(t,e){super(),this.ƀhq=Mt.getPixiTextStyle(e),this.setText(t);}destroy(){this.destroyed||(super.destroy(),!this.ƀhp.destroyed&&this.ƀhp.destroy());}setAnchor(t){return this.anchor=t,this}get anchor(){return new Vector(this.ƀhp.anchor.x,this.ƀhp.anchor.y)}set anchor(t){this.ƀhp.anchor.set(t.x,t.y);}setPosition(t,e){if(e?.holdFrom){let i=this.ƀhq.dropShadowDistance??0,r=new Vector(e.holdFrom.x*i,e.holdFrom.y*i);t=t.add(r);}return super.setPosition(t,e),this}setText(t){return this.ƀjn!==t&&(this.ƀjn=t,this.ƀhx()),this}setColor(t){let e=ColorHelper.rgbToHex(t);return this.ƀhq.fill!==e&&(this.ƀhq.fill=e,this.ƀhx()),this}ƀhx(){this.ƀhp?.destroy(),this.ƀji?.destroy(),this.ƀji=void 0,this.ƀjp=void 0;let t=new V.TextStyle(this.ƀhq);this.ƀhp=new V.Text(this.ƀjn,t),this.ƀhp.scale.set(zi,zi),this.pixiContainer.addChild(this.ƀhp),this.ƀhq.lineThrough&&(this.ƀji=this.ƀe(this.ƀhp,this.ƀhq.fill),this.pixiContainer.addChild(this.ƀji));}ƀe(t,e){let i=V.TextMetrics.measureText(t.text,t.style),r=Math.max(1,Math.round(i.lineHeight*.07)),s=r%2*.5,n=new V.Graphics;n.lineStyle(r,e);let a=0;return i.lines.forEach((l,c)=>{let p=V.TextMetrics.measureText(l,t.style),f=Math.round(a+(p.fontProperties.ascent-p.fontProperties.descent)*.6+p.fontProperties.descent)+s,g=0;t.style.align==="center"?g=0+(t.width-p.width)*.5:t.style.align==="right"&&(g=0+t.width-p.width),g=Math.floor(g),n.moveTo(Math.floor(g),f),n.lineTo(Math.floor(g+p.width),f),a+=p.lineHeight;}),n.endFill(),n}};var li=class extends u{static{h(this,"RichText");}constructor(t,e){super(),ee.process(t,e).forEach(r=>new ie(r.text,r.style).setPosition(r.position).displayParent(this).attach(this));}};var ci=class extends u{static{h(this,"UpdatableContainer");}},pi=class extends u{static{h(this,"DisplayObjectArray");}constructor(t,e){super(),this.ƀbu=t,this.ƀcn=new Map,this.ƀgx={trackBy:h((i,r)=>r,"trackBy"),positioning:{direction:"vertical",spacing:0},...e};}set(t){let e=new Set(this.ƀcn.values()),i=0;t.forEach((r,s)=>{let n=this.ƀgx.trackBy(r,s),a;this.ƀcn.has(n)?(a=this.ƀcn.get(n),e.delete(a),a.update(r)):(a=this.ƀbu(r).displayParent(this).attach(this),this.ƀcn.set(n,a)),this.ƀgx.positioning.direction==="horizontal"?(a.x=i,i+=a.size.x+this.ƀgx.positioning.spacing):(a.y=i,i+=a.size.y+this.ƀgx.positioning.spacing);}),e.forEach(r=>{r.destroy();});}};var Bt=class o extends u{static{h(this,"Menu");}static{this.ƀju=false;}static closeAll(){return o.ƀgw?o.ƀgw.close():SingleEvent.instant()}constructor(t,e){super(),this.ƀgp=new SingleAction,this.onOpen=this.ƀgp.notifier,this.ƀgk=new SingleAction,this.onClose=this.ƀgk.notifier;let i={closeOnBackgroundClick:true,appearAnimationDuration:150,darkeningAlpha:.3,...e};this.setZIndex(100).setAlpha(0),this.ƀn=new O(this,"alpha",{animation:S.easeInOutCubic,duration:i.appearAnimationDuration,reAnimateHandling:_.CompletePrevious,completionHandling:I.StayInCurrentState}),this.ƀz=E.createRectangle(new Vector(1,1),ColorHelper.black).toSprite({cache:true}).setAlpha(i.darkeningAlpha).setInteractive(true).displayParent(this).attach(this),this.ƀgc=Z.createByName(t).setPosition(new Vector(0,0)).setInteractive(true).displayParent(this).attach(this),w.instance.screenSize.subscribe(r=>{this.ƀz.aspectRatio=r.x/r.y,this.ƀz.scale=Math.max(r.x,r.y),this.ƀz.setPosition(Vector.zero,{holdFrom:Vector.half}),this.setPosition(r.multiplyNumber(.5));}).attach(this),o.ƀgw=this,this.onDestroy().tap(()=>{o.ƀgw=void 0;}).attachToRoot(),i.closeOnBackgroundClick&&this.ƀz.on(kt.Click,()=>{o.ƀju||this.ƀp(false);}).attach(this),this.ƀp(true);}getBoundingMask(){return this.ƀgc.getBoundingMask()}close(){return this.ƀp(false)}ƀp(t){if(o.ƀju)throw new Error("WindowUI: cannot iterate while in transition");return o.ƀju=true,this.ƀn.animate({alpha:t?1:0}).chain(this).tap(()=>{o.ƀju=false,t?this.ƀgp.resolve():(this.ƀgk.resolve(),this.destroy());}).chainToRoot()}};var ui=class extends gt{static{h(this,"MenuEntity");}constructor(t,e){super(),this.ƀgn=new SingleAction,this.onCreate=this.ƀgn.notifier,this.ƀgp=new SingleAction,this.onOpen=this.ƀgp.notifier,this.ƀgk=new SingleAction,this.onClose=this.ƀgk.notifier,Bt.closeAll().tap(()=>{if(!St.getActiveScene())throw new Error("WindowEntity: constructor is called when there is no active scene!");w.pause.effect(true).attach(this),this.ƀgc=new Bt(t,e).displayParent(w.camera.layers.foregroundScreen).attach(this),this.ƀgn.resolve(this.ƀgc),this.ƀgc.onOpen.subscribe(()=>this.ƀgp.resolve()).attach(this),this.ƀgc.onClose.subscribe(()=>{this.destroy(),this.ƀgk.resolve();}).attach(this);}).attach(this);}close(){if(this.ƀgc){let t=this.onClose.toSingleEvent().destroyIfNotAttached();return this.ƀgc.close(),t}else return this.onCreate.asyncMapQueue(()=>this.close()).singleChain(this)}};var Rs=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Is=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},wt=class{static{h(this,"MouseService");}get initialMouseMoveHappened(){return this.ƀfe.value}getStagePosition(){return this.ƀja.value}getScreenPosition(){return this.ƀih.value}getMainButtonState(){return this.ƀfw.value}getSecondaryButtonState(){return this.ƀin.value}constructor(){this.ƀfe=new Variable(false),this.onInitialMouseMove=this.ƀfe.notifier,this.ƀja=new Variable(Vector.zero,{notifyOnChange:true}),this.stagePosition=this.ƀja.notifier,this.ƀih=new Variable(Vector.zero,{notifyOnChange:true}),this.screenPosition=this.ƀih.notifier,this.ƀfw=new Variable(false),this.mainButtonState=this.ƀfw.notifier,this.ƀin=new Variable(false),this.secondaryButtonState=this.ƀin.notifier,this.ƀjb(),window.addEventListener("mousedown",t=>{t.button===0?this.ƀfw.value=true:t.button===2&&(this.ƀin.value=true);}),window.addEventListener("mouseup",t=>{t.button===0?this.ƀfw.value=false:t.button===2&&(this.ƀin.value=false);}),window.addEventListener("blur",()=>{this.ƀfw.value=false,this.ƀin.value=false;});}ƀjb(){let t=Vector.zero;window.addEventListener("mousemove",e=>{t=new Vector(e.clientX,e.clientY),this.ƀfe.value=true;}),y.beforeSceneUpdateAction.subscribe(()=>{this.ƀih.value=t;}).attachToRoot(),y.afterSceneUpdateAction.subscribe(()=>{let e=w.instance.screenPositonToStagePosition(this.ƀih.value);e.isEqual(this.ƀja.value)?w.instance.renderer.events.onPointerMove(new PointerEvent("pointermove",{clientX:this.ƀih.value.x,clientY:this.ƀih.value.y,pointerType:"mouse"})):this.ƀja.value=e;}).attachToRoot();}};wt=Rs([d(),Is("design:paramtypes",[])],wt);var se=class extends u{static{h(this,"MouseWheelListenerUI");}constructor(t){super(),this.ƀgt=new Action,this.onWheel=this.ƀgt.notifier,this.ƀep=(e=>{let i=P.get(wt).getScreenPosition(),r=this.ƀkk.getBounds();i.x>=r.x&&i.x<=r.x+r.width&&i.y>=r.y&&i.y<=r.y+r.height&&this.ƀgt.trigger(e.deltaY);}).bind(this),this.ƀkk=new V.Graphics,this.ƀkk.beginFill(0,1e-9),this.ƀkk.drawRect(0,0,t.x,t.y),this.ƀkk.endFill(),this.pixiContainer.addChild(this.ƀkk),window.addEventListener("wheel",this.ƀep);}destroy(){this.destroyed||(super.destroy(),this.ƀkk.destroy(),window.removeEventListener("wheel",this.ƀep));}};var Ms=.65,Ds=.01,Fe=class{static{h(this,"SmoothScroller");}get scrollHeight(){return this.ƀil}get contentSize(){return this.ƀbh.size.ceil()}constructor(t,e,i,r){this.ƀbh=t,this.ƀu=e,this.ƀgz=i,this.ƀiw=r,this.ƀff=false,this.ƀil=e-i*2,this.ƀbh.y=i,this.ƀjj=i;}onWheel(t){this.setTarget(this.ƀjj-t*Ms);}scrollToTop(){this.setTarget(1/0);}scrollToBottom(){this.setTarget(-1/0);}setTarget(t){this.ƀjj=NumberHelper.clamp(t,this.ƀu-this.ƀgz-this.contentSize.y,this.ƀgz);}jumpToTarget(){this.ƀbh.y=this.ƀjj;}update(t){let e=this.contentSize;if(e.y<=this.ƀil){switch(this.ƀiw){case "start":this.ƀjj=this.ƀgz;break;case "center":this.ƀjj=(this.ƀu-e.y)*.5;break;case "end":this.ƀjj=this.ƀu-e.y-this.ƀgz;break}this.ƀff||(this.ƀbh.y=this.ƀjj);}this.ƀff=true;let i=this.ƀjj-this.ƀbh.y;this.ƀbh.y=this.ƀbh.y+i*Ds*t;}};var mi=class{static{h(this,"AnimationEaseInOutFlatter");}start(){}multiplierFunction(t){return 3*(1-t)*Math.pow(t,2)+Math.pow(t,3)}},xt=class o extends u{static{h(this,"ScrollMaskUI");}static{this.ƀcq=new Map;}constructor(t,e,i,r=rt.Vertical){if(super(),i<0)throw new Error("The padding of the scroll mask cannot be lower than '0'");if(e.y<i*2)throw new Error(`The height of the scroll mask cannot be lower than '${i*2}'`);let s=new u;r===rt.Horizontal?this.ƀby(e,i,s):this.ƀcf(e,i,s),this.ƀfz=Z.createSnapshotSprite(s).attach(this),s.destroy(),t.setMask(this.ƀfz);}ƀcf(t,e,i){e>0&&this.ƀbv(new Vector(t.x,e)).displayParent(i).attach(i),E.createRectangle(new Vector(t.x,t.y-e*2),ColorHelper.white).toSprite().setPosition(new Vector(0,e),{round:false}).displayParent(i).attach(i),e>0&&this.ƀbv(new Vector(t.x,e)).setPosition(new Vector(t.x,t.y),{round:false}).setRotation(Radian.get180).displayParent(i).attach(i);}ƀby(t,e,i){e>0&&this.ƀbv(new Vector(t.y,e)).setPosition(new Vector(0,t.y),{round:false}).setRotation(Radian.get270).displayParent(i).attach(i),E.createRectangle(new Vector(t.x-e*2,t.y),ColorHelper.white).toSprite().setPosition(new Vector(e,0),{round:false}).displayParent(i).attach(i),e>0&&this.ƀbv(new Vector(t.y,e)).setPosition(new Vector(t.x,0),{round:false}).setRotation(Radian.get90).displayParent(i).attach(i);}ƀbv(t){let i={id:this.ƀbw(t.y),scale:1,size:t,anchor:{x:0,y:0},boundingShapes:void 0};return new Z(i,{textureSize:t,ignoreAnchor:true})}ƀbw(t){let e=JSON.stringify({type:"gradient",length:t}),i=o.ƀcq.get(e);if(!i){let r=document.createElement("canvas");r.width=1,r.height=t;let s=r.getContext("2d");if(s){let n=new mi;ArrayHelper.createIntegerArray(t).forEach(l=>{let c=`rgba(255, 255, 255, ${n.multiplierFunction(l/t)})`;s.fillStyle=c,s.fillRect(0,l,1,1);});let a=V.Texture.from(r);i=M.insertAsset(a),o.ƀcq.set(e,i);}else throw new Error("Canvas context is null")}return i}};var Fs=15,gi=class extends u{static{h(this,"ScrollAreaUI");}get contentAreaSize(){return this.ƀbi}get contentSize(){return this.ƀim.contentSize}constructor(t,e={}){super();let i={padding:Fs,smallContentAlign:"start",...e};if(i.padding<0)throw new Error("The padding of the scroll mask cannot be lower than '0'");if(i.padding>t.y*.5)throw new Error("The padding of the scroll mask cannot be higher than half of the size of the area");let r=new u().displayParent(this).attach(this);new xt(r,t,i.padding).attach(this);let s=new u().displayParent(r).attach(this);this.ƀim=new Fe(s,t.y,i.padding,i.smallContentAlign),this.ƀbi=new Vector(t.x,this.ƀim.scrollHeight),new se(t).displayParent(r).attach(this).onWheel.subscribe(a=>this.ƀim.onWheel(a)).attach(this),y.afterSceneUpdateAction.subscribe(a=>this.ƀim.update(a.delta)).attach(this),this.addChildTo=s;}scrollToTop(t){this.ƀim.scrollToTop(),t?.instant&&this.ƀim.jumpToTarget();}scrollToBottom(t){this.ƀim.scrollToBottom(),t?.instant&&this.ƀim.jumpToTarget();}};var _s=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Ls=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},yi=class{static{h(this,"KeyboardService");}constructor(){this.ƀfm=new Action,this.keyPressed=this.ƀfm.notifier,this.ƀfn=new Action,this.keyReleased=this.ƀfn.notifier,this.ƀft=new Set,this.ƀfs=new Set,window.addEventListener("keydown",t=>{this.ƀft.add(t.key),this.ƀfs.add(t.key),!t.repeat&&this.ƀfm.trigger(t.key);}),window.addEventListener("keyup",t=>{this.ƀft.delete(t.key),this.ƀfn.trigger(t.key);}),window.addEventListener("blur",()=>{this.ƀft.clear();}),y.afterSceneUpdateAction.subscribe(()=>{this.ƀfs.clear();}).attachToRoot();}isKeyDown(t){return this.ƀft.has(t)}isKeyJustPressed(t){return this.ƀfs.has(t)}};yi=_s([d(),Ls("design:paramtypes",[])],yi);var Vs=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Ns=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},wi=class{static{h(this,"MouseTargetFocusService");}get focusedInLastFrame(){return this.ƀdc}get lastFocusedPosition(){return this.ƀfp}constructor(t){this.ƀgf=t,this.ƀgr=new Action,this.onTargetFocus=this.ƀgr.notifier,this.ƀjt=0,this.ƀjv=false,this.ƀdc=false,this.ƀfp=void 0,y.beforeSceneUpdateAction.subscribe(e=>this.ƀjx(e.delta)).attachToRoot();}ƀjx(t){if(this.ƀgg){let e=this.ƀeb(this.ƀgf.getStagePosition(),this.ƀgg);this.ƀhb===void 0?this.ƀhb=e:this.ƀat(e,t);}this.ƀgg=this.ƀgf.getStagePosition();}ƀat(t,e){this.ƀhb-t>10?(this.ƀjt=Math.max(250,this.ƀjt),this.ƀjv=true):this.ƀjt>1e3&&(this.ƀjv=true);let i=this.ƀjt>=300&&this.ƀjv;this.ƀfk(i,t,e);}ƀfk(t,e,i){(t||e>this.ƀhb)&&(this.ƀhb=e),t?(this.ƀjv=false,this.ƀjt=0,this.ƀdc=true,this.ƀfp=this.ƀgf.getStagePosition(),this.ƀgr.trigger(this.ƀfp)):(this.ƀjt+=i,this.ƀdc=false);}ƀeb(t,e){let i=Vector.fromTo(t,e);return Math.abs(i.x)+Math.abs(i.y)}};wi=Vs([d(),Ns("design:paramtypes",[wt])],wi);var x;(function(o){o[o.Hidden=1]="Hidden",o[o.Visible=2]="Visible",o[o.Appearing=3]="Appearing",o[o.Disappearing=4]="Disappearing",o[o.DisappearToChange=5]="DisappearToChange";})(x||(x={}));var _e=class extends Attachable{static{h(this,"FadeInStateAnimation");}get currentState(){return {value:this.ƀi.value,state:this.ƀje,queuedState:this.ƀhs,animationState:this.ƀm}}constructor(t){super(),this.ƀi={value:0},this.ƀm=x.Hidden,this.ƀgq=new Action,this.ƀgs=new Action,this.ƀgx={duration:500,animation:S.lineer,...t},this.ƀi.value=0,this.ƀn=new O(this.ƀi,"value",{duration:this.ƀgx.duration,animation:this.ƀgx.animation,reAnimateHandling:_.CompletePrevious,completionHandling:I.StayInCurrentState}),this.ƀn.value.subscribe(()=>{this.ƀi.value!==1&&this.ƀi.value!==0&&this.ƀgs.trigger(this.ƀi.value);}).attach(this);}setState(t,e){if(e?.instant){this.ƀn.completeAnimation(),this.ƀm=t!==void 0?x.Visible:x.Hidden,this.ƀhs=void 0;let i=t!==void 0?1:0,r=this.ƀje!==t;r&&(this.ƀje=t,this.ƀgq.trigger(this.ƀje)),(r||this.ƀi.value!==i)&&(this.ƀi.value=i,this.ƀgs.trigger(this.ƀi.value));}else switch(this.ƀm){case x.Hidden:t!==void 0&&(this.ƀm=x.Appearing,this.ƀhs=void 0,this.ƀje=t,this.ƀgq.trigger(this.ƀje),this.ƀn.animate({value:1}).tap(()=>this.ƀgm()).attach(this));break;case x.Visible:t===void 0?(this.ƀm=x.Disappearing,this.ƀhs=void 0,this.ƀn.animate({value:0}).tap(()=>this.ƀgm()).attach(this)):t!==this.ƀje&&(this.ƀm=x.DisappearToChange,this.ƀhs=t,this.ƀn.animate({value:0}).tap(()=>this.ƀgm()).attach(this));break;case x.Appearing:t===void 0?(this.ƀm=x.Disappearing,this.ƀhs=void 0,this.ƀn.animate({value:0},{duration:this.ƀi.value*this.ƀgx.duration}).tap(()=>this.ƀgm()).attach(this)):t!==this.ƀje&&(this.ƀi.value>0?(this.ƀm=x.DisappearToChange,this.ƀhs=t,this.ƀn.animate({value:0},{duration:this.ƀi.value*this.ƀgx.duration}).tap(()=>this.ƀgm()).attach(this)):(this.ƀhs=void 0,this.ƀje=t,this.ƀgq.trigger(this.ƀje)));break;case x.Disappearing:t===this.ƀje?(this.ƀm=x.Appearing,this.ƀn.animate({value:1},{duration:(1-this.ƀi.value)*this.ƀgx.duration}).tap(()=>this.ƀgm()).attach(this)):t!==void 0&&(this.ƀm=x.DisappearToChange,this.ƀhs=t);break;case x.DisappearToChange:t===void 0?(this.ƀm=x.Disappearing,this.ƀhs=void 0):t===this.ƀje?(this.ƀm=x.Appearing,this.ƀhs=void 0,this.ƀn.animate({value:1},{duration:(1-this.ƀi.value)*this.ƀgx.duration}).tap(()=>this.ƀgm()).attach(this)):t!==this.ƀhs&&(this.ƀhs=t);break}}ƀgm(){switch(this.ƀm){case x.Appearing:this.ƀi.value===1&&(this.ƀm=x.Visible,this.ƀgs.trigger(this.ƀi.value));break;case x.Disappearing:if(this.ƀhs!==void 0)throw new Error("FadeInStateAnimation: Unexpected state, disappearing should not have a queued value");this.ƀi.value===0&&(this.ƀm=x.Hidden,this.ƀje=void 0,this.ƀgq.trigger(this.ƀje),this.ƀgs.trigger(this.ƀi.value));break;case x.DisappearToChange:if(this.ƀhs===void 0)throw new Error("FadeInStateAnimation: Unexpected state, disappearToChange should always have a queued value");this.ƀi.value===0&&(this.ƀm=x.Appearing,this.ƀje=this.ƀhs,this.ƀhs=void 0,this.ƀgq.trigger(this.ƀje),this.ƀgs.trigger(this.ƀi.value),this.ƀn.animate({value:1}).tap(()=>this.ƀgm()).attach(this));break;case x.Hidden:case x.Visible:return}}onStateChange(t){return this.ƀgq.subscribe(e=>t(e)).attach(this),this}onValueChange(t){return this.ƀgs.subscribe(e=>t(e)).attach(this),this}};var Qi=class extends u{static{h(this,"FadeInContent");}constructor(t,e){super(),this.ƀbu=t;let i={duration:200,animation:S.easeInOut,...e};this.alpha=0,this.ƀjf=new _e(i).onStateChange(r=>{this.ƀbh?.destroy(),this.ƀbh=void 0,r!==void 0&&(this.ƀbh=new u().displayParent(this).attach(this),this.ƀbu({state:r,container:this.ƀbh}));}).onValueChange(r=>{this.alpha=r;}).attach(this);}setState(t,e){return this.ƀjf.setState(t,e),this}};var A;(function(o){o[o.Idle=1]="Idle",o[o.Transitioning=2]="Transitioning",o[o.Reverting=3]="Reverting";})(A||(A={}));var Le=class extends Attachable{static{h(this,"StateAnimation");}get currentState(){return {value:this.ƀi.value,state:this.ƀje,nextState:this.ƀgi,queuedState:this.ƀhs,animationState:this.ƀm}}constructor(t){super(),this.ƀi={value:0},this.ƀm=A.Idle,this.ƀgq=new Action,this.ƀgs=new Action,this.ƀgx={duration:500,animation:S.lineer,...t},this.ƀn=new O(this.ƀi,"value",{duration:this.ƀgx.duration,animation:this.ƀgx.animation,reAnimateHandling:_.CompletePrevious,completionHandling:I.StayInCurrentState}),this.ƀn.value.subscribe(()=>{this.ƀi.value!==1&&this.ƀi.value!==0&&this.ƀgs.trigger(this.ƀi.value);}).attach(this);}setState(t,e){if(this.ƀje===void 0)this.ƀje=t,this.ƀgq.trigger({state:this.ƀje,nextState:this.ƀgi}),this.ƀgs.trigger(this.ƀi.value);else if(e?.instant)this.ƀn.completeAnimation(),this.ƀm=A.Idle,this.ƀje=t,this.ƀgi=void 0,this.ƀi.value=0,this.ƀgq.trigger({state:this.ƀje,nextState:this.ƀgi}),this.ƀgs.trigger(this.ƀi.value);else switch(this.ƀm){case A.Idle:t!==this.ƀje&&(this.ƀm=A.Transitioning,this.ƀgi=t,this.ƀi.value=0,this.ƀgq.trigger({state:this.ƀje,nextState:this.ƀgi}),this.ƀgs.trigger(this.ƀi.value),this.ƀn.animate({value:1}).tap(()=>this.ƀgm()).attach(this));break;case A.Transitioning:t!==this.ƀgi&&(t===this.ƀje?(this.ƀm=A.Reverting,this.ƀn.animate({value:0},{duration:this.ƀi.value*this.ƀgx.duration}).tap(()=>this.ƀgm()).attach(this)):this.ƀhs=t);break;case A.Reverting:t!==this.ƀje&&(t===this.ƀgi?(this.ƀm=A.Transitioning,this.ƀn.animate({value:1},{duration:(1-this.ƀi.value)*this.ƀgx.duration}).tap(()=>this.ƀgm()).attach(this)):this.ƀhs=t);break}}ƀgm(){switch(this.ƀm){case A.Transitioning:this.ƀi.value===1&&(this.ƀi.value=0,this.ƀhs!==void 0?(this.ƀm=A.Transitioning,this.ƀje=this.ƀgi,this.ƀgi=this.ƀhs,this.ƀhs=void 0,this.ƀgq.trigger({state:this.ƀje,nextState:this.ƀgi}),this.ƀn.animate({value:1}).tap(()=>this.ƀgm()).attach(this)):(this.ƀm=A.Idle,this.ƀje=this.ƀgi,this.ƀgi=void 0,this.ƀgq.trigger({state:this.ƀje,nextState:this.ƀgi})),this.ƀgs.trigger(this.ƀi.value));break;case A.Reverting:if(this.ƀje===void 0)throw new Error("StateAnimation: state must be defined when reverting!");this.ƀi.value===0&&(this.ƀhs!==void 0?(this.ƀm=A.Transitioning,this.ƀgi=this.ƀhs,this.ƀhs=void 0,this.ƀi.value=0,this.ƀgq.trigger({state:this.ƀje,nextState:this.ƀgi}),this.ƀn.animate({value:1}).tap(()=>this.ƀgm()).attach(this)):(this.ƀm=A.Idle,this.ƀgi=void 0,this.ƀi.value=0,this.ƀgq.trigger({state:this.ƀje,nextState:this.ƀgi})),this.ƀgs.trigger(this.ƀi.value));break;case A.Idle:break}}onStateChange(t){return this.ƀgq.subscribe(e=>t(e.state,e.nextState)).attach(this),this}onValueChange(t){return this.ƀgs.subscribe(e=>t(e)).attach(this),this}};var st;(function(o){o[o.Appear=1]="Appear",o[o.Disappear=2]="Disappear";})(st||(st={}));var C;(function(o){o[o.Idle=1]="Idle",o[o.TransitionForward=2]="TransitionForward",o[o.TransitionBackward=3]="TransitionBackward",o[o.Reverting=4]="Reverting";})(C||(C={}));var Ve=class extends Attachable{static{h(this,"SlideStateAnimation");}constructor(t){super(),this.ƀm=C.Idle,this.ƀgq=new Action,this.ƀgs=new Action,this.ƀgx={duration:500,animation:S.easeInOutCubic,...t},this.ƀjf=new Le({duration:this.ƀgx.duration,animation:this.ƀgx.animation}).onStateChange((e,i)=>this.ƀen(e,i)).onValueChange(e=>this.ƀeo(e)).attach(this);}setIndex(t,e){if(!Comparator.isInteger(t))throw new Error("SlideStateAnimation: index must be an integer!");this.ƀfd===void 0?(this.ƀfd=t,this.ƀgq.trigger({state:st.Appear,index:t}),this.ƀjf.setState(t,e)):this.ƀfd!==t?this.ƀgh!==t?this.ƀm===C.Idle?(this.ƀm=t>this.ƀfd?C.TransitionForward:C.TransitionBackward,this.ƀgh=t,this.ƀgq.trigger({state:st.Appear,index:this.ƀgh}),this.ƀjf.setState(t,e)):this.ƀjf.setState(t,e):this.ƀm===C.Reverting&&this.ƀgh===t&&(this.ƀm=t>this.ƀfd?C.TransitionForward:C.TransitionBackward,this.ƀjf.setState(t,e)):(this.ƀm===C.TransitionForward||this.ƀm===C.TransitionBackward)&&(this.ƀm=C.Reverting,this.ƀjf.setState(t,e));}ƀen(t,e){switch(this.ƀfd!==void 0&&this.ƀfd!==t&&this.ƀfd!==e&&this.ƀgq.trigger({state:st.Disappear,index:this.ƀfd}),this.ƀgh!==void 0&&this.ƀgh!==t&&this.ƀgh!==e&&this.ƀgq.trigger({state:st.Disappear,index:this.ƀgh}),e!==void 0&&e!==this.ƀfd&&e!==this.ƀgh&&this.ƀgq.trigger({state:st.Appear,index:e}),this.ƀm){case C.TransitionForward:case C.TransitionBackward:e===void 0?(this.ƀm=C.Idle,this.ƀfd=this.ƀgh,this.ƀgh=void 0):this.ƀfd!==t&&this.ƀel(t,e);break;case C.Reverting:e===void 0?(this.ƀm=C.Idle,this.ƀgh=void 0):this.ƀfd!==e&&this.ƀel(t,e);break}}ƀeo(t){let e=1;(this.ƀm===C.TransitionBackward||this.ƀm===C.Reverting&&this.ƀfd!==void 0&&this.ƀgh!==void 0&&this.ƀfd>this.ƀgh)&&(e=-1),(this.ƀm===C.Idle||t!==0)&&this.ƀgs.trigger({value:NumberHelper.ensurePositiveZero(-e*t),index:this.ƀfd}),this.ƀgh!==void 0&&this.ƀgs.trigger({value:NumberHelper.ensurePositiveZero(e*(1-t)),index:this.ƀgh});}ƀel(t,e){this.ƀfd=t,this.ƀgh=e,this.ƀgs.trigger({value:0,index:this.ƀfd}),this.ƀm=this.ƀfd<this.ƀgh?C.TransitionForward:C.TransitionBackward;}onStateChange(t){return this.ƀgq.subscribe(e=>t(e.state,e.index)).attach(this),this}onValueChange(t){return this.ƀgs.subscribe(e=>t(e.value,e.index)).attach(this),this}};var rt;(function(o){o[o.Horizontal=1]="Horizontal",o[o.Vertical=2]="Vertical";})(rt||(rt={}));var xi=class extends u{static{h(this,"SlideInContentByIndex");}constructor(t,e){super(),this.ƀbu=t,this.ƀcl="x",this.ƀbj=new Map,this.ƀgx={duration:300,animation:S.easeInOutCubic,size:new Vector(500,500),margin:20,direction:rt.Horizontal,...e};let i=this.ƀgx.direction===rt.Horizontal?new Vector(this.ƀgx.size.x+this.ƀgx.margin*2,this.ƀgx.size.y):new Vector(this.ƀgx.size.x,this.ƀgx.size.y+this.ƀgx.margin*2),r=new u().setPosition(this.ƀgx.direction===rt.Horizontal?new Vector(-this.ƀgx.margin,0):new Vector(0,-this.ƀgx.margin),{round:false}).displayParent(this).attach(this);this.ƀbz(i,this.ƀgx.margin,this.ƀgx.direction,r),this.ƀcl=this.ƀgx.direction===rt.Horizontal?"x":"y",this.ƀjf=new Ve({duration:this.ƀgx.duration,animation:this.ƀgx.animation}).onStateChange((s,n)=>{if(s===st.Appear){let a=new u().displayParent(this).attach(this);this.ƀbj.set(n,a),this.ƀbu({index:n,container:a});}else {let a=this.ƀbj.get(n);a&&(a.destroy(),this.ƀbj.delete(n));}}).onValueChange((s,n)=>{let a=this.ƀbj.get(n);if(a){let l={x:0,y:0};l[this.ƀcl]=i[this.ƀcl]*s+this.ƀgx.margin,a.setPosition(Vector.fromVec2(l),{round:false});}}).attach(this),this.addChildTo=r;}setIndex(t,e){return this.ƀjf.setIndex(t,e),this}ƀbz(t,e,i,r){new xt(r,new Vector(t.x,t.y),e,i).attach(this);}},ir=class extends xi{static{h(this,"SlideInContent");}constructor(t,e,i){super(r=>{let s=this.indexToItem.get(r.index);if(s)e({index:r.index,item:s,container:r.container});else throw new Error(`SlideInContent: The item with index '${r.index}' is not part of the items list`)},i),this.itemToIndex=new Map,this.indexToItem=new Map,t.forEach((r,s)=>{this.itemToIndex.set(r,s),this.indexToItem.set(s,r);});}setItem(t,e){let i=this.itemToIndex.get(t);if(i!==void 0)this.setIndex(i,e);else throw new Error(`SlideInContent: The item '${t}' is not part of the items list`);return this}};var bt=class{static{h(this,"VectorSet");}constructor(){this.ƀkb=new Map;}add(t){let e=this.ƀkb.get(t.x);e||(e=new Set,this.ƀkb.set(t.x,e)),e.add(t.y);}has(t){let e=this.ƀkb.get(t.x);return e?e.has(t.y):false}delete(t){let e=this.ƀkb.get(t.x);return e?e.delete(t.y):false}};var vi=class{static{h(this,"DeltaTime");}static adjustMultiplier(t,e){return Math.pow(t,e)}};var B=class{static{h(this,"PositionToGridPositionConverter");}static areaToGridArea(t,e){return new 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 Vector(.5,.5)).multiplyNumber(e)}};var oe=class{static{h(this,"ClosestAvailableSpaceHelper");}static findByConvertingGridSpace(t,e,i){let r=new Vector(Math.ceil(e.size.x/i)-1,Math.ceil(e.size.y/i)-1),s=B.areaToGridArea(e,i);if(this.ƀas(t,s))return Vector.zero;let n=t.movePositionInsideGrid(s.topLeft),a=Vector.fromTo(s.topLeft,n),l=this.find(t,n,r);if(l){let c=l.add(a),p=Vector.fromTo(s.topLeft.multiplyNumber(i),e.topLeft);return new Vector(c.x*i+((r.x+1)*i-e.size.x)/2-p.x,c.y*i+((r.y+1)*i-e.size.y)/2-p.y)}}static find(t,e,i){let r=new bt,s=new Queue(e);for(;s.notEmpty;){let n=s.pop();r.add(n);let a=new Rectangle(n,n.add(i));if(this.ƀas(t,a))return Vector.fromTo(e,n);t.getNeighborPositions(n,GridNeighborType.Ortogonal).forEach(l=>{r.has(l)||s.add(l);});}}static ƀas(t,e){if(!t.isAreaWithinBounds(e))return false;for(let i=e.topLeft.y;i<=e.bottomRight.y;i++)for(let r=e.topLeft.x;r<=e.bottomRight.x;r++)if(!t.get(new Vector(r,i)))return false;return true}};var rr=class{static{h(this,"PathfinderNode");}constructor(t,e,i,r=void 0){this.position=t,this.distanceFromStart=e,this.distanceToEnd=i,this.parent=r,this.closed=false;}get pathLength(){return this.distanceFromStart+this.distanceToEnd}isEqual(t){return Vector.isEqual(this.position,t)}createSolutionPath(t){let e=[this.position],i=this.parent;for(;i!==void 0;)e.push(i.position),i=i.parent;return e.reverse(),{directPathAvailable:t,path:e}}getDistance(t){return this.position.getDistance(t)}},to=class{static{h(this,"PathfinderGrid");}constructor(t,e){this.ƀek=t,this.ƀjc=e,this.ƀgv=new BinaryHeap("min"),this.ƀaw=[],this.ƀgj=new Grid({size:t.size,defaultValue:void 0});let i=new rr(this.ƀjc,0,Number.MAX_SAFE_INTEGER);this.ƀgv.add(i.pathLength,i);}get hasOpenNodes(){return this.ƀgv.size>0}getNeighbors(t,e){return this.ƀek.getNeighborPositions(t.position,e).filter(i=>this.ƀek.get(i)).map(i=>this.ƀgj.get(i)||this.ƀca(i))}popLowestPathCostNode(){let t=this.ƀgv.pop();return this.ƀgv.delete(t),t.closed=true,this.ƀaw.push(t),t}changeNodeCost(t,e,i,r){this.ƀgv.delete(t),t.distanceFromStart=e,t.distanceToEnd=t.getDistance(i),t.parent=r,this.ƀgv.add(t.pathLength,t);}getBestClosedNode(){return this.ƀaw.reduce((t,e)=>t.distanceToEnd<e.distanceToEnd?t:e)}ƀca(t){let e=new rr(t,Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER);return this.ƀgj.set(t,e),this.ƀgv.add(e.pathLength,e),e}},ne=class{static{h(this,"PathFinder");}static findPath(t,e,i,r){let s=new to(t,e);for(;s.hasOpenNodes;){let n=s.popLowestPathCostNode();if(n.isEqual(i))return n.createSolutionPath(true);let a=s.getNeighbors(n,r);for(let l of a)if(!l.closed){let c=n.distanceFromStart+n.getDistance(l.position);c<l.distanceFromStart&&s.changeNodeCost(l,c,i,n);}}return s.getBestClosedNode().createSolutionPath(false)}};var ae=class{static{h(this,"VectorFieldPathFinder");}constructor(t,e){this.ƀjk=t,this.ƀw=e,this.ƀer=this.ƀdt(this.ƀw.size),this.ƀkj=new Grid({size:this.ƀw.size,defaultValue:this.ƀer}),this.ƀcm=new Grid({size:this.ƀw.size,defaultValue:void 0});let i=new bt,r=new Queue;for(this.ƀdi(this.ƀw.cropAreaOutsideOfTheGrid(t)).forEach(n=>{this.ƀkj.set(n,0),r.add(n);});r.notEmpty;){let n=r.pop();if(!i.has(n)){i.add(n);let a=this.ƀkj.getOrFail(n);this.ƀdy(n,this.ƀw).forEach(l=>{if(!i.has(l.position)){let c=this.ƀkj.getOrFail(l.position),p=a+l.distance;this.ƀw.getOrFail(l.position)&&p<c&&(this.ƀkj.set(l.position,p),r.add(l.position));}});}}}getDirectionToTarget(t){if(!t.isInsideRectangle(this.ƀjk)){if(t=this.ƀkj.movePositionInsideGrid(t),this.ƀcm.has(t))return this.ƀcm.get(t);{let e=this.ƀdy(t,this.ƀw),i;return this.ƀkj.getOrFail(t)>=this.ƀer?e.some(s=>this.ƀw.get(s.position))&&(e.some(n=>!this.ƀw.get(n.position))?i=this.ƀdn(e):i=this.ƀdj(t,e)):i=this.ƀdj(t,e),this.ƀcm.set(t,i),i}}}ƀdn(t){let e=t.filter(i=>this.ƀw.get(i.position)).map(i=>i.direction.radian);return Radian.getAverage(...e)}ƀdj(t,e){let i=e.filter(r=>this.ƀkj.getOrFail(r.position)<this.ƀer).reduce((r,s)=>{let n=this.ƀkj.getOrFail(s.position)+s.distance;return n<r.bestWeight?(r.bestDirections=[s.direction],r.bestWeight=n):n===r.bestWeight&&r.bestDirections.push(s.direction),r},{bestDirections:[],bestWeight:this.ƀer}).bestDirections;return this.ƀed(i,t)}ƀed(t,e){if(t.length>0){let i=t.reduce((r,s)=>r.add(s),Vector.zero);if(i.isZero()||!this.ƀfi(e,i))return Random.pickRandomElement(t).radian;if(t.length>=1)return i.radian}}ƀfi(t,e){let i=t.add(this.ƀkc(e));return this.ƀw.isPointWithinBounds(i)&&this.ƀw.getOrFail(i)}ƀdy(t,e){return this.ƀkj.getNeighborDirections(t,GridNeighborType.All).map(i=>({position:t.add(i),direction:i,distance:i.x!==0&&i.y!==0?14:10}))}ƀdi(t){let e=[];for(let i=t.topLeft.y;i<=t.bottomRight.y;i++)for(let r=t.topLeft.x;r<=t.bottomRight.x;r++)e.push(new Vector(r,i));return e}ƀkc(t){let e=t.normalize().round();return new Vector(e.x,e.y)}ƀdt(t){return (t.x+t.y)*20}};var oo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},no=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},v=class extends ${static{h(this,"PhysicsWorldEntity");}constructor(t,e,i,r,s,n,a){super(),this.materialDefinitions=new Map,this.physicsBodyGroupToP2Group=new Map,this.physicsBodyGroupToP2Mask=new Map,this.availabilityGridCache=new Map,this.vectorFieldCache=new Map,this.bodiesInContactWith=new Map,this.collisionReports=new Map,this.paused=new Variable(false),this.lastP2Time=new Variable(0),this.onPhysicsStep=new Action,this.mapSize=t,this.mapSizeCenter=this.mapSize.multiplyNumber(.5),this.modifyUpdateCycle=e,this.p2World=i,this.materials=r,this.materialDefinitions=s,this.physicsBodyGroupToP2Group=n,this.physicsBodyGroupToP2Mask=a;}};v=oo([mt(),no("design:paramtypes",[Vector,Boolean,W.World,Map,Map,Map,Map])],v);var co=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},K=class{static{h(this,"PhysicsBodyGroupService");}createBodyGroupsAndMasks(t,e){let i=new Map,r=new Map;return t.map((s,n)=>{if(n>31)return console.error("Cannot have more than 32 physics body groups"),{};i.set(s,1<<n),r.set(s,0);}),e.map(([s,n])=>{if(!i.has(s))throw new Error(`Physics body group "${s}" not found`);if(!i.has(n))throw new Error(`Physics body group "${n}" not found`);let a=r.get(s),l=r.get(n),c=i.get(s),p=i.get(n);r.set(s,a|p),r.set(n,l|c);}),{physicsBodyGroupToP2Group:i,physicsBodyGroupToP2Mask:r}}getGroupConstant(t,e){return v.getInstanceByIDOrFail(t).physicsBodyGroupToP2Group.get(e)}getMaskConstant(t,e){return v.getInstanceByIDOrFail(t).physicsBodyGroupToP2Mask.get(e)}canCollide(t,e,i){let r=t.physicsBodyGroupToP2Group.get(e),s=t.physicsBodyGroupToP2Mask.get(e),n=t.physicsBodyGroupToP2Group.get(i),a=t.physicsBodyGroupToP2Mask.get(i);return (s&n)!==0&&(a&r)!==0}};K=co([d()],K);var po=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},uo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Ne=class{static{h(this,"AvailabilityGridCacheService");}constructor(t){this.ƀhe=t;}getCollidableGrids(t,e){let i=[];return t.availabilityGridCache.forEach((r,s)=>{r.forEach((n,a)=>{this.ƀhe.canCollide(t,a,e)&&i.push({grid:n,cellSize:s});});}),i}get(t,e,i){return t.availabilityGridCache.get(e)?.get(i)}set(t,e,i,r){let s=t.availabilityGridCache.get(e);s||(s=new Map,t.availabilityGridCache.set(e,s)),s.set(i,r);}clear(t){t.availabilityGridCache.clear();}};Ne=po([d(),uo("design:paramtypes",[K])],Ne);var fo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},mo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},ct=class{static{h(this,"AvailabilityGridService");}constructor(t,e){this.ƀhe=t,this.ƀx=e;}onBodyAdded(t,e,i){e.aabbNeedsUpdate=true,e.updateAABB();let r=m.aabbToBoundingBox(e.aabb);this.ƀx.getCollidableGrids(t,i).forEach(s=>{let n=B.areaToGridArea(r,s.cellSize);s.grid.setArea(n,false);});}findClosestAvailableSpace(t,e,i,r=Gt){return e.aabbNeedsUpdate=true,e.updateAABB(),oe.findByConvertingGridSpace(this.getAvilabilityGrid(t,r,i),m.aabbToBoundingBox(e.aabb),r)}getAvilabilityGrid(t,e,i){let r=this.ƀx.get(t,e,i);return r||(r=this.ƀbx(t,e,i),this.ƀx.set(t,e,i,r)),r}ƀbx(t,e,i){let r=new Grid({size:new Vector(Math.floor(t.mapSize.x/e),Math.floor(t.mapSize.y/e)),defaultValue:true});return t.p2World.bodies.forEach(s=>{let n=b.getFromP2BodyIDOrFail(s.id);if(n.includeInPathfinding&&this.ƀhe.canCollide(t,n.physicsBodyGroup,i)){let a=this.ƀds(s,e);r.setArea(a,false);}}),r}ƀds(t,e){let i=m.aabbToBoundingBox(t.aabb);return B.areaToGridArea(i,e)}};ct=fo([d(),mo("design:paramtypes",[K,Ne])],ct);var wo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},xo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Gt=50,Ft=class{static{h(this,"PathFinderService");}constructor(t){this.ƀhd=t;}findPathAStar(t,e,i,r,s){s||(s={}),s.neighborType===void 0&&(s.neighborType=GridNeighborType.Ortogonal),s.gridCellSize===void 0&&(s.gridCellSize=Gt);let n=v.getInstanceByIDOrFail(t),a,l;Comparator.isNumber(i)?(l=b.getPhysicsInstanceOrFail(i).p2Body,a=m.arrayToVector(l.position)):a=i;let c=B.positionToGridPosition(e,s.gridCellSize),p=B.positionToGridPosition(a,s.gridCellSize),f=this.ƀhd.getAvilabilityGrid(n,s.gridCellSize,r);if(l){let T=m.aabbToBoundingBox(l.aabb),J=B.areaToGridArea(T,s.gridCellSize);f.setArea(J,true);}let g=ne.findPath(f,c,p,s.neighborType);return g.path=g.path.map(T=>B.gridPositionToPosition(T,s.gridCellSize)),g}findPathDirection(t,e,i,r,s=Gt){let n=v.getInstanceByIDOrFail(t),a;if(Comparator.isNumber(i)){let g=b.getPhysicsInstanceOrFail(i);a=m.aabbToBoundingBox(g.p2Body.aabb);}else a=new Rectangle(i,i);let l=B.areaToGridArea(a,s),c=JSON.stringify({targetGridArea:l,collidableWithGroup:r}),p=n.vectorFieldCache.get(c);if(!p){let g=this.ƀhd.getAvilabilityGrid(n,s,r);p=new ae(l,g),n.vectorFieldCache.set(c,p);}let f=B.positionToGridPosition(e,s);return p.getDirectionToTarget(f)}};Ft=wo([d(),xo("design:paramtypes",[ct])],Ft);var Po=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},j=new U,Pi=class{static{h(this,"PhysicsGateway");}createPhysicsWorld(t){return j.trigger("createPhysicsWorld",t)}getMapSize(t){return j.trigger("getMapSize",t)}setPaused(t,e){return j.trigger("setPaused",t,e)}hitTest(t,e){return j.trigger("hitTest",t,e)}findPath(t,e,i,r,s){return j.trigger("findPath",t,e,i,r,s)}findPathDirection(t,e,i,r){return j.trigger("findPathDirection",t,e,i,r)}applyImpulse(t,e,i,r){return j.trigger("applyImpulse",t,e,i,r)}createExplosion(t,e,i,r,s,n){return j.trigger("createExplosion",t,e,i,r,s,n)}createElipticExplosion(t,e,i,r,s,n,a){return j.trigger("createElipticExplosion",t,e,i,r,s,n,a)}printPathfindingTestGrid(t,e,i,r,s,n=Gt){return j.trigger("printPathfindingTestGrid",t,e,i,r,s,n)}};Pi=Po([d()],Pi);var So=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Co=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},q=class{static{h(this,"TestVisualsService");}constructor(t,e){this.ƀy=t,this.ƀha=e;}printPathfindingTestGrid(t,e,i,r,s,n){let a=v.getInstanceByIDOrFail(t);this.ƀy.getAvilabilityGrid(a,n,r).map((c,p)=>({position:B.gridPositionToPosition(p,n),availability:c})).forEach(c=>{if(c.position.isInsideRectangle(s)){let p=this.ƀha.findPathDirection(t,c.position,i,r),f;p===void 0?f=E.createRectangleBorders(new Vector(8,8),2,ColorHelper.red).toSprite().displayParent(e).setPosition(c.position,{round:false}).attach(a):f=E.createArrow(25,c.availability?ColorHelper.green:ColorHelper.red).toSprite().displayParent(e).setPosition(c.position,{round:false}).setRotation(p).attach(a),new O(f,"alpha",{duration:1e3,animation:S.easeIn}).animate({alpha:0}).tap(()=>f.destroy()).attach(f);}});}createExplosionDebugVisual(t,e,i,r,s,n=300){let a=new u().displayParent(e).setAlpha(.5).attach(t);E.createCircle(s,ColorHelper.blue).toSprite().displayParent(a).setPosition(r,{round:false}).setAlpha(.5).attach(t),i.forEach(c=>{let p=c.hits.length>0?ColorHelper.red:ColorHelper.white;E.createVector(r,c.line.to,p).toSprite().displayParent(a).attach(t);}),new O(a,"alpha",{duration:n,animation:S.easeIn}).animate({alpha:0}).tap(()=>a.destroy()).attach(a);}createElipticExplosionDebugVisual(t,e,i,r,s,n,a=300){let l=new u().displayParent(e).setAlpha(.5).attach(t);E.createElipse(n,ColorHelper.blue).toSprite().displayParent(l).setPosition(r,{round:false}).setRotation(s).setAlpha(.5).attach(t),i.forEach(p=>{let f=p.hits.length>0?ColorHelper.red:ColorHelper.white;E.createVector(p.line.from,p.line.to,f).toSprite().displayParent(l).attach(t);}),new O(l,"alpha",{duration:a,animation:S.easeIn}).animate({alpha:0}).tap(()=>l.destroy()).attach(l);}createPhysicsEntityShapeVisual(t,e,i){let r=i?.overridePosition??m.arrayToVector(t.position),s=i?.overrideRotation??new Radian(t.angle),n=i?.color??ColorHelper.blue,a=new u().displayParent(e).setPosition(r,{round:false}).setRotation(s).setAlpha(.5).attachToRoot();t.shapes.forEach(c=>{this.ƀcp(c,n).displayParent(a).attachToRoot();}),new O(a,"alpha",{duration:1e3,animation:S.easeIn}).animate({alpha:0}).tap(()=>a.destroy()).attach(a);}ƀcp(t,e){switch(t.type){case W.Shape.PARTICLE:throw new Error("Not implemented");case W.Shape.LINE:throw new Error("Not implemented");case W.Shape.PLANE:throw new Error("Not implemented");case W.Shape.CIRCLE:throw new Error("Not implemented");case W.Shape.CAPSULE:throw new Error("Not implemented");case W.Shape.BOX:throw new Error("Not implemented");case W.Shape.HEIGHTFIELD:throw new Error("Not implemented");case W.Shape.CONVEX:return this.ƀco(t,e);default:throw new Error("Not implemented")}}ƀco(t,e){let i=[t.vertices.map(r=>({x:r[0],y:r[1]}))];return E.createPolygon(i,e).toSprite()}};q=So([d(),Co("design:paramtypes",[ct,Ft])],q);var Ro=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Io=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},je=class{static{h(this,"HitTestService");}constructor(t){this.ƀjm=t;}hitTest(t,e){let i=t.world,r=b.getFromP2BodyIDOrFail(t.id),s=m.cloneP2Body(t);this.ƀs(s,e);let n=i.broadphase.aabbQuery(i,this.ƀdg(s)).map(l=>b.getFromP2BodyIDOrFail(l.id)).filter(l=>l.includeInPathfinding).filter(l=>r.canCollideWith(l)).map(l=>m.cloneP2Body(l.p2Body)),a=false;if(n.length!==0){let l=new W.World;l.addBody(s),n.forEach(c=>l.addBody(c)),l.step(1,1,1),a=l.narrowphase.contactEquations.some(c=>c.bodyA===s||c.bodyB===s),l.clear();}if(e?.testLayerID){let l=a?ColorHelper.red:ColorHelper.green;this.ƀjm.createPhysicsEntityShapeVisual(t,e.testLayerID,{overridePosition:e.overridePosition,overrideRotation:e.overrideRotation,color:l});}return a}ƀs(t,e){e?.overridePosition&&(t.position=m.vectorToArray(e.overridePosition)),e?.overrideRotation&&(t.angle=e.overrideRotation.value);}ƀdg(t){return t.aabbNeedsUpdate=true,t.updateAABB(),t.aabb}};je=Ro([d(),Io("design:paramtypes",[q])],je);var Oo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},He=class{static{h(this,"CollisionsService");}registerPhysicsWorld(t){t.p2World.on("beginContact",e=>{e.contactEquations.forEach(i=>{this.ƀhy(t,i);});});}step(t,e,i){b.getPhysicsEntities().forEach(r=>{r.ƀax=[];}),t.p2World.narrowphase.contactEquations.forEach(r=>{this.ƀhy(t,r);}),t.bodiesInContactWith.forEach((r,s)=>{this.ƀem(r.p2Body),r.entity.ƀip(t.collisionReports.get(s)||[]);}),t.bodiesInContactWith.clear(),t.collisionReports.clear();}ƀem(t){let e=m.arrayToVector(t.velocity);e.length>10.8&&(e=e.normalize(10.8),t.velocity=m.vectorToArray(e)),t.angularVelocity=Math.min(Math.max(t.angularVelocity,-10.01),10.01);}ƀhy(t,e){let i=b.getFromP2BodyID(e.bodyA.id),r=b.getFromP2BodyID(e.bodyB.id);if(i&&r){t.bodiesInContactWith.set(e.bodyA.id,{p2Body:e.bodyA,entity:i}),t.bodiesInContactWith.set(e.bodyB.id,{p2Body:e.bodyB,entity:r});let s=t.collisionReports.get(e.bodyA.id)||[],n=t.collisionReports.get(e.bodyB.id)||[],{collisionDetailsA:a,collisionDetailsB:l}=this.ƀdl(i,r,e);s.push({self:a,target:l}),n.push({self:l,target:a}),t.collisionReports.set(e.bodyA.id,s),t.collisionReports.set(e.bodyB.id,n);}else console.warn("ContactEquationOrganiser: Entity not found for contact equation",e);}ƀdl(t,e,i){let r=t.convertToDTO(),s=e.convertToDTO(),n=m.arrayToVector(i.contactPointA),a=m.arrayToVector(i.contactPointB),{normalA:l,normalB:c}=this.ƀdz(i);return {collisionDetailsA:this.ƀdk(r,i.bodyA.mass,n,l,t.area),collisionDetailsB:this.ƀdk(s,i.bodyB.mass,a,c,e.area)}}ƀdk(t,e,i,r,s){let n,a=i.add(t.position);return {body:t,getPositionReletiveToObject:h(()=>(n||(n=i.rotate(t.rotation.multiply(-1).vector)),n),"getPositionReletiveToObject"),getPositionOnWorld:h(()=>(a||(a=i.add(t.position)),a),"getPositionOnWorld"),position:i,mass:e,area:s,normal:r}}ƀdz(t){let e=m.arrayToVector(t.normalA),i=e.multiplyNumber(-1);return {normalA:e,normalB:i}}};He=Oo([d()],He);var Mo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Do=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},We=class extends $t{static{h(this,"BorderEntity");}constructor(t,e){super(t,e);}};We=Mo([mt(),Do("design:paramtypes",[Number,Object])],We);var Bo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},H=1e4,Ue=class{static{h(this,"BorderService");}createBorders(t,e,i){this.ƀbr(t,new Vector(e.x/2,-H/2),new Vector(e.x+H*2,H),i),this.ƀbr(t,new Vector(e.x/2,e.y+H/2),new Vector(e.x+H*2,H),i),this.ƀbr(t,new Vector(-H/2,e.y/2),new Vector(H,e.y+H*2),i),this.ƀbr(t,new Vector(e.x+H/2,e.y/2),new Vector(H,e.y+H*2),i);}ƀbr(t,e,i,r){return new We(t,{shapeDefinition:{materialName:ht,group:r,shapeType:it.Rectangle,shapeData:i},position:e,rotation:Radian.get0,addInEmptySpace:false,includeOnPathfinding:true}).attachByID(t)}};Ue=Bo([d()],Ue);var Fo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},hr=new W.Material,_o={id:ht,density:Number.MAX_SAFE_INTEGER,velocityDrag:1,rotationalDrag:1},_t=class{static{h(this,"MaterialsService");}createMaterials(t,e,i,r){let s=new Map,n=new Map;if(i.forEach(a=>{s.set(a.id,new W.Material),n.set(a.id,a);}),s.has(ht))throw new Error(`Material with name ${ht} cannot be defined, pick another name for the material.`);return s.set(ht,hr),n.set(ht,_o),this.ƀc(t,e,i,r,s),{materials:s,materialDefinitions:n}}getMaterial(t,e){let i=v.getInstanceByIDOrFail(t);return this.ƀdx(e,i.materials)}getMaterialDefinition(t,e){let i=v.getInstanceByIDOrFail(t);return this.ƀdw(e,i.materialDefinitions)}ƀdx(t,e){let i=e.get(t);if(!i)throw new Error(`Could not find material with name ${t}.`);return i}ƀdw(t,e){let i=e.get(t);if(!i)throw new Error(`Could not find material definition with name ${t}.`);return i}ƀc(t,e,i,r,s){this.ƀdp(i.map(n=>n.id),r).forEach(n=>{let a=this.ƀdx(n.materialA,s),l=this.ƀdx(n.materialB,s);t.addContactMaterial(new W.ContactMaterial(a,l,{friction:n.friction,restitution:n.bounciness,stiffness:n.stiffness,relaxation:n.relaxation}));}),this.ƀd(t,e,i,s);}ƀdp(t,e){let i=new Map;e.forEach(s=>{let n=i.get(s.materialA);n||(n=new Map,i.set(s.materialA,n)),n.set(s.materialB,s);});let r=[];return t.forEach((s,n)=>{for(let a=n;a<t.length;a++){let l=t[a],c=i.get(s)?.get(l);c?r.push(c):r.push({materialA:s,materialB:l,friction:0,bounciness:0,relaxation:4,stiffness:1e6});}}),r}ƀd(t,e,i,r){i.forEach(s=>{let n=this.ƀdx(s.id,r);t.addContactMaterial(new W.ContactMaterial(n,hr,{friction:e.friction,restitution:e.bounciness,stiffness:e.stiffness,relaxation:e.relaxation}));});}};_t=Fo([d()],_t);var Lo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Vo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Lt=class{static{h(this,"PhysicsWorldService");}constructor(t,e,i,r,s){this.ƀgb=t,this.ƀai=e,this.ƀy=i,this.ƀay=r,this.ƀhe=s;}createPhysicsWorld(t){let e=new W.World({gravity:[0,0]}),{materials:i,materialDefinitions:r}=this.ƀgb.createMaterials(e,t.borderProperties,t.materialDefinitions,t.materialContactDefinitions),{physicsBodyGroupToP2Group:s,physicsBodyGroupToP2Mask:n}=this.ƀhe.createBodyGroupsAndMasks(t.physicsBodyGroups,t.interactingBodyGroups),a=new v(t.mapSize,t.modifyUpdateCycle,e,i,r,s,n).attachByID(t.attachTo);return a.onDestroy().tap(()=>{e.clear(),t.modifyUpdateCycle&&y.cleanUpdateModifier();}).attachToRoot(),this.ƀai.createBorders(a.id,t.mapSize,t.borderProperties.borderBodyGroup),this.ƀay.registerPhysicsWorld(a),t.modifyUpdateCycle?y.registerUpdateModifier((l,c)=>this.ƀjg(a,l,c)):y.beforeSceneUpdateAction.subscribe(({time:l,delta:c})=>{this.ƀjg(a,l,c);}).attach(a),a.id}addBody(t,e,i,r,s){let n=v.getInstanceByIDOrFail(t);if(i){let a=this.ƀy.findClosestAvailableSpace(n,e,r);return a?(e.position[0]+=a.x,e.position[1]+=a.y,n.p2World.addBody(e),s&&this.ƀy.onBodyAdded(n,e,r),true):false}else return n.p2World.addBody(e),s&&this.ƀy.onBodyAdded(n,e,r),true}removeBody(t,e){v.getInstanceByID(t)?.p2World.removeBody(e);}ƀjg(t,e,i){if(!t.paused.value){t.availabilityGridCache.clear(),t.vectorFieldCache.clear(),t.p2World.step(i,i,i),t.modifyUpdateCycle&&(i=t.p2World.time-t.lastP2Time.value);let r=e+i;this.ƀay.step(t,r,i),t.onPhysicsStep.trigger({time:r,delta:i}),t.lastP2Time.value=t.p2World.time;}return i}setPaused(t,e){v.getInstanceByIDOrFail(e).paused.set(t);}};Lt=Lo([d(),Vo("design:paramtypes",[_t,Ue,ct,He,K])],Lt);var jo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Nt=class{static{h(this,"RayCastingService");}castClosest(t,e,i){let r=new W.RaycastResult,s=new W.Ray({mode:W.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(r,s),r.hasHit())return this.ƀbm(r,e)}castAllFirstContacts(t,e,i){let r=new Map,s=new W.Ray({mode:W.Ray.ALL,from:m.vectorToArray(e.from),to:m.vectorToArray(e.to),collisionGroup:t.physicsBodyGroupToP2Group.get(i),collisionMask:t.physicsBodyGroupToP2Mask.get(i),callback:h(n=>{let a=r.get(n.body);!r.has(n.body)||n.fraction<a.fraction?r.set(n.body,this.ƀbm(n,e)):n.fraction===a.fraction&&a.isExternal()&&r.set(n.body,this.ƀbm(n,e));},"callback")});return t.p2World.raycast(new W.RaycastResult,s),Array.from(r.values())}ƀbm(t,e){let i=t.fraction,r=m.arrayToVector(t.normal),s,n,a;return {body:t.body,hitPosition:h(()=>(s===void 0&&(s=e.from.lerp(e.to,i)),s),"hitPosition"),hitDistance:h(()=>(n===void 0&&(n=e.length*i),n),"hitDistance"),isExternal:h(()=>(a===void 0&&(a=e.fromTo.dotProduct(r)<0),a),"isExternal"),normal:r,fraction:i,line:e}}};Nt=jo([d()],Nt);var Ho=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},ut=class{static{h(this,"ImpactService");}applyImpulse(t,e,i,r){let s=i.normalize(r),n=[e.x-t.position[0],e.y-t.position[1]];t.applyImpulse(m.vectorToArray(s),n);}};ut=Ho([d()],ut);var Wo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},jt=class{static{h(this,"RayCastHitConverterService");}toExplosionHits(t,e=true){let i=new Map;return t.forEach(r=>{r.hits.forEach(s=>{let n=i.get(s.body);if(n){let a=s.fraction<n.closestRaycastHit.fraction?s:n.closestRaycastHit;n.rayCastHits.push(s),i.set(s.body,{hitCount:n.hitCount+1,closestRaycastHit:a,rayCastHits:n.rayCastHits,isExternal:e?n.isExternal:n.isExternal&&s.isExternal(),explosionCenter:s.line.from});}else {let a=s.isExternal();i.set(s.body,{hitCount:1,closestRaycastHit:s,rayCastHits:[s],isExternal:a,explosionCenter:s.line.from});}});}),[...i.values()].map(r=>this.ƀbn(r,t.length))}ƀbn(t,e){let i=t.hitCount/e,r=t.rayCastHits;if(t.isExternal)return {body:b.getFromP2BodyIDOrFail(t.closestRaycastHit.body.id).convertToDTO(),p2Body:t.closestRaycastHit.body,isExternal:true,normal:t.closestRaycastHit.normal,fraction:t.closestRaycastHit.fraction,ratioOfHits:i,raycastResults:r,getHitPosition:t.closestRaycastHit.hitPosition,getHitDistance:t.closestRaycastHit.hitDistance};{let s=m.arrayToVector(t.closestRaycastHit.body.position);return {body:b.getFromP2BodyIDOrFail(t.closestRaycastHit.body.id).convertToDTO(),p2Body:t.closestRaycastHit.body,isExternal:false,normal:Vector.fromTo(s,t.explosionCenter).normalize(),fraction:0,ratioOfHits:i,raycastResults:r,getHitPosition:h(()=>t.explosionCenter,"getHitPosition"),getHitDistance:h(()=>0,"getHitDistance")}}}};jt=Wo([d()],jt);var $o=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},zo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Yo=15,ze=class{static{h(this,"ElipticExplosionService");}constructor(t,e,i,r){this.ƀhu=t,this.ƀjm=e,this.ƀht=i,this.ƀfb=r;}createElipticExplosion(t,e,i,r,s,n,a){let l=v.getInstanceByIDOrFail(t),c=this.ƀcc(e,i,r,s,a?.hitOnlyClosest===true,l),p=this.ƀht.toExplosionHits(c,false);return this.ƀq(p,n),a?.testLayerID&&this.ƀjm.createElipticExplosionDebugVisual(l,a.testLayerID,c,e,i,r,a.debugRayDuration),p.map(f=>{let{p2Body:g,...T}=f;return T})}ƀcc(t,e,i,r,s,n){let a=[],l=e.vector,c=e.add(Radian.get90).vector,p=c.normalize(i.x);a.push(new Line(t,t.add(p))),a.push(new Line(t,t.add(p.multiplyNumber(-1))));let f=l.normalize(i.y);a.push(new Line(t,t.add(f))),a.push(new Line(t,t.add(f.multiplyNumber(-1))));let g=Math.round(i.y/Yo),T=i.y/(g*2+1)*2,J=l.normalize(T),ot=i.x,Wt=Math.pow(i.y,2);return ArrayHelper.createIntegerArray(g).forEach(nt=>{let tt=T*(nt+1),Ti=J.multiplyNumber(nt+1),he=c.normalize(this.ƀeh(ot,Wt,tt)),le=t.add(Ti);a.push(new Line(le,le.add(he))),a.push(new Line(le,le.add(he.multiplyNumber(-1))));let ce=t.add(Ti.multiplyNumber(-1));a.push(new Line(ce,ce.add(he))),a.push(new Line(ce,ce.add(he.multiplyNumber(-1))));}),a.map(nt=>{if(s){let tt=this.ƀhu.castClosest(n,nt,r);return {line:nt,hits:tt?[tt]:[]}}else {let tt=this.ƀhu.castAllFirstContacts(n,nt,r);return {line:nt,hits:tt}}})}ƀeh(t,e,i){return Math.sqrt(1-Math.pow(i,2)/e)*t}ƀq(t,e){t.forEach(i=>{i.raycastResults.forEach(r=>{let s,n;r.isExternal()?(s=r.line.fromTo,n=e*2):(s=r.line.fromTo.multiplyNumber(-1),n=e*(1-r.fraction)*8),this.ƀfb.applyImpulse(r.body,r.hitPosition(),s,n);});});}};ze=$o([d(),zo("design:paramtypes",[Nt,q,jt,ut])],ze);var Xo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Zo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},ke=class{static{h(this,"ExplosionService");}constructor(t,e,i,r){this.ƀhu=t,this.ƀjm=e,this.ƀht=i,this.ƀfb=r;}createExplosion(t,e,i,r,s,n){let a=v.getInstanceByIDOrFail(t),l=this.ƀee(i),c=this.ƀcc(e,i,r,l,n?.hitOnlyClosest===true,a),p=this.ƀht.toExplosionHits(c);return this.ƀq(e,i,s,l,p),n?.testLayerID&&this.ƀjm.createExplosionDebugVisual(a,n.testLayerID,c,e,i,n.debugRayDuration),p}ƀcc(t,e,i,r,s,n){let a=new Radian(PI_360/r),l=new Vector(0,-e),c=a.vector;return ArrayHelper.createEmptyArray(r).map(()=>{let p=t.add(l);return l=l.rotate(c),new Line(t,p)}).map(p=>{if(s){let f=this.ƀhu.castClosest(n,p,i);return {line:p,hits:f?[f]:[]}}else {let f=this.ƀhu.castAllFirstContacts(n,p,i);return {line:p,hits:f}}})}ƀq(t,e,i,r,s){s.forEach(n=>{if(n.isExternal)n.raycastResults.forEach(a=>{let l=i*(1-a.fraction);this.ƀfb.applyImpulse(a.body,a.hitPosition(),a.line.fromTo,l);});else {let a=Vector.fromTo(t,m.arrayToVector(n.p2Body.position)),l=a.length/e,c=i*r*l/2;this.ƀfb.applyImpulse(n.p2Body,n.getHitPosition(),a,c);}});}ƀee(t){return t>100?Math.floor(t*.3):Math.floor(t*.26+4)}};ke=Xo([d(),Zo("design:paramtypes",[Nt,q,jt,ut])],ke);var en=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Ht=class{static{h(this,"PhysicsQueryService");}getMapSize(t){let e=v.getInstanceByIDOrFail(t);return {dimentions:e.mapSize,center:e.mapSizeCenter}}subscribeToPhysicsStep(t,e){return v.getInstanceByIDOrFail(t).onPhysicsStep.subscribe(e)}};Ht=en([d()],Ht);var rn=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},sn=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Si=class{static{h(this,"PhysicsController");}constructor(t,e,i,r,s,n,a,l){this.ƀhl=t,this.ƀha=e,this.ƀjm=i,this.ƀcy=r,this.ƀct=s,this.ƀes=n,this.ƀhk=a,this.ƀfb=l;}createPhysicsWorld(t){return this.ƀhl.createPhysicsWorld(t)}getMapSize(t){return this.ƀhk.getMapSize(t)}setPaused(t,e){this.ƀhl.setPaused(t,e);}hitTest(t,e){let i=b.getPhysicsInstanceOrFail(t);return this.ƀes.hitTest(i.p2Body,e)}findPath(t,e,i,r,s){return this.ƀha.findPathAStar(t,e,i,r,{neighborType:s})}findPathDirection(t,e,i,r){return this.ƀha.findPathDirection(t,e,i,r)}applyImpulse(t,e,i,r){let s=b.getPhysicsInstanceOrFail(t);this.ƀfb.applyImpulse(s.p2Body,e,i,r);}createExplosion(t,e,i,r,s,n){return this.ƀcy.createExplosion(t,e,i,r,s,n)}createElipticExplosion(t,e,i,r,s,n,a){return this.ƀct.createElipticExplosion(t,e,i,r,s,n,a)}printPathfindingTestGrid(t,e,i,r,s,n){this.ƀjm.printPathfindingTestGrid(t,e,i,r,s,n);}};Si=rn([et({controllerLink:j}),sn("design:paramtypes",[Lt,Ft,q,ke,ze,je,Ht,ut])],Si);var on=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Je=class{static{h(this,"ShapeCreationService");}createBody(t,e,i,r,s){let n=v.getInstanceByIDOrFail(t);if(!n.physicsBodyGroupToP2Group.has(e.shapeDefinition.group))throw new Error(`Physics body group "${e.shapeDefinition.group}" not found`);switch(e.shapeDefinition.shapeType){case it.Point:return this.ƀbt(n,void 0,i,r,e.shapeDefinition.group,s);case it.Circle:return this.ƀbt(n,e.shapeDefinition.shapeData,i,r,e.shapeDefinition.group,s);case it.Polygon:return this.ƀcb(n,e.shapeDefinition.shapeData,i,r,e.shapeDefinition.group,s);case it.Rectangle:return this.ƀcd(n,e.shapeDefinition.shapeData,i,r,e.shapeDefinition.group,s)}}ƀbt(t,e,i,r,s,n){let a=new W.Circle({collisionGroup:t.physicsBodyGroupToP2Group.get(s),collisionMask:t.physicsBodyGroupToP2Mask.get(s),radius:e});a.material=i;let l=new W.Body({type:n==="dynamic"?W.Body.DYNAMIC:W.Body.STATIC,mass:r.density,damping:r.velocityDrag,angularDamping:r.rotationalDrag});return l.addShape(a),l}ƀcb(t,e,i,r,s,n){let a=t.physicsBodyGroupToP2Group.get(s),l=t.physicsBodyGroupToP2Mask.get(s),c=e.map(g=>new W.Convex({vertices:g.map(T=>[T.x,T.y]),collisionGroup:a,collisionMask:l})).map(g=>(g.material=i,g)),p=c.reduce((g,T)=>g+T.area,0),f=new W.Body({type:n==="dynamic"?W.Body.DYNAMIC:W.Body.STATIC,mass:p,damping:r.velocityDrag,angularDamping:r.rotationalDrag});return c.forEach(g=>f.addShape(g)),f.setDensity(r.density),f}ƀcd(t,e,i,r,s,n){let a=new W.Box({width:e.x,height:e.y,collisionGroup:t.physicsBodyGroupToP2Group.get(s),collisionMask:t.physicsBodyGroupToP2Mask.get(s)});a.material=i;let l=e.x*e.y,c=new W.Body({type:n==="dynamic"?W.Body.DYNAMIC:W.Body.STATIC,mass:l,damping:r.velocityDrag,angularDamping:r.rotationalDrag});return c.addShape(a),c.setDensity(r.density),c}};Je=on([d()],Je);var nn=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},an=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Ci=class{static{h(this,"PhysicsInternalController");}constructor(t,e,i,r,s){this.ƀhl=t,this.ƀhj=e,this.ƀiu=i,this.ƀhk=r,this.ƀhe=s;}createBody(t,e,i,r,s){return this.ƀiu.createBody(t,e,i,r,s)}getMaterial(t,e){return this.ƀhj.getMaterial(t,e)}getMaterialDefinition(t,e){return this.ƀhj.getMaterialDefinition(t,e)}getGroupConstant(t,e){return this.ƀhe.getGroupConstant(t,e)}getMaskConstant(t,e){return this.ƀhe.getMaskConstant(t,e)}addBody(t,e,i,r,s){return this.ƀhl.addBody(t,e,i,r,s)}removeBody(t,e){this.ƀhl.removeBody(t,e);}subscribeToPhysicsStep(t,e){return this.ƀhk.subscribeToPhysicsStep(t,e)}};Ci=nn([et({controllerLink:Y}),an("design:paramtypes",[Lt,_t,Je,Ht,K])],Ci);export{Oi as AnimationFlicker,X as AnimationInterpolationFunctions,S as Animations,I as AnimationsCompletionHandlingType,O as Animator,ht as BORDER_MATERIAL_NAME,G as BardLegendsHardReset,Et as BlendMode,Kt as Camera,It as CameraGateway,oe as ClosestAvailableSpaceHelper,u as Container,kt as ContainerEventType,et as ControllerDecorator,U as ControllerLink,ti as Cursor,R as DEFAULT_RESOLUTION,vi as DeltaTime,pi as DisplayObjectArray,$ as Entity,mt as EntityDecorator,Qi as FadeInContent,_e as FadeInStateAnimation,lt as FocusingAnimation,w as Game,E as Graphics,$t as ImmovablePhysicsEntity,yi as KeyboardService,Bt as Menu,ui as MenuEntity,wt as MouseService,wi as MouseTargetFocusService,se as MouseWheelListenerUI,Ze as MovableEntity,Ke as MovablePhysicsEntity,ne as PathFinder,b as PhysicsEntity,Pi as PhysicsGateway,it as PhysicsShapeType,hi as Placeholder,Yt as PositionConversionHelper,qe as ROTATIONAL_SPEED_LIMIT,_ as ReAnimateHandlingType,li as RichText,Qe as SPEED_LIMIT,St as Scene,wr as SceneDecorator,gi as ScrollAreaUI,rt as ScrollDirection,xt as ScrollMaskUI,P as Service,d as ServiceDecorator,gt as SingletonEntity,ir as SlideInContent,xi as SlideInContentByIndex,Ve as SlideStateAnimation,st as SlideStateAnimationState,Z as Sprite,Le as StateAnimation,ie as Text,ci as UpdatableContainer,y as UpdateCycle,ae as VectorFieldPathFinder,bt as VectorSet,Ut as View,Xe as ViewDecorator};
|