excalibur 0.26.0-alpha.414 → 0.26.0-alpha.415
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/Components/TransformComponent.d.ts +8 -1
- package/build/dist/EntityComponentSystem/Components/TransformComponent.js +18 -3
- package/build/dist/EntityComponentSystem/Components/TransformComponent.js.map +1 -1
- package/build/dist/Input/PointerSystem.d.ts +8 -3
- package/build/dist/Input/PointerSystem.js +36 -7
- package/build/dist/Input/PointerSystem.js.map +1 -1
- package/build/dist/excalibur.js +116 -72
- package/build/dist/excalibur.js.map +1 -1
- package/build/dist/excalibur.min.js +1 -1
- package/build/dist/excalibur.min.js.LICENSE.txt +1 -1
- package/build/dist/excalibur.min.js.map +1 -1
- package/build/dist/index.js +2 -2
- package/build/esm/EntityComponentSystem/Components/TransformComponent.d.ts +8 -1
- package/build/esm/Input/PointerSystem.d.ts +8 -3
- package/build/esm/excalibur.js +116 -72
- package/build/esm/excalibur.js.map +1 -1
- package/build/esm/excalibur.min.js +1 -1
- package/build/esm/excalibur.min.js.LICENSE.txt +1 -1
- package/build/esm/excalibur.min.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -19,6 +19,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
|
19
19
|
- Added faster `ex.BoundingBox.transform(...)` implementation.
|
|
20
20
|
- Added faster `ex.BoundingBox.overlap(...)` implementation.
|
|
21
21
|
- Added `ex.Vector.min(...)` and `ex.Vector.max(...)` to find the min/max of each vector component between 2 vectors.
|
|
22
|
+
- Added `ex.TransformComponent.zIndexChange$` observable to watch when z index changes.
|
|
22
23
|
|
|
23
24
|
### Fixed
|
|
24
25
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Matrix } from '../../Math/matrix';
|
|
2
2
|
import { Vector } from '../../Math/vector';
|
|
3
3
|
import { Component } from '../Component';
|
|
4
|
+
import { Observable } from '../../Util/Observable';
|
|
4
5
|
export interface Transform {
|
|
5
6
|
/**
|
|
6
7
|
* The [[CoordPlane|coordinate plane]] for this transform for the entity.
|
|
@@ -71,11 +72,17 @@ export declare class TransformComponent extends Component<'ex.transform'> implem
|
|
|
71
72
|
*/
|
|
72
73
|
get globalPos(): Vector;
|
|
73
74
|
set globalPos(val: Vector);
|
|
75
|
+
/**
|
|
76
|
+
* Observable that emits when the z index changes on this component
|
|
77
|
+
*/
|
|
78
|
+
zIndexChanged$: Observable<number>;
|
|
79
|
+
private _z;
|
|
74
80
|
/**
|
|
75
81
|
* The z-index ordering of the entity, a higher values are drawn on top of lower values.
|
|
76
82
|
* For example z=99 would be drawn on top of z=0.
|
|
77
83
|
*/
|
|
78
|
-
z: number;
|
|
84
|
+
get z(): number;
|
|
85
|
+
set z(val: number);
|
|
79
86
|
/**
|
|
80
87
|
* The rotation of the entity in radians. For example `Math.PI` radians is the same as 180 degrees.
|
|
81
88
|
*/
|
|
@@ -2,6 +2,7 @@ import { Matrix, MatrixLocations } from '../../Math/matrix';
|
|
|
2
2
|
import { VectorView } from '../../Math/vector-view';
|
|
3
3
|
import { vec } from '../../Math/vector';
|
|
4
4
|
import { Component } from '../Component';
|
|
5
|
+
import { Observable } from '../../Util/Observable';
|
|
5
6
|
const createPosView = (matrix) => {
|
|
6
7
|
const source = matrix;
|
|
7
8
|
return new VectorView({
|
|
@@ -66,10 +67,10 @@ export class TransformComponent extends Component {
|
|
|
66
67
|
*/
|
|
67
68
|
this.coordPlane = CoordPlane.World;
|
|
68
69
|
/**
|
|
69
|
-
*
|
|
70
|
-
* For example z=99 would be drawn on top of z=0.
|
|
70
|
+
* Observable that emits when the z index changes on this component
|
|
71
71
|
*/
|
|
72
|
-
this.
|
|
72
|
+
this.zIndexChanged$ = new Observable();
|
|
73
|
+
this._z = 0;
|
|
73
74
|
}
|
|
74
75
|
_recalculate() {
|
|
75
76
|
this._rotation = this.matrix.getRotation();
|
|
@@ -159,6 +160,20 @@ export class TransformComponent extends Component {
|
|
|
159
160
|
this.pos = parentTransform.getGlobalMatrix().getAffineInverse().multiply(val);
|
|
160
161
|
}
|
|
161
162
|
}
|
|
163
|
+
/**
|
|
164
|
+
* The z-index ordering of the entity, a higher values are drawn on top of lower values.
|
|
165
|
+
* For example z=99 would be drawn on top of z=0.
|
|
166
|
+
*/
|
|
167
|
+
get z() {
|
|
168
|
+
return this._z;
|
|
169
|
+
}
|
|
170
|
+
set z(val) {
|
|
171
|
+
const oldz = this._z;
|
|
172
|
+
this._z = val;
|
|
173
|
+
if (oldz !== val) {
|
|
174
|
+
this.zIndexChanged$.notifyAll(val);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
162
177
|
/**
|
|
163
178
|
* The rotation of the entity in radians. For example `Math.PI` radians is the same as 180 degrees.
|
|
164
179
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransformComponent.js","sourceRoot":"","sources":["../../../../src/engine/EntityComponentSystem/Components/TransformComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAU,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"TransformComponent.js","sourceRoot":"","sources":["../../../../src/engine/EntityComponentSystem/Components/TransformComponent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { System, TransformComponent, SystemType, Entity } from '../EntityComponentSystem';
|
|
1
|
+
import { System, TransformComponent, SystemType, Entity, AddedEntity, RemovedEntity } from '../EntityComponentSystem';
|
|
2
2
|
import { Scene } from '../Scene';
|
|
3
3
|
import { PointerComponent } from './PointerComponent';
|
|
4
4
|
/**
|
|
@@ -25,13 +25,18 @@ export declare class PointerSystem extends System<TransformComponent | PointerCo
|
|
|
25
25
|
lastFrameEntityToPointers: Map<number, number[]>;
|
|
26
26
|
currentFrameEntityToPointers: Map<number, number[]>;
|
|
27
27
|
initialize(scene: Scene): void;
|
|
28
|
-
|
|
28
|
+
private _sortedTransforms;
|
|
29
|
+
private _sortedEntities;
|
|
30
|
+
private _zHasChanged;
|
|
31
|
+
private _zIndexUpdate;
|
|
32
|
+
preupdate(): void;
|
|
33
|
+
notify(entityAddedOrRemoved: AddedEntity | RemovedEntity): void;
|
|
29
34
|
entityCurrentlyUnderPointer(entity: Entity, pointerId: number): boolean;
|
|
30
35
|
entityWasUnderPointer(entity: Entity, pointerId: number): boolean;
|
|
31
36
|
entered(entity: Entity, pointerId: number): boolean;
|
|
32
37
|
left(entity: Entity, pointerId: number): boolean;
|
|
33
38
|
addPointerToEntity(entity: Entity, pointerId: number): void;
|
|
34
|
-
update(
|
|
39
|
+
update(_entities: Entity[]): void;
|
|
35
40
|
private _processPointerToEntity;
|
|
36
41
|
private _processDownAndEmit;
|
|
37
42
|
private _processUpAndEmit;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ColliderComponent } from '../Collision/ColliderComponent';
|
|
2
|
-
import { System, TransformComponent, SystemType, CoordPlane } from '../EntityComponentSystem';
|
|
2
|
+
import { System, TransformComponent, SystemType, CoordPlane, isAddedSystemEntity } from '../EntityComponentSystem';
|
|
3
3
|
import { GraphicsComponent } from '../Graphics/GraphicsComponent';
|
|
4
4
|
import { PointerComponent } from './PointerComponent';
|
|
5
5
|
/**
|
|
@@ -25,14 +25,43 @@ export class PointerSystem extends System {
|
|
|
25
25
|
this.overrideUseGraphicsBounds = false;
|
|
26
26
|
this.lastFrameEntityToPointers = new Map();
|
|
27
27
|
this.currentFrameEntityToPointers = new Map();
|
|
28
|
+
this._sortedTransforms = [];
|
|
29
|
+
this._sortedEntities = [];
|
|
30
|
+
this._zHasChanged = false;
|
|
31
|
+
this._zIndexUpdate = () => {
|
|
32
|
+
this._zHasChanged = true;
|
|
33
|
+
};
|
|
28
34
|
}
|
|
29
35
|
initialize(scene) {
|
|
30
36
|
this._engine = scene.engine;
|
|
31
37
|
this._receiver = this._engine.input.pointers;
|
|
32
38
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
39
|
+
preupdate() {
|
|
40
|
+
if (this._zHasChanged) {
|
|
41
|
+
this._sortedTransforms.sort((a, b) => {
|
|
42
|
+
return b.z - a.z;
|
|
43
|
+
});
|
|
44
|
+
this._sortedEntities = this._sortedTransforms.map(t => t.owner);
|
|
45
|
+
this._zHasChanged = false;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
notify(entityAddedOrRemoved) {
|
|
49
|
+
if (isAddedSystemEntity(entityAddedOrRemoved)) {
|
|
50
|
+
const tx = entityAddedOrRemoved.data.get(TransformComponent);
|
|
51
|
+
this._sortedTransforms.push(tx);
|
|
52
|
+
this._sortedEntities.push(tx.owner);
|
|
53
|
+
tx.zIndexChanged$.subscribe(this._zIndexUpdate);
|
|
54
|
+
this._zHasChanged = true;
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
const tx = entityAddedOrRemoved.data.get(TransformComponent);
|
|
58
|
+
tx.zIndexChanged$.unsubscribe(this._zIndexUpdate);
|
|
59
|
+
const index = this._sortedTransforms.indexOf(tx);
|
|
60
|
+
if (index > -1) {
|
|
61
|
+
this._sortedTransforms.splice(index, 1);
|
|
62
|
+
this._sortedEntities.splice(index, 1);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
36
65
|
}
|
|
37
66
|
entityCurrentlyUnderPointer(entity, pointerId) {
|
|
38
67
|
return this.currentFrameEntityToPointers.has(entity.id) &&
|
|
@@ -58,11 +87,11 @@ export class PointerSystem extends System {
|
|
|
58
87
|
const pointers = this.currentFrameEntityToPointers.get(entity.id);
|
|
59
88
|
this.currentFrameEntityToPointers.set(entity.id, pointers.concat(pointerId));
|
|
60
89
|
}
|
|
61
|
-
update(
|
|
90
|
+
update(_entities) {
|
|
62
91
|
// Locate all the pointer/entity mappings
|
|
63
|
-
this._processPointerToEntity(
|
|
92
|
+
this._processPointerToEntity(this._sortedEntities);
|
|
64
93
|
// Dispatch pointer events on entities
|
|
65
|
-
this._dispatchEvents(
|
|
94
|
+
this._dispatchEvents(this._sortedEntities);
|
|
66
95
|
// Clear last frame's events
|
|
67
96
|
this._receiver.update();
|
|
68
97
|
this.lastFrameEntityToPointers.clear();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PointerSystem.js","sourceRoot":"","sources":["../../../src/engine/Input/PointerSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEnE,OAAO,
|
|
1
|
+
{"version":3,"file":"PointerSystem.js","sourceRoot":"","sources":["../../../src/engine/Input/PointerSystem.ts"],"names":[],"mappings":"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"}
|
package/build/dist/excalibur.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* excalibur - 0.26.0-alpha.
|
|
2
|
+
* excalibur - 0.26.0-alpha.415+c42be8b - 2022-2-12
|
|
3
3
|
* https://github.com/excaliburjs/Excalibur
|
|
4
4
|
* Copyright (c) 2022 Excalibur.js <https://github.com/excaliburjs/Excalibur/graphs/contributors>
|
|
5
5
|
* Licensed BSD-2-Clause
|
|
@@ -12184,11 +12184,73 @@ class TagComponent extends Component {
|
|
|
12184
12184
|
}
|
|
12185
12185
|
}
|
|
12186
12186
|
|
|
12187
|
+
;// CONCATENATED MODULE: ./Util/Observable.ts
|
|
12188
|
+
/**
|
|
12189
|
+
* Simple Observable implementation
|
|
12190
|
+
* @template T is the typescript Type that defines the data being observed
|
|
12191
|
+
*/
|
|
12192
|
+
class Observable {
|
|
12193
|
+
constructor() {
|
|
12194
|
+
this.observers = [];
|
|
12195
|
+
this.subscriptions = [];
|
|
12196
|
+
}
|
|
12197
|
+
/**
|
|
12198
|
+
* Register an observer to listen to this observable
|
|
12199
|
+
* @param observer
|
|
12200
|
+
*/
|
|
12201
|
+
register(observer) {
|
|
12202
|
+
this.observers.push(observer);
|
|
12203
|
+
}
|
|
12204
|
+
/**
|
|
12205
|
+
* Register a callback to listen to this observable
|
|
12206
|
+
* @param func
|
|
12207
|
+
*/
|
|
12208
|
+
subscribe(func) {
|
|
12209
|
+
this.subscriptions.push(func);
|
|
12210
|
+
}
|
|
12211
|
+
/**
|
|
12212
|
+
* Remove an observer from the observable
|
|
12213
|
+
* @param observer
|
|
12214
|
+
*/
|
|
12215
|
+
unregister(observer) {
|
|
12216
|
+
const i = this.observers.indexOf(observer);
|
|
12217
|
+
if (i !== -1) {
|
|
12218
|
+
this.observers.splice(i, 1);
|
|
12219
|
+
}
|
|
12220
|
+
}
|
|
12221
|
+
/**
|
|
12222
|
+
* Remove a callback that is listening to this observable
|
|
12223
|
+
* @param func
|
|
12224
|
+
*/
|
|
12225
|
+
unsubscribe(func) {
|
|
12226
|
+
const i = this.subscriptions.indexOf(func);
|
|
12227
|
+
if (i !== -1) {
|
|
12228
|
+
this.subscriptions.splice(i, 1);
|
|
12229
|
+
}
|
|
12230
|
+
}
|
|
12231
|
+
/**
|
|
12232
|
+
* Broadcasts a message to all observers and callbacks
|
|
12233
|
+
* @param message
|
|
12234
|
+
*/
|
|
12235
|
+
notifyAll(message) {
|
|
12236
|
+
this.observers.forEach((o) => o.notify(message));
|
|
12237
|
+
this.subscriptions.forEach(cb => cb(message));
|
|
12238
|
+
}
|
|
12239
|
+
/**
|
|
12240
|
+
* Removes all observers and callbacks
|
|
12241
|
+
*/
|
|
12242
|
+
clear() {
|
|
12243
|
+
this.observers.length = 0;
|
|
12244
|
+
this.subscriptions.length = 0;
|
|
12245
|
+
}
|
|
12246
|
+
}
|
|
12247
|
+
|
|
12187
12248
|
;// CONCATENATED MODULE: ./EntityComponentSystem/Components/TransformComponent.ts
|
|
12188
12249
|
|
|
12189
12250
|
|
|
12190
12251
|
|
|
12191
12252
|
|
|
12253
|
+
|
|
12192
12254
|
const createPosView = (matrix) => {
|
|
12193
12255
|
const source = matrix;
|
|
12194
12256
|
return new VectorView({
|
|
@@ -12253,10 +12315,10 @@ class TransformComponent extends Component {
|
|
|
12253
12315
|
*/
|
|
12254
12316
|
this.coordPlane = CoordPlane.World;
|
|
12255
12317
|
/**
|
|
12256
|
-
*
|
|
12257
|
-
* For example z=99 would be drawn on top of z=0.
|
|
12318
|
+
* Observable that emits when the z index changes on this component
|
|
12258
12319
|
*/
|
|
12259
|
-
this.
|
|
12320
|
+
this.zIndexChanged$ = new Observable();
|
|
12321
|
+
this._z = 0;
|
|
12260
12322
|
}
|
|
12261
12323
|
_recalculate() {
|
|
12262
12324
|
this._rotation = this.matrix.getRotation();
|
|
@@ -12346,6 +12408,20 @@ class TransformComponent extends Component {
|
|
|
12346
12408
|
this.pos = parentTransform.getGlobalMatrix().getAffineInverse().multiply(val);
|
|
12347
12409
|
}
|
|
12348
12410
|
}
|
|
12411
|
+
/**
|
|
12412
|
+
* The z-index ordering of the entity, a higher values are drawn on top of lower values.
|
|
12413
|
+
* For example z=99 would be drawn on top of z=0.
|
|
12414
|
+
*/
|
|
12415
|
+
get z() {
|
|
12416
|
+
return this._z;
|
|
12417
|
+
}
|
|
12418
|
+
set z(val) {
|
|
12419
|
+
const oldz = this._z;
|
|
12420
|
+
this._z = val;
|
|
12421
|
+
if (oldz !== val) {
|
|
12422
|
+
this.zIndexChanged$.notifyAll(val);
|
|
12423
|
+
}
|
|
12424
|
+
}
|
|
12349
12425
|
/**
|
|
12350
12426
|
* The rotation of the entity in radians. For example `Math.PI` radians is the same as 180 degrees.
|
|
12351
12427
|
*/
|
|
@@ -12583,67 +12659,6 @@ class CollisionGroup {
|
|
|
12583
12659
|
*/
|
|
12584
12660
|
CollisionGroup.All = new CollisionGroup('Collide with all groups', -1, -1);
|
|
12585
12661
|
|
|
12586
|
-
;// CONCATENATED MODULE: ./Util/Observable.ts
|
|
12587
|
-
/**
|
|
12588
|
-
* Simple Observable implementation
|
|
12589
|
-
* @template T is the typescript Type that defines the data being observed
|
|
12590
|
-
*/
|
|
12591
|
-
class Observable {
|
|
12592
|
-
constructor() {
|
|
12593
|
-
this.observers = [];
|
|
12594
|
-
this.subscriptions = [];
|
|
12595
|
-
}
|
|
12596
|
-
/**
|
|
12597
|
-
* Register an observer to listen to this observable
|
|
12598
|
-
* @param observer
|
|
12599
|
-
*/
|
|
12600
|
-
register(observer) {
|
|
12601
|
-
this.observers.push(observer);
|
|
12602
|
-
}
|
|
12603
|
-
/**
|
|
12604
|
-
* Register a callback to listen to this observable
|
|
12605
|
-
* @param func
|
|
12606
|
-
*/
|
|
12607
|
-
subscribe(func) {
|
|
12608
|
-
this.subscriptions.push(func);
|
|
12609
|
-
}
|
|
12610
|
-
/**
|
|
12611
|
-
* Remove an observer from the observable
|
|
12612
|
-
* @param observer
|
|
12613
|
-
*/
|
|
12614
|
-
unregister(observer) {
|
|
12615
|
-
const i = this.observers.indexOf(observer);
|
|
12616
|
-
if (i !== -1) {
|
|
12617
|
-
this.observers.splice(i, 1);
|
|
12618
|
-
}
|
|
12619
|
-
}
|
|
12620
|
-
/**
|
|
12621
|
-
* Remove a callback that is listening to this observable
|
|
12622
|
-
* @param func
|
|
12623
|
-
*/
|
|
12624
|
-
unsubscribe(func) {
|
|
12625
|
-
const i = this.subscriptions.indexOf(func);
|
|
12626
|
-
if (i !== -1) {
|
|
12627
|
-
this.subscriptions.splice(i, 1);
|
|
12628
|
-
}
|
|
12629
|
-
}
|
|
12630
|
-
/**
|
|
12631
|
-
* Broadcasts a message to all observers and callbacks
|
|
12632
|
-
* @param message
|
|
12633
|
-
*/
|
|
12634
|
-
notifyAll(message) {
|
|
12635
|
-
this.observers.forEach((o) => o.notify(message));
|
|
12636
|
-
this.subscriptions.forEach(cb => cb(message));
|
|
12637
|
-
}
|
|
12638
|
-
/**
|
|
12639
|
-
* Removes all observers and callbacks
|
|
12640
|
-
*/
|
|
12641
|
-
clear() {
|
|
12642
|
-
this.observers.length = 0;
|
|
12643
|
-
this.subscriptions.length = 0;
|
|
12644
|
-
}
|
|
12645
|
-
}
|
|
12646
|
-
|
|
12647
12662
|
;// CONCATENATED MODULE: ./Collision/Detection/Pair.ts
|
|
12648
12663
|
|
|
12649
12664
|
|
|
@@ -24136,14 +24151,43 @@ class PointerSystem extends System {
|
|
|
24136
24151
|
this.overrideUseGraphicsBounds = false;
|
|
24137
24152
|
this.lastFrameEntityToPointers = new Map();
|
|
24138
24153
|
this.currentFrameEntityToPointers = new Map();
|
|
24154
|
+
this._sortedTransforms = [];
|
|
24155
|
+
this._sortedEntities = [];
|
|
24156
|
+
this._zHasChanged = false;
|
|
24157
|
+
this._zIndexUpdate = () => {
|
|
24158
|
+
this._zHasChanged = true;
|
|
24159
|
+
};
|
|
24139
24160
|
}
|
|
24140
24161
|
initialize(scene) {
|
|
24141
24162
|
this._engine = scene.engine;
|
|
24142
24163
|
this._receiver = this._engine.input.pointers;
|
|
24143
24164
|
}
|
|
24144
|
-
|
|
24145
|
-
|
|
24146
|
-
|
|
24165
|
+
preupdate() {
|
|
24166
|
+
if (this._zHasChanged) {
|
|
24167
|
+
this._sortedTransforms.sort((a, b) => {
|
|
24168
|
+
return b.z - a.z;
|
|
24169
|
+
});
|
|
24170
|
+
this._sortedEntities = this._sortedTransforms.map(t => t.owner);
|
|
24171
|
+
this._zHasChanged = false;
|
|
24172
|
+
}
|
|
24173
|
+
}
|
|
24174
|
+
notify(entityAddedOrRemoved) {
|
|
24175
|
+
if (isAddedSystemEntity(entityAddedOrRemoved)) {
|
|
24176
|
+
const tx = entityAddedOrRemoved.data.get(TransformComponent);
|
|
24177
|
+
this._sortedTransforms.push(tx);
|
|
24178
|
+
this._sortedEntities.push(tx.owner);
|
|
24179
|
+
tx.zIndexChanged$.subscribe(this._zIndexUpdate);
|
|
24180
|
+
this._zHasChanged = true;
|
|
24181
|
+
}
|
|
24182
|
+
else {
|
|
24183
|
+
const tx = entityAddedOrRemoved.data.get(TransformComponent);
|
|
24184
|
+
tx.zIndexChanged$.unsubscribe(this._zIndexUpdate);
|
|
24185
|
+
const index = this._sortedTransforms.indexOf(tx);
|
|
24186
|
+
if (index > -1) {
|
|
24187
|
+
this._sortedTransforms.splice(index, 1);
|
|
24188
|
+
this._sortedEntities.splice(index, 1);
|
|
24189
|
+
}
|
|
24190
|
+
}
|
|
24147
24191
|
}
|
|
24148
24192
|
entityCurrentlyUnderPointer(entity, pointerId) {
|
|
24149
24193
|
return this.currentFrameEntityToPointers.has(entity.id) &&
|
|
@@ -24169,11 +24213,11 @@ class PointerSystem extends System {
|
|
|
24169
24213
|
const pointers = this.currentFrameEntityToPointers.get(entity.id);
|
|
24170
24214
|
this.currentFrameEntityToPointers.set(entity.id, pointers.concat(pointerId));
|
|
24171
24215
|
}
|
|
24172
|
-
update(
|
|
24216
|
+
update(_entities) {
|
|
24173
24217
|
// Locate all the pointer/entity mappings
|
|
24174
|
-
this._processPointerToEntity(
|
|
24218
|
+
this._processPointerToEntity(this._sortedEntities);
|
|
24175
24219
|
// Dispatch pointer events on entities
|
|
24176
|
-
this._dispatchEvents(
|
|
24220
|
+
this._dispatchEvents(this._sortedEntities);
|
|
24177
24221
|
// Clear last frame's events
|
|
24178
24222
|
this._receiver.update();
|
|
24179
24223
|
this.lastFrameEntityToPointers.clear();
|
|
@@ -30401,7 +30445,7 @@ Promises_Promise = Promise_1 = Promises_decorate([
|
|
|
30401
30445
|
* The current Excalibur version string
|
|
30402
30446
|
* @description `process.env.__EX_VERSION` gets replaced by Webpack on build
|
|
30403
30447
|
*/
|
|
30404
|
-
const EX_VERSION = "0.26.0-alpha.
|
|
30448
|
+
const EX_VERSION = "0.26.0-alpha.415+c42be8b";
|
|
30405
30449
|
|
|
30406
30450
|
polyfill();
|
|
30407
30451
|
// This file is used as the bundle entry point and exports everything
|