excalibur 0.33.0-alpha.149 → 0.33.0-alpha.151
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/build/dist/excalibur.development.js +2 -2
- package/build/dist/excalibur.js +2 -2
- package/build/dist/excalibur.min.development.js +2 -2
- package/build/dist/excalibur.min.js +2 -2
- package/build/esm/excalibur.development.js +2 -2
- package/build/esm/excalibur.js +2 -2
- package/build/esm/excalibur.min.development.js +2 -2
- package/build/esm/excalibur.min.js +2 -2
- package/eslint.config.mjs +2 -0
- package/package.json +6 -5
- package/vitest.config.ts +3 -3
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! excalibur - 0.33.0-alpha.
|
|
1
|
+
/*! excalibur - 0.33.0-alpha.151+f2f287a - 2026-6-4
|
|
2
2
|
https://github.com/excaliburjs/Excalibur
|
|
3
3
|
Copyright (c) 2026 Excalibur.js <https://github.com/excaliburjs/Excalibur/graphs/contributors>
|
|
4
4
|
Licensed BSD-2-Clause
|
|
@@ -33178,7 +33178,7 @@ void main() {
|
|
|
33178
33178
|
* The current Excalibur version string
|
|
33179
33179
|
* @description `process.env.__EX_VERSION` gets replaced by Webpack on build
|
|
33180
33180
|
*/
|
|
33181
|
-
var EX_VERSION = "0.33.0-alpha.
|
|
33181
|
+
var EX_VERSION = "0.33.0-alpha.151+f2f287a";
|
|
33182
33182
|
polyfill();
|
|
33183
33183
|
//#endregion
|
|
33184
33184
|
exports.ActionCompleteEvent = ActionCompleteEvent;
|
package/build/dist/excalibur.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! excalibur - 0.33.0-alpha.
|
|
1
|
+
/*! excalibur - 0.33.0-alpha.151+f2f287a - 2026-6-4
|
|
2
2
|
https://github.com/excaliburjs/Excalibur
|
|
3
3
|
Copyright (c) 2026 Excalibur.js <https://github.com/excaliburjs/Excalibur/graphs/contributors>
|
|
4
4
|
Licensed BSD-2-Clause
|
|
@@ -33178,7 +33178,7 @@ void main() {
|
|
|
33178
33178
|
* The current Excalibur version string
|
|
33179
33179
|
* @description `process.env.__EX_VERSION` gets replaced by Webpack on build
|
|
33180
33180
|
*/
|
|
33181
|
-
var EX_VERSION = "0.33.0-alpha.
|
|
33181
|
+
var EX_VERSION = "0.33.0-alpha.151+f2f287a";
|
|
33182
33182
|
polyfill();
|
|
33183
33183
|
//#endregion
|
|
33184
33184
|
exports.ActionCompleteEvent = ActionCompleteEvent;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! excalibur - 0.33.0-alpha.
|
|
1
|
+
/*! excalibur - 0.33.0-alpha.151+f2f287a - 2026-6-4
|
|
2
2
|
https://github.com/excaliburjs/Excalibur
|
|
3
3
|
Copyright (c) 2026 Excalibur.js <https://github.com/excaliburjs/Excalibur/graphs/contributors>
|
|
4
4
|
Licensed BSD-2-Clause
|
|
@@ -892,4 +892,4 @@ If in Firefox, visit about:config
|
|
|
892
892
|
|
|
893
893
|
Read more about this issue at https://excaliburjs.com/docs/performance`),r&&this._toaster.toast(`Excalibur is encountering performance issues. It's possible that your browser doesn't have hardware acceleration enabled. Visit [LINK] for more information and potential solutions.`,`https://excaliburjs.com/docs/performance`),this.useCanvas2DFallback(),this.emit(`fallbackgraphicscontext`,this.graphicsContext))}}useCanvas2DFallback(){var e,t,n;let r=this.canvas.cloneNode(!1);this.canvas.parentNode.replaceChild(r,this.canvas),this.canvas=r;let i={...this._originalOptions,antialiasing:this.screen.antialiasing},a=this._originalDisplayMode;this.graphicsContext=new ei({canvasElement:this.canvas,enableTransparency:this.enableCanvasTransparency,antialiasing:i.antialiasing,backgroundColor:i.backgroundColor,snapToPixel:i.snapToPixel,useDrawSorting:i.useDrawSorting}),this.screen&&this.screen.dispose(),this.screen=new yo({canvas:this.canvas,context:this.graphicsContext,antialiasing:(e=i.antialiasing)==null?!0:e,browser:this.browser,viewport:(t=i.viewport)==null?i.width&&i.height?{width:i.width,height:i.height}:_o.SVGA:t,resolution:i.resolution,displayMode:a,pixelRatio:i.suppressHiDPIScaling?1:(n=i.pixelRatio)==null?null:n}),this.screen.setCurrentCamera(this.currentScene.camera),this.input.pointers.detach();let o=i&&i.pointerScope===c.Document?document:this.canvas;this.input.pointers=this.input.pointers.recreate(o,this),this.input.pointers.init()}dispose(){this._disposed||(this._disposed=!0,this.stop(),this._garbageCollector.forceCollectAll(),this.input.toggleEnabled(!1),this._hasCreatedCanvas&&this.canvas.parentNode.removeChild(this.canvas),this.canvas=null,this.screen.dispose(),this.graphicsContext.dispose(),this.graphicsContext=null,e.InstanceCount--)}isDisposed(){return this._disposed}getWorldBounds(){return this.screen.getWorldBounds()}get timescale(){return this._timescale}set timescale(e){if(e<0){I.getInstance().warnOnce(`engine.timescale to a value less than 0 are ignored`);return}this._timescale=e}addTimer(e){return this.currentScene.addTimer(e)}removeTimer(e){return this.currentScene.removeTimer(e)}addScene(e,t){return this.director.add(e,t),this}removeScene(e){this.director.remove(e)}add(e){if(arguments.length===2){this.director.add(arguments[0],arguments[1]);return}let t=this.director.getDeferredScene();t instanceof Us?t.add(e):this.currentScene.add(e)}remove(e){e instanceof hn&&this.currentScene.remove(e),(e instanceof Us||Hs(e))&&this.removeScene(e),typeof e==`string`&&this.removeScene(e)}async goToScene(e,t){await this.scope(async()=>{await this.director.goToScene(e,t)})}screenToWorldCoordinates(e){return this.screen.screenToWorldCoordinates(e)}worldToScreenCoordinates(e){return this.screen.worldToScreenCoordinates(e)}_initialize(e){var t,n;this.pageScrollPreventionMode=e.scrollPreventionMode;let r=e&&e.pointerScope===c.Document?document:this.canvas,i=(t=(n=this._originalOptions)==null?void 0:n.grabWindowFocus)==null?!0:t;this.input=new Rs({global:this.global,pointerTarget:r,grabWindowFocus:i,engine:this}),this.inputMapper=this.input.inputMapper,this.browser.document.on(`visibilitychange`,()=>{document.visibilityState===`hidden`?(this.events.emit(`hidden`,new jt(this)),this._logger.debug(`Window hidden`)):document.visibilityState===`visible`&&(this.events.emit(`visible`,new At(this)),this._logger.debug(`Window visible`))}),!this.canvasElementId&&!e.canvasElement&&document.body.appendChild(this.canvas)}toggleInputEnabled(e){this._inputEnabled=e,this.input.toggleEnabled(this._inputEnabled)}onInitialize(e){}get isInitialized(){return this._isInitialized}async _overrideInitialize(e){this.isInitialized||(await this.director.onInitialize(),await this.onInitialize(e),this.events.emit(`initialize`,new Bt(e,this)),this._isInitialized=!0)}_update(e){if(this._isLoading){var t;(t=this._loader)==null||t.onUpdate(this,e),this.input.update();return}this.clock.__runScheduledCbs(`preupdate`),this._preupdate(e),this.currentScene.update(this,e),this.graphicsContext.updatePostProcessors(e),this.clock.__runScheduledCbs(`postupdate`),this._postupdate(e),this.input.update()}_preupdate(e){this.emit(`preupdate`,new St(this,e,this)),this.onPreUpdate(this,e)}onPreUpdate(e,t){}_postupdate(e){this.emit(`postupdate`,new Ct(this,e,this)),this.onPostUpdate(this,e)}onPostUpdate(e,t){}_draw(e){var t;if(this.graphicsContext.backgroundColor=(t=this.currentScene.backgroundColor)==null?this.backgroundColor:t,this.graphicsContext.beginDrawLifecycle(),this.graphicsContext.clear(),this.clock.__runScheduledCbs(`predraw`),this._predraw(this.graphicsContext,e),this._isLoading){if(!this._hideLoader){var n;(n=this._loader)==null||n.canvas.draw(this.graphicsContext,0,0),this.clock.__runScheduledCbs(`postdraw`),this.graphicsContext.flush(),this.graphicsContext.endDrawLifecycle()}return}this.currentScene.draw(this.graphicsContext,e),this.clock.__runScheduledCbs(`postdraw`),this._postdraw(this.graphicsContext,e),this.graphicsContext.flush(),this.graphicsContext.endDrawLifecycle(),this._checkForScreenShots()}_predraw(e,t){this.emit(`predraw`,new gt(e,t,this)),this.onPreDraw(e,t)}onPreDraw(e,t){}_postdraw(e,t){this.emit(`postdraw`,new _t(e,t,this)),this.onPostDraw(e,t)}onPostDraw(e,t){}showDebug(e){this._isDebug=e}toggleDebug(){return this._isDebug=!this._isDebug,this._isDebug}get loadingComplete(){return!this._isLoading}get ready(){return this._isReadyFuture.isCompleted}isReady(){return this._isReadyFuture.promise}async start(e,t){await this.scope(async()=>{var n;if(!this._compatible)throw Error(`Excalibur is incompatible with your browser`);this._isLoading=!0;let r;return e instanceof Io?r=e:typeof e==`string`&&(this.director.configureStart(e,t),r=this.director.mainLoader),this._logger.debug(`Starting game clock...`),this.browser.resume(),this.clock.start(),this.garbageCollectorConfig&&this._garbageCollector.start(),this._logger.debug(`Game clock started`),await this.load((n=r)==null?new zo:n),await this._overrideInitialize(this),this._isReadyFuture.resolve(),this.emit(`start`,new mt(this)),this._isReadyFuture.promise})}_mainloop(e){this.scope(()=>{this.emit(`preframe`,new wt(this,this.stats.prevFrame));let t=e*this.timescale;this.currentFrameElapsedMs=t;let n=this.stats.prevFrame.id+1;this.stats.currFrame.reset(),this.stats.currFrame.id=n,this.stats.currFrame.elapsedMs=t,this.stats.currFrame.fps=this.clock.fpsSampler.fps,K.clear();let r=this.clock.now(),i=this.fixedUpdateTimestep;if(this.fixedUpdateTimestep)for(this._lagMs+=t;this._lagMs>=i;)this._update(i),this._lagMs-=i;else this._update(t);let a=this.clock.now();this.currentFrameLagMs=this._lagMs,this._draw(t);let o=this.clock.now();this.stats.currFrame.duration.update=a-r,this.stats.currFrame.duration.draw=o-a,this.stats.currFrame.graphics.drawnImages=K.DrawnImagesCount,this.stats.currFrame.graphics.drawCalls=K.DrawCallCount,this.stats.currFrame.graphics.rendererSwaps=K.RendererSwaps,this.emit(`postframe`,new Tt(this,this.stats.currFrame)),this.stats.prevFrame.reset(this.stats.currFrame),this._monitorPerformanceThresholdAndTriggerFallback()})}stop(){this.clock.isRunning()&&(this.emit(`stop`,new ht(this)),this.browser.pause(),this.clock.stop(),this._garbageCollector.stop(),this._logger.debug(`Game stopped`))}isRunning(){return this.clock.isRunning()}screenshot(e=!1){return new Promise(t=>{this._screenShotRequests.push({preserveHiDPIResolution:e,resolve:t})})}_checkForScreenShots(){for(let e of this._screenShotRequests){let t=e.preserveHiDPIResolution?this.canvas.width:this.screen.resolution.width,n=e.preserveHiDPIResolution?this.canvas.height:this.screen.resolution.height,r=document.createElement(`canvas`);r.width=t,r.height=n;let i=r.getContext(`2d`);i.imageSmoothingEnabled=this.screen.antialiasing,i.drawImage(this.canvas,0,0,t,n);let a=new Image,o=r.toDataURL(`image/png`);a.onload=()=>{e.resolve(a)},a.src=o}this._screenShotRequests.length=0}async load(e,t=!1){await this.scope(async()=>{try{if(e.isLoaded())return;this._loader=e,this._isLoading=!0,this._hideLoader=t,e instanceof zo&&(e.suppressPlayButton=e.suppressPlayButton||this._suppressPlayButton),this._loader.onInitialize(this),await e.load()}catch(e){this._logger.error(`Error loading resources, things may not behave properly`,e),await Promise.resolve()}finally{this._isLoading=!1,this._hideLoader=!1,this._loader=null}})}};uc.Context=ic(),uc.InstanceCount=0,uc._DEFAULT_ENGINE_OPTIONS={width:0,height:0,enableCanvasTransparency:!0,useDrawSorting:!0,configurePerformanceCanvas2DFallback:{allow:!1,showPlayerMessage:!1,threshold:{fps:20,numberOfFrames:100}},canvasElementId:``,canvasElement:void 0,enableCanvasContextMenu:!1,snapToPixel:!1,antialiasing:!0,pixelArt:!1,garbageCollection:!0,powerPreference:`high-performance`,pointerScope:c.Canvas,suppressConsoleBootMessage:null,suppressMinimumBrowserFeatureDetection:null,suppressHiDPIScaling:null,suppressPlayButton:null,grabWindowFocus:!0,scrollPreventionMode:1,backgroundColor:F.fromHex(`#2185d0`)};var dc=class extends $a{set maxWidth(e){this._text.maxWidth=e}get maxWidth(){return this._text.maxWidth}get font(){return this._font}set font(e){this._font=e,this._text.font=e}get text(){return this._text.text}set text(e){this._text.text=e}get color(){return this._text.color}set color(e){this._text&&(this._text.color=e)}get opacity(){return this.graphics.opacity}set opacity(e){this.graphics.opacity=e}get spriteFont(){return this._spriteFont}set spriteFont(e){e&&(this._spriteFont=e,this._text.font=this._spriteFont)}constructor(e){super(e),this._font=new ta,this._text=new na({text:``,font:this._font});let{text:t,pos:n,x:r,y:i,spriteFont:a,font:o,color:s,maxWidth:c}={text:``,...e};this.pos=n==null?r&&i?E(r,i):this.pos:n,this.text=t==null?this.text:t,this.font=o==null?this.font:o,this.maxWidth=c==null?this.maxWidth:c,this.spriteFont=a==null?this.spriteFont:a,this._text.color=s==null?this.color:s;let l=this.get(Y);l.anchor=T.Zero,l.use(this._text)}_initialize(e){super._initialize(e)}getTextWidth(){return this._text.width}},fc=function(e){return e.Circle=`circle`,e.Rectangle=`rectangle`,e}({}),pc=class extends $a{constructor(e){var t,n;super({width:(t=e.width)==null?0:t,height:(n=e.height)==null?0:n}),this._particlesToEmit=0,this._particlePool=new wr(()=>new mi({}),e=>e,500),this.numParticles=0,this.isEmitting=!0,this.deadParticles=[],this.emitRate=1,this.emitterType=fc.Rectangle,this.radius=0,this.particle={life:2e3,transform:hi.Global,graphic:void 0,opacity:1,angularVelocity:0,focus:void 0,focusAccel:void 0,randomRotation:!1},this._activeParticles=[];let{particle:r,x:i,y:a,z:o,pos:s,isEmitting:c,emitRate:l,emitterType:u,radius:d,random:f}={...e};this.particle={...this.particle,...r},this.pos=s==null?E(i==null?0:i,a==null?0:a):s,this.z=o==null?0:o,this.isEmitting=c==null?this.isEmitting:c,this.emitRate=l==null?this.emitRate:l,this.emitterType=u==null?this.emitterType:u,this.radius=d==null?this.radius:d,this.body.collisionType=L.PreventCollision,this.random=f==null?new p:f}removeParticle(e){this.deadParticles.push(e)}emitParticles(e){if(!(e<=0)){e|=0;for(let n=0;n<e;n++){var t;let e=this._createParticle();!((t=this)==null||(t=t.scene)==null)&&t.world&&(this.particle.transform===hi.Global?this.scene.world.add(e):this.addChild(e)),this._activeParticles.push(e)}}}clearParticles(){for(let e=0;e<this._activeParticles.length;e++)this.removeParticle(this._activeParticles[e])}_createParticle(){let e=0,t=0,n=w(this.particle.minAngle||0,this.particle.maxAngle||Math.PI*2,this.random),r=w(this.particle.minSpeed||0,this.particle.maxSpeed||0,this.random),i=this.particle.startSize||w(this.particle.minSize||5,this.particle.maxSize||5,this.random),a=r*Math.cos(n),o=r*Math.sin(n);if(this.emitterType===fc.Rectangle)e=w(0,this.width,this.random),t=w(0,this.height,this.random);else if(this.emitterType===fc.Circle){let r=w(0,this.radius,this.random);e=r*Math.cos(n),t=r*Math.sin(n)}let s=this._particlePool.rent();return s.unparent(),s.configure({transform:this.particle.transform,life:this.particle.life,opacity:this.particle.opacity,beginColor:this.particle.beginColor,endColor:this.particle.endColor,pos:E(e,t),z:this.particle.transform===hi.Global?this.z:void 0,vel:E(a,o),acc:this.particle.acc,angularVelocity:this.particle.angularVelocity,startSize:this.particle.startSize,endSize:this.particle.endSize,size:i,graphic:this.particle.graphic,fade:this.particle.fade}),s.registerEmitter(this),this.particle.randomRotation&&(s.transform.rotation=w(0,Math.PI*2,this.random)),this.particle.focus&&(s.focus=this.particle.focus.add(E(this.pos.x,this.pos.y)),s.focusAccel=this.particle.focusAccel),s}update(e,t){super.update(e,t),this.isEmitting&&(this._particlesToEmit+=this.emitRate*(t/1e3),this._particlesToEmit>1&&(this.emitParticles(Math.floor(this._particlesToEmit)),this._particlesToEmit-=Math.floor(this._particlesToEmit)));for(let e=0;e<this.deadParticles.length;e++){var n;!((n=this)==null||(n=n.scene)==null)&&n.world&&(this.scene.world.remove(this.deadParticles[e],!1),this._particlePool.return(this.deadParticles[e]));let t=this._activeParticles.indexOf(this.deadParticles[e]);t>-1&&this._activeParticles.splice(t,1)}this.deadParticles.length=0}};function mc(e,t){if(!t())throw Error(e)}var hc=class{constructor(e,t,n){var r;this.emitRate=1,this._initialized=!1,this._vaos=[],this._buffers=[],this._drawIndex=0,this._numInputFloats=7,this._particleIndex=0,this._uploadIndex=0,this._wrappedLife=0,this._wrappedParticles=0,this._particleLife=0,this._clearRequested=!1,this._emitted=[],this.emitter=e,this.particle=n,this._particleData=new Float32Array(this.emitter.maxParticles*this._numInputFloats),this._random=t,this._particleLife=(r=this.particle.life)==null?2e3:r}get isInitialized(){return this._initialized}get maxParticles(){return this.emitter.maxParticles}initialize(e,t){if(this._initialized)return;let n=this.emitter.maxParticles,r=this._numInputFloats,i=this._particleData,a=e.createBuffer(),o=e.createVertexArray();e.bindVertexArray(o),e.bindBuffer(e.ARRAY_BUFFER,a),e.bufferData(e.ARRAY_BUFFER,n*r*4,e.DYNAMIC_DRAW),e.bufferSubData(e.ARRAY_BUFFER,0,i);let s=0;e.vertexAttribPointer(0,2,e.FLOAT,!1,r*4,0),s+=8,e.vertexAttribPointer(1,2,e.FLOAT,!1,r*4,s),s+=8,e.vertexAttribPointer(2,1,e.FLOAT,!1,r*4,s),s+=4,e.vertexAttribPointer(3,1,e.FLOAT,!1,r*4,s),s+=4,e.vertexAttribPointer(4,1,e.FLOAT,!1,r*4,s),s+=4,e.enableVertexAttribArray(0),e.enableVertexAttribArray(1),e.enableVertexAttribArray(2),e.enableVertexAttribArray(3),e.enableVertexAttribArray(4),this._vaos.push(o),this._buffers.push(a),e.bindVertexArray(null),e.bindBuffer(e.ARRAY_BUFFER,null);let c=e.createBuffer(),l=e.createVertexArray();e.bindVertexArray(l),e.bindBuffer(e.ARRAY_BUFFER,c),e.bufferData(e.ARRAY_BUFFER,n*r*4,e.DYNAMIC_DRAW),s=0,e.vertexAttribPointer(0,2,e.FLOAT,!1,r*4,0),s+=8,e.vertexAttribPointer(1,2,e.FLOAT,!1,r*4,s),s+=8,e.vertexAttribPointer(2,1,e.FLOAT,!1,r*4,s),s+=4,e.vertexAttribPointer(3,1,e.FLOAT,!1,r*4,s),s+=4,e.vertexAttribPointer(4,1,e.FLOAT,!1,r*4,s),s+=4,e.enableVertexAttribArray(0),e.enableVertexAttribArray(1),e.enableVertexAttribArray(2),e.enableVertexAttribArray(3),e.enableVertexAttribArray(4),this._vaos.push(l),this._buffers.push(c),e.bindVertexArray(null),e.bindBuffer(e.ARRAY_BUFFER,null),this._currentVao=this._vaos[this._drawIndex%2],this._currentBuffer=this._buffers[(this._drawIndex+1)%2],this._initialized=!0}clearParticles(){this._particleData.fill(0),this._clearRequested=!0}emitParticles(e){let t=this._particleIndex,n=this.maxParticles*this._numInputFloats,r=e*this._numInputFloats+t,i=0;for(let e=t;e<r;e+=this._numInputFloats){let t=this._random.floating(this.particle.minAngle||0,this.particle.maxAngle||m);t+=this.particle.transform===hi.Local?this.emitter.transform.rotation:this.emitter.transform.globalRotation;let n=this._random.floating(this.particle.minSpeed||0,this.particle.maxSpeed||0),r=this._random.floating(this.particle.minSpeed||0,this.particle.maxSpeed||0),a=n*Math.cos(t),o=r*Math.sin(t),s=0,c=0;if(this.emitter.emitterType===fc.Rectangle)s=this._random.floating(-.5,.5)*this.emitter.width,c=this._random.floating(-.5,.5)*this.emitter.height;else{let e=this._random.floating(0,this.emitter.radius);s=e*Math.cos(t),c=e*Math.sin(t)}let l=this.emitter.transform.apply(E(s,c)),u=[this.particle.transform===hi.Local?s:l.x,this.particle.transform===hi.Local?c:l.y,a,o,this.particle.randomRotation?w(0,m,this._random):this.particle.rotation||0,this.particle.angularVelocity||0,this._particleLife];i++,this._particleData.set(u,e%this._particleData.length)}r>=n?(this._wrappedParticles+=(r-n)/this._numInputFloats,this._wrappedLife=this._particleLife):this._wrappedLife>0&&(this._wrappedParticles+=e),this._particleIndex=r%n,this._emitted.push([this._particleLife,t])}_uploadEmitted(e){this._particleIndex!==this._uploadIndex&&(e.bindBuffer(e.ARRAY_BUFFER,this._buffers[(this._drawIndex+1)%2]),this._particleIndex>=this._uploadIndex?e.bufferSubData(e.ARRAY_BUFFER,this._uploadIndex*4,this._particleData,this._uploadIndex,this._particleIndex-this._uploadIndex):(e.bufferSubData(e.ARRAY_BUFFER,this._uploadIndex*4,this._particleData,this._uploadIndex,this._particleData.length-this._uploadIndex),this._wrappedParticles&&e.bufferSubData(e.ARRAY_BUFFER,0,this._particleData,0,this._wrappedParticles*this._numInputFloats),this._wrappedLife=this._particleLife),e.bindBuffer(e.ARRAY_BUFFER,null)),this._uploadIndex=this._particleIndex%(this.maxParticles*this._numInputFloats)}update(e){var t;if(this._particleLife=(t=this.particle.life)==null?this._particleLife:t,this._wrappedLife>0?this._wrappedLife-=e:(this._wrappedLife=0,this._wrappedParticles=0),this._emitted.length){for(let t=this._emitted.length-1;t>=0;t--){let n=this._emitted[t];n[0]-=e,n[0]<=0&&this._emitted.splice(t,1)}this._emitted.sort((e,t)=>e[0]-t[0])}}draw(e){if(this._initialized){if(this._clearRequested?(e.bindBuffer(e.ARRAY_BUFFER,this._buffers[(this._drawIndex+1)%2]),e.bufferSubData(e.ARRAY_BUFFER,0,this._particleData),e.bindBuffer(e.ARRAY_BUFFER,null),this._clearRequested=!1):this._uploadEmitted(e),e.bindVertexArray(this._currentVao),e.bindBufferBase(e.TRANSFORM_FEEDBACK_BUFFER,0,this._currentBuffer),this._wrappedLife&&this._emitted[0]&&this._emitted[0][1]>0){let t=this._emitted[0][1]/this._numInputFloats;mc(`midpoint greater than 0, actual: ${t}`,()=>t>0),mc(`midpoint is less than max, actual: ${t}`,()=>t<this.maxParticles),e.bindBufferRange(e.TRANSFORM_FEEDBACK_BUFFER,0,this._currentBuffer,this._emitted[0][1]*4,(this.maxParticles-t)*this._numInputFloats*4),e.beginTransformFeedback(e.POINTS),e.drawArrays(e.POINTS,t,this.maxParticles-t),e.endTransformFeedback(),e.bindBufferRange(e.TRANSFORM_FEEDBACK_BUFFER,0,this._currentBuffer,0,this._emitted[0][1]*4),e.beginTransformFeedback(e.POINTS),e.drawArrays(e.POINTS,0,t),e.endTransformFeedback()}else e.bindBufferRange(e.TRANSFORM_FEEDBACK_BUFFER,0,this._currentBuffer,0,this._particleData.length*4),e.beginTransformFeedback(e.POINTS),e.drawArrays(e.POINTS,0,this.maxParticles),e.endTransformFeedback();e.bindVertexArray(null),e.bindBufferBase(e.TRANSFORM_FEEDBACK_BUFFER,0,null),this._currentVao=this._vaos[this._drawIndex%2],this._currentBuffer=this._buffers[(this._drawIndex+1)%2],this._drawIndex=(this._drawIndex+1)%2}}};hc.GPU_MAX_PARTICLES=1e5;var gc=class extends $a{get pos(){return this.transform.pos}set pos(e){this.transform.pos=e}get z(){return this.transform.z}set z(e){this.transform.z=e}constructor(e){super({name:`GpuParticleEmitter`,width:e.width,height:e.height}),this.particle={life:2e3,transform:hi.Global,graphic:void 0,opacity:1,angularVelocity:0,focus:void 0,focusAccel:void 0,randomRotation:!1},this.graphics=new Y,this.isEmitting=!1,this.emitRate=1,this.emitterType=fc.Rectangle,this.radius=0,this.maxParticles=2e3,this._particlesToEmit=0,this.addComponent(this.graphics,!0),this.graphics.onPostDraw=this.draw.bind(this);let{particle:t,maxParticles:n,x:r,y:i,z:a,pos:o,isEmitting:s,emitRate:c,emitterType:l,radius:u,random:d}={...e};this.maxParticles=_(n==null?this.maxParticles:n,0,hc.GPU_MAX_PARTICLES),this.pos=o==null?E(r==null?0:r,i==null?0:i):o,this.z=a==null?0:a,this.isEmitting=s==null?this.isEmitting:s,this.emitRate=c==null?this.emitRate:c,this.emitterType=l==null?this.emitterType:l,this.radius=u==null?this.radius:u,this.particle={...this.particle,...t},this.random=d==null?new p:d,this.renderer=new hc(this,this.random,this.particle)}_initialize(e){super._initialize(e);let t=e.graphicsContext;this.renderer.initialize(t.__gl,t)}update(e,t){super.update(e,t),this.isEmitting&&(this._particlesToEmit+=this.emitRate*(t/1e3),this._particlesToEmit>1&&(this.emitParticles(Math.floor(this._particlesToEmit)),this._particlesToEmit-=Math.floor(this._particlesToEmit))),this.renderer.update(t)}emitParticles(e){e<=0||this.renderer.emitParticles(e|0)}clearParticles(){this.renderer.clearParticles()}draw(e,t){e.draw(`ex.particle`,this.renderer,t)}},_c=class e{constructor(e,t){this.id=Z(),this._stopped=!1,this._sequenceBuilder=t,this._sequenceContext=new Ya(e),this._actionQueue=this._sequenceContext.getQueue(),this._sequenceBuilder(this._sequenceContext)}update(e){this._actionQueue.update(e)}isComplete(){return this._stopped||this._actionQueue.isComplete()}stop(){this._stopped=!0}reset(){this._stopped=!1,this._actionQueue.reset()}clone(t){return new e(t,this._sequenceBuilder)}},vc=class{constructor(e){this.id=Z(),this._actions=e}update(e){for(let t=0;t<this._actions.length;t++)this._actions[t].update(e)}isComplete(e){return this._actions.every(t=>t.isComplete(e))}reset(){this._actions.forEach(e=>e.reset())}stop(){this._actions.forEach(e=>e.stop())}};function yc(e){return!!e._initialize}function bc(e){return!!e.onAdd}function xc(e){return!!e.onRemove}function Sc(e){return!!e.onInitialize}function Cc(e){return!!e._preupdate}function wc(e){return!!e.onPreUpdate}function Tc(e){return!!e.onPostUpdate}function Ec(e){return!!e.onPostUpdate}function Dc(e){return!!e.onAdd}function Oc(e){return!!e.onRemove}function kc(e){return!!e.onPreDraw}function Ac(e){return!!e.onPostDraw}var jc=class{constructor(e,t){this.soundManager=t}stop(e){if(!e)return;let t=this.soundManager.getSoundsForChannel(e);for(let e=0;e<t.length;e++)t[e].stop()}setVolume(e,t){let n=this.soundManager.getSoundsForChannel(e);for(let r of n)this.soundManager._isMuted(r)||this.soundManager.setVolume(e,t)}play(e,t){t!=null||(t=this.soundManager.defaultVolume);let n=[],r=new Set,i=this.soundManager.getSoundsForChannel(e);for(let e of i){if(r.has(e)||this.soundManager._isMuted(e))continue;let i=this.soundManager._getEffectiveVolume(e);n.push(e.play(i*t)),r.add(e)}return Promise.all(n)}mute(e){let t=this.soundManager.getSoundsForChannel(e);for(let e=0;e<t.length;e++)this.soundManager._muted.add(t[e]),t[e].pause()}unmute(e){let t=this.soundManager.getSoundsForChannel(e);for(let e=0;e<t.length;e++)this.soundManager._muted.has(t[e])&&(t[e].play(),this.soundManager._muted.delete(t[e]))}toggle(e){let t=this.soundManager.getSoundsForChannel(e);for(let e=0;e<t.length;e++)this.soundManager._isMuted(t[e])?(t[e].play(),this.soundManager._muted.delete(t[e])):(this.soundManager._muted.add(t[e]),t[e].pause())}},Mc=class{set defaultVolume(e){this._defaultVolume=_(e,0,1)}get defaultVolume(){return this._defaultVolume}constructor(e){var t;if(this._channelToConfig=new Map,this._nameToConfig=new Map,this._mix=new Map,this._muted=new Set,this._all=new Set,this._defaultVolume=1,this._defaultVolume=(t=e.volume)==null?1:t,this.channel=new jc(e,this),e.sounds)for(let[t,n]of Object.entries(e.sounds))this.track(t,n)}getSounds(){return Array.from(this._all)}getSoundsForChannel(e){let t=this._channelToConfig.get(e);return t?t.sounds:[]}_isMuted(e){return this._muted.has(e)}_getEffectiveVolume(e){if(this._isMuted(e))return 0;let t=this._defaultVolume;if(this._mix.has(e)){var n;t*=(n=this._mix.get(e))==null?this._defaultVolume:n}return t}play(e,t=this._defaultVolume){let n=this._nameToConfig.get(e);if(!n)return Promise.resolve();let{sound:r}=n;if(this._isMuted(r))return Promise.resolve();let i=t*this._getEffectiveVolume(r);return r.play(i)}getSound(e){let t=this._nameToConfig.get(e);if(!t)return;let{sound:n}=t;return n}setVolume(e,t=this._defaultVolume){let n=this._nameToConfig.get(e);if(!n)return;let{sound:r}=n;this._setMix(r,t)}getVolume(e){var t;let n=this.getSound(e);return n?(t=this._mix.get(n))==null?0:t:0}_setMix(e,t){this._mix.set(e,t),e.volume=t}track(e,t){var n;let r,i,a;t instanceof No?(r=t,i=this._defaultVolume,a=[]):{sound:r,volume:i,channels:a}=t,this._nameToConfig.set(e,{sound:r,volume:i,channels:a}),this._mix.set(r,(n=i)==null?this._defaultVolume:n),this._all.add(r),a&&this.addChannel(e,a)}untrack(e){this._nameToConfig.delete(e);let t=this.getSound(e);t&&(this._mix.delete(t),this._all.delete(t))}stop(e){if(e){let t=this._nameToConfig.get(e);if(!t)return;let{sound:n}=t;n.stop();return}this._all.forEach(e=>e.stop())}mute(e){if(e){let t=this._nameToConfig.get(e);if(!t)return;let{sound:n}=t;this._muted.add(n),n.pause();return}this._muted=new Set(this._all),this._muted.forEach(e=>e.pause())}unmute(e){if(e){let t=this._nameToConfig.get(e);if(!t)return;let{sound:n}=t;n.play(),this._muted.delete(n);return}this._muted.forEach(e=>e.play()),this._muted.clear()}toggle(e){if(e){let t=this._nameToConfig.get(e);if(!t)return;let{sound:n}=t;this._isMuted(n)?this.unmute(e):this.mute(e);return}this._muted.size>0?(this._muted.forEach(e=>e.play()),this._muted.clear()):(this._muted=new Set(this._all),this._muted.forEach(e=>e.pause()))}addChannel(e,t){let n=this.getSound(e);if(!n)return;let r=this._mix.get(n);this._mix.set(n,r==null?this._defaultVolume:r),this._all.add(n);for(let e of t){let t=this._channelToConfig.get(e);t||(t={sounds:[n]}),t.sounds.indexOf(n)===-1&&t.sounds.push(n),this._channelToConfig.set(e,t)}}removeChannel(e,t){let n=this.getSound(e);if(n)for(let e of t){let t=this._channelToConfig.get(e);if(!t)return;let r=t.sounds.indexOf(n);r>=-1&&t.sounds.splice(r,1),this._channelToConfig.set(e,t)}}},Nc=class{constructor(e,t=!1){this.path=e,this.width=0,this.height=0,this._images=[],this.data=[],this._sprites=[],this._resource=new ur(e,`arraybuffer`,t)}get bustCache(){return this._resource.bustCache}set bustCache(e){this._resource.bustCache=e}async load(){let e=await this._resource.load();this._stream=new Ic(e),this._gif=new Rc(this._stream);let t=this._gif.images.map(e=>new _r(e.src,!1));return await Promise.all(t.map(e=>e.load())),this.data=this._images=t,this._sprites=this._images.map(e=>e.toSprite()),this.data}isLoaded(){return!!this.data}toSprite(e=0){var t;return(t=this._sprites[e])==null?null:t}toSpriteSheet(){let e=this._sprites;return e.length?new Ar({sprites:e}):null}toAnimation(e){var t;let n=(t=this._gif)==null?void 0:t.images;if(n!=null&&n.length){let t=n.map((e,t)=>{var n;return{graphic:this._sprites[t],duration:((n=this._gif)==null?void 0:n.frames[t].delayMs)||void 0}});return this._animation=new sr({frames:t,frameDuration:e}),this._animation}return null}get readCheckBytes(){var e,t;return(e=(t=this._gif)==null?void 0:t.checkBytes)==null?[]:e}},Pc=e=>e.reduce(function(e,t){return e*2+t},0),Fc=e=>{let t=[];for(let n=7;n>=0;n--)t.push(!!(e&1<<n));return t},Ic=class{constructor(e){if(this.len=0,this.position=0,this.readByte=()=>{if(this.position>=this.data.byteLength)throw Error(`Attempted to read past end of stream.`);return this.data[this.position++]},this.readBytes=e=>{let t=[];for(let n=0;n<e;n++)t.push(this.readByte());return t},this.read=e=>{let t=``;for(let n=0;n<e;n++)t+=String.fromCharCode(this.readByte());return t},this.readUnsigned=()=>{let e=this.readBytes(2);return(e[1]<<8)+e[0]},this.data=new Uint8Array(e),this.len=this.data.byteLength,this.len===0)throw Error(`No data loaded from file`)}},Lc=function(e,t){let n=0,r=function(e){let r=0;for(let i=0;i<e;i++)t.charCodeAt(n>>3)&1<<(n&7)&&(r|=1<<i),n++;return r},i=[],a=1<<e,o=a+1,s=e+1,c=[],l=function(){c=[],s=e+1;for(let e=0;e<a;e++)c[e]=[e];c[a]=[],c[o]=null},u=0,d=0;for(;;){if(d=u,u=r(s),u===a){l();continue}if(u===o)break;if(u<c.length)d!==a&&c.push(c[d].concat(c[u][0]));else{if(u!==c.length)throw Error(`Invalid LZW code.`);c.push(c[d].concat(c[d][0]))}i.push.apply(i,c[u]),c.length===1<<s&&s<12&&s++}return i},Rc=class{constructor(e){this._handler={},this.frames=[],this.images=[],this.globalColorTableBytes=[],this.checkBytes=[],this.parseColorTableBytes=e=>{let t=[];for(let n=0;n<e;n++){let e=this._st.readBytes(3);t.push(e)}return t},this.readSubBlocks=()=>{let e,t=``;do e=this._st.readByte(),t+=this._st.read(e);while(e!==0);return t},this.parseHeader=()=>{let e={sig:``,ver:``,width:0,height:0,colorResolution:0,globalColorTableSize:0,gctFlag:!1,sortedFlag:!1,globalColorTable:[],backgroundColorIndex:0,pixelAspectRatio:0};if(e.sig=this._st.read(3),e.ver=this._st.read(3),e.sig!==`GIF`)throw Error(`Not a GIF file.`);e.width=this._st.readUnsigned(),e.height=this._st.readUnsigned(),this._currentFrameCanvas.width=e.width,this._currentFrameCanvas.height=e.height;let t=Fc(this._st.readByte());e.gctFlag=t.shift(),e.colorResolution=Pc(t.splice(0,3)),e.sortedFlag=t.shift(),e.globalColorTableSize=Pc(t.splice(0,3)),e.backgroundColorIndex=this._st.readByte(),e.pixelAspectRatio=this._st.readByte(),e.gctFlag&&(this.globalColorTableBytes=this.parseColorTableBytes(1<<e.globalColorTableSize+1)),this._handler.hdr&&this._handler.hdr(e)&&this.checkBytes.push(this._handler.hdr)},this.parseExt=e=>{let t=e=>{this.checkBytes.push(this._st.readByte());let t=Fc(this._st.readByte());return e.reserved=t.splice(0,3),e.disposalMethod=Pc(t.splice(0,3)),e.userInputFlag=t.shift(),e.transparentColorFlag=t.shift(),e.delayTime=this._st.readUnsigned(),e.transparentColorIndex=this._st.readByte(),e.terminator=this._st.readByte(),this._handler.gce&&this._handler.gce(e)&&this.checkBytes.push(this._handler.gce),e},n=e=>{e.comment=this.readSubBlocks(),this._handler.com&&this._handler.com(e)&&this.checkBytes.push(this._handler.com)},r=e=>{this.checkBytes.push(this._st.readByte()),e.ptHeader=this._st.readBytes(12),e.ptData=this.readSubBlocks(),this._handler.pte&&this._handler.pte(e)&&this.checkBytes.push(this._handler.pte)},i=e=>{let t=e=>{this.checkBytes.push(this._st.readByte()),e.unknown=this._st.readByte(),e.iterations=this._st.readUnsigned(),e.terminator=this._st.readByte(),this._handler.app&&this._handler.app.NETSCAPE&&this._handler.app.NETSCAPE(e)&&this.checkBytes.push(this._handler.app)},n=e=>{e.appData=this.readSubBlocks(),this._handler.app&&this._handler.app[e.identifier]&&this._handler.app[e.identifier](e)&&this.checkBytes.push(this._handler.app[e.identifier])};switch(this.checkBytes.push(this._st.readByte()),e.identifier=this._st.read(8),e.authCode=this._st.read(3),e.identifier){case`NETSCAPE`:t(e);break;default:n(e);break}},a=e=>{e.data=this.readSubBlocks(),this._handler.unknown&&this._handler.unknown(e)&&this.checkBytes.push(this._handler.unknown)};switch(e.label=this._st.readByte(),e.label){case 249:e.extType=`gce`,this._gce=t(e);break;case 254:e.extType=`com`,n(e);break;case 1:e.extType=`pte`,r(e);break;case 255:e.extType=`app`,i(e);break;default:e.extType=`unknown`,a(e);break}},this.parseImg=e=>{var t;let n=(e,t)=>{let n=Array(e.length),r=e.length/t,i=(r,i)=>{let a=e.slice(i*t,(i+1)*t);n.splice.apply(n,[r*t,t].concat(a))},a=[0,4,2,1],o=[8,8,4,2],s=0;for(let e=0;e<4;e++)for(let t=a[e];t<r;t+=o[e])i(t,s),s++;return n};e.leftPos=this._st.readUnsigned(),e.topPos=this._st.readUnsigned(),e.width=this._st.readUnsigned(),e.height=this._st.readUnsigned();let r=Fc(this._st.readByte());e.lctFlag=r.shift(),e.interlaced=r.shift(),e.sorted=r.shift(),e.reserved=r.splice(0,2),e.lctSize=Pc(r.splice(0,3)),e.lctFlag&&(e.lctBytes=this.parseColorTableBytes(1<<e.lctSize+1)),e.lzwMinCodeSize=this._st.readByte();let i=this.readSubBlocks();e.pixels=Lc(e.lzwMinCodeSize,i),e.interlaced&&(e.pixels=n(e.pixels,e.width)),(t=this._gce)!=null&&t.delayTime&&(e.delayMs=this._gce.delayTime*10),this.frames.push(e),this.arrayToImage(e,e.lctFlag?e.lctBytes:this.globalColorTableBytes),this._handler.img&&this._handler.img(e)&&this.checkBytes.push(this._handler)},this.parseBlocks=()=>{let e={sentinel:this._st.readByte(),type:``};switch(String.fromCharCode(e.sentinel)){case`!`:e.type=`ext`,this.parseExt(e);break;case`,`:e.type=`img`,this.parseImg(e);break;case`;`:e.type=`eof`,this._handler.eof&&this._handler.eof(e)&&this.checkBytes.push(this._handler.eof);break;default:throw Error(`Unknown block: 0x`+e.sentinel.toString(16))}e.type!==`eof`&&this.parseBlocks()},this.arrayToImage=(e,t)=>{var n,r,i,a;let o=document.createElement(`canvas`);o.width=e.width,o.height=e.height;let s=o.getContext(`2d`),c=s.getImageData(0,0,o.width,o.height),l=-1;(n=this._gce)!=null&&n.transparentColorFlag&&(l=this._gce.transparentColorIndex);for(let n=0;n<e.pixels.length;n++){let r=e.pixels[n],i=t[r];r===l?c.data.set([0,0,0,0],n*4):c.data.set([...i,255],n*4)}if(s.putImageData(c,0,0),((r=this._gce)==null?void 0:r.disposalMethod)===1&&this.images.length)this._currentFrameContext.drawImage(this.images[this.images.length-1],0,0);else if(((i=this._gce)==null?void 0:i.disposalMethod)===2&&(a=this._hdr)!=null&&a.gctFlag){let e=t[this._hdr.backgroundColorIndex];this._currentFrameContext.fillStyle=`rgb(${e[0]}, ${e[1]}, ${e[2]})`,this._currentFrameContext.fillRect(0,0,this._hdr.width,this._hdr.height)}else this._currentFrameContext.clearRect(0,0,this._currentFrameCanvas.width,this._currentFrameCanvas.height);this._currentFrameContext.drawImage(o,e.leftPos,e.topPos,e.width,e.height);let u=new Image;u.src=this._currentFrameCanvas.toDataURL(),this.images.push(u)},this._st=e,this._handler={},this._currentFrameCanvas=document.createElement(`canvas`),this._currentFrameContext=this._currentFrameCanvas.getContext(`2d`),this.parseHeader(),this.parseBlocks()}},zc=class{constructor(e,t,{bustCache:n,...r}={}){this.path=e,this.family=t,this._isLoaded=!1,this._resource=new ur(e,`blob`,n),this._options=r}async load(){if(this.isLoaded())return this.data;try{let e=await this._resource.load(),t=URL.createObjectURL(e);this.data||(this.data=new FontFace(this.family,`url(${t})`),document.fonts.add(this.data)),await this.data.load(),this._isLoaded=!0}catch(e){throw`Error loading FontSource from path '${this.path}' with error [${e.message}]`}return this.data}isLoaded(){return this._isLoaded}toFont(e){return new ta({family:this.family,...this._options,...e})}},Bc=ic(),Vc=/^\s*(?:function)?\*/;function Hc(e){return typeof e==`function`?Vc.test(Function.prototype.toString.call(e))?!0:Object.getPrototypeOf?Object.getPrototypeOf(e)===Object.getPrototypeOf(Function(`return function * () {}`)()):!1:!1}function Uc(...e){var t;let n=I.getInstance(),r,i,a,o;Hc(e[0])&&(i=globalThis,r=e[0],a=e[1]),Hc(e[1])&&(i=e[0],r=e[1],a=e[2]),e[1]instanceof uc&&(i=e[0],o=e[1],r=e[2],a=e[3]),e[0]instanceof uc&&(i=globalThis,o=e[0],r=e[1],a=e[2]);let s=ac(Bc),c=a==null?void 0:a.timing,l=s?!1:(t=a==null?void 0:a.autostart)==null?!0:t,u;try{var d;u=(d=o)==null?uc.useEngine():d}catch(e){throw Error(`Cannot run coroutine without engine parameter outside of an excalibur lifecycle method.
|
|
894
894
|
Pass an engine parameter to ex.coroutine(engine, function * {...})`)}let f=!1,p=!1,m=!1,h=r.bind(i),g=h(),_,v=new Promise((e,t)=>{_=n=>{try{if(m){p=!0,e();return}let{done:t,value:r}=Bc.scope(!0,()=>g.next(n));if(t||m){p=!0,e();return}r instanceof Promise?r.then(()=>{u.clock.schedule(_,0,c)}):r===void 0||r===void 0?u.clock.schedule(_,0,c):u.clock.schedule(_,r||0,c)}catch(e){t(e);return}},l&&(f=!0,_(u.clock.elapsed()))}),y={isRunning:()=>f&&!m&&!p,isComplete:()=>p,cancel:()=>{m=!0},start:()=>(f?n.warn(`.start() was called on a coroutine that was already started, this is probably a bug:
|
|
895
|
-
`,Function.prototype.toString.call(h)):(f=!0,_(u.clock.elapsed())),y),generator:g,done:v,then:v.then.bind(v),[Symbol.iterator]:()=>g};return y}var Wc=class extends hn{get progress(){return this._currentProgress}get distance(){return this._currentDistance}get complete(){return this.direction===`out`?this.progress>=1:this.progress<=0}constructor(e){var t,n,r;if(super(),this._logger=I.getInstance(),this.transform=new R,this.graphics=new Y,this._completeFuture=new o,this.started=!1,this._currentDistance=0,this._currentProgress=0,this.done=this._completeFuture.promise,this._useLegacyEasing=!1,this.name=`Transition#${this.id}`,this.duration=e.duration,oa(e.easing)){var i;this.legacyEasing=(i=e.easing)==null?X.Linear:i,this._useLegacyEasing=!0}else{var a;this.easing=(a=e.easing)==null?ve:a}this.direction=(t=e.direction)==null?`out`:t,this.hideLoader=(n=e.hideLoader)==null?!1:n,this.blockInput=(r=e.blockInput)==null?!1:r,this.transform.coordPlane=A.Screen,this.transform.pos=T.Zero,this.transform.z=1/0,this.graphics.anchor=T.Zero,this.addComponent(this.transform),this.addComponent(this.graphics),this.direction===`out`?this._currentProgress=0:this._currentProgress=1}updateTransition(e,t){this.complete||(this._currentDistance+=_(t/this.duration,0,1),this._currentDistance>=1&&(this._currentDistance=1),this.direction===`out`?this._useLegacyEasing?this._currentProgress=_(this.legacyEasing(this._currentDistance,0,1,1),0,1):this._currentProgress=_(P(0,1,this.easing(this._currentDistance)),0,1):this._useLegacyEasing?this._currentProgress=_(this.legacyEasing(this._currentDistance,1,0,1),0,1):this._currentProgress=_(P(1,0,this.easing(this._currentDistance)),0,1))}async onPreviousSceneDeactivate(e){}onStart(e){}onUpdate(e){}onEnd(e){}onReset(){}reset(){this.started=!1,this._completeFuture=new o,this.done=this._completeFuture.promise,this._currentDistance=0,this.direction===`out`?this._currentProgress=0:this._currentProgress=1,this.onReset()}_addToTargetScene(e,t){let n=t;if(this.started&&this._logger.warn(`Attempted to add a transition ${this.name} that is already playing.`),n.world.entityManager.getById(this.id))return this._co;this._engine=e,n.add(this);let r=this;return this._co=Uc(e,function*(){for(;!r.complete;){let e=yield;r.updateTransition(r._engine,e),r._execute()}},{autostart:!1}),this._co}async _play(){this.started&&(this.reset(),this._logger.warn(`Attempted to play a transition ${this.name} that is already playing, reset transition.`)),(!this._engine||!this._co)&&(this.reset(),this._logger.warn(`Attempted to play a transition ${this.name} that hasn't been added`)),this._co&&await this._co.start()}_execute(){this.isInitialized&&(this.started||(this.started=!0,this.onStart(this.progress)),this.onUpdate(this.progress),this.complete&&!this._completeFuture.isCompleted&&(this.onEnd(this.progress),this._completeFuture.resolve()))}},Gc=class extends Wc{constructor(e){var t,n;super({...e,duration:(t=e.duration)==null?2e3:t}),this.name=`FadeInOut#${this.id}`,this.color=(n=e.color)==null?F.Black:n}onInitialize(e){this.transform.pos=e.screen.unsafeArea.topLeft,this.screenCover=new Gr({width:e.screen.resolution.width,height:e.screen.resolution.height,color:this.color}),this.graphics.add(this.screenCover),this.graphics.opacity=this.progress}onReset(){this.graphics.opacity=this.progress}onStart(e){this.graphics.opacity=e}onEnd(e){this.graphics.opacity=e}onUpdate(e){this.graphics.opacity=e}},Kc=class extends Wc{constructor(e){super({direction:`in`,...e}),this.name=`CrossFade#${this.id}`}async onPreviousSceneDeactivate(e){this.image=await e.engine.screenshot(!0),await this.image.decode()}onInitialize(e){this.engine=e,this.transform.pos=e.screen.unsafeArea.topLeft,this.screenCover=_r.fromHtmlImageElement(this.image).toSprite(),this.graphics.add(this.screenCover),this.transform.scale=E(1/e.screen.pixelRatio,1/e.screen.pixelRatio),this.graphics.opacity=this.progress}onStart(e){this.graphics.opacity=this.progress}onReset(){this.graphics.opacity=this.progress}onEnd(e){this.graphics.opacity=e}onUpdate(e){this.graphics.opacity=e}},qc=class extends Wc{constructor(e){var t;super({direction:`in`,...e}),this._easing=X.Linear,this._start=T.Zero,this._end=T.Zero,this.name=`Slide#${this.id}`,this.slideDirection=e.slideDirection,this.transform.coordPlane=A.Screen,this.graphics.forceOnScreen=!0,this._easing=(t=e.easingFunction)==null?this._easing:t}async onPreviousSceneDeactivate(e){this._image=await e.engine.screenshot(!0),await this._image.decode(),this._screenCover=_r.fromHtmlImageElement(this._image).toSprite()}onInitialize(e){this._engine=e;let t=e.screen.unsafeArea;switch(t.hasZeroDimensions()&&(t=e.screen.contentArea),this.slideDirection){case`up`:this._directionOffset=E(0,-t.height);break;case`down`:this._directionOffset=E(0,t.height);break;case`left`:this._directionOffset=E(-t.width,0);break;case`right`:this._directionOffset=E(t.width,0);break}this._camera=this._engine.currentScene.camera,this._destinationCameraPosition=this._camera.pos.clone(),this._camera.pos=this._camera.pos.add(this._directionOffset),this.transform.pos=this.transform.pos.add(this._directionOffset),this._startCameraPosition=this._camera.pos.clone(),this._start=t.topLeft,this._end=this._start.add(this._directionOffset),this.transform.pos=this._start,this.graphics.use(this._screenCover),this.transform.scale=E(1/e.screen.pixelRatio,1/e.screen.pixelRatio)}onStart(e){let t=this._easing(this.distance,0,1,1);this.transform.pos.x=P(this._start.x,this._end.x,t),this.transform.pos.y=P(this._start.y,this._end.y,t),this._camera.pos.x=P(this._startCameraPosition.x,this._destinationCameraPosition.x,t),this._camera.pos.y=P(this._startCameraPosition.y,this._destinationCameraPosition.y,t)}onUpdate(e){let t=this._easing(this.distance,0,1,1);this.transform.pos.x=P(this._start.x,this._end.x,t),this.transform.pos.y=P(this._start.y,this._end.y,t),this._camera.pos.x=P(this._startCameraPosition.x,this._destinationCameraPosition.x,t),this._camera.pos.y=P(this._startCameraPosition.y,this._destinationCameraPosition.y,t)}},Jc=5,Yc={},Xc=()=>{for(let e in Yc)Yc[e]=0},Zc=(e,t)=>{let n=i.isEnabled(`suppress-obsolete-message`);Yc[e]<5&&!n&&(I.getInstance().warn(e),console.trace&&t.showStackTrace&&console.trace()),Yc[e]++};function Qc(e){return e={message:`This feature will be removed in future versions of Excalibur.`,alternateMethod:null,showStackTrace:!1,...e},function(t,n,r){if(r&&!(typeof r.value==`function`||typeof r.get==`function`||typeof r.set==`function`))throw SyntaxError(`Only classes/functions/getters/setters can be marked as obsolete`);let i=`${`${t.name||``}${t.name&&n?`.`:``}${n||``}`} is marked obsolete: ${e.message}`+(e.alternateMethod?` Use ${e.alternateMethod} instead`:``);Yc[i]||(Yc[i]=0);let a=r?{...r}:t;if(!r){class t extends a{constructor(...t){Zc(i,e),super(...t)}}return t}return r&&r.value?(a.value=function(){return Zc(i,e),r.value.apply(this,arguments)},a):(r&&r.get&&(a.get=function(){return Zc(i,e),r.get.apply(this,arguments)}),r&&r.set&&(a.set=function(){return Zc(i,e),r.set.apply(this,arguments)}),a)}}var $c=class{constructor(){this._queue=[]}get length(){return this._queue.length}enqueue(){let e=new o;return this._queue.push(e),e.promise}dequeue(e){this._queue.shift().resolve(e)}},el=class{constructor(e){this._count=e,this._waitQueue=new $c}get count(){return this._count}get waiting(){return this._waitQueue.length}async enter(){return this._count===0?this._waitQueue.enqueue():(this._count--,Promise.resolve())}exit(e=1){if(e!==0){for(;e!==0&&this._waitQueue.length!==0;)this._waitQueue.dequeue(null),e--;this._count+=e}}},tl=`0.33.0-alpha.149+67c7814`;r(),e.ActionCompleteEvent=Jt,e.ActionContext=Ya,e.ActionQueue=sa,e.ActionSequence=_c,e.ActionStartEvent=qt,e.ActionsComponent=Xa,e.ActionsSystem=gs,e.ActivateEvent=Vt,e.Actor=$a,e.ActorEvents=Qa,e.AddEvent=Yt,e.AddedComponent=un,e.AffineMatrix=O,e.Animation=sr,e.AnimationDirection=ir,e.AnimationEvents=or,e.AnimationStrategy=ar,e.ArcadeSolver=so,e.AudioContextFactory=bo,e.Axes=xs,e.Axis=is,e.BaseAlign=xr,e.BezierCurve=de,e.Blink=Ma,e.BodyComponent=$,e.BoundingBox=H,e.BrowserComponent=Js,e.BrowserEvents=Ys,e.Buttons=bs,e.Camera=ds,e.CameraEvents=us,e.Canvas=qr,e.ChannelCollection=jc,e.Circle=Wr,e.CircleCollider=er,e.Clock=Zs,e.ClosestLineJumpTable=Mn,e.Collider=An,e.ColliderComponent=Q,e.CollisionContact=kn,e.CollisionEndEvent=zt,e.CollisionGroup=ct,e.CollisionGroupManager=ot,e.CollisionJumpTable=$n,e.CollisionPostSolveEvent=Lt,e.CollisionPreSolveEvent=It,e.CollisionStartEvent=Rt,e.CollisionSystem=mo,e.CollisionType=L,e.Color=F,e.ColorBlindFlags=Ws,e.ColorBlindnessMode=bi,e.ColorBlindnessPostProcessor=Si,e.Component=rt,e.CompositeCollider=Wn,e.ConsoleAppender=$e,e.ContactConstraintPoint=co,e.ContactEndEvent=Ft,e.ContactSolveBias=Rn,e.ContactStartEvent=Pt,e.CoordPlane=A,e.CrossFade=Kc,e.CurveBy=Ba,e.CurveTo=za,e.DeactivateEvent=Ht,e.Debug=G,e.DebugConfig=Gs,e.DebugGraphicsComponent=Rr,e.DebugSystem=ms,e.DebugText=Mr,e.DefaultAntialiasOptions=Zr,e.DefaultGarbageCollectionOptions=oc,e.DefaultLoader=Io,e.DefaultPixelArtOptions=Qr,e.DegreeOfFreedom=eo,e.Delay=Pa,e.Detector=Vo,e.Die=Fa,e.Direction=Cr,e.Director=rc,e.DirectorEvents=nc,e.DisplayMode=go,e.DynamicTree=Fn,e.DynamicTreeCollisionProcessor=In,e.EX_VERSION=tl,e.EaseBy=ja,e.EaseTo=Aa,e.EasingFunctions=X,e.Edge=me,e.EdgeCollider=Nn,e.ElasticToActorStrategy=ss,e.EmitterType=fc,e.Engine=uc,e.EngineEvents=cc,e.EnterTriggerEvent=Gt,e.EnterViewPortEvent=Wt,e.Entity=hn,e.EntityEvents=mn,e.EntityManager=gn,e.EventEmitter=s,e.EventTypes=ut,Object.defineProperty(e,"Events",{enumerable:!0,get:function(){return lt}}),e.ExResponse=Co,e.ExcaliburGraphicsContext2DCanvas=ei,e.ExcaliburGraphicsContextWebGL=Zi,e.ExitTriggerEvent=Kt,e.ExitViewPortEvent=Ut,e.Fade=Na,e.FadeInOut=Gc,e.Flags=i,e.Flash=Ra,e.Follow=Ia,e.Font=ta,e.FontCache=Br,e.FontSource=zc,e.FontStyle=Sr,e.FontUnit=yr,e.FpsSampler=Xs,e.FrameStats=Ks,e.Future=o,e.GameEvent=B,e.GameStartEvent=mt,e.GameStopEvent=ht,e.Gamepad=ys,e.GamepadAxisEvent=kt,e.GamepadButtonEvent=Ot,e.GamepadConnectEvent=Et,e.GamepadDisconnectEvent=Dt,e.GamepadEvents=_s,e.Gamepads=vs,e.GarbageCollector=sc,e.Gif=Nc,e.GifParser=Rc,e.GlobalCoordinates=j,e.GpuParticleEmitter=gc,e.GpuParticleRenderer=hc,e.Graph=pe,e.Graphic=U,e.GraphicsComponent=Y,e.GraphicsGroup=cr,e.GraphicsSystem=Hr,e.HashColliderProxy=io,e.HashGridCell=no,e.HashGridProxy=to,e.HiddenEvent=jt,e.HorizontalFirst=Bn,e.ImageFiltering=fr,e.ImageSource=_r,e.ImageSourceAttributeConstants=W,e.ImageWrapping=mr,e.InitializeEvent=Bt,e.InputHost=Rs,e.InputMapper=Ss,e.IsometricEntityComponent=$o,e.IsometricEntitySystem=ns,e.IsometricMap=ts,e.IsometricTile=es,e.KeyEvent=Ds,e.Keyboard=Os,e.Keys=Es,e.KillEvent=dt,e.Label=dc,e.LimitCameraBoundsStrategy=ls,e.Line=Lr,e.LineSegment=M,e.Loader=zo,e.LoaderEvents=Po,e.LockCameraToActorAxisStrategy=os,e.LockCameraToActorStrategy=as,e.LogLevel=Qe,e.Logger=I,e.Material=Ti,e.Matrix=ne,e.MatrixLocations=te,e.MediaEvent=Eo,e.Meet=La,e.MotionComponent=z,e.MotionSystem=uo,e.MoveBy=pa,e.MoveByWithOptions=fa,e.MoveTo=ga,e.MoveToWithOptions=ha,e.NativePointerButton=Ns,e.NativeSoundEvent=Do,e.NativeSoundProcessedEvent=Oo,e.NineSlice=Yr,e.NineSliceStretch=Jr,e.Node=he,e.None=Vn,e.Observable=it,e.OffscreenSystem=Ur,e.Pair=On,e.ParallaxComponent=zr,e.ParallelActions=vc,e.Particle=mi,e.ParticleEmitter=pc,e.ParticleRenderer=gi,e.ParticleTransform=hi,e.PauseComponent=Dn,e.PauseComponentTag=En,e.PauseEvent=Zt,e.PauseSystem=zs,e.PhysicsStats=qs,e.PhysicsWorld=ho,e.PointerAbstraction=js,e.PointerButton=Ps,e.PointerComponent=ia,e.PointerEvent=ks,e.PointerEventReceiver=Ls,e.PointerScope=c,e.PointerSystem=hs,e.PointerType=Ko,e.Polygon=Kr,e.PolygonCollider=Kn,e.Pool=qn,e.PositionNode=ge,e.PostCollisionEvent=Nt,e.PostDebugDrawEvent=xt,e.PostDrawEvent=_t,e.PostFrameEvent=Tt,e.PostKillEvent=pt,e.PostTransformDrawEvent=yt,e.PostUpdateEvent=Ct,e.PreCollisionEvent=Mt,e.PreDebugDrawEvent=bt,e.PreDrawEvent=gt,e.PreFrameEvent=wt,e.PreKillEvent=ft,e.PreLoadEvent=Bs,e.PreTransformDrawEvent=vt,e.PreUpdateEvent=St,e.Projection=N,e.QuadIndexBuffer=Ci,e.QuadTree=oo,e.Query=_n,e.QueryManager=yn,e.RadiusAroundActorStrategy=cs,e.Random=p,e.Raster=vr,e.Ray=ie,e.RealisticSolver=lo,e.Rectangle=Gr,e.RemoveEvent=Xt,e.RemovedComponent=fn,e.RentalPool=wr,e.Repeat=la,e.RepeatForever=ua,e.Resolution=_o,e.Resource=ur,e.ResourceEvents=lr,e.ResumeEvent=Qt,e.RotateBy=Sa,e.RotateByWithOptions=xa,e.RotateTo=ya,e.RotateToWithOptions=va,e.RotationType=l,e.ScaleBy=Oa,e.ScaleByWithOptions=Da,e.ScaleTo=Ta,e.ScaleToWithOptions=wa,e.Scene=Us,e.SceneEvents=Vs,e.Screen=yo,e.ScreenAppender=et,e.ScreenElement=Uo,e.ScreenEvents=vo,e.ScreenShader=yi,e.ScrollPreventionMode=lc,e.Semaphore=el,e.SeparatingAxis=Yn,e.SeparationInfo=Jn,e.Serializer=qa,e.Shader=ui,e.Shape=Gn,Object.defineProperty(e,"Side",{enumerable:!0,get:function(){return V}}),e.Slide=qc,e.SolverStrategy=Ln,e.Sound=No,e.SoundEvents=jo,e.SoundManager=Mc,e.SparseHashGrid=ro,e.SparseHashGridCollisionProcessor=ao,e.SpatialPartitionStrategy=Hn,e.Sprite=dr,e.SpriteFont=Or,e.SpriteSheet=Ar,e.StandardClock=Qs,e.StateMachine=wo,e.StrategyContainer=rs,e.Stream=Ic,e.System=Sn,e.SystemManager=wn,e.SystemPriority=bn,e.SystemType=xn,e.TagQuery=vn,e.TestClock=$s,e.Text=na,e.TextAlign=br,e.TextureLoader=gr,e.Tile=Qo,e.TileMap=Zo,e.TileMapEvents=Xo,e.TiledAnimation=Xr,e.TiledSprite=kr,e.Timer=Go,e.TimerEvents=Wo,e.Toaster=tc,e.Transform=re,e.TransformComponent=R,e.Transition=Wc,e.TreeNode=Pn,e.Trigger=ps,e.TriggerEvents=fs,e.TwoPI=m,e.UniformBuffer=ti,Object.defineProperty(e,"Util",{enumerable:!0,get:function(){return Ja}}),e.Vector=T,e.VectorView=D,e.VertexBuffer=_i,e.VertexLayout=vi,e.VerticalFirst=zn,e.VisibleEvent=At,e.WebAudio=So,e.WebAudioInstance=To,e.WheelDeltaMode=Ms,e.WheelEvent=As,e.World=Tn,e.angleDifference=b,e.approximatelyEqual=v,e.assert=mc,e.canonicalizeAngle=y,e.clamp=_,e.coroutine=Uc,e.createId=a,e.easeInBack=He,e.easeInBounce=Ye,e.easeInCirc=ze,e.easeInCubic=De,e.easeInElastic=Ge,e.easeInExpo=Ie,e.easeInOutBack=We,e.easeInOutBounce=Xe,e.easeInOutCirc=Ve,e.easeInOutCubic=ke,e.easeInOutElastic=qe,e.easeInOutExpo=Re,e.easeInOutQuad=Ee,e.easeInOutQuart=Me,e.easeInOutQuint=Fe,e.easeInOutSine=Ce,e.easeInQuad=we,e.easeInQuart=Ae,e.easeInQuint=Ne,e.easeInSine=xe,e.easeOutBack=Ue,e.easeOutBounce=Je,e.easeOutCirc=Be,e.easeOutCubic=Oe,e.easeOutElastic=Ke,e.easeOutExpo=Le,e.easeOutQuad=Te,e.easeOutQuart=je,e.easeOutQuint=Pe,e.easeOutSine=Se,e.frac=h,e.getDefaultPhysicsConfig=Un,e.glTypeToUniformTypeName=li,e.hasGraphicsTick=ra,e.hasOnAdd=Dc,e.hasOnInitialize=Sc,e.hasOnPostUpdate=Ec,e.hasOnPreUpdate=wc,e.hasOnRemove=Oc,e.hasPostDraw=Ac,e.hasPreDraw=kc,e.has_add=bc,e.has_initialize=yc,e.has_postupdate=Tc,e.has_preupdate=Cc,e.has_remove=xc,e.inverseLerp=se,e.inverseLerpVector=ce,e.isActor=Za,e.isAddedComponent=dn,e.isComponentCtor=tt,e.isLegacyEasing=oa,e.isLoaderConstructor=Fo,e.isMoveByOptions=da,e.isMoveToOptions=ma,e.isRemovedComponent=pn,e.isRotateByOptions=ba,e.isRotateToOptions=_a,e.isScaleByOptions=Ea,e.isScaleToOptions=Ca,e.isSceneConstructor=Hs,e.isScreenElement=Ho,e.isSystemConstructor=Cn,e.lerp=P,e.lerpAngle=ae,e.lerpVector=oe,e.linear=ve,e.maxMessages=Jc,e.nextActionId=Z,e.obsolete=Qc,e.parseImageFiltering=pr,e.parseImageWrapping=hr,e.pixelSnapEpsilon=J,e.randomInRange=w,e.randomIntInRange=ee,e.range=C,e.remap=le,e.remapVector=ue,e.resetObsoleteCounter=Xc,e.sign=g,e.smootherstep=be,e.smoothstep=ye,e.toDegrees=x,e.toRadians=S,e.vec=E,Object.defineProperty(e,"webgl",{enumerable:!0,get:function(){return ni}})});
|
|
895
|
+
`,Function.prototype.toString.call(h)):(f=!0,_(u.clock.elapsed())),y),generator:g,done:v,then:v.then.bind(v),[Symbol.iterator]:()=>g};return y}var Wc=class extends hn{get progress(){return this._currentProgress}get distance(){return this._currentDistance}get complete(){return this.direction===`out`?this.progress>=1:this.progress<=0}constructor(e){var t,n,r;if(super(),this._logger=I.getInstance(),this.transform=new R,this.graphics=new Y,this._completeFuture=new o,this.started=!1,this._currentDistance=0,this._currentProgress=0,this.done=this._completeFuture.promise,this._useLegacyEasing=!1,this.name=`Transition#${this.id}`,this.duration=e.duration,oa(e.easing)){var i;this.legacyEasing=(i=e.easing)==null?X.Linear:i,this._useLegacyEasing=!0}else{var a;this.easing=(a=e.easing)==null?ve:a}this.direction=(t=e.direction)==null?`out`:t,this.hideLoader=(n=e.hideLoader)==null?!1:n,this.blockInput=(r=e.blockInput)==null?!1:r,this.transform.coordPlane=A.Screen,this.transform.pos=T.Zero,this.transform.z=1/0,this.graphics.anchor=T.Zero,this.addComponent(this.transform),this.addComponent(this.graphics),this.direction===`out`?this._currentProgress=0:this._currentProgress=1}updateTransition(e,t){this.complete||(this._currentDistance+=_(t/this.duration,0,1),this._currentDistance>=1&&(this._currentDistance=1),this.direction===`out`?this._useLegacyEasing?this._currentProgress=_(this.legacyEasing(this._currentDistance,0,1,1),0,1):this._currentProgress=_(P(0,1,this.easing(this._currentDistance)),0,1):this._useLegacyEasing?this._currentProgress=_(this.legacyEasing(this._currentDistance,1,0,1),0,1):this._currentProgress=_(P(1,0,this.easing(this._currentDistance)),0,1))}async onPreviousSceneDeactivate(e){}onStart(e){}onUpdate(e){}onEnd(e){}onReset(){}reset(){this.started=!1,this._completeFuture=new o,this.done=this._completeFuture.promise,this._currentDistance=0,this.direction===`out`?this._currentProgress=0:this._currentProgress=1,this.onReset()}_addToTargetScene(e,t){let n=t;if(this.started&&this._logger.warn(`Attempted to add a transition ${this.name} that is already playing.`),n.world.entityManager.getById(this.id))return this._co;this._engine=e,n.add(this);let r=this;return this._co=Uc(e,function*(){for(;!r.complete;){let e=yield;r.updateTransition(r._engine,e),r._execute()}},{autostart:!1}),this._co}async _play(){this.started&&(this.reset(),this._logger.warn(`Attempted to play a transition ${this.name} that is already playing, reset transition.`)),(!this._engine||!this._co)&&(this.reset(),this._logger.warn(`Attempted to play a transition ${this.name} that hasn't been added`)),this._co&&await this._co.start()}_execute(){this.isInitialized&&(this.started||(this.started=!0,this.onStart(this.progress)),this.onUpdate(this.progress),this.complete&&!this._completeFuture.isCompleted&&(this.onEnd(this.progress),this._completeFuture.resolve()))}},Gc=class extends Wc{constructor(e){var t,n;super({...e,duration:(t=e.duration)==null?2e3:t}),this.name=`FadeInOut#${this.id}`,this.color=(n=e.color)==null?F.Black:n}onInitialize(e){this.transform.pos=e.screen.unsafeArea.topLeft,this.screenCover=new Gr({width:e.screen.resolution.width,height:e.screen.resolution.height,color:this.color}),this.graphics.add(this.screenCover),this.graphics.opacity=this.progress}onReset(){this.graphics.opacity=this.progress}onStart(e){this.graphics.opacity=e}onEnd(e){this.graphics.opacity=e}onUpdate(e){this.graphics.opacity=e}},Kc=class extends Wc{constructor(e){super({direction:`in`,...e}),this.name=`CrossFade#${this.id}`}async onPreviousSceneDeactivate(e){this.image=await e.engine.screenshot(!0),await this.image.decode()}onInitialize(e){this.engine=e,this.transform.pos=e.screen.unsafeArea.topLeft,this.screenCover=_r.fromHtmlImageElement(this.image).toSprite(),this.graphics.add(this.screenCover),this.transform.scale=E(1/e.screen.pixelRatio,1/e.screen.pixelRatio),this.graphics.opacity=this.progress}onStart(e){this.graphics.opacity=this.progress}onReset(){this.graphics.opacity=this.progress}onEnd(e){this.graphics.opacity=e}onUpdate(e){this.graphics.opacity=e}},qc=class extends Wc{constructor(e){var t;super({direction:`in`,...e}),this._easing=X.Linear,this._start=T.Zero,this._end=T.Zero,this.name=`Slide#${this.id}`,this.slideDirection=e.slideDirection,this.transform.coordPlane=A.Screen,this.graphics.forceOnScreen=!0,this._easing=(t=e.easingFunction)==null?this._easing:t}async onPreviousSceneDeactivate(e){this._image=await e.engine.screenshot(!0),await this._image.decode(),this._screenCover=_r.fromHtmlImageElement(this._image).toSprite()}onInitialize(e){this._engine=e;let t=e.screen.unsafeArea;switch(t.hasZeroDimensions()&&(t=e.screen.contentArea),this.slideDirection){case`up`:this._directionOffset=E(0,-t.height);break;case`down`:this._directionOffset=E(0,t.height);break;case`left`:this._directionOffset=E(-t.width,0);break;case`right`:this._directionOffset=E(t.width,0);break}this._camera=this._engine.currentScene.camera,this._destinationCameraPosition=this._camera.pos.clone(),this._camera.pos=this._camera.pos.add(this._directionOffset),this.transform.pos=this.transform.pos.add(this._directionOffset),this._startCameraPosition=this._camera.pos.clone(),this._start=t.topLeft,this._end=this._start.add(this._directionOffset),this.transform.pos=this._start,this.graphics.use(this._screenCover),this.transform.scale=E(1/e.screen.pixelRatio,1/e.screen.pixelRatio)}onStart(e){let t=this._easing(this.distance,0,1,1);this.transform.pos.x=P(this._start.x,this._end.x,t),this.transform.pos.y=P(this._start.y,this._end.y,t),this._camera.pos.x=P(this._startCameraPosition.x,this._destinationCameraPosition.x,t),this._camera.pos.y=P(this._startCameraPosition.y,this._destinationCameraPosition.y,t)}onUpdate(e){let t=this._easing(this.distance,0,1,1);this.transform.pos.x=P(this._start.x,this._end.x,t),this.transform.pos.y=P(this._start.y,this._end.y,t),this._camera.pos.x=P(this._startCameraPosition.x,this._destinationCameraPosition.x,t),this._camera.pos.y=P(this._startCameraPosition.y,this._destinationCameraPosition.y,t)}},Jc=5,Yc={},Xc=()=>{for(let e in Yc)Yc[e]=0},Zc=(e,t)=>{let n=i.isEnabled(`suppress-obsolete-message`);Yc[e]<5&&!n&&(I.getInstance().warn(e),console.trace&&t.showStackTrace&&console.trace()),Yc[e]++};function Qc(e){return e={message:`This feature will be removed in future versions of Excalibur.`,alternateMethod:null,showStackTrace:!1,...e},function(t,n,r){if(r&&!(typeof r.value==`function`||typeof r.get==`function`||typeof r.set==`function`))throw SyntaxError(`Only classes/functions/getters/setters can be marked as obsolete`);let i=`${`${t.name||``}${t.name&&n?`.`:``}${n||``}`} is marked obsolete: ${e.message}`+(e.alternateMethod?` Use ${e.alternateMethod} instead`:``);Yc[i]||(Yc[i]=0);let a=r?{...r}:t;if(!r){class t extends a{constructor(...t){Zc(i,e),super(...t)}}return t}return r&&r.value?(a.value=function(){return Zc(i,e),r.value.apply(this,arguments)},a):(r&&r.get&&(a.get=function(){return Zc(i,e),r.get.apply(this,arguments)}),r&&r.set&&(a.set=function(){return Zc(i,e),r.set.apply(this,arguments)}),a)}}var $c=class{constructor(){this._queue=[]}get length(){return this._queue.length}enqueue(){let e=new o;return this._queue.push(e),e.promise}dequeue(e){this._queue.shift().resolve(e)}},el=class{constructor(e){this._count=e,this._waitQueue=new $c}get count(){return this._count}get waiting(){return this._waitQueue.length}async enter(){return this._count===0?this._waitQueue.enqueue():(this._count--,Promise.resolve())}exit(e=1){if(e!==0){for(;e!==0&&this._waitQueue.length!==0;)this._waitQueue.dequeue(null),e--;this._count+=e}}},tl=`0.33.0-alpha.151+f2f287a`;r(),e.ActionCompleteEvent=Jt,e.ActionContext=Ya,e.ActionQueue=sa,e.ActionSequence=_c,e.ActionStartEvent=qt,e.ActionsComponent=Xa,e.ActionsSystem=gs,e.ActivateEvent=Vt,e.Actor=$a,e.ActorEvents=Qa,e.AddEvent=Yt,e.AddedComponent=un,e.AffineMatrix=O,e.Animation=sr,e.AnimationDirection=ir,e.AnimationEvents=or,e.AnimationStrategy=ar,e.ArcadeSolver=so,e.AudioContextFactory=bo,e.Axes=xs,e.Axis=is,e.BaseAlign=xr,e.BezierCurve=de,e.Blink=Ma,e.BodyComponent=$,e.BoundingBox=H,e.BrowserComponent=Js,e.BrowserEvents=Ys,e.Buttons=bs,e.Camera=ds,e.CameraEvents=us,e.Canvas=qr,e.ChannelCollection=jc,e.Circle=Wr,e.CircleCollider=er,e.Clock=Zs,e.ClosestLineJumpTable=Mn,e.Collider=An,e.ColliderComponent=Q,e.CollisionContact=kn,e.CollisionEndEvent=zt,e.CollisionGroup=ct,e.CollisionGroupManager=ot,e.CollisionJumpTable=$n,e.CollisionPostSolveEvent=Lt,e.CollisionPreSolveEvent=It,e.CollisionStartEvent=Rt,e.CollisionSystem=mo,e.CollisionType=L,e.Color=F,e.ColorBlindFlags=Ws,e.ColorBlindnessMode=bi,e.ColorBlindnessPostProcessor=Si,e.Component=rt,e.CompositeCollider=Wn,e.ConsoleAppender=$e,e.ContactConstraintPoint=co,e.ContactEndEvent=Ft,e.ContactSolveBias=Rn,e.ContactStartEvent=Pt,e.CoordPlane=A,e.CrossFade=Kc,e.CurveBy=Ba,e.CurveTo=za,e.DeactivateEvent=Ht,e.Debug=G,e.DebugConfig=Gs,e.DebugGraphicsComponent=Rr,e.DebugSystem=ms,e.DebugText=Mr,e.DefaultAntialiasOptions=Zr,e.DefaultGarbageCollectionOptions=oc,e.DefaultLoader=Io,e.DefaultPixelArtOptions=Qr,e.DegreeOfFreedom=eo,e.Delay=Pa,e.Detector=Vo,e.Die=Fa,e.Direction=Cr,e.Director=rc,e.DirectorEvents=nc,e.DisplayMode=go,e.DynamicTree=Fn,e.DynamicTreeCollisionProcessor=In,e.EX_VERSION=tl,e.EaseBy=ja,e.EaseTo=Aa,e.EasingFunctions=X,e.Edge=me,e.EdgeCollider=Nn,e.ElasticToActorStrategy=ss,e.EmitterType=fc,e.Engine=uc,e.EngineEvents=cc,e.EnterTriggerEvent=Gt,e.EnterViewPortEvent=Wt,e.Entity=hn,e.EntityEvents=mn,e.EntityManager=gn,e.EventEmitter=s,e.EventTypes=ut,Object.defineProperty(e,"Events",{enumerable:!0,get:function(){return lt}}),e.ExResponse=Co,e.ExcaliburGraphicsContext2DCanvas=ei,e.ExcaliburGraphicsContextWebGL=Zi,e.ExitTriggerEvent=Kt,e.ExitViewPortEvent=Ut,e.Fade=Na,e.FadeInOut=Gc,e.Flags=i,e.Flash=Ra,e.Follow=Ia,e.Font=ta,e.FontCache=Br,e.FontSource=zc,e.FontStyle=Sr,e.FontUnit=yr,e.FpsSampler=Xs,e.FrameStats=Ks,e.Future=o,e.GameEvent=B,e.GameStartEvent=mt,e.GameStopEvent=ht,e.Gamepad=ys,e.GamepadAxisEvent=kt,e.GamepadButtonEvent=Ot,e.GamepadConnectEvent=Et,e.GamepadDisconnectEvent=Dt,e.GamepadEvents=_s,e.Gamepads=vs,e.GarbageCollector=sc,e.Gif=Nc,e.GifParser=Rc,e.GlobalCoordinates=j,e.GpuParticleEmitter=gc,e.GpuParticleRenderer=hc,e.Graph=pe,e.Graphic=U,e.GraphicsComponent=Y,e.GraphicsGroup=cr,e.GraphicsSystem=Hr,e.HashColliderProxy=io,e.HashGridCell=no,e.HashGridProxy=to,e.HiddenEvent=jt,e.HorizontalFirst=Bn,e.ImageFiltering=fr,e.ImageSource=_r,e.ImageSourceAttributeConstants=W,e.ImageWrapping=mr,e.InitializeEvent=Bt,e.InputHost=Rs,e.InputMapper=Ss,e.IsometricEntityComponent=$o,e.IsometricEntitySystem=ns,e.IsometricMap=ts,e.IsometricTile=es,e.KeyEvent=Ds,e.Keyboard=Os,e.Keys=Es,e.KillEvent=dt,e.Label=dc,e.LimitCameraBoundsStrategy=ls,e.Line=Lr,e.LineSegment=M,e.Loader=zo,e.LoaderEvents=Po,e.LockCameraToActorAxisStrategy=os,e.LockCameraToActorStrategy=as,e.LogLevel=Qe,e.Logger=I,e.Material=Ti,e.Matrix=ne,e.MatrixLocations=te,e.MediaEvent=Eo,e.Meet=La,e.MotionComponent=z,e.MotionSystem=uo,e.MoveBy=pa,e.MoveByWithOptions=fa,e.MoveTo=ga,e.MoveToWithOptions=ha,e.NativePointerButton=Ns,e.NativeSoundEvent=Do,e.NativeSoundProcessedEvent=Oo,e.NineSlice=Yr,e.NineSliceStretch=Jr,e.Node=he,e.None=Vn,e.Observable=it,e.OffscreenSystem=Ur,e.Pair=On,e.ParallaxComponent=zr,e.ParallelActions=vc,e.Particle=mi,e.ParticleEmitter=pc,e.ParticleRenderer=gi,e.ParticleTransform=hi,e.PauseComponent=Dn,e.PauseComponentTag=En,e.PauseEvent=Zt,e.PauseSystem=zs,e.PhysicsStats=qs,e.PhysicsWorld=ho,e.PointerAbstraction=js,e.PointerButton=Ps,e.PointerComponent=ia,e.PointerEvent=ks,e.PointerEventReceiver=Ls,e.PointerScope=c,e.PointerSystem=hs,e.PointerType=Ko,e.Polygon=Kr,e.PolygonCollider=Kn,e.Pool=qn,e.PositionNode=ge,e.PostCollisionEvent=Nt,e.PostDebugDrawEvent=xt,e.PostDrawEvent=_t,e.PostFrameEvent=Tt,e.PostKillEvent=pt,e.PostTransformDrawEvent=yt,e.PostUpdateEvent=Ct,e.PreCollisionEvent=Mt,e.PreDebugDrawEvent=bt,e.PreDrawEvent=gt,e.PreFrameEvent=wt,e.PreKillEvent=ft,e.PreLoadEvent=Bs,e.PreTransformDrawEvent=vt,e.PreUpdateEvent=St,e.Projection=N,e.QuadIndexBuffer=Ci,e.QuadTree=oo,e.Query=_n,e.QueryManager=yn,e.RadiusAroundActorStrategy=cs,e.Random=p,e.Raster=vr,e.Ray=ie,e.RealisticSolver=lo,e.Rectangle=Gr,e.RemoveEvent=Xt,e.RemovedComponent=fn,e.RentalPool=wr,e.Repeat=la,e.RepeatForever=ua,e.Resolution=_o,e.Resource=ur,e.ResourceEvents=lr,e.ResumeEvent=Qt,e.RotateBy=Sa,e.RotateByWithOptions=xa,e.RotateTo=ya,e.RotateToWithOptions=va,e.RotationType=l,e.ScaleBy=Oa,e.ScaleByWithOptions=Da,e.ScaleTo=Ta,e.ScaleToWithOptions=wa,e.Scene=Us,e.SceneEvents=Vs,e.Screen=yo,e.ScreenAppender=et,e.ScreenElement=Uo,e.ScreenEvents=vo,e.ScreenShader=yi,e.ScrollPreventionMode=lc,e.Semaphore=el,e.SeparatingAxis=Yn,e.SeparationInfo=Jn,e.Serializer=qa,e.Shader=ui,e.Shape=Gn,Object.defineProperty(e,"Side",{enumerable:!0,get:function(){return V}}),e.Slide=qc,e.SolverStrategy=Ln,e.Sound=No,e.SoundEvents=jo,e.SoundManager=Mc,e.SparseHashGrid=ro,e.SparseHashGridCollisionProcessor=ao,e.SpatialPartitionStrategy=Hn,e.Sprite=dr,e.SpriteFont=Or,e.SpriteSheet=Ar,e.StandardClock=Qs,e.StateMachine=wo,e.StrategyContainer=rs,e.Stream=Ic,e.System=Sn,e.SystemManager=wn,e.SystemPriority=bn,e.SystemType=xn,e.TagQuery=vn,e.TestClock=$s,e.Text=na,e.TextAlign=br,e.TextureLoader=gr,e.Tile=Qo,e.TileMap=Zo,e.TileMapEvents=Xo,e.TiledAnimation=Xr,e.TiledSprite=kr,e.Timer=Go,e.TimerEvents=Wo,e.Toaster=tc,e.Transform=re,e.TransformComponent=R,e.Transition=Wc,e.TreeNode=Pn,e.Trigger=ps,e.TriggerEvents=fs,e.TwoPI=m,e.UniformBuffer=ti,Object.defineProperty(e,"Util",{enumerable:!0,get:function(){return Ja}}),e.Vector=T,e.VectorView=D,e.VertexBuffer=_i,e.VertexLayout=vi,e.VerticalFirst=zn,e.VisibleEvent=At,e.WebAudio=So,e.WebAudioInstance=To,e.WheelDeltaMode=Ms,e.WheelEvent=As,e.World=Tn,e.angleDifference=b,e.approximatelyEqual=v,e.assert=mc,e.canonicalizeAngle=y,e.clamp=_,e.coroutine=Uc,e.createId=a,e.easeInBack=He,e.easeInBounce=Ye,e.easeInCirc=ze,e.easeInCubic=De,e.easeInElastic=Ge,e.easeInExpo=Ie,e.easeInOutBack=We,e.easeInOutBounce=Xe,e.easeInOutCirc=Ve,e.easeInOutCubic=ke,e.easeInOutElastic=qe,e.easeInOutExpo=Re,e.easeInOutQuad=Ee,e.easeInOutQuart=Me,e.easeInOutQuint=Fe,e.easeInOutSine=Ce,e.easeInQuad=we,e.easeInQuart=Ae,e.easeInQuint=Ne,e.easeInSine=xe,e.easeOutBack=Ue,e.easeOutBounce=Je,e.easeOutCirc=Be,e.easeOutCubic=Oe,e.easeOutElastic=Ke,e.easeOutExpo=Le,e.easeOutQuad=Te,e.easeOutQuart=je,e.easeOutQuint=Pe,e.easeOutSine=Se,e.frac=h,e.getDefaultPhysicsConfig=Un,e.glTypeToUniformTypeName=li,e.hasGraphicsTick=ra,e.hasOnAdd=Dc,e.hasOnInitialize=Sc,e.hasOnPostUpdate=Ec,e.hasOnPreUpdate=wc,e.hasOnRemove=Oc,e.hasPostDraw=Ac,e.hasPreDraw=kc,e.has_add=bc,e.has_initialize=yc,e.has_postupdate=Tc,e.has_preupdate=Cc,e.has_remove=xc,e.inverseLerp=se,e.inverseLerpVector=ce,e.isActor=Za,e.isAddedComponent=dn,e.isComponentCtor=tt,e.isLegacyEasing=oa,e.isLoaderConstructor=Fo,e.isMoveByOptions=da,e.isMoveToOptions=ma,e.isRemovedComponent=pn,e.isRotateByOptions=ba,e.isRotateToOptions=_a,e.isScaleByOptions=Ea,e.isScaleToOptions=Ca,e.isSceneConstructor=Hs,e.isScreenElement=Ho,e.isSystemConstructor=Cn,e.lerp=P,e.lerpAngle=ae,e.lerpVector=oe,e.linear=ve,e.maxMessages=Jc,e.nextActionId=Z,e.obsolete=Qc,e.parseImageFiltering=pr,e.parseImageWrapping=hr,e.pixelSnapEpsilon=J,e.randomInRange=w,e.randomIntInRange=ee,e.range=C,e.remap=le,e.remapVector=ue,e.resetObsoleteCounter=Xc,e.sign=g,e.smootherstep=be,e.smoothstep=ye,e.toDegrees=x,e.toRadians=S,e.vec=E,Object.defineProperty(e,"webgl",{enumerable:!0,get:function(){return ni}})});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! excalibur - 0.33.0-alpha.
|
|
1
|
+
/*! excalibur - 0.33.0-alpha.151+f2f287a - 2026-6-4
|
|
2
2
|
https://github.com/excaliburjs/Excalibur
|
|
3
3
|
Copyright (c) 2026 Excalibur.js <https://github.com/excaliburjs/Excalibur/graphs/contributors>
|
|
4
4
|
Licensed BSD-2-Clause
|
|
@@ -892,4 +892,4 @@ If in Firefox, visit about:config
|
|
|
892
892
|
|
|
893
893
|
Read more about this issue at https://excaliburjs.com/docs/performance`),r&&this._toaster.toast(`Excalibur is encountering performance issues. It's possible that your browser doesn't have hardware acceleration enabled. Visit [LINK] for more information and potential solutions.`,`https://excaliburjs.com/docs/performance`),this.useCanvas2DFallback(),this.emit(`fallbackgraphicscontext`,this.graphicsContext))}}useCanvas2DFallback(){var e,t,n;let r=this.canvas.cloneNode(!1);this.canvas.parentNode.replaceChild(r,this.canvas),this.canvas=r;let i={...this._originalOptions,antialiasing:this.screen.antialiasing},a=this._originalDisplayMode;this.graphicsContext=new ei({canvasElement:this.canvas,enableTransparency:this.enableCanvasTransparency,antialiasing:i.antialiasing,backgroundColor:i.backgroundColor,snapToPixel:i.snapToPixel,useDrawSorting:i.useDrawSorting}),this.screen&&this.screen.dispose(),this.screen=new yo({canvas:this.canvas,context:this.graphicsContext,antialiasing:(e=i.antialiasing)==null?!0:e,browser:this.browser,viewport:(t=i.viewport)==null?i.width&&i.height?{width:i.width,height:i.height}:_o.SVGA:t,resolution:i.resolution,displayMode:a,pixelRatio:i.suppressHiDPIScaling?1:(n=i.pixelRatio)==null?null:n}),this.screen.setCurrentCamera(this.currentScene.camera),this.input.pointers.detach();let o=i&&i.pointerScope===c.Document?document:this.canvas;this.input.pointers=this.input.pointers.recreate(o,this),this.input.pointers.init()}dispose(){this._disposed||(this._disposed=!0,this.stop(),this._garbageCollector.forceCollectAll(),this.input.toggleEnabled(!1),this._hasCreatedCanvas&&this.canvas.parentNode.removeChild(this.canvas),this.canvas=null,this.screen.dispose(),this.graphicsContext.dispose(),this.graphicsContext=null,e.InstanceCount--)}isDisposed(){return this._disposed}getWorldBounds(){return this.screen.getWorldBounds()}get timescale(){return this._timescale}set timescale(e){if(e<0){I.getInstance().warnOnce(`engine.timescale to a value less than 0 are ignored`);return}this._timescale=e}addTimer(e){return this.currentScene.addTimer(e)}removeTimer(e){return this.currentScene.removeTimer(e)}addScene(e,t){return this.director.add(e,t),this}removeScene(e){this.director.remove(e)}add(e){if(arguments.length===2){this.director.add(arguments[0],arguments[1]);return}let t=this.director.getDeferredScene();t instanceof Us?t.add(e):this.currentScene.add(e)}remove(e){e instanceof hn&&this.currentScene.remove(e),(e instanceof Us||Hs(e))&&this.removeScene(e),typeof e==`string`&&this.removeScene(e)}async goToScene(e,t){await this.scope(async()=>{await this.director.goToScene(e,t)})}screenToWorldCoordinates(e){return this.screen.screenToWorldCoordinates(e)}worldToScreenCoordinates(e){return this.screen.worldToScreenCoordinates(e)}_initialize(e){var t,n;this.pageScrollPreventionMode=e.scrollPreventionMode;let r=e&&e.pointerScope===c.Document?document:this.canvas,i=(t=(n=this._originalOptions)==null?void 0:n.grabWindowFocus)==null?!0:t;this.input=new Rs({global:this.global,pointerTarget:r,grabWindowFocus:i,engine:this}),this.inputMapper=this.input.inputMapper,this.browser.document.on(`visibilitychange`,()=>{document.visibilityState===`hidden`?(this.events.emit(`hidden`,new jt(this)),this._logger.debug(`Window hidden`)):document.visibilityState===`visible`&&(this.events.emit(`visible`,new At(this)),this._logger.debug(`Window visible`))}),!this.canvasElementId&&!e.canvasElement&&document.body.appendChild(this.canvas)}toggleInputEnabled(e){this._inputEnabled=e,this.input.toggleEnabled(this._inputEnabled)}onInitialize(e){}get isInitialized(){return this._isInitialized}async _overrideInitialize(e){this.isInitialized||(await this.director.onInitialize(),await this.onInitialize(e),this.events.emit(`initialize`,new Bt(e,this)),this._isInitialized=!0)}_update(e){if(this._isLoading){var t;(t=this._loader)==null||t.onUpdate(this,e),this.input.update();return}this.clock.__runScheduledCbs(`preupdate`),this._preupdate(e),this.currentScene.update(this,e),this.graphicsContext.updatePostProcessors(e),this.clock.__runScheduledCbs(`postupdate`),this._postupdate(e),this.input.update()}_preupdate(e){this.emit(`preupdate`,new St(this,e,this)),this.onPreUpdate(this,e)}onPreUpdate(e,t){}_postupdate(e){this.emit(`postupdate`,new Ct(this,e,this)),this.onPostUpdate(this,e)}onPostUpdate(e,t){}_draw(e){var t;if(this.graphicsContext.backgroundColor=(t=this.currentScene.backgroundColor)==null?this.backgroundColor:t,this.graphicsContext.beginDrawLifecycle(),this.graphicsContext.clear(),this.clock.__runScheduledCbs(`predraw`),this._predraw(this.graphicsContext,e),this._isLoading){if(!this._hideLoader){var n;(n=this._loader)==null||n.canvas.draw(this.graphicsContext,0,0),this.clock.__runScheduledCbs(`postdraw`),this.graphicsContext.flush(),this.graphicsContext.endDrawLifecycle()}return}this.currentScene.draw(this.graphicsContext,e),this.clock.__runScheduledCbs(`postdraw`),this._postdraw(this.graphicsContext,e),this.graphicsContext.flush(),this.graphicsContext.endDrawLifecycle(),this._checkForScreenShots()}_predraw(e,t){this.emit(`predraw`,new gt(e,t,this)),this.onPreDraw(e,t)}onPreDraw(e,t){}_postdraw(e,t){this.emit(`postdraw`,new _t(e,t,this)),this.onPostDraw(e,t)}onPostDraw(e,t){}showDebug(e){this._isDebug=e}toggleDebug(){return this._isDebug=!this._isDebug,this._isDebug}get loadingComplete(){return!this._isLoading}get ready(){return this._isReadyFuture.isCompleted}isReady(){return this._isReadyFuture.promise}async start(e,t){await this.scope(async()=>{var n;if(!this._compatible)throw Error(`Excalibur is incompatible with your browser`);this._isLoading=!0;let r;return e instanceof Io?r=e:typeof e==`string`&&(this.director.configureStart(e,t),r=this.director.mainLoader),this._logger.debug(`Starting game clock...`),this.browser.resume(),this.clock.start(),this.garbageCollectorConfig&&this._garbageCollector.start(),this._logger.debug(`Game clock started`),await this.load((n=r)==null?new zo:n),await this._overrideInitialize(this),this._isReadyFuture.resolve(),this.emit(`start`,new mt(this)),this._isReadyFuture.promise})}_mainloop(e){this.scope(()=>{this.emit(`preframe`,new wt(this,this.stats.prevFrame));let t=e*this.timescale;this.currentFrameElapsedMs=t;let n=this.stats.prevFrame.id+1;this.stats.currFrame.reset(),this.stats.currFrame.id=n,this.stats.currFrame.elapsedMs=t,this.stats.currFrame.fps=this.clock.fpsSampler.fps,K.clear();let r=this.clock.now(),i=this.fixedUpdateTimestep;if(this.fixedUpdateTimestep)for(this._lagMs+=t;this._lagMs>=i;)this._update(i),this._lagMs-=i;else this._update(t);let a=this.clock.now();this.currentFrameLagMs=this._lagMs,this._draw(t);let o=this.clock.now();this.stats.currFrame.duration.update=a-r,this.stats.currFrame.duration.draw=o-a,this.stats.currFrame.graphics.drawnImages=K.DrawnImagesCount,this.stats.currFrame.graphics.drawCalls=K.DrawCallCount,this.stats.currFrame.graphics.rendererSwaps=K.RendererSwaps,this.emit(`postframe`,new Tt(this,this.stats.currFrame)),this.stats.prevFrame.reset(this.stats.currFrame),this._monitorPerformanceThresholdAndTriggerFallback()})}stop(){this.clock.isRunning()&&(this.emit(`stop`,new ht(this)),this.browser.pause(),this.clock.stop(),this._garbageCollector.stop(),this._logger.debug(`Game stopped`))}isRunning(){return this.clock.isRunning()}screenshot(e=!1){return new Promise(t=>{this._screenShotRequests.push({preserveHiDPIResolution:e,resolve:t})})}_checkForScreenShots(){for(let e of this._screenShotRequests){let t=e.preserveHiDPIResolution?this.canvas.width:this.screen.resolution.width,n=e.preserveHiDPIResolution?this.canvas.height:this.screen.resolution.height,r=document.createElement(`canvas`);r.width=t,r.height=n;let i=r.getContext(`2d`);i.imageSmoothingEnabled=this.screen.antialiasing,i.drawImage(this.canvas,0,0,t,n);let a=new Image,o=r.toDataURL(`image/png`);a.onload=()=>{e.resolve(a)},a.src=o}this._screenShotRequests.length=0}async load(e,t=!1){await this.scope(async()=>{try{if(e.isLoaded())return;this._loader=e,this._isLoading=!0,this._hideLoader=t,e instanceof zo&&(e.suppressPlayButton=e.suppressPlayButton||this._suppressPlayButton),this._loader.onInitialize(this),await e.load()}catch(e){this._logger.error(`Error loading resources, things may not behave properly`,e),await Promise.resolve()}finally{this._isLoading=!1,this._hideLoader=!1,this._loader=null}})}};uc.Context=ic(),uc.InstanceCount=0,uc._DEFAULT_ENGINE_OPTIONS={width:0,height:0,enableCanvasTransparency:!0,useDrawSorting:!0,configurePerformanceCanvas2DFallback:{allow:!1,showPlayerMessage:!1,threshold:{fps:20,numberOfFrames:100}},canvasElementId:``,canvasElement:void 0,enableCanvasContextMenu:!1,snapToPixel:!1,antialiasing:!0,pixelArt:!1,garbageCollection:!0,powerPreference:`high-performance`,pointerScope:c.Canvas,suppressConsoleBootMessage:null,suppressMinimumBrowserFeatureDetection:null,suppressHiDPIScaling:null,suppressPlayButton:null,grabWindowFocus:!0,scrollPreventionMode:1,backgroundColor:F.fromHex(`#2185d0`)};var dc=class extends $a{set maxWidth(e){this._text.maxWidth=e}get maxWidth(){return this._text.maxWidth}get font(){return this._font}set font(e){this._font=e,this._text.font=e}get text(){return this._text.text}set text(e){this._text.text=e}get color(){return this._text.color}set color(e){this._text&&(this._text.color=e)}get opacity(){return this.graphics.opacity}set opacity(e){this.graphics.opacity=e}get spriteFont(){return this._spriteFont}set spriteFont(e){e&&(this._spriteFont=e,this._text.font=this._spriteFont)}constructor(e){super(e),this._font=new ta,this._text=new na({text:``,font:this._font});let{text:t,pos:n,x:r,y:i,spriteFont:a,font:o,color:s,maxWidth:c}={text:``,...e};this.pos=n==null?r&&i?E(r,i):this.pos:n,this.text=t==null?this.text:t,this.font=o==null?this.font:o,this.maxWidth=c==null?this.maxWidth:c,this.spriteFont=a==null?this.spriteFont:a,this._text.color=s==null?this.color:s;let l=this.get(Y);l.anchor=T.Zero,l.use(this._text)}_initialize(e){super._initialize(e)}getTextWidth(){return this._text.width}},fc=function(e){return e.Circle=`circle`,e.Rectangle=`rectangle`,e}({}),pc=class extends $a{constructor(e){var t,n;super({width:(t=e.width)==null?0:t,height:(n=e.height)==null?0:n}),this._particlesToEmit=0,this._particlePool=new wr(()=>new mi({}),e=>e,500),this.numParticles=0,this.isEmitting=!0,this.deadParticles=[],this.emitRate=1,this.emitterType=fc.Rectangle,this.radius=0,this.particle={life:2e3,transform:hi.Global,graphic:void 0,opacity:1,angularVelocity:0,focus:void 0,focusAccel:void 0,randomRotation:!1},this._activeParticles=[];let{particle:r,x:i,y:a,z:o,pos:s,isEmitting:c,emitRate:l,emitterType:u,radius:d,random:f}={...e};this.particle={...this.particle,...r},this.pos=s==null?E(i==null?0:i,a==null?0:a):s,this.z=o==null?0:o,this.isEmitting=c==null?this.isEmitting:c,this.emitRate=l==null?this.emitRate:l,this.emitterType=u==null?this.emitterType:u,this.radius=d==null?this.radius:d,this.body.collisionType=L.PreventCollision,this.random=f==null?new p:f}removeParticle(e){this.deadParticles.push(e)}emitParticles(e){if(!(e<=0)){e|=0;for(let n=0;n<e;n++){var t;let e=this._createParticle();!((t=this)==null||(t=t.scene)==null)&&t.world&&(this.particle.transform===hi.Global?this.scene.world.add(e):this.addChild(e)),this._activeParticles.push(e)}}}clearParticles(){for(let e=0;e<this._activeParticles.length;e++)this.removeParticle(this._activeParticles[e])}_createParticle(){let e=0,t=0,n=w(this.particle.minAngle||0,this.particle.maxAngle||Math.PI*2,this.random),r=w(this.particle.minSpeed||0,this.particle.maxSpeed||0,this.random),i=this.particle.startSize||w(this.particle.minSize||5,this.particle.maxSize||5,this.random),a=r*Math.cos(n),o=r*Math.sin(n);if(this.emitterType===fc.Rectangle)e=w(0,this.width,this.random),t=w(0,this.height,this.random);else if(this.emitterType===fc.Circle){let r=w(0,this.radius,this.random);e=r*Math.cos(n),t=r*Math.sin(n)}let s=this._particlePool.rent();return s.unparent(),s.configure({transform:this.particle.transform,life:this.particle.life,opacity:this.particle.opacity,beginColor:this.particle.beginColor,endColor:this.particle.endColor,pos:E(e,t),z:this.particle.transform===hi.Global?this.z:void 0,vel:E(a,o),acc:this.particle.acc,angularVelocity:this.particle.angularVelocity,startSize:this.particle.startSize,endSize:this.particle.endSize,size:i,graphic:this.particle.graphic,fade:this.particle.fade}),s.registerEmitter(this),this.particle.randomRotation&&(s.transform.rotation=w(0,Math.PI*2,this.random)),this.particle.focus&&(s.focus=this.particle.focus.add(E(this.pos.x,this.pos.y)),s.focusAccel=this.particle.focusAccel),s}update(e,t){super.update(e,t),this.isEmitting&&(this._particlesToEmit+=this.emitRate*(t/1e3),this._particlesToEmit>1&&(this.emitParticles(Math.floor(this._particlesToEmit)),this._particlesToEmit-=Math.floor(this._particlesToEmit)));for(let e=0;e<this.deadParticles.length;e++){var n;!((n=this)==null||(n=n.scene)==null)&&n.world&&(this.scene.world.remove(this.deadParticles[e],!1),this._particlePool.return(this.deadParticles[e]));let t=this._activeParticles.indexOf(this.deadParticles[e]);t>-1&&this._activeParticles.splice(t,1)}this.deadParticles.length=0}};function mc(e,t){if(!t())throw Error(e)}var hc=class{constructor(e,t,n){var r;this.emitRate=1,this._initialized=!1,this._vaos=[],this._buffers=[],this._drawIndex=0,this._numInputFloats=7,this._particleIndex=0,this._uploadIndex=0,this._wrappedLife=0,this._wrappedParticles=0,this._particleLife=0,this._clearRequested=!1,this._emitted=[],this.emitter=e,this.particle=n,this._particleData=new Float32Array(this.emitter.maxParticles*this._numInputFloats),this._random=t,this._particleLife=(r=this.particle.life)==null?2e3:r}get isInitialized(){return this._initialized}get maxParticles(){return this.emitter.maxParticles}initialize(e,t){if(this._initialized)return;let n=this.emitter.maxParticles,r=this._numInputFloats,i=this._particleData,a=e.createBuffer(),o=e.createVertexArray();e.bindVertexArray(o),e.bindBuffer(e.ARRAY_BUFFER,a),e.bufferData(e.ARRAY_BUFFER,n*r*4,e.DYNAMIC_DRAW),e.bufferSubData(e.ARRAY_BUFFER,0,i);let s=0;e.vertexAttribPointer(0,2,e.FLOAT,!1,r*4,0),s+=8,e.vertexAttribPointer(1,2,e.FLOAT,!1,r*4,s),s+=8,e.vertexAttribPointer(2,1,e.FLOAT,!1,r*4,s),s+=4,e.vertexAttribPointer(3,1,e.FLOAT,!1,r*4,s),s+=4,e.vertexAttribPointer(4,1,e.FLOAT,!1,r*4,s),s+=4,e.enableVertexAttribArray(0),e.enableVertexAttribArray(1),e.enableVertexAttribArray(2),e.enableVertexAttribArray(3),e.enableVertexAttribArray(4),this._vaos.push(o),this._buffers.push(a),e.bindVertexArray(null),e.bindBuffer(e.ARRAY_BUFFER,null);let c=e.createBuffer(),l=e.createVertexArray();e.bindVertexArray(l),e.bindBuffer(e.ARRAY_BUFFER,c),e.bufferData(e.ARRAY_BUFFER,n*r*4,e.DYNAMIC_DRAW),s=0,e.vertexAttribPointer(0,2,e.FLOAT,!1,r*4,0),s+=8,e.vertexAttribPointer(1,2,e.FLOAT,!1,r*4,s),s+=8,e.vertexAttribPointer(2,1,e.FLOAT,!1,r*4,s),s+=4,e.vertexAttribPointer(3,1,e.FLOAT,!1,r*4,s),s+=4,e.vertexAttribPointer(4,1,e.FLOAT,!1,r*4,s),s+=4,e.enableVertexAttribArray(0),e.enableVertexAttribArray(1),e.enableVertexAttribArray(2),e.enableVertexAttribArray(3),e.enableVertexAttribArray(4),this._vaos.push(l),this._buffers.push(c),e.bindVertexArray(null),e.bindBuffer(e.ARRAY_BUFFER,null),this._currentVao=this._vaos[this._drawIndex%2],this._currentBuffer=this._buffers[(this._drawIndex+1)%2],this._initialized=!0}clearParticles(){this._particleData.fill(0),this._clearRequested=!0}emitParticles(e){let t=this._particleIndex,n=this.maxParticles*this._numInputFloats,r=e*this._numInputFloats+t,i=0;for(let e=t;e<r;e+=this._numInputFloats){let t=this._random.floating(this.particle.minAngle||0,this.particle.maxAngle||m);t+=this.particle.transform===hi.Local?this.emitter.transform.rotation:this.emitter.transform.globalRotation;let n=this._random.floating(this.particle.minSpeed||0,this.particle.maxSpeed||0),r=this._random.floating(this.particle.minSpeed||0,this.particle.maxSpeed||0),a=n*Math.cos(t),o=r*Math.sin(t),s=0,c=0;if(this.emitter.emitterType===fc.Rectangle)s=this._random.floating(-.5,.5)*this.emitter.width,c=this._random.floating(-.5,.5)*this.emitter.height;else{let e=this._random.floating(0,this.emitter.radius);s=e*Math.cos(t),c=e*Math.sin(t)}let l=this.emitter.transform.apply(E(s,c)),u=[this.particle.transform===hi.Local?s:l.x,this.particle.transform===hi.Local?c:l.y,a,o,this.particle.randomRotation?w(0,m,this._random):this.particle.rotation||0,this.particle.angularVelocity||0,this._particleLife];i++,this._particleData.set(u,e%this._particleData.length)}r>=n?(this._wrappedParticles+=(r-n)/this._numInputFloats,this._wrappedLife=this._particleLife):this._wrappedLife>0&&(this._wrappedParticles+=e),this._particleIndex=r%n,this._emitted.push([this._particleLife,t])}_uploadEmitted(e){this._particleIndex!==this._uploadIndex&&(e.bindBuffer(e.ARRAY_BUFFER,this._buffers[(this._drawIndex+1)%2]),this._particleIndex>=this._uploadIndex?e.bufferSubData(e.ARRAY_BUFFER,this._uploadIndex*4,this._particleData,this._uploadIndex,this._particleIndex-this._uploadIndex):(e.bufferSubData(e.ARRAY_BUFFER,this._uploadIndex*4,this._particleData,this._uploadIndex,this._particleData.length-this._uploadIndex),this._wrappedParticles&&e.bufferSubData(e.ARRAY_BUFFER,0,this._particleData,0,this._wrappedParticles*this._numInputFloats),this._wrappedLife=this._particleLife),e.bindBuffer(e.ARRAY_BUFFER,null)),this._uploadIndex=this._particleIndex%(this.maxParticles*this._numInputFloats)}update(e){var t;if(this._particleLife=(t=this.particle.life)==null?this._particleLife:t,this._wrappedLife>0?this._wrappedLife-=e:(this._wrappedLife=0,this._wrappedParticles=0),this._emitted.length){for(let t=this._emitted.length-1;t>=0;t--){let n=this._emitted[t];n[0]-=e,n[0]<=0&&this._emitted.splice(t,1)}this._emitted.sort((e,t)=>e[0]-t[0])}}draw(e){if(this._initialized){if(this._clearRequested?(e.bindBuffer(e.ARRAY_BUFFER,this._buffers[(this._drawIndex+1)%2]),e.bufferSubData(e.ARRAY_BUFFER,0,this._particleData),e.bindBuffer(e.ARRAY_BUFFER,null),this._clearRequested=!1):this._uploadEmitted(e),e.bindVertexArray(this._currentVao),e.bindBufferBase(e.TRANSFORM_FEEDBACK_BUFFER,0,this._currentBuffer),this._wrappedLife&&this._emitted[0]&&this._emitted[0][1]>0){let t=this._emitted[0][1]/this._numInputFloats;mc(`midpoint greater than 0, actual: ${t}`,()=>t>0),mc(`midpoint is less than max, actual: ${t}`,()=>t<this.maxParticles),e.bindBufferRange(e.TRANSFORM_FEEDBACK_BUFFER,0,this._currentBuffer,this._emitted[0][1]*4,(this.maxParticles-t)*this._numInputFloats*4),e.beginTransformFeedback(e.POINTS),e.drawArrays(e.POINTS,t,this.maxParticles-t),e.endTransformFeedback(),e.bindBufferRange(e.TRANSFORM_FEEDBACK_BUFFER,0,this._currentBuffer,0,this._emitted[0][1]*4),e.beginTransformFeedback(e.POINTS),e.drawArrays(e.POINTS,0,t),e.endTransformFeedback()}else e.bindBufferRange(e.TRANSFORM_FEEDBACK_BUFFER,0,this._currentBuffer,0,this._particleData.length*4),e.beginTransformFeedback(e.POINTS),e.drawArrays(e.POINTS,0,this.maxParticles),e.endTransformFeedback();e.bindVertexArray(null),e.bindBufferBase(e.TRANSFORM_FEEDBACK_BUFFER,0,null),this._currentVao=this._vaos[this._drawIndex%2],this._currentBuffer=this._buffers[(this._drawIndex+1)%2],this._drawIndex=(this._drawIndex+1)%2}}};hc.GPU_MAX_PARTICLES=1e5;var gc=class extends $a{get pos(){return this.transform.pos}set pos(e){this.transform.pos=e}get z(){return this.transform.z}set z(e){this.transform.z=e}constructor(e){super({name:`GpuParticleEmitter`,width:e.width,height:e.height}),this.particle={life:2e3,transform:hi.Global,graphic:void 0,opacity:1,angularVelocity:0,focus:void 0,focusAccel:void 0,randomRotation:!1},this.graphics=new Y,this.isEmitting=!1,this.emitRate=1,this.emitterType=fc.Rectangle,this.radius=0,this.maxParticles=2e3,this._particlesToEmit=0,this.addComponent(this.graphics,!0),this.graphics.onPostDraw=this.draw.bind(this);let{particle:t,maxParticles:n,x:r,y:i,z:a,pos:o,isEmitting:s,emitRate:c,emitterType:l,radius:u,random:d}={...e};this.maxParticles=_(n==null?this.maxParticles:n,0,hc.GPU_MAX_PARTICLES),this.pos=o==null?E(r==null?0:r,i==null?0:i):o,this.z=a==null?0:a,this.isEmitting=s==null?this.isEmitting:s,this.emitRate=c==null?this.emitRate:c,this.emitterType=l==null?this.emitterType:l,this.radius=u==null?this.radius:u,this.particle={...this.particle,...t},this.random=d==null?new p:d,this.renderer=new hc(this,this.random,this.particle)}_initialize(e){super._initialize(e);let t=e.graphicsContext;this.renderer.initialize(t.__gl,t)}update(e,t){super.update(e,t),this.isEmitting&&(this._particlesToEmit+=this.emitRate*(t/1e3),this._particlesToEmit>1&&(this.emitParticles(Math.floor(this._particlesToEmit)),this._particlesToEmit-=Math.floor(this._particlesToEmit))),this.renderer.update(t)}emitParticles(e){e<=0||this.renderer.emitParticles(e|0)}clearParticles(){this.renderer.clearParticles()}draw(e,t){e.draw(`ex.particle`,this.renderer,t)}},_c=class e{constructor(e,t){this.id=Z(),this._stopped=!1,this._sequenceBuilder=t,this._sequenceContext=new Ya(e),this._actionQueue=this._sequenceContext.getQueue(),this._sequenceBuilder(this._sequenceContext)}update(e){this._actionQueue.update(e)}isComplete(){return this._stopped||this._actionQueue.isComplete()}stop(){this._stopped=!0}reset(){this._stopped=!1,this._actionQueue.reset()}clone(t){return new e(t,this._sequenceBuilder)}},vc=class{constructor(e){this.id=Z(),this._actions=e}update(e){for(let t=0;t<this._actions.length;t++)this._actions[t].update(e)}isComplete(e){return this._actions.every(t=>t.isComplete(e))}reset(){this._actions.forEach(e=>e.reset())}stop(){this._actions.forEach(e=>e.stop())}};function yc(e){return!!e._initialize}function bc(e){return!!e.onAdd}function xc(e){return!!e.onRemove}function Sc(e){return!!e.onInitialize}function Cc(e){return!!e._preupdate}function wc(e){return!!e.onPreUpdate}function Tc(e){return!!e.onPostUpdate}function Ec(e){return!!e.onPostUpdate}function Dc(e){return!!e.onAdd}function Oc(e){return!!e.onRemove}function kc(e){return!!e.onPreDraw}function Ac(e){return!!e.onPostDraw}var jc=class{constructor(e,t){this.soundManager=t}stop(e){if(!e)return;let t=this.soundManager.getSoundsForChannel(e);for(let e=0;e<t.length;e++)t[e].stop()}setVolume(e,t){let n=this.soundManager.getSoundsForChannel(e);for(let r of n)this.soundManager._isMuted(r)||this.soundManager.setVolume(e,t)}play(e,t){t!=null||(t=this.soundManager.defaultVolume);let n=[],r=new Set,i=this.soundManager.getSoundsForChannel(e);for(let e of i){if(r.has(e)||this.soundManager._isMuted(e))continue;let i=this.soundManager._getEffectiveVolume(e);n.push(e.play(i*t)),r.add(e)}return Promise.all(n)}mute(e){let t=this.soundManager.getSoundsForChannel(e);for(let e=0;e<t.length;e++)this.soundManager._muted.add(t[e]),t[e].pause()}unmute(e){let t=this.soundManager.getSoundsForChannel(e);for(let e=0;e<t.length;e++)this.soundManager._muted.has(t[e])&&(t[e].play(),this.soundManager._muted.delete(t[e]))}toggle(e){let t=this.soundManager.getSoundsForChannel(e);for(let e=0;e<t.length;e++)this.soundManager._isMuted(t[e])?(t[e].play(),this.soundManager._muted.delete(t[e])):(this.soundManager._muted.add(t[e]),t[e].pause())}},Mc=class{set defaultVolume(e){this._defaultVolume=_(e,0,1)}get defaultVolume(){return this._defaultVolume}constructor(e){var t;if(this._channelToConfig=new Map,this._nameToConfig=new Map,this._mix=new Map,this._muted=new Set,this._all=new Set,this._defaultVolume=1,this._defaultVolume=(t=e.volume)==null?1:t,this.channel=new jc(e,this),e.sounds)for(let[t,n]of Object.entries(e.sounds))this.track(t,n)}getSounds(){return Array.from(this._all)}getSoundsForChannel(e){let t=this._channelToConfig.get(e);return t?t.sounds:[]}_isMuted(e){return this._muted.has(e)}_getEffectiveVolume(e){if(this._isMuted(e))return 0;let t=this._defaultVolume;if(this._mix.has(e)){var n;t*=(n=this._mix.get(e))==null?this._defaultVolume:n}return t}play(e,t=this._defaultVolume){let n=this._nameToConfig.get(e);if(!n)return Promise.resolve();let{sound:r}=n;if(this._isMuted(r))return Promise.resolve();let i=t*this._getEffectiveVolume(r);return r.play(i)}getSound(e){let t=this._nameToConfig.get(e);if(!t)return;let{sound:n}=t;return n}setVolume(e,t=this._defaultVolume){let n=this._nameToConfig.get(e);if(!n)return;let{sound:r}=n;this._setMix(r,t)}getVolume(e){var t;let n=this.getSound(e);return n?(t=this._mix.get(n))==null?0:t:0}_setMix(e,t){this._mix.set(e,t),e.volume=t}track(e,t){var n;let r,i,a;t instanceof No?(r=t,i=this._defaultVolume,a=[]):{sound:r,volume:i,channels:a}=t,this._nameToConfig.set(e,{sound:r,volume:i,channels:a}),this._mix.set(r,(n=i)==null?this._defaultVolume:n),this._all.add(r),a&&this.addChannel(e,a)}untrack(e){this._nameToConfig.delete(e);let t=this.getSound(e);t&&(this._mix.delete(t),this._all.delete(t))}stop(e){if(e){let t=this._nameToConfig.get(e);if(!t)return;let{sound:n}=t;n.stop();return}this._all.forEach(e=>e.stop())}mute(e){if(e){let t=this._nameToConfig.get(e);if(!t)return;let{sound:n}=t;this._muted.add(n),n.pause();return}this._muted=new Set(this._all),this._muted.forEach(e=>e.pause())}unmute(e){if(e){let t=this._nameToConfig.get(e);if(!t)return;let{sound:n}=t;n.play(),this._muted.delete(n);return}this._muted.forEach(e=>e.play()),this._muted.clear()}toggle(e){if(e){let t=this._nameToConfig.get(e);if(!t)return;let{sound:n}=t;this._isMuted(n)?this.unmute(e):this.mute(e);return}this._muted.size>0?(this._muted.forEach(e=>e.play()),this._muted.clear()):(this._muted=new Set(this._all),this._muted.forEach(e=>e.pause()))}addChannel(e,t){let n=this.getSound(e);if(!n)return;let r=this._mix.get(n);this._mix.set(n,r==null?this._defaultVolume:r),this._all.add(n);for(let e of t){let t=this._channelToConfig.get(e);t||(t={sounds:[n]}),t.sounds.indexOf(n)===-1&&t.sounds.push(n),this._channelToConfig.set(e,t)}}removeChannel(e,t){let n=this.getSound(e);if(n)for(let e of t){let t=this._channelToConfig.get(e);if(!t)return;let r=t.sounds.indexOf(n);r>=-1&&t.sounds.splice(r,1),this._channelToConfig.set(e,t)}}},Nc=class{constructor(e,t=!1){this.path=e,this.width=0,this.height=0,this._images=[],this.data=[],this._sprites=[],this._resource=new ur(e,`arraybuffer`,t)}get bustCache(){return this._resource.bustCache}set bustCache(e){this._resource.bustCache=e}async load(){let e=await this._resource.load();this._stream=new Ic(e),this._gif=new Rc(this._stream);let t=this._gif.images.map(e=>new _r(e.src,!1));return await Promise.all(t.map(e=>e.load())),this.data=this._images=t,this._sprites=this._images.map(e=>e.toSprite()),this.data}isLoaded(){return!!this.data}toSprite(e=0){var t;return(t=this._sprites[e])==null?null:t}toSpriteSheet(){let e=this._sprites;return e.length?new Ar({sprites:e}):null}toAnimation(e){var t;let n=(t=this._gif)==null?void 0:t.images;if(n!=null&&n.length){let t=n.map((e,t)=>{var n;return{graphic:this._sprites[t],duration:((n=this._gif)==null?void 0:n.frames[t].delayMs)||void 0}});return this._animation=new sr({frames:t,frameDuration:e}),this._animation}return null}get readCheckBytes(){var e,t;return(e=(t=this._gif)==null?void 0:t.checkBytes)==null?[]:e}},Pc=e=>e.reduce(function(e,t){return e*2+t},0),Fc=e=>{let t=[];for(let n=7;n>=0;n--)t.push(!!(e&1<<n));return t},Ic=class{constructor(e){if(this.len=0,this.position=0,this.readByte=()=>{if(this.position>=this.data.byteLength)throw Error(`Attempted to read past end of stream.`);return this.data[this.position++]},this.readBytes=e=>{let t=[];for(let n=0;n<e;n++)t.push(this.readByte());return t},this.read=e=>{let t=``;for(let n=0;n<e;n++)t+=String.fromCharCode(this.readByte());return t},this.readUnsigned=()=>{let e=this.readBytes(2);return(e[1]<<8)+e[0]},this.data=new Uint8Array(e),this.len=this.data.byteLength,this.len===0)throw Error(`No data loaded from file`)}},Lc=function(e,t){let n=0,r=function(e){let r=0;for(let i=0;i<e;i++)t.charCodeAt(n>>3)&1<<(n&7)&&(r|=1<<i),n++;return r},i=[],a=1<<e,o=a+1,s=e+1,c=[],l=function(){c=[],s=e+1;for(let e=0;e<a;e++)c[e]=[e];c[a]=[],c[o]=null},u=0,d=0;for(;;){if(d=u,u=r(s),u===a){l();continue}if(u===o)break;if(u<c.length)d!==a&&c.push(c[d].concat(c[u][0]));else{if(u!==c.length)throw Error(`Invalid LZW code.`);c.push(c[d].concat(c[d][0]))}i.push.apply(i,c[u]),c.length===1<<s&&s<12&&s++}return i},Rc=class{constructor(e){this._handler={},this.frames=[],this.images=[],this.globalColorTableBytes=[],this.checkBytes=[],this.parseColorTableBytes=e=>{let t=[];for(let n=0;n<e;n++){let e=this._st.readBytes(3);t.push(e)}return t},this.readSubBlocks=()=>{let e,t=``;do e=this._st.readByte(),t+=this._st.read(e);while(e!==0);return t},this.parseHeader=()=>{let e={sig:``,ver:``,width:0,height:0,colorResolution:0,globalColorTableSize:0,gctFlag:!1,sortedFlag:!1,globalColorTable:[],backgroundColorIndex:0,pixelAspectRatio:0};if(e.sig=this._st.read(3),e.ver=this._st.read(3),e.sig!==`GIF`)throw Error(`Not a GIF file.`);e.width=this._st.readUnsigned(),e.height=this._st.readUnsigned(),this._currentFrameCanvas.width=e.width,this._currentFrameCanvas.height=e.height;let t=Fc(this._st.readByte());e.gctFlag=t.shift(),e.colorResolution=Pc(t.splice(0,3)),e.sortedFlag=t.shift(),e.globalColorTableSize=Pc(t.splice(0,3)),e.backgroundColorIndex=this._st.readByte(),e.pixelAspectRatio=this._st.readByte(),e.gctFlag&&(this.globalColorTableBytes=this.parseColorTableBytes(1<<e.globalColorTableSize+1)),this._handler.hdr&&this._handler.hdr(e)&&this.checkBytes.push(this._handler.hdr)},this.parseExt=e=>{let t=e=>{this.checkBytes.push(this._st.readByte());let t=Fc(this._st.readByte());return e.reserved=t.splice(0,3),e.disposalMethod=Pc(t.splice(0,3)),e.userInputFlag=t.shift(),e.transparentColorFlag=t.shift(),e.delayTime=this._st.readUnsigned(),e.transparentColorIndex=this._st.readByte(),e.terminator=this._st.readByte(),this._handler.gce&&this._handler.gce(e)&&this.checkBytes.push(this._handler.gce),e},n=e=>{e.comment=this.readSubBlocks(),this._handler.com&&this._handler.com(e)&&this.checkBytes.push(this._handler.com)},r=e=>{this.checkBytes.push(this._st.readByte()),e.ptHeader=this._st.readBytes(12),e.ptData=this.readSubBlocks(),this._handler.pte&&this._handler.pte(e)&&this.checkBytes.push(this._handler.pte)},i=e=>{let t=e=>{this.checkBytes.push(this._st.readByte()),e.unknown=this._st.readByte(),e.iterations=this._st.readUnsigned(),e.terminator=this._st.readByte(),this._handler.app&&this._handler.app.NETSCAPE&&this._handler.app.NETSCAPE(e)&&this.checkBytes.push(this._handler.app)},n=e=>{e.appData=this.readSubBlocks(),this._handler.app&&this._handler.app[e.identifier]&&this._handler.app[e.identifier](e)&&this.checkBytes.push(this._handler.app[e.identifier])};switch(this.checkBytes.push(this._st.readByte()),e.identifier=this._st.read(8),e.authCode=this._st.read(3),e.identifier){case`NETSCAPE`:t(e);break;default:n(e);break}},a=e=>{e.data=this.readSubBlocks(),this._handler.unknown&&this._handler.unknown(e)&&this.checkBytes.push(this._handler.unknown)};switch(e.label=this._st.readByte(),e.label){case 249:e.extType=`gce`,this._gce=t(e);break;case 254:e.extType=`com`,n(e);break;case 1:e.extType=`pte`,r(e);break;case 255:e.extType=`app`,i(e);break;default:e.extType=`unknown`,a(e);break}},this.parseImg=e=>{var t;let n=(e,t)=>{let n=Array(e.length),r=e.length/t,i=(r,i)=>{let a=e.slice(i*t,(i+1)*t);n.splice.apply(n,[r*t,t].concat(a))},a=[0,4,2,1],o=[8,8,4,2],s=0;for(let e=0;e<4;e++)for(let t=a[e];t<r;t+=o[e])i(t,s),s++;return n};e.leftPos=this._st.readUnsigned(),e.topPos=this._st.readUnsigned(),e.width=this._st.readUnsigned(),e.height=this._st.readUnsigned();let r=Fc(this._st.readByte());e.lctFlag=r.shift(),e.interlaced=r.shift(),e.sorted=r.shift(),e.reserved=r.splice(0,2),e.lctSize=Pc(r.splice(0,3)),e.lctFlag&&(e.lctBytes=this.parseColorTableBytes(1<<e.lctSize+1)),e.lzwMinCodeSize=this._st.readByte();let i=this.readSubBlocks();e.pixels=Lc(e.lzwMinCodeSize,i),e.interlaced&&(e.pixels=n(e.pixels,e.width)),(t=this._gce)!=null&&t.delayTime&&(e.delayMs=this._gce.delayTime*10),this.frames.push(e),this.arrayToImage(e,e.lctFlag?e.lctBytes:this.globalColorTableBytes),this._handler.img&&this._handler.img(e)&&this.checkBytes.push(this._handler)},this.parseBlocks=()=>{let e={sentinel:this._st.readByte(),type:``};switch(String.fromCharCode(e.sentinel)){case`!`:e.type=`ext`,this.parseExt(e);break;case`,`:e.type=`img`,this.parseImg(e);break;case`;`:e.type=`eof`,this._handler.eof&&this._handler.eof(e)&&this.checkBytes.push(this._handler.eof);break;default:throw Error(`Unknown block: 0x`+e.sentinel.toString(16))}e.type!==`eof`&&this.parseBlocks()},this.arrayToImage=(e,t)=>{var n,r,i,a;let o=document.createElement(`canvas`);o.width=e.width,o.height=e.height;let s=o.getContext(`2d`),c=s.getImageData(0,0,o.width,o.height),l=-1;(n=this._gce)!=null&&n.transparentColorFlag&&(l=this._gce.transparentColorIndex);for(let n=0;n<e.pixels.length;n++){let r=e.pixels[n],i=t[r];r===l?c.data.set([0,0,0,0],n*4):c.data.set([...i,255],n*4)}if(s.putImageData(c,0,0),((r=this._gce)==null?void 0:r.disposalMethod)===1&&this.images.length)this._currentFrameContext.drawImage(this.images[this.images.length-1],0,0);else if(((i=this._gce)==null?void 0:i.disposalMethod)===2&&(a=this._hdr)!=null&&a.gctFlag){let e=t[this._hdr.backgroundColorIndex];this._currentFrameContext.fillStyle=`rgb(${e[0]}, ${e[1]}, ${e[2]})`,this._currentFrameContext.fillRect(0,0,this._hdr.width,this._hdr.height)}else this._currentFrameContext.clearRect(0,0,this._currentFrameCanvas.width,this._currentFrameCanvas.height);this._currentFrameContext.drawImage(o,e.leftPos,e.topPos,e.width,e.height);let u=new Image;u.src=this._currentFrameCanvas.toDataURL(),this.images.push(u)},this._st=e,this._handler={},this._currentFrameCanvas=document.createElement(`canvas`),this._currentFrameContext=this._currentFrameCanvas.getContext(`2d`),this.parseHeader(),this.parseBlocks()}},zc=class{constructor(e,t,{bustCache:n,...r}={}){this.path=e,this.family=t,this._isLoaded=!1,this._resource=new ur(e,`blob`,n),this._options=r}async load(){if(this.isLoaded())return this.data;try{let e=await this._resource.load(),t=URL.createObjectURL(e);this.data||(this.data=new FontFace(this.family,`url(${t})`),document.fonts.add(this.data)),await this.data.load(),this._isLoaded=!0}catch(e){throw`Error loading FontSource from path '${this.path}' with error [${e.message}]`}return this.data}isLoaded(){return this._isLoaded}toFont(e){return new ta({family:this.family,...this._options,...e})}},Bc=ic(),Vc=/^\s*(?:function)?\*/;function Hc(e){return typeof e==`function`?Vc.test(Function.prototype.toString.call(e))?!0:Object.getPrototypeOf?Object.getPrototypeOf(e)===Object.getPrototypeOf(Function(`return function * () {}`)()):!1:!1}function Uc(...e){var t;let n=I.getInstance(),r,i,a,o;Hc(e[0])&&(i=globalThis,r=e[0],a=e[1]),Hc(e[1])&&(i=e[0],r=e[1],a=e[2]),e[1]instanceof uc&&(i=e[0],o=e[1],r=e[2],a=e[3]),e[0]instanceof uc&&(i=globalThis,o=e[0],r=e[1],a=e[2]);let s=ac(Bc),c=a==null?void 0:a.timing,l=s?!1:(t=a==null?void 0:a.autostart)==null?!0:t,u;try{var d;u=(d=o)==null?uc.useEngine():d}catch(e){throw Error(`Cannot run coroutine without engine parameter outside of an excalibur lifecycle method.
|
|
894
894
|
Pass an engine parameter to ex.coroutine(engine, function * {...})`)}let f=!1,p=!1,m=!1,h=r.bind(i),g=h(),_,v=new Promise((e,t)=>{_=n=>{try{if(m){p=!0,e();return}let{done:t,value:r}=Bc.scope(!0,()=>g.next(n));if(t||m){p=!0,e();return}r instanceof Promise?r.then(()=>{u.clock.schedule(_,0,c)}):r===void 0||r===void 0?u.clock.schedule(_,0,c):u.clock.schedule(_,r||0,c)}catch(e){t(e);return}},l&&(f=!0,_(u.clock.elapsed()))}),y={isRunning:()=>f&&!m&&!p,isComplete:()=>p,cancel:()=>{m=!0},start:()=>(f?n.warn(`.start() was called on a coroutine that was already started, this is probably a bug:
|
|
895
|
-
`,Function.prototype.toString.call(h)):(f=!0,_(u.clock.elapsed())),y),generator:g,done:v,then:v.then.bind(v),[Symbol.iterator]:()=>g};return y}var Wc=class extends hn{get progress(){return this._currentProgress}get distance(){return this._currentDistance}get complete(){return this.direction===`out`?this.progress>=1:this.progress<=0}constructor(e){var t,n,r;if(super(),this._logger=I.getInstance(),this.transform=new R,this.graphics=new Y,this._completeFuture=new o,this.started=!1,this._currentDistance=0,this._currentProgress=0,this.done=this._completeFuture.promise,this._useLegacyEasing=!1,this.name=`Transition#${this.id}`,this.duration=e.duration,oa(e.easing)){var i;this.legacyEasing=(i=e.easing)==null?X.Linear:i,this._useLegacyEasing=!0}else{var a;this.easing=(a=e.easing)==null?ve:a}this.direction=(t=e.direction)==null?`out`:t,this.hideLoader=(n=e.hideLoader)==null?!1:n,this.blockInput=(r=e.blockInput)==null?!1:r,this.transform.coordPlane=A.Screen,this.transform.pos=T.Zero,this.transform.z=1/0,this.graphics.anchor=T.Zero,this.addComponent(this.transform),this.addComponent(this.graphics),this.direction===`out`?this._currentProgress=0:this._currentProgress=1}updateTransition(e,t){this.complete||(this._currentDistance+=_(t/this.duration,0,1),this._currentDistance>=1&&(this._currentDistance=1),this.direction===`out`?this._useLegacyEasing?this._currentProgress=_(this.legacyEasing(this._currentDistance,0,1,1),0,1):this._currentProgress=_(P(0,1,this.easing(this._currentDistance)),0,1):this._useLegacyEasing?this._currentProgress=_(this.legacyEasing(this._currentDistance,1,0,1),0,1):this._currentProgress=_(P(1,0,this.easing(this._currentDistance)),0,1))}async onPreviousSceneDeactivate(e){}onStart(e){}onUpdate(e){}onEnd(e){}onReset(){}reset(){this.started=!1,this._completeFuture=new o,this.done=this._completeFuture.promise,this._currentDistance=0,this.direction===`out`?this._currentProgress=0:this._currentProgress=1,this.onReset()}_addToTargetScene(e,t){let n=t;if(this.started&&this._logger.warn(`Attempted to add a transition ${this.name} that is already playing.`),n.world.entityManager.getById(this.id))return this._co;this._engine=e,n.add(this);let r=this;return this._co=Uc(e,function*(){for(;!r.complete;){let e=yield;r.updateTransition(r._engine,e),r._execute()}},{autostart:!1}),this._co}async _play(){this.started&&(this.reset(),this._logger.warn(`Attempted to play a transition ${this.name} that is already playing, reset transition.`)),(!this._engine||!this._co)&&(this.reset(),this._logger.warn(`Attempted to play a transition ${this.name} that hasn't been added`)),this._co&&await this._co.start()}_execute(){this.isInitialized&&(this.started||(this.started=!0,this.onStart(this.progress)),this.onUpdate(this.progress),this.complete&&!this._completeFuture.isCompleted&&(this.onEnd(this.progress),this._completeFuture.resolve()))}},Gc=class extends Wc{constructor(e){var t,n;super({...e,duration:(t=e.duration)==null?2e3:t}),this.name=`FadeInOut#${this.id}`,this.color=(n=e.color)==null?F.Black:n}onInitialize(e){this.transform.pos=e.screen.unsafeArea.topLeft,this.screenCover=new Gr({width:e.screen.resolution.width,height:e.screen.resolution.height,color:this.color}),this.graphics.add(this.screenCover),this.graphics.opacity=this.progress}onReset(){this.graphics.opacity=this.progress}onStart(e){this.graphics.opacity=e}onEnd(e){this.graphics.opacity=e}onUpdate(e){this.graphics.opacity=e}},Kc=class extends Wc{constructor(e){super({direction:`in`,...e}),this.name=`CrossFade#${this.id}`}async onPreviousSceneDeactivate(e){this.image=await e.engine.screenshot(!0),await this.image.decode()}onInitialize(e){this.engine=e,this.transform.pos=e.screen.unsafeArea.topLeft,this.screenCover=_r.fromHtmlImageElement(this.image).toSprite(),this.graphics.add(this.screenCover),this.transform.scale=E(1/e.screen.pixelRatio,1/e.screen.pixelRatio),this.graphics.opacity=this.progress}onStart(e){this.graphics.opacity=this.progress}onReset(){this.graphics.opacity=this.progress}onEnd(e){this.graphics.opacity=e}onUpdate(e){this.graphics.opacity=e}},qc=class extends Wc{constructor(e){var t;super({direction:`in`,...e}),this._easing=X.Linear,this._start=T.Zero,this._end=T.Zero,this.name=`Slide#${this.id}`,this.slideDirection=e.slideDirection,this.transform.coordPlane=A.Screen,this.graphics.forceOnScreen=!0,this._easing=(t=e.easingFunction)==null?this._easing:t}async onPreviousSceneDeactivate(e){this._image=await e.engine.screenshot(!0),await this._image.decode(),this._screenCover=_r.fromHtmlImageElement(this._image).toSprite()}onInitialize(e){this._engine=e;let t=e.screen.unsafeArea;switch(t.hasZeroDimensions()&&(t=e.screen.contentArea),this.slideDirection){case`up`:this._directionOffset=E(0,-t.height);break;case`down`:this._directionOffset=E(0,t.height);break;case`left`:this._directionOffset=E(-t.width,0);break;case`right`:this._directionOffset=E(t.width,0);break}this._camera=this._engine.currentScene.camera,this._destinationCameraPosition=this._camera.pos.clone(),this._camera.pos=this._camera.pos.add(this._directionOffset),this.transform.pos=this.transform.pos.add(this._directionOffset),this._startCameraPosition=this._camera.pos.clone(),this._start=t.topLeft,this._end=this._start.add(this._directionOffset),this.transform.pos=this._start,this.graphics.use(this._screenCover),this.transform.scale=E(1/e.screen.pixelRatio,1/e.screen.pixelRatio)}onStart(e){let t=this._easing(this.distance,0,1,1);this.transform.pos.x=P(this._start.x,this._end.x,t),this.transform.pos.y=P(this._start.y,this._end.y,t),this._camera.pos.x=P(this._startCameraPosition.x,this._destinationCameraPosition.x,t),this._camera.pos.y=P(this._startCameraPosition.y,this._destinationCameraPosition.y,t)}onUpdate(e){let t=this._easing(this.distance,0,1,1);this.transform.pos.x=P(this._start.x,this._end.x,t),this.transform.pos.y=P(this._start.y,this._end.y,t),this._camera.pos.x=P(this._startCameraPosition.x,this._destinationCameraPosition.x,t),this._camera.pos.y=P(this._startCameraPosition.y,this._destinationCameraPosition.y,t)}},Jc=5,Yc={},Xc=()=>{for(let e in Yc)Yc[e]=0},Zc=(e,t)=>{let n=i.isEnabled(`suppress-obsolete-message`);Yc[e]<5&&!n&&(I.getInstance().warn(e),console.trace&&t.showStackTrace&&console.trace()),Yc[e]++};function Qc(e){return e={message:`This feature will be removed in future versions of Excalibur.`,alternateMethod:null,showStackTrace:!1,...e},function(t,n,r){if(r&&!(typeof r.value==`function`||typeof r.get==`function`||typeof r.set==`function`))throw SyntaxError(`Only classes/functions/getters/setters can be marked as obsolete`);let i=`${`${t.name||``}${t.name&&n?`.`:``}${n||``}`} is marked obsolete: ${e.message}`+(e.alternateMethod?` Use ${e.alternateMethod} instead`:``);Yc[i]||(Yc[i]=0);let a=r?{...r}:t;if(!r){class t extends a{constructor(...t){Zc(i,e),super(...t)}}return t}return r&&r.value?(a.value=function(){return Zc(i,e),r.value.apply(this,arguments)},a):(r&&r.get&&(a.get=function(){return Zc(i,e),r.get.apply(this,arguments)}),r&&r.set&&(a.set=function(){return Zc(i,e),r.set.apply(this,arguments)}),a)}}var $c=class{constructor(){this._queue=[]}get length(){return this._queue.length}enqueue(){let e=new o;return this._queue.push(e),e.promise}dequeue(e){this._queue.shift().resolve(e)}},el=class{constructor(e){this._count=e,this._waitQueue=new $c}get count(){return this._count}get waiting(){return this._waitQueue.length}async enter(){return this._count===0?this._waitQueue.enqueue():(this._count--,Promise.resolve())}exit(e=1){if(e!==0){for(;e!==0&&this._waitQueue.length!==0;)this._waitQueue.dequeue(null),e--;this._count+=e}}},tl=`0.33.0-alpha.149+67c7814`;r(),e.ActionCompleteEvent=Jt,e.ActionContext=Ya,e.ActionQueue=sa,e.ActionSequence=_c,e.ActionStartEvent=qt,e.ActionsComponent=Xa,e.ActionsSystem=gs,e.ActivateEvent=Vt,e.Actor=$a,e.ActorEvents=Qa,e.AddEvent=Yt,e.AddedComponent=un,e.AffineMatrix=O,e.Animation=sr,e.AnimationDirection=ir,e.AnimationEvents=or,e.AnimationStrategy=ar,e.ArcadeSolver=so,e.AudioContextFactory=bo,e.Axes=xs,e.Axis=is,e.BaseAlign=xr,e.BezierCurve=de,e.Blink=Ma,e.BodyComponent=$,e.BoundingBox=H,e.BrowserComponent=Js,e.BrowserEvents=Ys,e.Buttons=bs,e.Camera=ds,e.CameraEvents=us,e.Canvas=qr,e.ChannelCollection=jc,e.Circle=Wr,e.CircleCollider=er,e.Clock=Zs,e.ClosestLineJumpTable=Mn,e.Collider=An,e.ColliderComponent=Q,e.CollisionContact=kn,e.CollisionEndEvent=zt,e.CollisionGroup=ct,e.CollisionGroupManager=ot,e.CollisionJumpTable=$n,e.CollisionPostSolveEvent=Lt,e.CollisionPreSolveEvent=It,e.CollisionStartEvent=Rt,e.CollisionSystem=mo,e.CollisionType=L,e.Color=F,e.ColorBlindFlags=Ws,e.ColorBlindnessMode=bi,e.ColorBlindnessPostProcessor=Si,e.Component=rt,e.CompositeCollider=Wn,e.ConsoleAppender=$e,e.ContactConstraintPoint=co,e.ContactEndEvent=Ft,e.ContactSolveBias=Rn,e.ContactStartEvent=Pt,e.CoordPlane=A,e.CrossFade=Kc,e.CurveBy=Ba,e.CurveTo=za,e.DeactivateEvent=Ht,e.Debug=G,e.DebugConfig=Gs,e.DebugGraphicsComponent=Rr,e.DebugSystem=ms,e.DebugText=Mr,e.DefaultAntialiasOptions=Zr,e.DefaultGarbageCollectionOptions=oc,e.DefaultLoader=Io,e.DefaultPixelArtOptions=Qr,e.DegreeOfFreedom=eo,e.Delay=Pa,e.Detector=Vo,e.Die=Fa,e.Direction=Cr,e.Director=rc,e.DirectorEvents=nc,e.DisplayMode=go,e.DynamicTree=Fn,e.DynamicTreeCollisionProcessor=In,e.EX_VERSION=tl,e.EaseBy=ja,e.EaseTo=Aa,e.EasingFunctions=X,e.Edge=me,e.EdgeCollider=Nn,e.ElasticToActorStrategy=ss,e.EmitterType=fc,e.Engine=uc,e.EngineEvents=cc,e.EnterTriggerEvent=Gt,e.EnterViewPortEvent=Wt,e.Entity=hn,e.EntityEvents=mn,e.EntityManager=gn,e.EventEmitter=s,e.EventTypes=ut,Object.defineProperty(e,"Events",{enumerable:!0,get:function(){return lt}}),e.ExResponse=Co,e.ExcaliburGraphicsContext2DCanvas=ei,e.ExcaliburGraphicsContextWebGL=Zi,e.ExitTriggerEvent=Kt,e.ExitViewPortEvent=Ut,e.Fade=Na,e.FadeInOut=Gc,e.Flags=i,e.Flash=Ra,e.Follow=Ia,e.Font=ta,e.FontCache=Br,e.FontSource=zc,e.FontStyle=Sr,e.FontUnit=yr,e.FpsSampler=Xs,e.FrameStats=Ks,e.Future=o,e.GameEvent=B,e.GameStartEvent=mt,e.GameStopEvent=ht,e.Gamepad=ys,e.GamepadAxisEvent=kt,e.GamepadButtonEvent=Ot,e.GamepadConnectEvent=Et,e.GamepadDisconnectEvent=Dt,e.GamepadEvents=_s,e.Gamepads=vs,e.GarbageCollector=sc,e.Gif=Nc,e.GifParser=Rc,e.GlobalCoordinates=j,e.GpuParticleEmitter=gc,e.GpuParticleRenderer=hc,e.Graph=pe,e.Graphic=U,e.GraphicsComponent=Y,e.GraphicsGroup=cr,e.GraphicsSystem=Hr,e.HashColliderProxy=io,e.HashGridCell=no,e.HashGridProxy=to,e.HiddenEvent=jt,e.HorizontalFirst=Bn,e.ImageFiltering=fr,e.ImageSource=_r,e.ImageSourceAttributeConstants=W,e.ImageWrapping=mr,e.InitializeEvent=Bt,e.InputHost=Rs,e.InputMapper=Ss,e.IsometricEntityComponent=$o,e.IsometricEntitySystem=ns,e.IsometricMap=ts,e.IsometricTile=es,e.KeyEvent=Ds,e.Keyboard=Os,e.Keys=Es,e.KillEvent=dt,e.Label=dc,e.LimitCameraBoundsStrategy=ls,e.Line=Lr,e.LineSegment=M,e.Loader=zo,e.LoaderEvents=Po,e.LockCameraToActorAxisStrategy=os,e.LockCameraToActorStrategy=as,e.LogLevel=Qe,e.Logger=I,e.Material=Ti,e.Matrix=ne,e.MatrixLocations=te,e.MediaEvent=Eo,e.Meet=La,e.MotionComponent=z,e.MotionSystem=uo,e.MoveBy=pa,e.MoveByWithOptions=fa,e.MoveTo=ga,e.MoveToWithOptions=ha,e.NativePointerButton=Ns,e.NativeSoundEvent=Do,e.NativeSoundProcessedEvent=Oo,e.NineSlice=Yr,e.NineSliceStretch=Jr,e.Node=he,e.None=Vn,e.Observable=it,e.OffscreenSystem=Ur,e.Pair=On,e.ParallaxComponent=zr,e.ParallelActions=vc,e.Particle=mi,e.ParticleEmitter=pc,e.ParticleRenderer=gi,e.ParticleTransform=hi,e.PauseComponent=Dn,e.PauseComponentTag=En,e.PauseEvent=Zt,e.PauseSystem=zs,e.PhysicsStats=qs,e.PhysicsWorld=ho,e.PointerAbstraction=js,e.PointerButton=Ps,e.PointerComponent=ia,e.PointerEvent=ks,e.PointerEventReceiver=Ls,e.PointerScope=c,e.PointerSystem=hs,e.PointerType=Ko,e.Polygon=Kr,e.PolygonCollider=Kn,e.Pool=qn,e.PositionNode=ge,e.PostCollisionEvent=Nt,e.PostDebugDrawEvent=xt,e.PostDrawEvent=_t,e.PostFrameEvent=Tt,e.PostKillEvent=pt,e.PostTransformDrawEvent=yt,e.PostUpdateEvent=Ct,e.PreCollisionEvent=Mt,e.PreDebugDrawEvent=bt,e.PreDrawEvent=gt,e.PreFrameEvent=wt,e.PreKillEvent=ft,e.PreLoadEvent=Bs,e.PreTransformDrawEvent=vt,e.PreUpdateEvent=St,e.Projection=N,e.QuadIndexBuffer=Ci,e.QuadTree=oo,e.Query=_n,e.QueryManager=yn,e.RadiusAroundActorStrategy=cs,e.Random=p,e.Raster=vr,e.Ray=ie,e.RealisticSolver=lo,e.Rectangle=Gr,e.RemoveEvent=Xt,e.RemovedComponent=fn,e.RentalPool=wr,e.Repeat=la,e.RepeatForever=ua,e.Resolution=_o,e.Resource=ur,e.ResourceEvents=lr,e.ResumeEvent=Qt,e.RotateBy=Sa,e.RotateByWithOptions=xa,e.RotateTo=ya,e.RotateToWithOptions=va,e.RotationType=l,e.ScaleBy=Oa,e.ScaleByWithOptions=Da,e.ScaleTo=Ta,e.ScaleToWithOptions=wa,e.Scene=Us,e.SceneEvents=Vs,e.Screen=yo,e.ScreenAppender=et,e.ScreenElement=Uo,e.ScreenEvents=vo,e.ScreenShader=yi,e.ScrollPreventionMode=lc,e.Semaphore=el,e.SeparatingAxis=Yn,e.SeparationInfo=Jn,e.Serializer=qa,e.Shader=ui,e.Shape=Gn,Object.defineProperty(e,"Side",{enumerable:!0,get:function(){return V}}),e.Slide=qc,e.SolverStrategy=Ln,e.Sound=No,e.SoundEvents=jo,e.SoundManager=Mc,e.SparseHashGrid=ro,e.SparseHashGridCollisionProcessor=ao,e.SpatialPartitionStrategy=Hn,e.Sprite=dr,e.SpriteFont=Or,e.SpriteSheet=Ar,e.StandardClock=Qs,e.StateMachine=wo,e.StrategyContainer=rs,e.Stream=Ic,e.System=Sn,e.SystemManager=wn,e.SystemPriority=bn,e.SystemType=xn,e.TagQuery=vn,e.TestClock=$s,e.Text=na,e.TextAlign=br,e.TextureLoader=gr,e.Tile=Qo,e.TileMap=Zo,e.TileMapEvents=Xo,e.TiledAnimation=Xr,e.TiledSprite=kr,e.Timer=Go,e.TimerEvents=Wo,e.Toaster=tc,e.Transform=re,e.TransformComponent=R,e.Transition=Wc,e.TreeNode=Pn,e.Trigger=ps,e.TriggerEvents=fs,e.TwoPI=m,e.UniformBuffer=ti,Object.defineProperty(e,"Util",{enumerable:!0,get:function(){return Ja}}),e.Vector=T,e.VectorView=D,e.VertexBuffer=_i,e.VertexLayout=vi,e.VerticalFirst=zn,e.VisibleEvent=At,e.WebAudio=So,e.WebAudioInstance=To,e.WheelDeltaMode=Ms,e.WheelEvent=As,e.World=Tn,e.angleDifference=b,e.approximatelyEqual=v,e.assert=mc,e.canonicalizeAngle=y,e.clamp=_,e.coroutine=Uc,e.createId=a,e.easeInBack=He,e.easeInBounce=Ye,e.easeInCirc=ze,e.easeInCubic=De,e.easeInElastic=Ge,e.easeInExpo=Ie,e.easeInOutBack=We,e.easeInOutBounce=Xe,e.easeInOutCirc=Ve,e.easeInOutCubic=ke,e.easeInOutElastic=qe,e.easeInOutExpo=Re,e.easeInOutQuad=Ee,e.easeInOutQuart=Me,e.easeInOutQuint=Fe,e.easeInOutSine=Ce,e.easeInQuad=we,e.easeInQuart=Ae,e.easeInQuint=Ne,e.easeInSine=xe,e.easeOutBack=Ue,e.easeOutBounce=Je,e.easeOutCirc=Be,e.easeOutCubic=Oe,e.easeOutElastic=Ke,e.easeOutExpo=Le,e.easeOutQuad=Te,e.easeOutQuart=je,e.easeOutQuint=Pe,e.easeOutSine=Se,e.frac=h,e.getDefaultPhysicsConfig=Un,e.glTypeToUniformTypeName=li,e.hasGraphicsTick=ra,e.hasOnAdd=Dc,e.hasOnInitialize=Sc,e.hasOnPostUpdate=Ec,e.hasOnPreUpdate=wc,e.hasOnRemove=Oc,e.hasPostDraw=Ac,e.hasPreDraw=kc,e.has_add=bc,e.has_initialize=yc,e.has_postupdate=Tc,e.has_preupdate=Cc,e.has_remove=xc,e.inverseLerp=se,e.inverseLerpVector=ce,e.isActor=Za,e.isAddedComponent=dn,e.isComponentCtor=tt,e.isLegacyEasing=oa,e.isLoaderConstructor=Fo,e.isMoveByOptions=da,e.isMoveToOptions=ma,e.isRemovedComponent=pn,e.isRotateByOptions=ba,e.isRotateToOptions=_a,e.isScaleByOptions=Ea,e.isScaleToOptions=Ca,e.isSceneConstructor=Hs,e.isScreenElement=Ho,e.isSystemConstructor=Cn,e.lerp=P,e.lerpAngle=ae,e.lerpVector=oe,e.linear=ve,e.maxMessages=Jc,e.nextActionId=Z,e.obsolete=Qc,e.parseImageFiltering=pr,e.parseImageWrapping=hr,e.pixelSnapEpsilon=J,e.randomInRange=w,e.randomIntInRange=ee,e.range=C,e.remap=le,e.remapVector=ue,e.resetObsoleteCounter=Xc,e.sign=g,e.smootherstep=be,e.smoothstep=ye,e.toDegrees=x,e.toRadians=S,e.vec=E,Object.defineProperty(e,"webgl",{enumerable:!0,get:function(){return ni}})});
|
|
895
|
+
`,Function.prototype.toString.call(h)):(f=!0,_(u.clock.elapsed())),y),generator:g,done:v,then:v.then.bind(v),[Symbol.iterator]:()=>g};return y}var Wc=class extends hn{get progress(){return this._currentProgress}get distance(){return this._currentDistance}get complete(){return this.direction===`out`?this.progress>=1:this.progress<=0}constructor(e){var t,n,r;if(super(),this._logger=I.getInstance(),this.transform=new R,this.graphics=new Y,this._completeFuture=new o,this.started=!1,this._currentDistance=0,this._currentProgress=0,this.done=this._completeFuture.promise,this._useLegacyEasing=!1,this.name=`Transition#${this.id}`,this.duration=e.duration,oa(e.easing)){var i;this.legacyEasing=(i=e.easing)==null?X.Linear:i,this._useLegacyEasing=!0}else{var a;this.easing=(a=e.easing)==null?ve:a}this.direction=(t=e.direction)==null?`out`:t,this.hideLoader=(n=e.hideLoader)==null?!1:n,this.blockInput=(r=e.blockInput)==null?!1:r,this.transform.coordPlane=A.Screen,this.transform.pos=T.Zero,this.transform.z=1/0,this.graphics.anchor=T.Zero,this.addComponent(this.transform),this.addComponent(this.graphics),this.direction===`out`?this._currentProgress=0:this._currentProgress=1}updateTransition(e,t){this.complete||(this._currentDistance+=_(t/this.duration,0,1),this._currentDistance>=1&&(this._currentDistance=1),this.direction===`out`?this._useLegacyEasing?this._currentProgress=_(this.legacyEasing(this._currentDistance,0,1,1),0,1):this._currentProgress=_(P(0,1,this.easing(this._currentDistance)),0,1):this._useLegacyEasing?this._currentProgress=_(this.legacyEasing(this._currentDistance,1,0,1),0,1):this._currentProgress=_(P(1,0,this.easing(this._currentDistance)),0,1))}async onPreviousSceneDeactivate(e){}onStart(e){}onUpdate(e){}onEnd(e){}onReset(){}reset(){this.started=!1,this._completeFuture=new o,this.done=this._completeFuture.promise,this._currentDistance=0,this.direction===`out`?this._currentProgress=0:this._currentProgress=1,this.onReset()}_addToTargetScene(e,t){let n=t;if(this.started&&this._logger.warn(`Attempted to add a transition ${this.name} that is already playing.`),n.world.entityManager.getById(this.id))return this._co;this._engine=e,n.add(this);let r=this;return this._co=Uc(e,function*(){for(;!r.complete;){let e=yield;r.updateTransition(r._engine,e),r._execute()}},{autostart:!1}),this._co}async _play(){this.started&&(this.reset(),this._logger.warn(`Attempted to play a transition ${this.name} that is already playing, reset transition.`)),(!this._engine||!this._co)&&(this.reset(),this._logger.warn(`Attempted to play a transition ${this.name} that hasn't been added`)),this._co&&await this._co.start()}_execute(){this.isInitialized&&(this.started||(this.started=!0,this.onStart(this.progress)),this.onUpdate(this.progress),this.complete&&!this._completeFuture.isCompleted&&(this.onEnd(this.progress),this._completeFuture.resolve()))}},Gc=class extends Wc{constructor(e){var t,n;super({...e,duration:(t=e.duration)==null?2e3:t}),this.name=`FadeInOut#${this.id}`,this.color=(n=e.color)==null?F.Black:n}onInitialize(e){this.transform.pos=e.screen.unsafeArea.topLeft,this.screenCover=new Gr({width:e.screen.resolution.width,height:e.screen.resolution.height,color:this.color}),this.graphics.add(this.screenCover),this.graphics.opacity=this.progress}onReset(){this.graphics.opacity=this.progress}onStart(e){this.graphics.opacity=e}onEnd(e){this.graphics.opacity=e}onUpdate(e){this.graphics.opacity=e}},Kc=class extends Wc{constructor(e){super({direction:`in`,...e}),this.name=`CrossFade#${this.id}`}async onPreviousSceneDeactivate(e){this.image=await e.engine.screenshot(!0),await this.image.decode()}onInitialize(e){this.engine=e,this.transform.pos=e.screen.unsafeArea.topLeft,this.screenCover=_r.fromHtmlImageElement(this.image).toSprite(),this.graphics.add(this.screenCover),this.transform.scale=E(1/e.screen.pixelRatio,1/e.screen.pixelRatio),this.graphics.opacity=this.progress}onStart(e){this.graphics.opacity=this.progress}onReset(){this.graphics.opacity=this.progress}onEnd(e){this.graphics.opacity=e}onUpdate(e){this.graphics.opacity=e}},qc=class extends Wc{constructor(e){var t;super({direction:`in`,...e}),this._easing=X.Linear,this._start=T.Zero,this._end=T.Zero,this.name=`Slide#${this.id}`,this.slideDirection=e.slideDirection,this.transform.coordPlane=A.Screen,this.graphics.forceOnScreen=!0,this._easing=(t=e.easingFunction)==null?this._easing:t}async onPreviousSceneDeactivate(e){this._image=await e.engine.screenshot(!0),await this._image.decode(),this._screenCover=_r.fromHtmlImageElement(this._image).toSprite()}onInitialize(e){this._engine=e;let t=e.screen.unsafeArea;switch(t.hasZeroDimensions()&&(t=e.screen.contentArea),this.slideDirection){case`up`:this._directionOffset=E(0,-t.height);break;case`down`:this._directionOffset=E(0,t.height);break;case`left`:this._directionOffset=E(-t.width,0);break;case`right`:this._directionOffset=E(t.width,0);break}this._camera=this._engine.currentScene.camera,this._destinationCameraPosition=this._camera.pos.clone(),this._camera.pos=this._camera.pos.add(this._directionOffset),this.transform.pos=this.transform.pos.add(this._directionOffset),this._startCameraPosition=this._camera.pos.clone(),this._start=t.topLeft,this._end=this._start.add(this._directionOffset),this.transform.pos=this._start,this.graphics.use(this._screenCover),this.transform.scale=E(1/e.screen.pixelRatio,1/e.screen.pixelRatio)}onStart(e){let t=this._easing(this.distance,0,1,1);this.transform.pos.x=P(this._start.x,this._end.x,t),this.transform.pos.y=P(this._start.y,this._end.y,t),this._camera.pos.x=P(this._startCameraPosition.x,this._destinationCameraPosition.x,t),this._camera.pos.y=P(this._startCameraPosition.y,this._destinationCameraPosition.y,t)}onUpdate(e){let t=this._easing(this.distance,0,1,1);this.transform.pos.x=P(this._start.x,this._end.x,t),this.transform.pos.y=P(this._start.y,this._end.y,t),this._camera.pos.x=P(this._startCameraPosition.x,this._destinationCameraPosition.x,t),this._camera.pos.y=P(this._startCameraPosition.y,this._destinationCameraPosition.y,t)}},Jc=5,Yc={},Xc=()=>{for(let e in Yc)Yc[e]=0},Zc=(e,t)=>{let n=i.isEnabled(`suppress-obsolete-message`);Yc[e]<5&&!n&&(I.getInstance().warn(e),console.trace&&t.showStackTrace&&console.trace()),Yc[e]++};function Qc(e){return e={message:`This feature will be removed in future versions of Excalibur.`,alternateMethod:null,showStackTrace:!1,...e},function(t,n,r){if(r&&!(typeof r.value==`function`||typeof r.get==`function`||typeof r.set==`function`))throw SyntaxError(`Only classes/functions/getters/setters can be marked as obsolete`);let i=`${`${t.name||``}${t.name&&n?`.`:``}${n||``}`} is marked obsolete: ${e.message}`+(e.alternateMethod?` Use ${e.alternateMethod} instead`:``);Yc[i]||(Yc[i]=0);let a=r?{...r}:t;if(!r){class t extends a{constructor(...t){Zc(i,e),super(...t)}}return t}return r&&r.value?(a.value=function(){return Zc(i,e),r.value.apply(this,arguments)},a):(r&&r.get&&(a.get=function(){return Zc(i,e),r.get.apply(this,arguments)}),r&&r.set&&(a.set=function(){return Zc(i,e),r.set.apply(this,arguments)}),a)}}var $c=class{constructor(){this._queue=[]}get length(){return this._queue.length}enqueue(){let e=new o;return this._queue.push(e),e.promise}dequeue(e){this._queue.shift().resolve(e)}},el=class{constructor(e){this._count=e,this._waitQueue=new $c}get count(){return this._count}get waiting(){return this._waitQueue.length}async enter(){return this._count===0?this._waitQueue.enqueue():(this._count--,Promise.resolve())}exit(e=1){if(e!==0){for(;e!==0&&this._waitQueue.length!==0;)this._waitQueue.dequeue(null),e--;this._count+=e}}},tl=`0.33.0-alpha.151+f2f287a`;r(),e.ActionCompleteEvent=Jt,e.ActionContext=Ya,e.ActionQueue=sa,e.ActionSequence=_c,e.ActionStartEvent=qt,e.ActionsComponent=Xa,e.ActionsSystem=gs,e.ActivateEvent=Vt,e.Actor=$a,e.ActorEvents=Qa,e.AddEvent=Yt,e.AddedComponent=un,e.AffineMatrix=O,e.Animation=sr,e.AnimationDirection=ir,e.AnimationEvents=or,e.AnimationStrategy=ar,e.ArcadeSolver=so,e.AudioContextFactory=bo,e.Axes=xs,e.Axis=is,e.BaseAlign=xr,e.BezierCurve=de,e.Blink=Ma,e.BodyComponent=$,e.BoundingBox=H,e.BrowserComponent=Js,e.BrowserEvents=Ys,e.Buttons=bs,e.Camera=ds,e.CameraEvents=us,e.Canvas=qr,e.ChannelCollection=jc,e.Circle=Wr,e.CircleCollider=er,e.Clock=Zs,e.ClosestLineJumpTable=Mn,e.Collider=An,e.ColliderComponent=Q,e.CollisionContact=kn,e.CollisionEndEvent=zt,e.CollisionGroup=ct,e.CollisionGroupManager=ot,e.CollisionJumpTable=$n,e.CollisionPostSolveEvent=Lt,e.CollisionPreSolveEvent=It,e.CollisionStartEvent=Rt,e.CollisionSystem=mo,e.CollisionType=L,e.Color=F,e.ColorBlindFlags=Ws,e.ColorBlindnessMode=bi,e.ColorBlindnessPostProcessor=Si,e.Component=rt,e.CompositeCollider=Wn,e.ConsoleAppender=$e,e.ContactConstraintPoint=co,e.ContactEndEvent=Ft,e.ContactSolveBias=Rn,e.ContactStartEvent=Pt,e.CoordPlane=A,e.CrossFade=Kc,e.CurveBy=Ba,e.CurveTo=za,e.DeactivateEvent=Ht,e.Debug=G,e.DebugConfig=Gs,e.DebugGraphicsComponent=Rr,e.DebugSystem=ms,e.DebugText=Mr,e.DefaultAntialiasOptions=Zr,e.DefaultGarbageCollectionOptions=oc,e.DefaultLoader=Io,e.DefaultPixelArtOptions=Qr,e.DegreeOfFreedom=eo,e.Delay=Pa,e.Detector=Vo,e.Die=Fa,e.Direction=Cr,e.Director=rc,e.DirectorEvents=nc,e.DisplayMode=go,e.DynamicTree=Fn,e.DynamicTreeCollisionProcessor=In,e.EX_VERSION=tl,e.EaseBy=ja,e.EaseTo=Aa,e.EasingFunctions=X,e.Edge=me,e.EdgeCollider=Nn,e.ElasticToActorStrategy=ss,e.EmitterType=fc,e.Engine=uc,e.EngineEvents=cc,e.EnterTriggerEvent=Gt,e.EnterViewPortEvent=Wt,e.Entity=hn,e.EntityEvents=mn,e.EntityManager=gn,e.EventEmitter=s,e.EventTypes=ut,Object.defineProperty(e,"Events",{enumerable:!0,get:function(){return lt}}),e.ExResponse=Co,e.ExcaliburGraphicsContext2DCanvas=ei,e.ExcaliburGraphicsContextWebGL=Zi,e.ExitTriggerEvent=Kt,e.ExitViewPortEvent=Ut,e.Fade=Na,e.FadeInOut=Gc,e.Flags=i,e.Flash=Ra,e.Follow=Ia,e.Font=ta,e.FontCache=Br,e.FontSource=zc,e.FontStyle=Sr,e.FontUnit=yr,e.FpsSampler=Xs,e.FrameStats=Ks,e.Future=o,e.GameEvent=B,e.GameStartEvent=mt,e.GameStopEvent=ht,e.Gamepad=ys,e.GamepadAxisEvent=kt,e.GamepadButtonEvent=Ot,e.GamepadConnectEvent=Et,e.GamepadDisconnectEvent=Dt,e.GamepadEvents=_s,e.Gamepads=vs,e.GarbageCollector=sc,e.Gif=Nc,e.GifParser=Rc,e.GlobalCoordinates=j,e.GpuParticleEmitter=gc,e.GpuParticleRenderer=hc,e.Graph=pe,e.Graphic=U,e.GraphicsComponent=Y,e.GraphicsGroup=cr,e.GraphicsSystem=Hr,e.HashColliderProxy=io,e.HashGridCell=no,e.HashGridProxy=to,e.HiddenEvent=jt,e.HorizontalFirst=Bn,e.ImageFiltering=fr,e.ImageSource=_r,e.ImageSourceAttributeConstants=W,e.ImageWrapping=mr,e.InitializeEvent=Bt,e.InputHost=Rs,e.InputMapper=Ss,e.IsometricEntityComponent=$o,e.IsometricEntitySystem=ns,e.IsometricMap=ts,e.IsometricTile=es,e.KeyEvent=Ds,e.Keyboard=Os,e.Keys=Es,e.KillEvent=dt,e.Label=dc,e.LimitCameraBoundsStrategy=ls,e.Line=Lr,e.LineSegment=M,e.Loader=zo,e.LoaderEvents=Po,e.LockCameraToActorAxisStrategy=os,e.LockCameraToActorStrategy=as,e.LogLevel=Qe,e.Logger=I,e.Material=Ti,e.Matrix=ne,e.MatrixLocations=te,e.MediaEvent=Eo,e.Meet=La,e.MotionComponent=z,e.MotionSystem=uo,e.MoveBy=pa,e.MoveByWithOptions=fa,e.MoveTo=ga,e.MoveToWithOptions=ha,e.NativePointerButton=Ns,e.NativeSoundEvent=Do,e.NativeSoundProcessedEvent=Oo,e.NineSlice=Yr,e.NineSliceStretch=Jr,e.Node=he,e.None=Vn,e.Observable=it,e.OffscreenSystem=Ur,e.Pair=On,e.ParallaxComponent=zr,e.ParallelActions=vc,e.Particle=mi,e.ParticleEmitter=pc,e.ParticleRenderer=gi,e.ParticleTransform=hi,e.PauseComponent=Dn,e.PauseComponentTag=En,e.PauseEvent=Zt,e.PauseSystem=zs,e.PhysicsStats=qs,e.PhysicsWorld=ho,e.PointerAbstraction=js,e.PointerButton=Ps,e.PointerComponent=ia,e.PointerEvent=ks,e.PointerEventReceiver=Ls,e.PointerScope=c,e.PointerSystem=hs,e.PointerType=Ko,e.Polygon=Kr,e.PolygonCollider=Kn,e.Pool=qn,e.PositionNode=ge,e.PostCollisionEvent=Nt,e.PostDebugDrawEvent=xt,e.PostDrawEvent=_t,e.PostFrameEvent=Tt,e.PostKillEvent=pt,e.PostTransformDrawEvent=yt,e.PostUpdateEvent=Ct,e.PreCollisionEvent=Mt,e.PreDebugDrawEvent=bt,e.PreDrawEvent=gt,e.PreFrameEvent=wt,e.PreKillEvent=ft,e.PreLoadEvent=Bs,e.PreTransformDrawEvent=vt,e.PreUpdateEvent=St,e.Projection=N,e.QuadIndexBuffer=Ci,e.QuadTree=oo,e.Query=_n,e.QueryManager=yn,e.RadiusAroundActorStrategy=cs,e.Random=p,e.Raster=vr,e.Ray=ie,e.RealisticSolver=lo,e.Rectangle=Gr,e.RemoveEvent=Xt,e.RemovedComponent=fn,e.RentalPool=wr,e.Repeat=la,e.RepeatForever=ua,e.Resolution=_o,e.Resource=ur,e.ResourceEvents=lr,e.ResumeEvent=Qt,e.RotateBy=Sa,e.RotateByWithOptions=xa,e.RotateTo=ya,e.RotateToWithOptions=va,e.RotationType=l,e.ScaleBy=Oa,e.ScaleByWithOptions=Da,e.ScaleTo=Ta,e.ScaleToWithOptions=wa,e.Scene=Us,e.SceneEvents=Vs,e.Screen=yo,e.ScreenAppender=et,e.ScreenElement=Uo,e.ScreenEvents=vo,e.ScreenShader=yi,e.ScrollPreventionMode=lc,e.Semaphore=el,e.SeparatingAxis=Yn,e.SeparationInfo=Jn,e.Serializer=qa,e.Shader=ui,e.Shape=Gn,Object.defineProperty(e,"Side",{enumerable:!0,get:function(){return V}}),e.Slide=qc,e.SolverStrategy=Ln,e.Sound=No,e.SoundEvents=jo,e.SoundManager=Mc,e.SparseHashGrid=ro,e.SparseHashGridCollisionProcessor=ao,e.SpatialPartitionStrategy=Hn,e.Sprite=dr,e.SpriteFont=Or,e.SpriteSheet=Ar,e.StandardClock=Qs,e.StateMachine=wo,e.StrategyContainer=rs,e.Stream=Ic,e.System=Sn,e.SystemManager=wn,e.SystemPriority=bn,e.SystemType=xn,e.TagQuery=vn,e.TestClock=$s,e.Text=na,e.TextAlign=br,e.TextureLoader=gr,e.Tile=Qo,e.TileMap=Zo,e.TileMapEvents=Xo,e.TiledAnimation=Xr,e.TiledSprite=kr,e.Timer=Go,e.TimerEvents=Wo,e.Toaster=tc,e.Transform=re,e.TransformComponent=R,e.Transition=Wc,e.TreeNode=Pn,e.Trigger=ps,e.TriggerEvents=fs,e.TwoPI=m,e.UniformBuffer=ti,Object.defineProperty(e,"Util",{enumerable:!0,get:function(){return Ja}}),e.Vector=T,e.VectorView=D,e.VertexBuffer=_i,e.VertexLayout=vi,e.VerticalFirst=zn,e.VisibleEvent=At,e.WebAudio=So,e.WebAudioInstance=To,e.WheelDeltaMode=Ms,e.WheelEvent=As,e.World=Tn,e.angleDifference=b,e.approximatelyEqual=v,e.assert=mc,e.canonicalizeAngle=y,e.clamp=_,e.coroutine=Uc,e.createId=a,e.easeInBack=He,e.easeInBounce=Ye,e.easeInCirc=ze,e.easeInCubic=De,e.easeInElastic=Ge,e.easeInExpo=Ie,e.easeInOutBack=We,e.easeInOutBounce=Xe,e.easeInOutCirc=Ve,e.easeInOutCubic=ke,e.easeInOutElastic=qe,e.easeInOutExpo=Re,e.easeInOutQuad=Ee,e.easeInOutQuart=Me,e.easeInOutQuint=Fe,e.easeInOutSine=Ce,e.easeInQuad=we,e.easeInQuart=Ae,e.easeInQuint=Ne,e.easeInSine=xe,e.easeOutBack=Ue,e.easeOutBounce=Je,e.easeOutCirc=Be,e.easeOutCubic=Oe,e.easeOutElastic=Ke,e.easeOutExpo=Le,e.easeOutQuad=Te,e.easeOutQuart=je,e.easeOutQuint=Pe,e.easeOutSine=Se,e.frac=h,e.getDefaultPhysicsConfig=Un,e.glTypeToUniformTypeName=li,e.hasGraphicsTick=ra,e.hasOnAdd=Dc,e.hasOnInitialize=Sc,e.hasOnPostUpdate=Ec,e.hasOnPreUpdate=wc,e.hasOnRemove=Oc,e.hasPostDraw=Ac,e.hasPreDraw=kc,e.has_add=bc,e.has_initialize=yc,e.has_postupdate=Tc,e.has_preupdate=Cc,e.has_remove=xc,e.inverseLerp=se,e.inverseLerpVector=ce,e.isActor=Za,e.isAddedComponent=dn,e.isComponentCtor=tt,e.isLegacyEasing=oa,e.isLoaderConstructor=Fo,e.isMoveByOptions=da,e.isMoveToOptions=ma,e.isRemovedComponent=pn,e.isRotateByOptions=ba,e.isRotateToOptions=_a,e.isScaleByOptions=Ea,e.isScaleToOptions=Ca,e.isSceneConstructor=Hs,e.isScreenElement=Ho,e.isSystemConstructor=Cn,e.lerp=P,e.lerpAngle=ae,e.lerpVector=oe,e.linear=ve,e.maxMessages=Jc,e.nextActionId=Z,e.obsolete=Qc,e.parseImageFiltering=pr,e.parseImageWrapping=hr,e.pixelSnapEpsilon=J,e.randomInRange=w,e.randomIntInRange=ee,e.range=C,e.remap=le,e.remapVector=ue,e.resetObsoleteCounter=Xc,e.sign=g,e.smootherstep=be,e.smoothstep=ye,e.toDegrees=x,e.toRadians=S,e.vec=E,Object.defineProperty(e,"webgl",{enumerable:!0,get:function(){return ni}})});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! excalibur - 0.33.0-alpha.
|
|
1
|
+
/*! excalibur - 0.33.0-alpha.151+f2f287a - 2026-6-4
|
|
2
2
|
https://github.com/excaliburjs/Excalibur
|
|
3
3
|
Copyright (c) 2026 Excalibur.js <https://github.com/excaliburjs/Excalibur/graphs/contributors>
|
|
4
4
|
Licensed BSD-2-Clause
|
|
@@ -33174,7 +33174,7 @@ var Semaphore = class {
|
|
|
33174
33174
|
* The current Excalibur version string
|
|
33175
33175
|
* @description `process.env.__EX_VERSION` gets replaced by Webpack on build
|
|
33176
33176
|
*/
|
|
33177
|
-
var EX_VERSION = "0.33.0-alpha.
|
|
33177
|
+
var EX_VERSION = "0.33.0-alpha.151+f2f287a";
|
|
33178
33178
|
polyfill();
|
|
33179
33179
|
//#endregion
|
|
33180
33180
|
export { ActionCompleteEvent, ActionContext, ActionQueue, ActionSequence, ActionStartEvent, ActionsComponent, ActionsSystem, ActivateEvent, Actor, ActorEvents, AddEvent, AddedComponent, AffineMatrix, Animation, AnimationDirection, AnimationEvents, AnimationStrategy, ArcadeSolver, AudioContextFactory, Axes, Axis, BaseAlign, BezierCurve, Blink, BodyComponent, BoundingBox, BrowserComponent, BrowserEvents, Buttons, Camera, CameraEvents, Canvas, ChannelCollection, Circle, CircleCollider, Clock, ClosestLineJumpTable, Collider, ColliderComponent, CollisionContact, CollisionEndEvent, CollisionGroup, CollisionGroupManager, CollisionJumpTable, CollisionPostSolveEvent, CollisionPreSolveEvent, CollisionStartEvent, CollisionSystem, CollisionType, Color, ColorBlindFlags, ColorBlindnessMode, ColorBlindnessPostProcessor, Component, CompositeCollider, ConsoleAppender, ContactConstraintPoint, ContactEndEvent, ContactSolveBias, ContactStartEvent, CoordPlane, CrossFade, CurveBy, CurveTo, DeactivateEvent, Debug, DebugConfig, DebugGraphicsComponent, DebugSystem, DebugText, DefaultAntialiasOptions, DefaultGarbageCollectionOptions, DefaultLoader, DefaultPixelArtOptions, DegreeOfFreedom, Delay, Detector, Die, Direction, Director, DirectorEvents, DisplayMode, DynamicTree, DynamicTreeCollisionProcessor, EX_VERSION, EaseBy, EaseTo, EasingFunctions, Edge, EdgeCollider, ElasticToActorStrategy, EmitterType, Engine, EngineEvents, EnterTriggerEvent, EnterViewPortEvent, Entity, EntityEvents, EntityManager, EventEmitter, EventTypes, events_exports as Events, ExResponse, ExcaliburGraphicsContext2DCanvas, ExcaliburGraphicsContextWebGL, ExitTriggerEvent, ExitViewPortEvent, Fade, FadeInOut, Flags, Flash, Follow, Font, FontCache, FontSource, FontStyle, FontUnit, FpsSampler, FrameStats, Future, GameEvent, GameStartEvent, GameStopEvent, Gamepad, GamepadAxisEvent, GamepadButtonEvent, GamepadConnectEvent, GamepadDisconnectEvent, GamepadEvents, Gamepads, GarbageCollector, Gif, GifParser, GlobalCoordinates, GpuParticleEmitter, GpuParticleRenderer, Graph, Graphic, GraphicsComponent, GraphicsGroup, GraphicsSystem, HashColliderProxy, HashGridCell, HashGridProxy, HiddenEvent, HorizontalFirst, ImageFiltering, ImageSource, ImageSourceAttributeConstants, ImageWrapping, InitializeEvent, InputHost, InputMapper, IsometricEntityComponent, IsometricEntitySystem, IsometricMap, IsometricTile, KeyEvent, Keyboard, Keys, KillEvent, Label, LimitCameraBoundsStrategy, Line, LineSegment, Loader, LoaderEvents, LockCameraToActorAxisStrategy, LockCameraToActorStrategy, LogLevel, Logger, Material, Matrix, MatrixLocations, MediaEvent, Meet, MotionComponent, MotionSystem, MoveBy, MoveByWithOptions, MoveTo, MoveToWithOptions, NativePointerButton, NativeSoundEvent, NativeSoundProcessedEvent, NineSlice, NineSliceStretch, Node, None, Observable, OffscreenSystem, Pair, ParallaxComponent, ParallelActions, Particle, ParticleEmitter, ParticleRenderer, ParticleTransform, PauseComponent, PauseComponentTag, PauseEvent, PauseSystem, PhysicsStats, PhysicsWorld, PointerAbstraction, PointerButton, PointerComponent, PointerEvent, PointerEventReceiver, PointerScope, PointerSystem, PointerType, Polygon, PolygonCollider, Pool, PositionNode, PostCollisionEvent, PostDebugDrawEvent, PostDrawEvent, PostFrameEvent, PostKillEvent, PostTransformDrawEvent, PostUpdateEvent, PreCollisionEvent, PreDebugDrawEvent, PreDrawEvent, PreFrameEvent, PreKillEvent, PreLoadEvent, PreTransformDrawEvent, PreUpdateEvent, Projection, QuadIndexBuffer, QuadTree, Query, QueryManager, RadiusAroundActorStrategy, Random, Raster, Ray, RealisticSolver, Rectangle, RemoveEvent, RemovedComponent, RentalPool, Repeat, RepeatForever, Resolution, Resource, ResourceEvents, ResumeEvent, RotateBy, RotateByWithOptions, RotateTo, RotateToWithOptions, RotationType, ScaleBy, ScaleByWithOptions, ScaleTo, ScaleToWithOptions, Scene, SceneEvents, Screen, ScreenAppender, ScreenElement, ScreenEvents, ScreenShader, ScrollPreventionMode, Semaphore, SeparatingAxis, SeparationInfo, Serializer, Shader, Shape, Side, Slide, SolverStrategy, Sound, SoundEvents, SoundManager, SparseHashGrid, SparseHashGridCollisionProcessor, SpatialPartitionStrategy, Sprite, SpriteFont, SpriteSheet, StandardClock, StateMachine, StrategyContainer, Stream, System, SystemManager, SystemPriority, SystemType, TagQuery, TestClock, Text, TextAlign, TextureLoader, Tile, TileMap, TileMapEvents, TiledAnimation, TiledSprite, Timer, TimerEvents, Toaster, Transform, TransformComponent, Transition, TreeNode, Trigger, TriggerEvents, TwoPI, UniformBuffer, util_exports as Util, Vector, VectorView, VertexBuffer, VertexLayout, VerticalFirst, VisibleEvent, WebAudio, WebAudioInstance, WheelDeltaMode, WheelEvent, World, angleDifference, approximatelyEqual, assert, canonicalizeAngle, clamp, coroutine, createId, easeInBack, easeInBounce, easeInCirc, easeInCubic, easeInElastic, easeInExpo, easeInOutBack, easeInOutBounce, easeInOutCirc, easeInOutCubic, easeInOutElastic, easeInOutExpo, easeInOutQuad, easeInOutQuart, easeInOutQuint, easeInOutSine, easeInQuad, easeInQuart, easeInQuint, easeInSine, easeOutBack, easeOutBounce, easeOutCirc, easeOutCubic, easeOutElastic, easeOutExpo, easeOutQuad, easeOutQuart, easeOutQuint, easeOutSine, frac, getDefaultPhysicsConfig, glTypeToUniformTypeName, hasGraphicsTick, hasOnAdd, hasOnInitialize, hasOnPostUpdate, hasOnPreUpdate, hasOnRemove, hasPostDraw, hasPreDraw, has_add, has_initialize, has_postupdate, has_preupdate, has_remove, inverseLerp, inverseLerpVector, isActor, isAddedComponent, isComponentCtor, isLegacyEasing, isLoaderConstructor, isMoveByOptions, isMoveToOptions, isRemovedComponent, isRotateByOptions, isRotateToOptions, isScaleByOptions, isScaleToOptions, isSceneConstructor, isScreenElement, isSystemConstructor, lerp, lerpAngle, lerpVector, linear, maxMessages, nextActionId, obsolete, parseImageFiltering, parseImageWrapping, pixelSnapEpsilon, randomInRange, randomIntInRange, range, remap, remapVector, resetObsoleteCounter, sign, smootherstep, smoothstep, toDegrees, toRadians, vec, webgl_util_exports as webgl };
|
package/build/esm/excalibur.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! excalibur - 0.33.0-alpha.
|
|
1
|
+
/*! excalibur - 0.33.0-alpha.151+f2f287a - 2026-6-4
|
|
2
2
|
https://github.com/excaliburjs/Excalibur
|
|
3
3
|
Copyright (c) 2026 Excalibur.js <https://github.com/excaliburjs/Excalibur/graphs/contributors>
|
|
4
4
|
Licensed BSD-2-Clause
|
|
@@ -33174,7 +33174,7 @@ var Semaphore = class {
|
|
|
33174
33174
|
* The current Excalibur version string
|
|
33175
33175
|
* @description `process.env.__EX_VERSION` gets replaced by Webpack on build
|
|
33176
33176
|
*/
|
|
33177
|
-
var EX_VERSION = "0.33.0-alpha.
|
|
33177
|
+
var EX_VERSION = "0.33.0-alpha.151+f2f287a";
|
|
33178
33178
|
polyfill();
|
|
33179
33179
|
//#endregion
|
|
33180
33180
|
export { ActionCompleteEvent, ActionContext, ActionQueue, ActionSequence, ActionStartEvent, ActionsComponent, ActionsSystem, ActivateEvent, Actor, ActorEvents, AddEvent, AddedComponent, AffineMatrix, Animation, AnimationDirection, AnimationEvents, AnimationStrategy, ArcadeSolver, AudioContextFactory, Axes, Axis, BaseAlign, BezierCurve, Blink, BodyComponent, BoundingBox, BrowserComponent, BrowserEvents, Buttons, Camera, CameraEvents, Canvas, ChannelCollection, Circle, CircleCollider, Clock, ClosestLineJumpTable, Collider, ColliderComponent, CollisionContact, CollisionEndEvent, CollisionGroup, CollisionGroupManager, CollisionJumpTable, CollisionPostSolveEvent, CollisionPreSolveEvent, CollisionStartEvent, CollisionSystem, CollisionType, Color, ColorBlindFlags, ColorBlindnessMode, ColorBlindnessPostProcessor, Component, CompositeCollider, ConsoleAppender, ContactConstraintPoint, ContactEndEvent, ContactSolveBias, ContactStartEvent, CoordPlane, CrossFade, CurveBy, CurveTo, DeactivateEvent, Debug, DebugConfig, DebugGraphicsComponent, DebugSystem, DebugText, DefaultAntialiasOptions, DefaultGarbageCollectionOptions, DefaultLoader, DefaultPixelArtOptions, DegreeOfFreedom, Delay, Detector, Die, Direction, Director, DirectorEvents, DisplayMode, DynamicTree, DynamicTreeCollisionProcessor, EX_VERSION, EaseBy, EaseTo, EasingFunctions, Edge, EdgeCollider, ElasticToActorStrategy, EmitterType, Engine, EngineEvents, EnterTriggerEvent, EnterViewPortEvent, Entity, EntityEvents, EntityManager, EventEmitter, EventTypes, events_exports as Events, ExResponse, ExcaliburGraphicsContext2DCanvas, ExcaliburGraphicsContextWebGL, ExitTriggerEvent, ExitViewPortEvent, Fade, FadeInOut, Flags, Flash, Follow, Font, FontCache, FontSource, FontStyle, FontUnit, FpsSampler, FrameStats, Future, GameEvent, GameStartEvent, GameStopEvent, Gamepad, GamepadAxisEvent, GamepadButtonEvent, GamepadConnectEvent, GamepadDisconnectEvent, GamepadEvents, Gamepads, GarbageCollector, Gif, GifParser, GlobalCoordinates, GpuParticleEmitter, GpuParticleRenderer, Graph, Graphic, GraphicsComponent, GraphicsGroup, GraphicsSystem, HashColliderProxy, HashGridCell, HashGridProxy, HiddenEvent, HorizontalFirst, ImageFiltering, ImageSource, ImageSourceAttributeConstants, ImageWrapping, InitializeEvent, InputHost, InputMapper, IsometricEntityComponent, IsometricEntitySystem, IsometricMap, IsometricTile, KeyEvent, Keyboard, Keys, KillEvent, Label, LimitCameraBoundsStrategy, Line, LineSegment, Loader, LoaderEvents, LockCameraToActorAxisStrategy, LockCameraToActorStrategy, LogLevel, Logger, Material, Matrix, MatrixLocations, MediaEvent, Meet, MotionComponent, MotionSystem, MoveBy, MoveByWithOptions, MoveTo, MoveToWithOptions, NativePointerButton, NativeSoundEvent, NativeSoundProcessedEvent, NineSlice, NineSliceStretch, Node, None, Observable, OffscreenSystem, Pair, ParallaxComponent, ParallelActions, Particle, ParticleEmitter, ParticleRenderer, ParticleTransform, PauseComponent, PauseComponentTag, PauseEvent, PauseSystem, PhysicsStats, PhysicsWorld, PointerAbstraction, PointerButton, PointerComponent, PointerEvent, PointerEventReceiver, PointerScope, PointerSystem, PointerType, Polygon, PolygonCollider, Pool, PositionNode, PostCollisionEvent, PostDebugDrawEvent, PostDrawEvent, PostFrameEvent, PostKillEvent, PostTransformDrawEvent, PostUpdateEvent, PreCollisionEvent, PreDebugDrawEvent, PreDrawEvent, PreFrameEvent, PreKillEvent, PreLoadEvent, PreTransformDrawEvent, PreUpdateEvent, Projection, QuadIndexBuffer, QuadTree, Query, QueryManager, RadiusAroundActorStrategy, Random, Raster, Ray, RealisticSolver, Rectangle, RemoveEvent, RemovedComponent, RentalPool, Repeat, RepeatForever, Resolution, Resource, ResourceEvents, ResumeEvent, RotateBy, RotateByWithOptions, RotateTo, RotateToWithOptions, RotationType, ScaleBy, ScaleByWithOptions, ScaleTo, ScaleToWithOptions, Scene, SceneEvents, Screen, ScreenAppender, ScreenElement, ScreenEvents, ScreenShader, ScrollPreventionMode, Semaphore, SeparatingAxis, SeparationInfo, Serializer, Shader, Shape, Side, Slide, SolverStrategy, Sound, SoundEvents, SoundManager, SparseHashGrid, SparseHashGridCollisionProcessor, SpatialPartitionStrategy, Sprite, SpriteFont, SpriteSheet, StandardClock, StateMachine, StrategyContainer, Stream, System, SystemManager, SystemPriority, SystemType, TagQuery, TestClock, Text, TextAlign, TextureLoader, Tile, TileMap, TileMapEvents, TiledAnimation, TiledSprite, Timer, TimerEvents, Toaster, Transform, TransformComponent, Transition, TreeNode, Trigger, TriggerEvents, TwoPI, UniformBuffer, util_exports as Util, Vector, VectorView, VertexBuffer, VertexLayout, VerticalFirst, VisibleEvent, WebAudio, WebAudioInstance, WheelDeltaMode, WheelEvent, World, angleDifference, approximatelyEqual, assert, canonicalizeAngle, clamp, coroutine, createId, easeInBack, easeInBounce, easeInCirc, easeInCubic, easeInElastic, easeInExpo, easeInOutBack, easeInOutBounce, easeInOutCirc, easeInOutCubic, easeInOutElastic, easeInOutExpo, easeInOutQuad, easeInOutQuart, easeInOutQuint, easeInOutSine, easeInQuad, easeInQuart, easeInQuint, easeInSine, easeOutBack, easeOutBounce, easeOutCirc, easeOutCubic, easeOutElastic, easeOutExpo, easeOutQuad, easeOutQuart, easeOutQuint, easeOutSine, frac, getDefaultPhysicsConfig, glTypeToUniformTypeName, hasGraphicsTick, hasOnAdd, hasOnInitialize, hasOnPostUpdate, hasOnPreUpdate, hasOnRemove, hasPostDraw, hasPreDraw, has_add, has_initialize, has_postupdate, has_preupdate, has_remove, inverseLerp, inverseLerpVector, isActor, isAddedComponent, isComponentCtor, isLegacyEasing, isLoaderConstructor, isMoveByOptions, isMoveToOptions, isRemovedComponent, isRotateByOptions, isRotateToOptions, isScaleByOptions, isScaleToOptions, isSceneConstructor, isScreenElement, isSystemConstructor, lerp, lerpAngle, lerpVector, linear, maxMessages, nextActionId, obsolete, parseImageFiltering, parseImageWrapping, pixelSnapEpsilon, randomInRange, randomIntInRange, range, remap, remapVector, resetObsoleteCounter, sign, smootherstep, smoothstep, toDegrees, toRadians, vec, webgl_util_exports as webgl };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! excalibur - 0.33.0-alpha.
|
|
1
|
+
/*! excalibur - 0.33.0-alpha.151+f2f287a - 2026-6-4
|
|
2
2
|
https://github.com/excaliburjs/Excalibur
|
|
3
3
|
Copyright (c) 2026 Excalibur.js <https://github.com/excaliburjs/Excalibur/graphs/contributors>
|
|
4
4
|
Licensed BSD-2-Clause
|
|
@@ -16263,7 +16263,7 @@ var Qc = class {
|
|
|
16263
16263
|
this._count += e;
|
|
16264
16264
|
}
|
|
16265
16265
|
}
|
|
16266
|
-
}, el = "0.33.0-alpha.
|
|
16266
|
+
}, el = "0.33.0-alpha.151+f2f287a";
|
|
16267
16267
|
n();
|
|
16268
16268
|
//#endregion
|
|
16269
16269
|
export { Yt as ActionCompleteEvent, Ja as ActionContext, oa as ActionQueue, gc as ActionSequence, Jt as ActionStartEvent, Ya as ActionsComponent, hs as ActionsSystem, Ht as ActivateEvent, Qa as Actor, Za as ActorEvents, Xt as AddEvent, dn as AddedComponent, D as AffineMatrix, sr as Animation, ir as AnimationDirection, or as AnimationEvents, ar as AnimationStrategy, oo as ArcadeSolver, yo as AudioContextFactory, bs as Axes, rs as Axis, br as BaseAlign, fe as BezierCurve, ja as Blink, $ as BodyComponent, B as BoundingBox, qs as BrowserComponent, Js as BrowserEvents, ys as Buttons, us as Camera, ls as CameraEvents, Kr as Canvas, Ac as ChannelCollection, Ur as Circle, er as CircleCollider, Xs as Clock, Nn as ClosestLineJumpTable, jn as Collider, Q as ColliderComponent, An as CollisionContact, Bt as CollisionEndEvent, lt as CollisionGroup, st as CollisionGroupManager, $n as CollisionJumpTable, Rt as CollisionPostSolveEvent, Lt as CollisionPreSolveEvent, zt as CollisionStartEvent, po as CollisionSystem, F as CollisionType, N as Color, Us as ColorBlindFlags, yi as ColorBlindnessMode, xi as ColorBlindnessPostProcessor, it as Component, V as CompositeCollider, et as ConsoleAppender, so as ContactConstraintPoint, It as ContactEndEvent, zn as ContactSolveBias, Ft as ContactStartEvent, k as CoordPlane, Gc as CrossFade, za as CurveBy, Ra as CurveTo, Ut as DeactivateEvent, G as Debug, Ws as DebugConfig, Lr as DebugGraphicsComponent, ps as DebugSystem, jr as DebugText, Xr as DefaultAntialiasOptions, ac as DefaultGarbageCollectionOptions, Fo as DefaultLoader, Zr as DefaultPixelArtOptions, $a as DegreeOfFreedom, Na as Delay, Bo as Detector, Pa as Die, Sr as Direction, nc as Director, tc as DirectorEvents, ho as DisplayMode, In as DynamicTree, Ln as DynamicTreeCollisionProcessor, el as EX_VERSION, Aa as EaseBy, ka as EaseTo, X as EasingFunctions, he as Edge, Pn as EdgeCollider, os as ElasticToActorStrategy, dc as EmitterType, lc as Engine, sc as EngineEvents, Kt as EnterTriggerEvent, Gt as EnterViewPortEvent, gn as Entity, hn as EntityEvents, _n as EntityManager, o as EventEmitter, dt as EventTypes, ut as Events, So as ExResponse, $r as ExcaliburGraphicsContext2DCanvas, Xi as ExcaliburGraphicsContextWebGL, qt as ExitTriggerEvent, Wt as ExitViewPortEvent, Ma as Fade, Wc as FadeInOut, r as Flags, La as Flash, Fa as Follow, ea as Font, zr as FontCache, Rc as FontSource, xr as FontStyle, vr as FontUnit, Ys as FpsSampler, Gs as FrameStats, a as Future, R as GameEvent, ht as GameStartEvent, gt as GameStopEvent, vs as Gamepad, At as GamepadAxisEvent, kt as GamepadButtonEvent, Dt as GamepadConnectEvent, Ot as GamepadDisconnectEvent, gs as GamepadEvents, _s as Gamepads, oc as GarbageCollector, Mc as Gif, Lc as GifParser, ie as GlobalCoordinates, hc as GpuParticleEmitter, mc as GpuParticleRenderer, me as Graph, H as Graphic, Y as GraphicsComponent, cr as GraphicsGroup, Vr as GraphicsSystem, ro as HashColliderProxy, to as HashGridCell, eo as HashGridProxy, Mt as HiddenEvent, Vn as HorizontalFirst, fr as ImageFiltering, gr as ImageSource, W as ImageSourceAttributeConstants, U as ImageWrapping, Vt as InitializeEvent, Ls as InputHost, xs as InputMapper, Qo as IsometricEntityComponent, ts as IsometricEntitySystem, es as IsometricMap, $o as IsometricTile, Es as KeyEvent, Ds as Keyboard, Ts as Keys, ft as KillEvent, uc as Label, cs as LimitCameraBoundsStrategy, Ir as Line, A as LineSegment, Ro as Loader, No as LoaderEvents, as as LockCameraToActorAxisStrategy, is as LockCameraToActorStrategy, $e as LogLevel, P as Logger, wi as Material, ne as Matrix, te as MatrixLocations, To as MediaEvent, Ia as Meet, L as MotionComponent, lo as MotionSystem, fa as MoveBy, da as MoveByWithOptions, ha as MoveTo, ma as MoveToWithOptions, Ms as NativePointerButton, Eo as NativeSoundEvent, Do as NativeSoundProcessedEvent, Jr as NineSlice, qr as NineSliceStretch, ge as Node, Hn as None, at as Observable, Hr as OffscreenSystem, kn as Pair, Rr as ParallaxComponent, _c as ParallelActions, pi as Particle, fc as ParticleEmitter, hi as ParticleRenderer, mi as ParticleTransform, On as PauseComponent, Dn as PauseComponentTag, Qt as PauseEvent, Rs as PauseSystem, Ks as PhysicsStats, mo as PhysicsWorld, As as PointerAbstraction, Ns as PointerButton, ra as PointerComponent, Os as PointerEvent, Is as PointerEventReceiver, s as PointerScope, ms as PointerSystem, Go as PointerType, Gr as Polygon, Kn as PolygonCollider, qn as Pool, _e as PositionNode, Pt as PostCollisionEvent, St as PostDebugDrawEvent, vt as PostDrawEvent, Et as PostFrameEvent, mt as PostKillEvent, bt as PostTransformDrawEvent, wt as PostUpdateEvent, Nt as PreCollisionEvent, xt as PreDebugDrawEvent, _t as PreDrawEvent, Tt as PreFrameEvent, pt as PreKillEvent, zs as PreLoadEvent, yt as PreTransformDrawEvent, Ct as PreUpdateEvent, ae as Projection, Si as QuadIndexBuffer, ao as QuadTree, vn as Query, bn as QueryManager, ss as RadiusAroundActorStrategy, f as Random, _r as Raster, j as Ray, co as RealisticSolver, Wr as Rectangle, Zt as RemoveEvent, pn as RemovedComponent, Cr as RentalPool, ca as Repeat, la as RepeatForever, go as Resolution, ur as Resource, lr as ResourceEvents, $t as ResumeEvent, xa as RotateBy, ba as RotateByWithOptions, va as RotateTo, _a as RotateToWithOptions, c as RotationType, Da as ScaleBy, Ea as ScaleByWithOptions, wa as ScaleTo, Ca as ScaleToWithOptions, Hs as Scene, Bs as SceneEvents, vo as Screen, tt as ScreenAppender, Ho as ScreenElement, _o as ScreenEvents, vi as ScreenShader, cc as ScrollPreventionMode, $c as Semaphore, Yn as SeparatingAxis, Jn as SeparationInfo, Ka as Serializer, li as Shader, Gn as Shape, z as Side, Kc as Slide, Rn as SolverStrategy, Mo as Sound, Ao as SoundEvents, jc as SoundManager, no as SparseHashGrid, io as SparseHashGridCollisionProcessor, Un as SpatialPartitionStrategy, dr as Sprite, Dr as SpriteFont, kr as SpriteSheet, Zs as StandardClock, Co as StateMachine, ns as StrategyContainer, Fc as Stream, Cn as System, Tn as SystemManager, xn as SystemPriority, Sn as SystemType, yn as TagQuery, Qs as TestClock, ta as Text, yr as TextAlign, hr as TextureLoader, Zo as Tile, Xo as TileMap, Yo as TileMapEvents, Yr as TiledAnimation, Or as TiledSprite, Wo as Timer, Uo as TimerEvents, ec as Toaster, re as Transform, I as TransformComponent, Uc as Transition, Fn as TreeNode, fs as Trigger, ds as TriggerEvents, p as TwoPI, ei as UniformBuffer, qa as Util, w as Vector, E as VectorView, gi as VertexBuffer, _i as VertexLayout, Bn as VerticalFirst, jt as VisibleEvent, xo as WebAudio, wo as WebAudioInstance, js as WheelDeltaMode, ks as WheelEvent, En as World, y as angleDifference, _ as approximatelyEqual, pc as assert, v as canonicalizeAngle, g as clamp, Hc as coroutine, i as createId, Ue as easeInBack, Xe as easeInBounce, Be as easeInCirc, Oe as easeInCubic, Ke as easeInElastic, Le as easeInExpo, Ge as easeInOutBack, Ze as easeInOutBounce, He as easeInOutCirc, Ae as easeInOutCubic, Je as easeInOutElastic, ze as easeInOutExpo, De as easeInOutQuad, Ne as easeInOutQuart, Ie as easeInOutQuint, we as easeInOutSine, Te as easeInQuad, je as easeInQuart, Pe as easeInQuint, Se as easeInSine, We as easeOutBack, Ye as easeOutBounce, Ve as easeOutCirc, ke as easeOutCubic, qe as easeOutElastic, Re as easeOutExpo, Ee as easeOutQuad, Me as easeOutQuart, Fe as easeOutQuint, Ce as easeOutSine, m as frac, Wn as getDefaultPhysicsConfig, ci as glTypeToUniformTypeName, na as hasGraphicsTick, Ec as hasOnAdd, xc as hasOnInitialize, Tc as hasOnPostUpdate, Cc as hasOnPreUpdate, Dc as hasOnRemove, kc as hasPostDraw, Oc as hasPreDraw, yc as has_add, vc as has_initialize, wc as has_postupdate, Sc as has_preupdate, bc as has_remove, ce as inverseLerp, le as inverseLerpVector, Xa as isActor, fn as isAddedComponent, nt as isComponentCtor, aa as isLegacyEasing, Po as isLoaderConstructor, ua as isMoveByOptions, pa as isMoveToOptions, mn as isRemovedComponent, ya as isRotateByOptions, ga as isRotateToOptions, Ta as isScaleByOptions, Sa as isScaleToOptions, Vs as isSceneConstructor, Vo as isScreenElement, wn as isSystemConstructor, M as lerp, oe as lerpAngle, se as lerpVector, ye as linear, qc as maxMessages, Z as nextActionId, Zc as obsolete, pr as parseImageFiltering, mr as parseImageWrapping, J as pixelSnapEpsilon, C as randomInRange, ee as randomIntInRange, S as range, ue as remap, de as remapVector, Yc as resetObsoleteCounter, h as sign, xe as smootherstep, be as smoothstep, b as toDegrees, x as toRadians, T as vec, ti as webgl };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! excalibur - 0.33.0-alpha.
|
|
1
|
+
/*! excalibur - 0.33.0-alpha.151+f2f287a - 2026-6-4
|
|
2
2
|
https://github.com/excaliburjs/Excalibur
|
|
3
3
|
Copyright (c) 2026 Excalibur.js <https://github.com/excaliburjs/Excalibur/graphs/contributors>
|
|
4
4
|
Licensed BSD-2-Clause
|
|
@@ -16263,7 +16263,7 @@ var Qc = class {
|
|
|
16263
16263
|
this._count += e;
|
|
16264
16264
|
}
|
|
16265
16265
|
}
|
|
16266
|
-
}, el = "0.33.0-alpha.
|
|
16266
|
+
}, el = "0.33.0-alpha.151+f2f287a";
|
|
16267
16267
|
n();
|
|
16268
16268
|
//#endregion
|
|
16269
16269
|
export { Yt as ActionCompleteEvent, Ja as ActionContext, oa as ActionQueue, gc as ActionSequence, Jt as ActionStartEvent, Ya as ActionsComponent, hs as ActionsSystem, Ht as ActivateEvent, Qa as Actor, Za as ActorEvents, Xt as AddEvent, dn as AddedComponent, D as AffineMatrix, sr as Animation, ir as AnimationDirection, or as AnimationEvents, ar as AnimationStrategy, oo as ArcadeSolver, yo as AudioContextFactory, bs as Axes, rs as Axis, br as BaseAlign, fe as BezierCurve, ja as Blink, $ as BodyComponent, B as BoundingBox, qs as BrowserComponent, Js as BrowserEvents, ys as Buttons, us as Camera, ls as CameraEvents, Kr as Canvas, Ac as ChannelCollection, Ur as Circle, er as CircleCollider, Xs as Clock, Nn as ClosestLineJumpTable, jn as Collider, Q as ColliderComponent, An as CollisionContact, Bt as CollisionEndEvent, lt as CollisionGroup, st as CollisionGroupManager, $n as CollisionJumpTable, Rt as CollisionPostSolveEvent, Lt as CollisionPreSolveEvent, zt as CollisionStartEvent, po as CollisionSystem, F as CollisionType, N as Color, Us as ColorBlindFlags, yi as ColorBlindnessMode, xi as ColorBlindnessPostProcessor, it as Component, V as CompositeCollider, et as ConsoleAppender, so as ContactConstraintPoint, It as ContactEndEvent, zn as ContactSolveBias, Ft as ContactStartEvent, k as CoordPlane, Gc as CrossFade, za as CurveBy, Ra as CurveTo, Ut as DeactivateEvent, G as Debug, Ws as DebugConfig, Lr as DebugGraphicsComponent, ps as DebugSystem, jr as DebugText, Xr as DefaultAntialiasOptions, ac as DefaultGarbageCollectionOptions, Fo as DefaultLoader, Zr as DefaultPixelArtOptions, $a as DegreeOfFreedom, Na as Delay, Bo as Detector, Pa as Die, Sr as Direction, nc as Director, tc as DirectorEvents, ho as DisplayMode, In as DynamicTree, Ln as DynamicTreeCollisionProcessor, el as EX_VERSION, Aa as EaseBy, ka as EaseTo, X as EasingFunctions, he as Edge, Pn as EdgeCollider, os as ElasticToActorStrategy, dc as EmitterType, lc as Engine, sc as EngineEvents, Kt as EnterTriggerEvent, Gt as EnterViewPortEvent, gn as Entity, hn as EntityEvents, _n as EntityManager, o as EventEmitter, dt as EventTypes, ut as Events, So as ExResponse, $r as ExcaliburGraphicsContext2DCanvas, Xi as ExcaliburGraphicsContextWebGL, qt as ExitTriggerEvent, Wt as ExitViewPortEvent, Ma as Fade, Wc as FadeInOut, r as Flags, La as Flash, Fa as Follow, ea as Font, zr as FontCache, Rc as FontSource, xr as FontStyle, vr as FontUnit, Ys as FpsSampler, Gs as FrameStats, a as Future, R as GameEvent, ht as GameStartEvent, gt as GameStopEvent, vs as Gamepad, At as GamepadAxisEvent, kt as GamepadButtonEvent, Dt as GamepadConnectEvent, Ot as GamepadDisconnectEvent, gs as GamepadEvents, _s as Gamepads, oc as GarbageCollector, Mc as Gif, Lc as GifParser, ie as GlobalCoordinates, hc as GpuParticleEmitter, mc as GpuParticleRenderer, me as Graph, H as Graphic, Y as GraphicsComponent, cr as GraphicsGroup, Vr as GraphicsSystem, ro as HashColliderProxy, to as HashGridCell, eo as HashGridProxy, Mt as HiddenEvent, Vn as HorizontalFirst, fr as ImageFiltering, gr as ImageSource, W as ImageSourceAttributeConstants, U as ImageWrapping, Vt as InitializeEvent, Ls as InputHost, xs as InputMapper, Qo as IsometricEntityComponent, ts as IsometricEntitySystem, es as IsometricMap, $o as IsometricTile, Es as KeyEvent, Ds as Keyboard, Ts as Keys, ft as KillEvent, uc as Label, cs as LimitCameraBoundsStrategy, Ir as Line, A as LineSegment, Ro as Loader, No as LoaderEvents, as as LockCameraToActorAxisStrategy, is as LockCameraToActorStrategy, $e as LogLevel, P as Logger, wi as Material, ne as Matrix, te as MatrixLocations, To as MediaEvent, Ia as Meet, L as MotionComponent, lo as MotionSystem, fa as MoveBy, da as MoveByWithOptions, ha as MoveTo, ma as MoveToWithOptions, Ms as NativePointerButton, Eo as NativeSoundEvent, Do as NativeSoundProcessedEvent, Jr as NineSlice, qr as NineSliceStretch, ge as Node, Hn as None, at as Observable, Hr as OffscreenSystem, kn as Pair, Rr as ParallaxComponent, _c as ParallelActions, pi as Particle, fc as ParticleEmitter, hi as ParticleRenderer, mi as ParticleTransform, On as PauseComponent, Dn as PauseComponentTag, Qt as PauseEvent, Rs as PauseSystem, Ks as PhysicsStats, mo as PhysicsWorld, As as PointerAbstraction, Ns as PointerButton, ra as PointerComponent, Os as PointerEvent, Is as PointerEventReceiver, s as PointerScope, ms as PointerSystem, Go as PointerType, Gr as Polygon, Kn as PolygonCollider, qn as Pool, _e as PositionNode, Pt as PostCollisionEvent, St as PostDebugDrawEvent, vt as PostDrawEvent, Et as PostFrameEvent, mt as PostKillEvent, bt as PostTransformDrawEvent, wt as PostUpdateEvent, Nt as PreCollisionEvent, xt as PreDebugDrawEvent, _t as PreDrawEvent, Tt as PreFrameEvent, pt as PreKillEvent, zs as PreLoadEvent, yt as PreTransformDrawEvent, Ct as PreUpdateEvent, ae as Projection, Si as QuadIndexBuffer, ao as QuadTree, vn as Query, bn as QueryManager, ss as RadiusAroundActorStrategy, f as Random, _r as Raster, j as Ray, co as RealisticSolver, Wr as Rectangle, Zt as RemoveEvent, pn as RemovedComponent, Cr as RentalPool, ca as Repeat, la as RepeatForever, go as Resolution, ur as Resource, lr as ResourceEvents, $t as ResumeEvent, xa as RotateBy, ba as RotateByWithOptions, va as RotateTo, _a as RotateToWithOptions, c as RotationType, Da as ScaleBy, Ea as ScaleByWithOptions, wa as ScaleTo, Ca as ScaleToWithOptions, Hs as Scene, Bs as SceneEvents, vo as Screen, tt as ScreenAppender, Ho as ScreenElement, _o as ScreenEvents, vi as ScreenShader, cc as ScrollPreventionMode, $c as Semaphore, Yn as SeparatingAxis, Jn as SeparationInfo, Ka as Serializer, li as Shader, Gn as Shape, z as Side, Kc as Slide, Rn as SolverStrategy, Mo as Sound, Ao as SoundEvents, jc as SoundManager, no as SparseHashGrid, io as SparseHashGridCollisionProcessor, Un as SpatialPartitionStrategy, dr as Sprite, Dr as SpriteFont, kr as SpriteSheet, Zs as StandardClock, Co as StateMachine, ns as StrategyContainer, Fc as Stream, Cn as System, Tn as SystemManager, xn as SystemPriority, Sn as SystemType, yn as TagQuery, Qs as TestClock, ta as Text, yr as TextAlign, hr as TextureLoader, Zo as Tile, Xo as TileMap, Yo as TileMapEvents, Yr as TiledAnimation, Or as TiledSprite, Wo as Timer, Uo as TimerEvents, ec as Toaster, re as Transform, I as TransformComponent, Uc as Transition, Fn as TreeNode, fs as Trigger, ds as TriggerEvents, p as TwoPI, ei as UniformBuffer, qa as Util, w as Vector, E as VectorView, gi as VertexBuffer, _i as VertexLayout, Bn as VerticalFirst, jt as VisibleEvent, xo as WebAudio, wo as WebAudioInstance, js as WheelDeltaMode, ks as WheelEvent, En as World, y as angleDifference, _ as approximatelyEqual, pc as assert, v as canonicalizeAngle, g as clamp, Hc as coroutine, i as createId, Ue as easeInBack, Xe as easeInBounce, Be as easeInCirc, Oe as easeInCubic, Ke as easeInElastic, Le as easeInExpo, Ge as easeInOutBack, Ze as easeInOutBounce, He as easeInOutCirc, Ae as easeInOutCubic, Je as easeInOutElastic, ze as easeInOutExpo, De as easeInOutQuad, Ne as easeInOutQuart, Ie as easeInOutQuint, we as easeInOutSine, Te as easeInQuad, je as easeInQuart, Pe as easeInQuint, Se as easeInSine, We as easeOutBack, Ye as easeOutBounce, Ve as easeOutCirc, ke as easeOutCubic, qe as easeOutElastic, Re as easeOutExpo, Ee as easeOutQuad, Me as easeOutQuart, Fe as easeOutQuint, Ce as easeOutSine, m as frac, Wn as getDefaultPhysicsConfig, ci as glTypeToUniformTypeName, na as hasGraphicsTick, Ec as hasOnAdd, xc as hasOnInitialize, Tc as hasOnPostUpdate, Cc as hasOnPreUpdate, Dc as hasOnRemove, kc as hasPostDraw, Oc as hasPreDraw, yc as has_add, vc as has_initialize, wc as has_postupdate, Sc as has_preupdate, bc as has_remove, ce as inverseLerp, le as inverseLerpVector, Xa as isActor, fn as isAddedComponent, nt as isComponentCtor, aa as isLegacyEasing, Po as isLoaderConstructor, ua as isMoveByOptions, pa as isMoveToOptions, mn as isRemovedComponent, ya as isRotateByOptions, ga as isRotateToOptions, Ta as isScaleByOptions, Sa as isScaleToOptions, Vs as isSceneConstructor, Vo as isScreenElement, wn as isSystemConstructor, M as lerp, oe as lerpAngle, se as lerpVector, ye as linear, qc as maxMessages, Z as nextActionId, Zc as obsolete, pr as parseImageFiltering, mr as parseImageWrapping, J as pixelSnapEpsilon, C as randomInRange, ee as randomIntInRange, S as range, ue as remap, de as remapVector, Yc as resetObsoleteCounter, h as sign, xe as smootherstep, be as smoothstep, b as toDegrees, x as toRadians, T as vec, ti as webgl };
|
package/eslint.config.mjs
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "excalibur",
|
|
3
3
|
"sideEffects": false,
|
|
4
|
-
"version": "0.33.0-alpha.
|
|
4
|
+
"version": "0.33.0-alpha.151",
|
|
5
5
|
"exNextVersion": "0.33.0",
|
|
6
6
|
"publishConfig": {
|
|
7
7
|
"provenance": true
|
|
@@ -91,9 +91,10 @@
|
|
|
91
91
|
"@types/node": "22.19.19",
|
|
92
92
|
"@types/react-color": "3.0.13",
|
|
93
93
|
"@types/webpack-env": "1.18.8",
|
|
94
|
-
"@vitest/browser": "
|
|
95
|
-
"@vitest/
|
|
96
|
-
"@vitest/
|
|
94
|
+
"@vitest/browser": "4.1.8",
|
|
95
|
+
"@vitest/browser-playwright": "4.1.8",
|
|
96
|
+
"@vitest/coverage-istanbul": "4.1.8",
|
|
97
|
+
"@vitest/ui": "4.1.8",
|
|
97
98
|
"concurrently": "9.2.1",
|
|
98
99
|
"copyfiles": "2.4.1",
|
|
99
100
|
"coveralls-next": "6.0.1",
|
|
@@ -136,7 +137,7 @@
|
|
|
136
137
|
"vite": "8.0.14",
|
|
137
138
|
"vite-plugin-banner": "0.8.1",
|
|
138
139
|
"vite-plugin-static-copy": "4.1.0",
|
|
139
|
-
"vitest": "
|
|
140
|
+
"vitest": "4.1.8",
|
|
140
141
|
"webpack": "5.104.1",
|
|
141
142
|
"webpack-cli": "5.1.4"
|
|
142
143
|
},
|
package/vitest.config.ts
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
/// <reference types="@vitest/browser/providers/playwright" />
|
|
2
|
-
|
|
3
1
|
import * as path from 'path';
|
|
4
2
|
import type { ViteUserConfig } from 'vitest/config';
|
|
5
3
|
import { defineConfig, mergeConfig } from 'vitest/config';
|
|
6
4
|
import commonConfig from './vite.config.common';
|
|
7
5
|
import { EngineInstanceReporter } from './src/spec/__util__/reporters/engine-instance';
|
|
8
6
|
import { MemoryReporter } from './src/spec/__util__/reporters/memory';
|
|
7
|
+
import { ImageDiffReporter } from './src/spec/__util__/reporters/image-diff-reporter';
|
|
9
8
|
|
|
10
9
|
export default defineConfig(
|
|
11
10
|
mergeConfig(commonConfig, {
|
|
@@ -20,7 +19,8 @@ export default defineConfig(
|
|
|
20
19
|
test: {
|
|
21
20
|
api: { host: '0.0.0.0' },
|
|
22
21
|
silent: 'passed-only',
|
|
23
|
-
|
|
22
|
+
clearMocks: true,
|
|
23
|
+
reporters: [['default', { summary: false }], new EngineInstanceReporter(), new MemoryReporter(), new ImageDiffReporter()],
|
|
24
24
|
// enable with --coverage param
|
|
25
25
|
coverage: {
|
|
26
26
|
include: ['src/engine/**/*.ts'],
|