excalibur 0.32.0-alpha.1575 → 0.32.0-alpha.1577
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/CHANGELOG.md +1 -0
- package/build/dist/EntityComponentSystem/Entity.d.ts +1 -1
- package/build/dist/excalibur.development.js +28 -10
- package/build/dist/excalibur.js +28 -10
- package/build/dist/excalibur.min.development.js +21 -21
- package/build/dist/excalibur.min.js +21 -21
- package/build/esm/excalibur.development.js +28 -10
- package/build/esm/excalibur.js +28 -10
- package/build/esm/excalibur.min.development.js +136 -128
- package/build/esm/excalibur.min.js +136 -128
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -74,6 +74,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
|
74
74
|
|
|
75
75
|
### Fixed
|
|
76
76
|
|
|
77
|
+
- Fixed issue where onRemove would sometimes not be called
|
|
77
78
|
- Fixed issue where pointer containment WAS NOT being uses on collision shape geometry, only their bounds
|
|
78
79
|
- Fixed issue where overriding built in uniforms and graphics no longer worked as v0.30.x
|
|
79
80
|
- Fixed issue where clearSchedule during a scheduled callback could cause a cb to be skipped
|
|
@@ -266,7 +266,7 @@ export declare class Entity<TKnownComponents extends Component = any> implements
|
|
|
266
266
|
*/
|
|
267
267
|
_add(engine: Engine): void;
|
|
268
268
|
/**
|
|
269
|
-
* Removes Actor, meant to be called by the Scene when Actor is
|
|
269
|
+
* Removes Actor, meant to be called by the Scene when Actor is removed.
|
|
270
270
|
*
|
|
271
271
|
* It is not recommended that internal excalibur methods be overridden, do so at your own risk.
|
|
272
272
|
* @internal
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! excalibur - 0.32.0-alpha.
|
|
1
|
+
/*! excalibur - 0.32.0-alpha.1577+cbacdb4 - 2025-11-29
|
|
2
2
|
https://github.com/excaliburjs/Excalibur
|
|
3
3
|
Copyright (c) 2025 Excalibur.js <https://github.com/excaliburjs/Excalibur/graphs/contributors>
|
|
4
4
|
Licensed BSD-2-Clause
|
|
@@ -5247,7 +5247,7 @@ mask: ${(this.mask >>> 0).toString(2).padStart(32, "0")}
|
|
|
5247
5247
|
}
|
|
5248
5248
|
}
|
|
5249
5249
|
/**
|
|
5250
|
-
* Removes Actor, meant to be called by the Scene when Actor is
|
|
5250
|
+
* Removes Actor, meant to be called by the Scene when Actor is removed.
|
|
5251
5251
|
*
|
|
5252
5252
|
* It is not recommended that internal excalibur methods be overridden, do so at your own risk.
|
|
5253
5253
|
* @internal
|
|
@@ -5414,7 +5414,7 @@ mask: ${(this.mask >>> 0).toString(2).padStart(32, "0")}
|
|
|
5414
5414
|
}
|
|
5415
5415
|
}
|
|
5416
5416
|
removeEntity(idOrEntity, deferred = true) {
|
|
5417
|
-
var _a, _b;
|
|
5417
|
+
var _a, _b, _c, _d;
|
|
5418
5418
|
let id = 0;
|
|
5419
5419
|
if (idOrEntity instanceof Entity) {
|
|
5420
5420
|
id = idOrEntity.id;
|
|
@@ -5448,7 +5448,8 @@ mask: ${(this.mask >>> 0).toString(2).padStart(32, "0")}
|
|
|
5448
5448
|
entity.childrenRemoved$.unsubscribe(childRemovedHandler);
|
|
5449
5449
|
this._childRemovedHandlerMap.delete(entity);
|
|
5450
5450
|
}
|
|
5451
|
-
|
|
5451
|
+
entity._remove((_b = (_a = this._world) == null ? void 0 : _a.scene) == null ? void 0 : _b.engine);
|
|
5452
|
+
if ((_d = (_c = this._world) == null ? void 0 : _c.scene) == null ? void 0 : _d.engine) {
|
|
5452
5453
|
this._world.scene.engine.stats.currFrame.actors.killed++;
|
|
5453
5454
|
}
|
|
5454
5455
|
}
|
|
@@ -24253,7 +24254,7 @@ If you want to do custom drawing, use Actor.graphics, or any onPreDraw or onPost
|
|
|
24253
24254
|
}
|
|
24254
24255
|
}
|
|
24255
24256
|
const logoImg = "data:image/png;base64,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";
|
|
24256
|
-
const loaderCss = "/* Buttons styles start */\n\nbutton#excalibur-play {\n
|
|
24257
|
+
const loaderCss = "/* Buttons styles start */\nbutton#excalibur-play {\n display: none;\n}\n\nbutton#excalibur-play {\n box-sizing: border-box;\n display: flex;\n gap: 0.25rem;\n white-space: nowrap;\n justify-content: center;\n position: relative;\n z-index: 999;\n border-radius: 6px;\n border: none;\n padding: 1rem;\n margin: 0;\n text-decoration: none;\n background: #00b233;\n color: #ffffff;\n font-family: sans-serif;\n font-size: 2rem;\n white-space: nowrap;\n line-height: 1;\n cursor: pointer;\n text-align: center;\n transition:\n background 250ms ease-in-out,\n transform 150ms ease;\n -webkit-appearance: none;\n -moz-appearance: none;\n\n -webkit-animation: excalibur-button-fadein 200ms; /* Safari, Chrome and Opera > 12.1 */\n -moz-animation: excalibur-button-fadein 200ms; /* Firefox < 16 */\n -ms-animation: excalibur-button-fadein 200ms; /* Internet Explorer */\n -o-animation: excalibur-button-fadein 200ms; /* Opera < 12.1 */\n animation: excalibur-button-fadein 200ms;\n}\n\nspan#excalibur-play-icon {\n content: '';\n display: inline-block;\n position: relative;\n width: 2rem;\n height: 2rem;\n}\n\nspan#excalibur-play-icon:after {\n box-sizing: border-box;\n position: absolute;\n content: '';\n border: 0.5rem solid;\n border-color: transparent transparent transparent white;\n left: calc(50% - 0.1rem);\n top: calc(30% - 0.1rem);\n width: 0;\n height: 0;\n}\n\nspan#excalibur-play-icon:before {\n box-sizing: border-box;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n position: absolute;\n content: '';\n border: 3px solid;\n border-radius: 1rem;\n width: 2rem;\n height: 2rem;\n}\n\nbutton#excalibur-play:focus {\n outline: 1px solid #fff;\n outline-offset: -4px;\n}\n\nbutton#excalibur-play:active {\n transform: scale(0.99);\n}\n\n@keyframes excalibur-button-fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n/* Firefox < 16 */\n@-moz-keyframes excalibur-button-fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n/* Safari, Chrome and Opera > 12.1 */\n@-webkit-keyframes excalibur-button-fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n/* Internet Explorer */\n@-ms-keyframes excalibur-button-fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n/* Opera < 12.1 */\n@-o-keyframes excalibur-button-fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n";
|
|
24257
24258
|
const _Loader = class _Loader2 extends DefaultLoader {
|
|
24258
24259
|
constructor(loadablesOrOptions) {
|
|
24259
24260
|
const options = Array.isArray(loadablesOrOptions) ? {
|
|
@@ -24279,8 +24280,16 @@ If you want to do custom drawing, use Actor.graphics, or any onPreDraw or onPost
|
|
|
24279
24280
|
buttonElement = document.createElement("button");
|
|
24280
24281
|
}
|
|
24281
24282
|
buttonElement.id = "excalibur-play";
|
|
24282
|
-
buttonElement.textContent = this.playButtonText;
|
|
24283
24283
|
buttonElement.style.display = "none";
|
|
24284
|
+
if (buttonElement) {
|
|
24285
|
+
const span = document.createElement("span");
|
|
24286
|
+
span.id = "excalibur-play-icon";
|
|
24287
|
+
buttonElement.appendChild(span);
|
|
24288
|
+
const text = document.createElement("span");
|
|
24289
|
+
text.id = "excalibur-play-text";
|
|
24290
|
+
text.textContent = this.playButtonText;
|
|
24291
|
+
buttonElement.appendChild(text);
|
|
24292
|
+
}
|
|
24284
24293
|
return buttonElement;
|
|
24285
24294
|
};
|
|
24286
24295
|
this._originalOptions = { ..._Loader2._DEFAULT_LOADER_OPTIONS, ...options };
|
|
@@ -24350,7 +24359,7 @@ If you want to do custom drawing, use Actor.graphics, or any onPreDraw or onPost
|
|
|
24350
24359
|
this.engine.browser.window.on("resize", resizeHandler);
|
|
24351
24360
|
}
|
|
24352
24361
|
this._playButtonShown = true;
|
|
24353
|
-
this._playButton.style.display = "
|
|
24362
|
+
this._playButton.style.display = "flex";
|
|
24354
24363
|
document.body.addEventListener("keyup", (evt) => {
|
|
24355
24364
|
if (evt.key === "Enter") {
|
|
24356
24365
|
this._playButton.click();
|
|
@@ -24429,7 +24438,13 @@ If you want to do custom drawing, use Actor.graphics, or any onPreDraw or onPost
|
|
|
24429
24438
|
_positionPlayButton() {
|
|
24430
24439
|
if (this.engine) {
|
|
24431
24440
|
const { x: left, y: top, width: screenWidth, height: screenHeight } = this.engine.canvas.getBoundingClientRect();
|
|
24432
|
-
if (this._playButtonRootElement) {
|
|
24441
|
+
if (this._playButtonRootElement && this._playButtonElement) {
|
|
24442
|
+
const text = this._playButtonElement.querySelector("#excalibur-play-text");
|
|
24443
|
+
if (screenWidth < 450) {
|
|
24444
|
+
text.style.display = "none";
|
|
24445
|
+
} else {
|
|
24446
|
+
text.style.display = "inline-block";
|
|
24447
|
+
}
|
|
24433
24448
|
const buttonWidth = this._playButton.clientWidth;
|
|
24434
24449
|
const buttonHeight = this._playButton.clientHeight;
|
|
24435
24450
|
if (this.playButtonPosition) {
|
|
@@ -24439,6 +24454,10 @@ If you want to do custom drawing, use Actor.graphics, or any onPreDraw or onPost
|
|
|
24439
24454
|
this._playButtonRootElement.style.left = `${left + screenWidth / 2 - buttonWidth / 2}px`;
|
|
24440
24455
|
this._playButtonRootElement.style.top = `${top + screenHeight / 2 - buttonHeight / 2 + 100}px`;
|
|
24441
24456
|
}
|
|
24457
|
+
if (screenWidth < 450) {
|
|
24458
|
+
this._playButtonRootElement.style.left = `${left + screenWidth / 2 - buttonWidth / 2}px`;
|
|
24459
|
+
this._playButtonRootElement.style.top = `${top + screenHeight / 2 - buttonHeight / 2 + 25}px`;
|
|
24460
|
+
}
|
|
24442
24461
|
}
|
|
24443
24462
|
}
|
|
24444
24463
|
}
|
|
@@ -24450,7 +24469,6 @@ If you want to do custom drawing, use Actor.graphics, or any onPreDraw or onPost
|
|
|
24450
24469
|
onDraw(ctx) {
|
|
24451
24470
|
const canvasHeight = this.engine.canvasHeight / this.engine.pixelRatio;
|
|
24452
24471
|
const canvasWidth = this.engine.canvasWidth / this.engine.pixelRatio;
|
|
24453
|
-
this._positionPlayButton();
|
|
24454
24472
|
ctx.fillStyle = this.backgroundColor;
|
|
24455
24473
|
ctx.fillRect(0, 0, canvasWidth, canvasHeight);
|
|
24456
24474
|
let logoY = canvasHeight / 2;
|
|
@@ -33441,7 +33459,7 @@ Read more about this issue at https://excaliburjs.com/docs/performance`
|
|
|
33441
33459
|
this._count += count;
|
|
33442
33460
|
}
|
|
33443
33461
|
}
|
|
33444
|
-
const EX_VERSION = "0.32.0-alpha.
|
|
33462
|
+
const EX_VERSION = "0.32.0-alpha.1577+cbacdb4";
|
|
33445
33463
|
polyfill();
|
|
33446
33464
|
exports2.ActionCompleteEvent = ActionCompleteEvent;
|
|
33447
33465
|
exports2.ActionContext = ActionContext;
|
package/build/dist/excalibur.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! excalibur - 0.32.0-alpha.
|
|
1
|
+
/*! excalibur - 0.32.0-alpha.1577+cbacdb4 - 2025-11-29
|
|
2
2
|
https://github.com/excaliburjs/Excalibur
|
|
3
3
|
Copyright (c) 2025 Excalibur.js <https://github.com/excaliburjs/Excalibur/graphs/contributors>
|
|
4
4
|
Licensed BSD-2-Clause
|
|
@@ -5247,7 +5247,7 @@ mask: ${(this.mask >>> 0).toString(2).padStart(32, "0")}
|
|
|
5247
5247
|
}
|
|
5248
5248
|
}
|
|
5249
5249
|
/**
|
|
5250
|
-
* Removes Actor, meant to be called by the Scene when Actor is
|
|
5250
|
+
* Removes Actor, meant to be called by the Scene when Actor is removed.
|
|
5251
5251
|
*
|
|
5252
5252
|
* It is not recommended that internal excalibur methods be overridden, do so at your own risk.
|
|
5253
5253
|
* @internal
|
|
@@ -5414,7 +5414,7 @@ mask: ${(this.mask >>> 0).toString(2).padStart(32, "0")}
|
|
|
5414
5414
|
}
|
|
5415
5415
|
}
|
|
5416
5416
|
removeEntity(idOrEntity, deferred = true) {
|
|
5417
|
-
var _a, _b;
|
|
5417
|
+
var _a, _b, _c, _d;
|
|
5418
5418
|
let id = 0;
|
|
5419
5419
|
if (idOrEntity instanceof Entity) {
|
|
5420
5420
|
id = idOrEntity.id;
|
|
@@ -5448,7 +5448,8 @@ mask: ${(this.mask >>> 0).toString(2).padStart(32, "0")}
|
|
|
5448
5448
|
entity.childrenRemoved$.unsubscribe(childRemovedHandler);
|
|
5449
5449
|
this._childRemovedHandlerMap.delete(entity);
|
|
5450
5450
|
}
|
|
5451
|
-
|
|
5451
|
+
entity._remove((_b = (_a = this._world) == null ? void 0 : _a.scene) == null ? void 0 : _b.engine);
|
|
5452
|
+
if ((_d = (_c = this._world) == null ? void 0 : _c.scene) == null ? void 0 : _d.engine) {
|
|
5452
5453
|
this._world.scene.engine.stats.currFrame.actors.killed++;
|
|
5453
5454
|
}
|
|
5454
5455
|
}
|
|
@@ -24253,7 +24254,7 @@ If you want to do custom drawing, use Actor.graphics, or any onPreDraw or onPost
|
|
|
24253
24254
|
}
|
|
24254
24255
|
}
|
|
24255
24256
|
const logoImg = "data:image/png;base64,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";
|
|
24256
|
-
const loaderCss = "/* Buttons styles start */\n\nbutton#excalibur-play {\n
|
|
24257
|
+
const loaderCss = "/* Buttons styles start */\nbutton#excalibur-play {\n display: none;\n}\n\nbutton#excalibur-play {\n box-sizing: border-box;\n display: flex;\n gap: 0.25rem;\n white-space: nowrap;\n justify-content: center;\n position: relative;\n z-index: 999;\n border-radius: 6px;\n border: none;\n padding: 1rem;\n margin: 0;\n text-decoration: none;\n background: #00b233;\n color: #ffffff;\n font-family: sans-serif;\n font-size: 2rem;\n white-space: nowrap;\n line-height: 1;\n cursor: pointer;\n text-align: center;\n transition:\n background 250ms ease-in-out,\n transform 150ms ease;\n -webkit-appearance: none;\n -moz-appearance: none;\n\n -webkit-animation: excalibur-button-fadein 200ms; /* Safari, Chrome and Opera > 12.1 */\n -moz-animation: excalibur-button-fadein 200ms; /* Firefox < 16 */\n -ms-animation: excalibur-button-fadein 200ms; /* Internet Explorer */\n -o-animation: excalibur-button-fadein 200ms; /* Opera < 12.1 */\n animation: excalibur-button-fadein 200ms;\n}\n\nspan#excalibur-play-icon {\n content: '';\n display: inline-block;\n position: relative;\n width: 2rem;\n height: 2rem;\n}\n\nspan#excalibur-play-icon:after {\n box-sizing: border-box;\n position: absolute;\n content: '';\n border: 0.5rem solid;\n border-color: transparent transparent transparent white;\n left: calc(50% - 0.1rem);\n top: calc(30% - 0.1rem);\n width: 0;\n height: 0;\n}\n\nspan#excalibur-play-icon:before {\n box-sizing: border-box;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n position: absolute;\n content: '';\n border: 3px solid;\n border-radius: 1rem;\n width: 2rem;\n height: 2rem;\n}\n\nbutton#excalibur-play:focus {\n outline: 1px solid #fff;\n outline-offset: -4px;\n}\n\nbutton#excalibur-play:active {\n transform: scale(0.99);\n}\n\n@keyframes excalibur-button-fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n/* Firefox < 16 */\n@-moz-keyframes excalibur-button-fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n/* Safari, Chrome and Opera > 12.1 */\n@-webkit-keyframes excalibur-button-fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n/* Internet Explorer */\n@-ms-keyframes excalibur-button-fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n/* Opera < 12.1 */\n@-o-keyframes excalibur-button-fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n";
|
|
24257
24258
|
const _Loader = class _Loader2 extends DefaultLoader {
|
|
24258
24259
|
constructor(loadablesOrOptions) {
|
|
24259
24260
|
const options = Array.isArray(loadablesOrOptions) ? {
|
|
@@ -24279,8 +24280,16 @@ If you want to do custom drawing, use Actor.graphics, or any onPreDraw or onPost
|
|
|
24279
24280
|
buttonElement = document.createElement("button");
|
|
24280
24281
|
}
|
|
24281
24282
|
buttonElement.id = "excalibur-play";
|
|
24282
|
-
buttonElement.textContent = this.playButtonText;
|
|
24283
24283
|
buttonElement.style.display = "none";
|
|
24284
|
+
if (buttonElement) {
|
|
24285
|
+
const span = document.createElement("span");
|
|
24286
|
+
span.id = "excalibur-play-icon";
|
|
24287
|
+
buttonElement.appendChild(span);
|
|
24288
|
+
const text = document.createElement("span");
|
|
24289
|
+
text.id = "excalibur-play-text";
|
|
24290
|
+
text.textContent = this.playButtonText;
|
|
24291
|
+
buttonElement.appendChild(text);
|
|
24292
|
+
}
|
|
24284
24293
|
return buttonElement;
|
|
24285
24294
|
};
|
|
24286
24295
|
this._originalOptions = { ..._Loader2._DEFAULT_LOADER_OPTIONS, ...options };
|
|
@@ -24350,7 +24359,7 @@ If you want to do custom drawing, use Actor.graphics, or any onPreDraw or onPost
|
|
|
24350
24359
|
this.engine.browser.window.on("resize", resizeHandler);
|
|
24351
24360
|
}
|
|
24352
24361
|
this._playButtonShown = true;
|
|
24353
|
-
this._playButton.style.display = "
|
|
24362
|
+
this._playButton.style.display = "flex";
|
|
24354
24363
|
document.body.addEventListener("keyup", (evt) => {
|
|
24355
24364
|
if (evt.key === "Enter") {
|
|
24356
24365
|
this._playButton.click();
|
|
@@ -24429,7 +24438,13 @@ If you want to do custom drawing, use Actor.graphics, or any onPreDraw or onPost
|
|
|
24429
24438
|
_positionPlayButton() {
|
|
24430
24439
|
if (this.engine) {
|
|
24431
24440
|
const { x: left, y: top, width: screenWidth, height: screenHeight } = this.engine.canvas.getBoundingClientRect();
|
|
24432
|
-
if (this._playButtonRootElement) {
|
|
24441
|
+
if (this._playButtonRootElement && this._playButtonElement) {
|
|
24442
|
+
const text = this._playButtonElement.querySelector("#excalibur-play-text");
|
|
24443
|
+
if (screenWidth < 450) {
|
|
24444
|
+
text.style.display = "none";
|
|
24445
|
+
} else {
|
|
24446
|
+
text.style.display = "inline-block";
|
|
24447
|
+
}
|
|
24433
24448
|
const buttonWidth = this._playButton.clientWidth;
|
|
24434
24449
|
const buttonHeight = this._playButton.clientHeight;
|
|
24435
24450
|
if (this.playButtonPosition) {
|
|
@@ -24439,6 +24454,10 @@ If you want to do custom drawing, use Actor.graphics, or any onPreDraw or onPost
|
|
|
24439
24454
|
this._playButtonRootElement.style.left = `${left + screenWidth / 2 - buttonWidth / 2}px`;
|
|
24440
24455
|
this._playButtonRootElement.style.top = `${top + screenHeight / 2 - buttonHeight / 2 + 100}px`;
|
|
24441
24456
|
}
|
|
24457
|
+
if (screenWidth < 450) {
|
|
24458
|
+
this._playButtonRootElement.style.left = `${left + screenWidth / 2 - buttonWidth / 2}px`;
|
|
24459
|
+
this._playButtonRootElement.style.top = `${top + screenHeight / 2 - buttonHeight / 2 + 25}px`;
|
|
24460
|
+
}
|
|
24442
24461
|
}
|
|
24443
24462
|
}
|
|
24444
24463
|
}
|
|
@@ -24450,7 +24469,6 @@ If you want to do custom drawing, use Actor.graphics, or any onPreDraw or onPost
|
|
|
24450
24469
|
onDraw(ctx) {
|
|
24451
24470
|
const canvasHeight = this.engine.canvasHeight / this.engine.pixelRatio;
|
|
24452
24471
|
const canvasWidth = this.engine.canvasWidth / this.engine.pixelRatio;
|
|
24453
|
-
this._positionPlayButton();
|
|
24454
24472
|
ctx.fillStyle = this.backgroundColor;
|
|
24455
24473
|
ctx.fillRect(0, 0, canvasWidth, canvasHeight);
|
|
24456
24474
|
let logoY = canvasHeight / 2;
|
|
@@ -33441,7 +33459,7 @@ Read more about this issue at https://excaliburjs.com/docs/performance`
|
|
|
33441
33459
|
this._count += count;
|
|
33442
33460
|
}
|
|
33443
33461
|
}
|
|
33444
|
-
const EX_VERSION = "0.32.0-alpha.
|
|
33462
|
+
const EX_VERSION = "0.32.0-alpha.1577+cbacdb4";
|
|
33445
33463
|
polyfill();
|
|
33446
33464
|
exports2.ActionCompleteEvent = ActionCompleteEvent;
|
|
33447
33465
|
exports2.ActionContext = ActionContext;
|