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 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
- * The z-index ordering of the entity, a higher values are drawn on top of lower values.
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.z = 0;
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":"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"}
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
- sort(a: Entity, b: Entity): number;
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(entities: Entity[]): void;
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
- sort(a, b) {
34
- // Sort from high to low, because things on 'top' receive the pointer events first
35
- return b.get(TransformComponent).z - a.get(TransformComponent).z;
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(entities) {
90
+ update(_entities) {
62
91
  // Locate all the pointer/entity mappings
63
- this._processPointerToEntity(entities);
92
+ this._processPointerToEntity(this._sortedEntities);
64
93
  // Dispatch pointer events on entities
65
- this._dispatchEvents(entities);
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":"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"}
1
+ {"version":3,"file":"PointerSystem.js","sourceRoot":"","sources":["../../../src/engine/Input/PointerSystem.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * excalibur - 0.26.0-alpha.414+7bd8a82 - 2022-2-12
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
- * The z-index ordering of the entity, a higher values are drawn on top of lower values.
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.z = 0;
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
- sort(a, b) {
24145
- // Sort from high to low, because things on 'top' receive the pointer events first
24146
- return b.get(TransformComponent).z - a.get(TransformComponent).z;
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(entities) {
24216
+ update(_entities) {
24173
24217
  // Locate all the pointer/entity mappings
24174
- this._processPointerToEntity(entities);
24218
+ this._processPointerToEntity(this._sortedEntities);
24175
24219
  // Dispatch pointer events on entities
24176
- this._dispatchEvents(entities);
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.414+7bd8a82";
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