excalibur 0.32.0-alpha.1588 → 0.32.0-alpha.1590

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.
@@ -1,4 +1,4 @@
1
- /*! excalibur - 0.32.0-alpha.1588+edeeb62 - 2025-12-2
1
+ /*! excalibur - 0.32.0-alpha.1590+1be15c8 - 2025-12-3
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
@@ -35,7 +35,7 @@ function hn() {
35
35
  clearTimeout(r);
36
36
  });
37
37
  }
38
- const as = class Lt {
38
+ const hs = class Lt {
39
39
  /**
40
40
  * Force excalibur to load the Canvas 2D graphics context fallback
41
41
  * @warning not all features of excalibur are supported in the Canvas 2D fallback
@@ -96,9 +96,9 @@ const as = class Lt {
96
96
  return Object.keys(Lt._FLAGS);
97
97
  }
98
98
  };
99
- as._FROZEN = !1;
100
- as._FLAGS = {};
101
- let Ne = as;
99
+ hs._FROZEN = !1;
100
+ hs._FLAGS = {};
101
+ let Ne = hs;
102
102
  function Pe(r, t) {
103
103
  return { type: r, value: t };
104
104
  }
@@ -118,7 +118,7 @@ class yt {
118
118
  this._isCompleted || (this._isCompleted = !0, this._rejecter(t));
119
119
  }
120
120
  }
121
- class $ {
121
+ class Z {
122
122
  constructor() {
123
123
  this._paused = !1, this._empty = !0, this._listeners = {}, this._listenersOnce = {}, this._pipes = [];
124
124
  }
@@ -200,7 +200,7 @@ class $ {
200
200
  }
201
201
  }
202
202
  var Xe = /* @__PURE__ */ ((r) => (r.Canvas = "Canvas", r.Document = "Document", r))(Xe || {}), J = /* @__PURE__ */ ((r) => (r.ShortestPath = "shortest-path", r.LongestPath = "longest-path", r.Clockwise = "clockwise", r.CounterClockwise = "counter-clockwise", r))(J || {});
203
- const ki = 4294967295, eo = Date.now();
203
+ const zi = 4294967295, eo = Date.now();
204
204
  let io = 0;
205
205
  class ge {
206
206
  /**
@@ -221,10 +221,10 @@ class ge {
221
221
  const t = [0, this._a];
222
222
  let e = 0, i = 0;
223
223
  for (; i < this._n - this._m; i++)
224
- e = this._mt[i] & this._upperMask | this._mt[i + 1] & this._lowerMask, this._mt[i] = this._mt[i + this._m] ^ e >>> 1 ^ t[e & 1] & ki;
224
+ e = this._mt[i] & this._upperMask | this._mt[i + 1] & this._lowerMask, this._mt[i] = this._mt[i + this._m] ^ e >>> 1 ^ t[e & 1] & zi;
225
225
  for (; i < this._n - 1; i++)
226
- e = this._mt[i] & this._upperMask | this._mt[i + 1] & this._lowerMask, this._mt[i] = this._mt[i + (this._m - this._n)] ^ e >>> 1 ^ t[e & 1] & ki;
227
- e = this._mt[this._n - 1] & this._upperMask | this._mt[0] & this._lowerMask, this._mt[this._n - 1] = this._mt[this._m - 1] ^ e >>> 1 ^ t[e & 1] & ki, this._index = 0;
226
+ e = this._mt[i] & this._upperMask | this._mt[i + 1] & this._lowerMask, this._mt[i] = this._mt[i + (this._m - this._n)] ^ e >>> 1 ^ t[e & 1] & zi;
227
+ e = this._mt[this._n - 1] & this._upperMask | this._mt[0] & this._lowerMask, this._mt[this._n - 1] = this._mt[this._m - 1] ^ e >>> 1 ^ t[e & 1] & zi, this._index = 0;
228
228
  }
229
229
  /**
230
230
  * Return next 32 bit integer number in sequence
@@ -949,7 +949,7 @@ class Tt {
949
949
  `;
950
950
  }
951
951
  }
952
- class Z {
952
+ class j {
953
953
  constructor() {
954
954
  this.data = new Float64Array(6), this._scale = new Float64Array([1, 1]), this._scaleSignX = 1, this._scaleSignY = 1;
955
955
  }
@@ -963,7 +963,7 @@ class Z {
963
963
  return new DOMMatrix([...this.data]);
964
964
  }
965
965
  static identity() {
966
- const t = new Z();
966
+ const t = new j();
967
967
  return t.data[0] = 1, t.data[1] = 0, t.data[2] = 0, t.data[3] = 1, t.data[4] = 0, t.data[5] = 0, t;
968
968
  }
969
969
  /**
@@ -972,7 +972,7 @@ class Z {
972
972
  * @param y
973
973
  */
974
974
  static translation(t, e) {
975
- const i = Z.identity();
975
+ const i = j.identity();
976
976
  return i.data[4] = t, i.data[5] = e, i;
977
977
  }
978
978
  /**
@@ -981,7 +981,7 @@ class Z {
981
981
  * @param sy
982
982
  */
983
983
  static scale(t, e) {
984
- const i = Z.identity();
984
+ const i = j.identity();
985
985
  return i.data[0] = t, i.data[3] = e, i._scale[0] = t, i._scale[1] = e, i;
986
986
  }
987
987
  /**
@@ -989,7 +989,7 @@ class Z {
989
989
  * @param angle
990
990
  */
991
991
  static rotation(t) {
992
- const e = Z.identity();
992
+ const e = j.identity();
993
993
  return e.data[0] = Math.cos(t), e.data[1] = Math.sin(t), e.data[2] = -Math.sin(t), e.data[3] = Math.cos(t), e;
994
994
  }
995
995
  setPosition(t, e) {
@@ -1037,7 +1037,7 @@ class Z {
1037
1037
  const e = this.determinant();
1038
1038
  let i = e;
1039
1039
  e !== 0 && (i = 1 / e);
1040
- const s = this.data[0], n = this.data[2], o = this.data[1], a = this.data[3], h = t || Z.identity();
1040
+ const s = this.data[0], n = this.data[2], o = this.data[1], a = this.data[3], h = t || j.identity();
1041
1041
  h.data[0] = a * i, h.data[1] = -o * i, h.data[2] = -n * i, h.data[3] = s * i;
1042
1042
  const l = this.data[4], c = this.data[5];
1043
1043
  return h.data[4] = -(l * h.data[0] + c * h.data[2]), h.data[5] = -(l * h.data[1] + c * h.data[3]), h;
@@ -1047,7 +1047,7 @@ class Z {
1047
1047
  const i = e || new x(0, 0), s = t, n = s.x * this.data[0] + s.y * this.data[2] + this.data[4], o = s.x * this.data[1] + s.y * this.data[3] + this.data[5];
1048
1048
  return i.x = n, i.y = o, i;
1049
1049
  } else {
1050
- const i = e || new Z(), s = t, n = this.data[0], o = this.data[1], a = this.data[2], h = this.data[3], l = this.data[4], c = this.data[5], d = s.data[0], u = s.data[1], _ = s.data[2], p = s.data[3], g = s.data[4], v = s.data[5];
1050
+ const i = e || new j(), s = t, n = this.data[0], o = this.data[1], a = this.data[2], h = this.data[3], l = this.data[4], c = this.data[5], d = s.data[0], u = s.data[1], _ = s.data[2], p = s.data[3], g = s.data[4], v = s.data[5];
1051
1051
  i.data[0] = n * d + a * u, i.data[1] = o * d + h * u, i.data[2] = n * _ + a * p, i.data[3] = o * _ + h * p, i.data[4] = n * g + a * v + l, i.data[5] = o * g + h * v + c;
1052
1052
  const m = this._scaleSignX, f = this._scaleSignY;
1053
1053
  return i._scaleSignX = m * q(i._scaleSignX), i._scaleSignY = f * q(i._scaleSignY), i;
@@ -1126,7 +1126,7 @@ class Z {
1126
1126
  * Creates a new Matrix with the same data as the current {@apilink AffineMatrix}
1127
1127
  */
1128
1128
  clone(t) {
1129
- const e = t || new Z();
1129
+ const e = t || new j();
1130
1130
  return e.data[0] = this.data[0], e.data[1] = this.data[1], e.data[2] = this.data[2], e.data[3] = this.data[3], e.data[4] = this.data[4], e.data[5] = this.data[5], e._scaleSignX = this._scaleSignX, e._scaleSignY = this._scaleSignY, e;
1131
1131
  }
1132
1132
  toString() {
@@ -1199,7 +1199,7 @@ class re {
1199
1199
  } else
1200
1200
  this.scale.y = t;
1201
1201
  }
1202
- }), this._z = 0, this._isDirty = !1, this._isInverseDirty = !1, this._matrix = Z.identity(), this._inverse = Z.identity(), this._scratch = Z.identity();
1202
+ }), this._z = 0, this._isDirty = !1, this._isInverseDirty = !1, this._matrix = j.identity(), this._inverse = j.identity(), this._scratch = j.identity();
1203
1203
  }
1204
1204
  get parent() {
1205
1205
  return this._parent;
@@ -1488,7 +1488,7 @@ class K {
1488
1488
  return Math.abs(a) > e ? !1 : Math.abs(n) >= Math.abs(o) ? n > 0 ? this.begin.x <= t.x && t.x <= this.end.x : this.end.x <= t.x && t.x <= this.begin.x : o > 0 ? this.begin.y <= t.y && t.y <= this.end.y : this.end.y <= t.y && t.y <= this.begin.y;
1489
1489
  }
1490
1490
  }
1491
- class Ci {
1491
+ class Ti {
1492
1492
  constructor(t, e) {
1493
1493
  this.min = t, this.max = e;
1494
1494
  }
@@ -1562,7 +1562,7 @@ function cn(r, t, e, i) {
1562
1562
  }
1563
1563
  return r + c * (l * i);
1564
1564
  }
1565
- function Ti(r, t, e) {
1565
+ function Si(r, t, e) {
1566
1566
  return r.scale(1 - e).add(t.scale(e));
1567
1567
  }
1568
1568
  function oo(r, t, e) {
@@ -1578,9 +1578,9 @@ function Qt(r, t, e, i, s) {
1578
1578
  }
1579
1579
  function jh(r, t, e, i, s) {
1580
1580
  const n = ao(r, t, s);
1581
- return Ti(e, i, n);
1581
+ return Si(e, i, n);
1582
1582
  }
1583
- class Si {
1583
+ class Ai {
1584
1584
  constructor(t) {
1585
1585
  this._distLookup = [], this.quality = 4;
1586
1586
  var e;
@@ -1628,7 +1628,7 @@ class Si {
1628
1628
  const e = [...this.controlPoints];
1629
1629
  for (let i = 1; i < e.length; i++)
1630
1630
  for (let s = 0; s < e.length - i; s++)
1631
- e[s] = Ti(e[s], e[s + 1], t);
1631
+ e[s] = Si(e[s], e[s + 1], t);
1632
1632
  return e[0];
1633
1633
  }
1634
1634
  /**
@@ -1670,7 +1670,7 @@ class Si {
1670
1670
  return this.getPoint(i);
1671
1671
  }
1672
1672
  clone() {
1673
- return new Si({
1673
+ return new Ai({
1674
1674
  controlPoints: [...this.controlPoints],
1675
1675
  quality: this.quality
1676
1676
  });
@@ -1683,7 +1683,7 @@ class dn {
1683
1683
  * This constructor initializes an empty graph with no nodes or edges.
1684
1684
  */
1685
1685
  constructor() {
1686
- this.id = hs.generateUUID(), this._nodes = /* @__PURE__ */ new Map(), this._edges = /* @__PURE__ */ new Set(), this.adjacencyList = /* @__PURE__ */ new Map();
1686
+ this.id = ls.generateUUID(), this._nodes = /* @__PURE__ */ new Map(), this._edges = /* @__PURE__ */ new Set(), this.adjacencyList = /* @__PURE__ */ new Map();
1687
1687
  }
1688
1688
  /**
1689
1689
  * Adds a new node to the graph with the given data.
@@ -1691,7 +1691,7 @@ class dn {
1691
1691
  */
1692
1692
  addNode(t, e) {
1693
1693
  let i;
1694
- return e ? i = new ho(t, e) : i = new Vi(t), this._nodes.set(i.id, i), this.adjacencyList.set(i.id, /* @__PURE__ */ new Set()), i;
1694
+ return e ? i = new ho(t, e) : i = new qi(t), this._nodes.set(i.id, i), this.adjacencyList.set(i.id, /* @__PURE__ */ new Set()), i;
1695
1695
  }
1696
1696
  /**
1697
1697
  * Adds multiple new nodes to the graph with the given data.
@@ -1699,7 +1699,7 @@ class dn {
1699
1699
  */
1700
1700
  addNodes(t) {
1701
1701
  for (const e of t) {
1702
- const i = new Vi(e);
1702
+ const i = new qi(e);
1703
1703
  this._nodes.set(i.id, i), this.adjacencyList.set(i.id, /* @__PURE__ */ new Set());
1704
1704
  }
1705
1705
  return this._nodes;
@@ -2007,7 +2007,7 @@ class dn {
2007
2007
  class Us {
2008
2008
  // Reference to the opposite direction edge
2009
2009
  constructor(t, e, i) {
2010
- this._id = hs.generateUUID(), this._weight = 0, this._partnerEdge = null, this._source = t, this._target = e, i && i.weight ? this._weight = i.weight : i && i.useEuclidean ? this._weight = t.pos.distance(e.pos) : this._weight = 0;
2010
+ this._id = ls.generateUUID(), this._weight = 0, this._partnerEdge = null, this._source = t, this._target = e, i && i.weight ? this._weight = i.weight : i && i.useEuclidean ? this._weight = t.pos.distance(e.pos) : this._weight = 0;
2011
2011
  }
2012
2012
  linkWithPartner(t) {
2013
2013
  this._partnerEdge = t;
@@ -2028,9 +2028,9 @@ class Us {
2028
2028
  return this._partnerEdge;
2029
2029
  }
2030
2030
  }
2031
- class Vi {
2031
+ class qi {
2032
2032
  constructor(t) {
2033
- this._id = hs.generateUUID(), this._data = t, this._edges = /* @__PURE__ */ new Set();
2033
+ this._id = ls.generateUUID(), this._data = t, this._edges = /* @__PURE__ */ new Set();
2034
2034
  }
2035
2035
  get id() {
2036
2036
  return this._id;
@@ -2051,7 +2051,7 @@ class Vi {
2051
2051
  return Array.from(this._edges).map((t) => t.target);
2052
2052
  }
2053
2053
  }
2054
- class ho extends Vi {
2054
+ class ho extends qi {
2055
2055
  constructor(t, e) {
2056
2056
  super(t), this.pos = e;
2057
2057
  }
@@ -2065,8 +2065,8 @@ const un = class _n {
2065
2065
  }
2066
2066
  };
2067
2067
  un.rng = new ge();
2068
- let hs = un;
2069
- function ls(r) {
2068
+ let ls = un;
2069
+ function cs(r) {
2070
2070
  return r;
2071
2071
  }
2072
2072
  function Qh(r, t, e) {
@@ -2969,8 +2969,8 @@ ue._MAX_GROUPS = 32;
2969
2969
  ue._CURRENT_GROUP = 1;
2970
2970
  ue._CURRENT_BIT = ue._STARTING_BIT;
2971
2971
  ue._GROUPS = /* @__PURE__ */ new Map();
2972
- let Li = ue;
2973
- const Gi = class {
2972
+ let Ui = ue;
2973
+ const Xi = class {
2974
2974
  /**
2975
2975
  * STOP!!** It is preferred that {@apilink CollisionGroupManager.create} is used to create collision groups
2976
2976
  * unless you know how to construct the proper bitmasks. See https://github.com/excaliburjs/Excalibur/issues/1091 for more info.
@@ -3015,7 +3015,7 @@ const Gi = class {
3015
3015
  * @returns CollisionGroup
3016
3016
  */
3017
3017
  invert() {
3018
- const t = Li.create("~(" + this.name + ")", ~this.mask | 0);
3018
+ const t = Ui.create("~(" + this.name + ")", ~this.mask | 0);
3019
3019
  return t._category = ~this.category, t;
3020
3020
  }
3021
3021
  /**
@@ -3024,7 +3024,7 @@ const Gi = class {
3024
3024
  */
3025
3025
  static combine(t) {
3026
3026
  const e = t.map((n) => n.name).join("+"), s = ~t.reduce((n, o) => o.category | n, 0);
3027
- return Li.create(e, s);
3027
+ return Ui.create(e, s);
3028
3028
  }
3029
3029
  /**
3030
3030
  * Creates a collision group that collides with the listed groups
@@ -3032,7 +3032,7 @@ const Gi = class {
3032
3032
  */
3033
3033
  static collidesWith(t) {
3034
3034
  const e = `collidesWith(${t.map((s) => s.name).join("+")})`, i = t.reduce((s, n) => n.category | s, 0);
3035
- return Li.create(e, i);
3035
+ return Ui.create(e, i);
3036
3036
  }
3037
3037
  toString() {
3038
3038
  return `
@@ -3041,8 +3041,8 @@ mask: ${(this.mask >>> 0).toString(2).padStart(32, "0")}
3041
3041
  `;
3042
3042
  }
3043
3043
  };
3044
- Gi.All = new Gi("Collide with all groups", -1, -1);
3045
- let Ee = Gi;
3044
+ Xi.All = new Xi("Collide with all groups", -1, -1);
3045
+ let Ee = Xi;
3046
3046
  var mn = /* @__PURE__ */ ((r) => (r.Kill = "kill", r.PreKill = "prekill", r.PostKill = "postkill", r.PreDraw = "predraw", r.PostDraw = "postdraw", r.PreDebugDraw = "predebugdraw", r.PostDebugDraw = "postdebugdraw", r.PreUpdate = "preupdate", r.PostUpdate = "postupdate", r.PreFrame = "preframe", r.PostFrame = "postframe", r.PreCollision = "precollision", r.CollisionStart = "collisionstart", r.CollisionEnd = "collisionend", r.PostCollision = "postcollision", r.Initialize = "initialize", r.Activate = "activate", r.Deactivate = "deactivate", r.ExitViewport = "exitviewport", r.EnterViewport = "enterviewport", r.ExitTrigger = "exit", r.EnterTrigger = "enter", r.Connect = "connect", r.Disconnect = "disconnect", r.Button = "button", r.Axis = "axis", r.Visible = "visible", r.Hidden = "hidden", r.Start = "start", r.Stop = "stop", r.PointerUp = "pointerup", r.PointerDown = "pointerdown", r.PointerMove = "pointermove", r.PointerEnter = "pointerenter", r.PointerLeave = "pointerleave", r.PointerCancel = "pointercancel", r.PointerWheel = "pointerwheel", r.Up = "up", r.Down = "down", r.Move = "move", r.Enter = "enter", r.Leave = "leave", r.Cancel = "cancel", r.Wheel = "wheel", r.Press = "press", r.Release = "release", r.Hold = "hold", r.PointerDragStart = "pointerdragstart", r.PointerDragEnd = "pointerdragend", r.PointerDragEnter = "pointerdragenter", r.PointerDragLeave = "pointerdragleave", r.PointerDragMove = "pointerdragmove", r.ActionStart = "actionstart", r.ActionComplete = "actioncomplete", r.Add = "add", r.Remove = "remove", r))(mn || {});
3047
3047
  class B {
3048
3048
  constructor() {
@@ -3203,27 +3203,27 @@ class Re extends B {
3203
3203
  super(), this.self = t, this.other = e, this.side = i, this.intersection = s, this.contact = n, this.target = t;
3204
3204
  }
3205
3205
  }
3206
- class qi {
3206
+ class Yi {
3207
3207
  constructor(t, e, i, s) {
3208
3208
  this.self = t, this.other = e, this.side = i, this.contact = s;
3209
3209
  }
3210
3210
  }
3211
- class Xi {
3211
+ class $i {
3212
3212
  constructor(t, e, i, s) {
3213
3213
  this.self = t, this.other = e, this.side = i, this.lastContact = s;
3214
3214
  }
3215
3215
  }
3216
- class Yi {
3216
+ class Zi {
3217
3217
  constructor(t, e, i, s, n) {
3218
3218
  this.self = t, this.other = e, this.side = i, this.intersection = s, this.contact = n;
3219
3219
  }
3220
3220
  }
3221
- class $i {
3221
+ class ji {
3222
3222
  constructor(t, e, i, s, n) {
3223
3223
  this.self = t, this.other = e, this.side = i, this.intersection = s, this.contact = n;
3224
3224
  }
3225
3225
  }
3226
- class fi extends B {
3226
+ class gi extends B {
3227
3227
  /**
3228
3228
  *
3229
3229
  * @param self
@@ -3235,7 +3235,7 @@ class fi extends B {
3235
3235
  super(), this.self = t, this.other = e, this.side = i, this.contact = s, this.target = t;
3236
3236
  }
3237
3237
  }
3238
- class gi extends B {
3238
+ class pi extends B {
3239
3239
  /**
3240
3240
  *
3241
3241
  */
@@ -3313,12 +3313,12 @@ const El = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
3313
3313
  ActionStartEvent: Nn,
3314
3314
  ActivateEvent: kn,
3315
3315
  AddEvent: Vn,
3316
- CollisionEndEvent: gi,
3317
- CollisionPostSolveEvent: $i,
3318
- CollisionPreSolveEvent: Yi,
3319
- CollisionStartEvent: fi,
3320
- ContactEndEvent: Xi,
3321
- ContactStartEvent: qi,
3316
+ CollisionEndEvent: pi,
3317
+ CollisionPostSolveEvent: ji,
3318
+ CollisionPreSolveEvent: Zi,
3319
+ CollisionStartEvent: gi,
3320
+ ContactEndEvent: $i,
3321
+ ContactStartEvent: Yi,
3322
3322
  DeactivateEvent: Ln,
3323
3323
  EnterTriggerEvent: Hn,
3324
3324
  EnterViewPortEvent: Un,
@@ -3383,7 +3383,7 @@ function Xn(r, t) {
3383
3383
  function Yn(r) {
3384
3384
  throw new Error(r);
3385
3385
  }
3386
- function pi(r, t) {
3386
+ function mi(r, t) {
3387
3387
  var e;
3388
3388
  const i = new yt();
3389
3389
  return ((e = t == null ? void 0 : t.schedule.bind(t)) != null ? e : setTimeout)(() => {
@@ -3399,14 +3399,14 @@ function $n(r, t) {
3399
3399
  function li(r) {
3400
3400
  return r && typeof r == "object" && !Array.isArray(r);
3401
3401
  }
3402
- function mi(r, ...t) {
3402
+ function xi(r, ...t) {
3403
3403
  if (!t.length)
3404
3404
  return r;
3405
3405
  const e = t.shift();
3406
3406
  if (li(r) && li(e))
3407
3407
  for (const i in e)
3408
- li(e[i]) ? (r[i] || Object.assign(r, { [i]: {} }), mi(r[i], e[i])) : Object.assign(r, { [i]: e[i] });
3409
- return mi(r, ...t);
3408
+ li(e[i]) ? (r[i] || Object.assign(r, { [i]: {} }), xi(r[i], e[i])) : Object.assign(r, { [i]: e[i] });
3409
+ return xi(r, ...t);
3410
3410
  }
3411
3411
  class Il {
3412
3412
  constructor(t) {
@@ -3431,9 +3431,9 @@ const Dl = {
3431
3431
  PreUpdate: "preupdate",
3432
3432
  PostUpdate: "postupdate",
3433
3433
  Kill: "kill"
3434
- }, Zn = class Zi {
3434
+ }, Zn = class Qi {
3435
3435
  constructor(t, e) {
3436
- this.id = Zi._ID++, this.name = `Entity#${this.id}`, this.events = new $(), this._tags = /* @__PURE__ */ new Set(), this.componentAdded$ = new xt(), this.componentRemoved$ = new xt(), this.tagAdded$ = new xt(), this.tagRemoved$ = new xt(), this.components = /* @__PURE__ */ new Map(), this.componentValues = [], this._componentsToRemove = [], this.scene = null, this.isActive = !0, this._parent = null, this.childrenAdded$ = new xt(), this.childrenRemoved$ = new xt(), this._children = [], this._isInitialized = !1, this._isAdded = !1;
3436
+ this.id = Qi._ID++, this.name = `Entity#${this.id}`, this.events = new Z(), this._tags = /* @__PURE__ */ new Set(), this.componentAdded$ = new xt(), this.componentRemoved$ = new xt(), this.tagAdded$ = new xt(), this.tagRemoved$ = new xt(), this.components = /* @__PURE__ */ new Map(), this.componentValues = [], this._componentsToRemove = [], this.scene = null, this.isActive = !0, this._parent = null, this.childrenAdded$ = new xt(), this.childrenRemoved$ = new xt(), this._children = [], this._isInitialized = !1, this._isAdded = !1;
3437
3437
  let i, s;
3438
3438
  if (Array.isArray(t))
3439
3439
  i = t, s = e;
@@ -3614,7 +3614,7 @@ const Dl = {
3614
3614
  * Creates a deep copy of the entity and a copy of all its components
3615
3615
  */
3616
3616
  clone() {
3617
- const t = new Zi();
3617
+ const t = new Qi();
3618
3618
  for (const e of this.types) {
3619
3619
  const i = this.get(e);
3620
3620
  i && t.addComponent(i.clone());
@@ -4765,7 +4765,7 @@ class Jn {
4765
4765
  e(this.root);
4766
4766
  }
4767
4767
  }
4768
- class ji {
4768
+ class Ji {
4769
4769
  constructor(t) {
4770
4770
  this._config = t, this._pairs = /* @__PURE__ */ new Set(), this._collisionPairCache = [], this._colliders = [], this._dynamicCollisionTree = new Jn(t.dynamicTree);
4771
4771
  }
@@ -4929,7 +4929,7 @@ class ji {
4929
4929
  }
4930
4930
  const Kn = class tr {
4931
4931
  constructor() {
4932
- this.id = Pe("collider", tr._ID++), this.composite = null, this.events = new $(), this.offset = x.Zero;
4932
+ this.id = Pe("collider", tr._ID++), this.composite = null, this.events = new Z(), this.offset = x.Zero;
4933
4933
  }
4934
4934
  /**
4935
4935
  * Returns a boolean indicating whether this body collided with
@@ -4942,8 +4942,8 @@ const Kn = class tr {
4942
4942
  }
4943
4943
  };
4944
4944
  Kn._ID = 0;
4945
- let Ai = Kn;
4946
- var cs = /* @__PURE__ */ ((r) => (r.Arcade = "arcade", r.Realistic = "realistic", r))(cs || {}), _e = /* @__PURE__ */ ((r) => (r.None = "none", r.VerticalFirst = "vertical-first", r.HorizontalFirst = "horizontal-first", r))(_e || {});
4945
+ let Pi = Kn;
4946
+ var ds = /* @__PURE__ */ ((r) => (r.Arcade = "arcade", r.Realistic = "realistic", r))(ds || {}), _e = /* @__PURE__ */ ((r) => (r.None = "none", r.VerticalFirst = "vertical-first", r.HorizontalFirst = "horizontal-first", r))(_e || {});
4947
4947
  const er = {
4948
4948
  vertical: 1,
4949
4949
  horizontal: 2
@@ -4954,14 +4954,14 @@ const er = {
4954
4954
  horizontal: 0,
4955
4955
  vertical: 0
4956
4956
  };
4957
- var xi = /* @__PURE__ */ ((r) => (r.DynamicTree = "dynamic-tree", r.SparseHashGrid = "sparse-hash-grid", r))(xi || {});
4957
+ var vi = /* @__PURE__ */ ((r) => (r.DynamicTree = "dynamic-tree", r.SparseHashGrid = "sparse-hash-grid", r))(vi || {});
4958
4958
  const ne = () => ({
4959
4959
  enabled: !0,
4960
4960
  integration: {
4961
4961
  onScreenOnly: !1
4962
4962
  },
4963
4963
  gravity: w(0, 0).clone(),
4964
- solver: cs.Arcade,
4964
+ solver: ds.Arcade,
4965
4965
  substep: 1,
4966
4966
  colliders: {
4967
4967
  compositeStrategy: "together"
@@ -4978,7 +4978,7 @@ const ne = () => ({
4978
4978
  sleepBias: 0.9,
4979
4979
  defaultMass: 10
4980
4980
  },
4981
- spatialPartition: xi.SparseHashGrid,
4981
+ spatialPartition: vi.SparseHashGrid,
4982
4982
  sparseHashGrid: {
4983
4983
  size: 100
4984
4984
  },
@@ -4998,9 +4998,9 @@ const ne = () => ({
4998
4998
  warmStart: !0
4999
4999
  }
5000
5000
  });
5001
- class lt extends Ai {
5001
+ class lt extends Pi {
5002
5002
  constructor(t) {
5003
- super(), this._collisionProcessor = new ji({
5003
+ super(), this._collisionProcessor = new Ji({
5004
5004
  ...ne()
5005
5005
  }), this._dynamicAABBTree = new Jn({
5006
5006
  boundsPadding: 5,
@@ -5153,7 +5153,7 @@ class lt extends Ai {
5153
5153
  n && i.push(n);
5154
5154
  }
5155
5155
  if (i.length) {
5156
- const s = new Ci(i[0].min, i[0].max);
5156
+ const s = new Ti(i[0].min, i[0].max);
5157
5157
  for (const n of i)
5158
5158
  s.min = Math.min(n.min, s.min), s.max = Math.max(n.max, s.max);
5159
5159
  return s;
@@ -5179,7 +5179,7 @@ class lt extends Ai {
5179
5179
  return t.offset = this.offset.clone(), t;
5180
5180
  }
5181
5181
  }
5182
- function zi(r, t) {
5182
+ function Hi(r, t) {
5183
5183
  const i = r.dir(), s = t.dir(), n = i.dot(i), o = s.dot(s);
5184
5184
  if (n < 1e-9 && o < 1e-9)
5185
5185
  return new K(r.begin, t.begin);
@@ -5203,14 +5203,14 @@ const Yt = {
5203
5203
  let s = Number.MAX_VALUE, n = null;
5204
5204
  for (let o = 0; o < e.length; o++)
5205
5205
  for (let a = 0; a < i.length; a++) {
5206
- const h = zi(e[o], i[a]), l = h.getLength();
5206
+ const h = Hi(e[o], i[a]), l = h.getLength();
5207
5207
  l < s && (s = l, n = h);
5208
5208
  }
5209
5209
  return n;
5210
5210
  },
5211
5211
  PolygonEdgeClosestLine(r, t) {
5212
5212
  const i = t.worldPos.sub(r.worldPos), s = new Ce(r.worldPos, i), n = r.rayCast(s).point.add(s.dir.scale(0.1)), o = r.getClosestFace(n), a = t.asLine();
5213
- return zi(o.face, a);
5213
+ return Hi(o.face, a);
5214
5214
  },
5215
5215
  PolygonCircleClosestLine(r, t) {
5216
5216
  const e = t.worldPos, i = e.sub(r.worldPos), s = new Ce(r.worldPos, i.normalize()), n = r.rayCast(s).point.add(s.dir.scale(0.1)), o = r.getClosestFace(n), a = o.face.begin, h = o.face.getEdge();
@@ -5232,12 +5232,12 @@ const Yt = {
5232
5232
  },
5233
5233
  EdgeEdgeClosestLine(r, t) {
5234
5234
  const e = r.asLine(), i = t.asLine();
5235
- return zi(e, i);
5235
+ return Hi(e, i);
5236
5236
  }
5237
5237
  };
5238
- class _t extends Ai {
5238
+ class _t extends Pi {
5239
5239
  constructor(t) {
5240
- super(), this.offset = x.Zero, this._globalMatrix = Z.identity(), this._localBoundsDirty = !0, this.offset = t.offset || x.Zero, this.radius = t.radius || 0, this._globalMatrix.translate(this.offset.x, this.offset.y);
5240
+ super(), this.offset = x.Zero, this._globalMatrix = j.identity(), this._localBoundsDirty = !0, this.offset = t.offset || x.Zero, this.radius = t.radius || 0, this._globalMatrix.translate(this.offset.x, this.offset.y);
5241
5241
  }
5242
5242
  get worldPos() {
5243
5243
  return this._globalMatrix.getPosition();
@@ -5392,7 +5392,7 @@ class _t extends Ai {
5392
5392
  */
5393
5393
  project(t) {
5394
5394
  const e = [], s = this.center.dot(t);
5395
- return e.push(s), e.push(s + this.radius), e.push(s - this.radius), new Ci(Math.min.apply(Math, e), Math.max.apply(Math, e));
5395
+ return e.push(s), e.push(s + this.radius), e.push(s - this.radius), new Ti(Math.min.apply(Math, e), Math.max.apply(Math, e));
5396
5396
  }
5397
5397
  debug(t, e, i) {
5398
5398
  var s, n, o, a;
@@ -5435,7 +5435,7 @@ class we {
5435
5435
  return this.colliderB = e, this.colliderA = i, this.mtv = this.mtv.negate(), this.normal = this.normal.negate(), this.tangent = this.tangent.negate(), this;
5436
5436
  }
5437
5437
  }
5438
- class ds {
5438
+ class us {
5439
5439
  constructor(t, e, i = 100) {
5440
5440
  this.builder = t, this.recycler = e, this.maxObjects = i, this.totalAllocations = 0, this.index = 0, this.objects = [], this.disableWarnings = !1, this._logger = I.getInstance();
5441
5441
  }
@@ -5533,7 +5533,7 @@ const xe = class Vt {
5533
5533
  };
5534
5534
  }
5535
5535
  };
5536
- xe.SeparationPool = new ds(
5536
+ xe.SeparationPool = new us(
5537
5537
  () => new wo(),
5538
5538
  (r) => r,
5539
5539
  // no recycle
@@ -5543,10 +5543,10 @@ xe._ZERO = w(0, 0);
5543
5543
  xe._SCRATCH_POINT = w(0, 0);
5544
5544
  xe._SCRATCH_SUB_POINT = w(0, 0);
5545
5545
  xe._SCRATCH_NORMAL = w(0, 0);
5546
- xe._SCRATCH_MATRIX = Z.identity();
5546
+ xe._SCRATCH_MATRIX = j.identity();
5547
5547
  let We = xe;
5548
5548
  We.SeparationPool.disableWarnings = !0;
5549
- const bo = x.Zero, yo = x.Zero, Co = Z.identity(), Ut = {
5549
+ const bo = x.Zero, yo = x.Zero, Co = j.identity(), Ut = {
5550
5550
  CollideCircleCircle(r, t) {
5551
5551
  const e = r.worldPos, i = t.worldPos, s = r.radius + t.radius, n = e.distance(i);
5552
5552
  if (n > s)
@@ -5715,10 +5715,10 @@ const bo = x.Zero, yo = x.Zero, Co = Z.identity(), Ut = {
5715
5715
  return 0;
5716
5716
  }
5717
5717
  };
5718
- class At extends Ai {
5718
+ class At extends Pi {
5719
5719
  constructor(t) {
5720
5720
  var e;
5721
- super(), this._globalMatrix = Z.identity(), this.begin = t.begin || x.Zero, this.end = t.end || x.Zero, this.offset = (e = t.offset) != null ? e : x.Zero;
5721
+ super(), this._globalMatrix = j.identity(), this.begin = t.begin || x.Zero, this.end = t.end || x.Zero, this.offset = (e = t.offset) != null ? e : x.Zero;
5722
5722
  }
5723
5723
  /**
5724
5724
  * Returns a clone of this Edge, not associated with any collider
@@ -5886,14 +5886,14 @@ class At extends Ai {
5886
5886
  const e = [], i = [this._getTransformedBegin(), this._getTransformedEnd()], s = i.length;
5887
5887
  for (let n = 0; n < s; n++)
5888
5888
  e.push(i[n].dot(t));
5889
- return new Ci(Math.min.apply(Math, e), Math.max.apply(Math, e));
5889
+ return new Ti(Math.min.apply(Math, e), Math.max.apply(Math, e));
5890
5890
  }
5891
5891
  debug(t, e) {
5892
5892
  const i = this._getTransformedBegin(), s = this._getTransformedEnd();
5893
5893
  t.debug.drawLine(i, s, { color: e, lineWidth: 2 }), t.debug.drawCircle(i, 2, e), t.debug.drawCircle(s, 2, e);
5894
5894
  }
5895
5895
  }
5896
- class dt extends Ai {
5896
+ class dt extends Pi {
5897
5897
  constructor(t) {
5898
5898
  var e;
5899
5899
  super(), this._logger = I.getInstance(), this._transform = new re(), this._transformedPoints = [], this._sides = [], this._localSides = [], this._transformedPointsDirty = !0, this._sidesDirty = !0, this._localSidesDirty = !0, this._localBoundsDirty = !0, this.offset = (e = t.offset) != null ? e : x.Zero, this._transform.pos.x += this.offset.x, this._transform.pos.y += this.offset.y, this.points = t.points, this.isConvex() || t.suppressConvexWarning || this._logger.warn(
@@ -6266,7 +6266,7 @@ class dt extends Ai {
6266
6266
  const a = e[o].dot(t);
6267
6267
  s = Math.min(s, a), n = Math.max(n, a);
6268
6268
  }
6269
- return new Ci(s, n);
6269
+ return new Ti(s, n);
6270
6270
  }
6271
6271
  debug(t, e, i) {
6272
6272
  const s = this.getTransformedPoints();
@@ -6370,7 +6370,7 @@ function To(r, t) {
6370
6370
  }
6371
6371
  const rr = class or {
6372
6372
  constructor(t) {
6373
- this.id = or._ID++, this.transform = Z.identity(), this._transformStale = !0, this.showDebug = !1, this._flipHorizontal = !1, this._flipVertical = !1, this._rotation = 0, this.opacity = 1, this._scale = x.One, this._width = 0, this._height = 0;
6373
+ this.id = or._ID++, this.transform = j.identity(), this._transformStale = !0, this.showDebug = !1, this._flipHorizontal = !1, this._flipVertical = !1, this._rotation = 0, this.opacity = 1, this._scale = x.One, this._width = 0, this._height = 0;
6374
6374
  var e, i, s, n, o, a, h;
6375
6375
  t && (this.origin = (e = t.origin) != null ? e : this.origin, this.flipHorizontal = (i = t.flipHorizontal) != null ? i : this.flipHorizontal, this.flipVertical = (s = t.flipVertical) != null ? s : this.flipVertical, this.rotation = (n = t.rotation) != null ? n : this.rotation, this.opacity = (o = t.opacity) != null ? o : this.opacity, this.scale = (a = t.scale) != null ? a : this.scale, this.tint = (h = t.tint) != null ? h : this.tint, t.width && (this._width = t.width), t.height && (this._height = t.height));
6376
6376
  }
@@ -6504,10 +6504,10 @@ const Bl = {
6504
6504
  Frame: "frame",
6505
6505
  Loop: "loop",
6506
6506
  End: "end"
6507
- }, ar = class Qi extends nt {
6507
+ }, ar = class Ki extends nt {
6508
6508
  constructor(t) {
6509
6509
  var e, i, s;
6510
- super(t), this.events = new $(), this.frames = [], this.strategy = "loop", this.frameDuration = 100, this._idempotencyToken = -1, this._firstTick = !0, this._currentFrame = 0, this._timeLeftInFrame = 0, this._pingPongDirection = 1, this._done = !1, this._playing = !0, this._speed = 1, this._wasResetDuringFrameCalc = !1, this._reversed = !1, this.frames = t.frames, this.speed = (e = t.speed) != null ? e : this.speed, this.strategy = (i = t.strategy) != null ? i : this.strategy, this.frameDuration = t.totalDuration ? t.totalDuration / this.frames.length : (s = t.frameDuration) != null ? s : this.frameDuration, this.data = t.data ? new Map(Object.entries(t.data)) : /* @__PURE__ */ new Map(), t.reverse && this.reverse(), this.goToFrame(0);
6510
+ super(t), this.events = new Z(), this.frames = [], this.strategy = "loop", this.frameDuration = 100, this._idempotencyToken = -1, this._firstTick = !0, this._currentFrame = 0, this._timeLeftInFrame = 0, this._pingPongDirection = 1, this._done = !1, this._playing = !0, this._speed = 1, this._wasResetDuringFrameCalc = !1, this._reversed = !1, this.frames = t.frames, this.speed = (e = t.speed) != null ? e : this.speed, this.strategy = (i = t.strategy) != null ? i : this.strategy, this.frameDuration = t.totalDuration ? t.totalDuration / this.frames.length : (s = t.frameDuration) != null ? s : this.frameDuration, this.data = t.data ? new Map(Object.entries(t.data)) : /* @__PURE__ */ new Map(), t.reverse && this.reverse(), this.goToFrame(0);
6511
6511
  }
6512
6512
  clone() {
6513
6513
  const t = this.constructor;
@@ -6545,7 +6545,7 @@ const Bl = {
6545
6545
  */
6546
6546
  static fromSpriteSheet(t, e, i, s = "loop", n) {
6547
6547
  const o = t.sprites.length - 1, a = e.filter((h) => h < 0 || h > o);
6548
- return a.length && Qi._LOGGER.warn(
6548
+ return a.length && Ki._LOGGER.warn(
6549
6549
  `Indices into SpriteSheet were provided that don't exist: ${a.join(",")} no frame will be shown`
6550
6550
  ), new this({
6551
6551
  frames: t.sprites.filter((h, l) => e.indexOf(l) > -1).map((h) => ({
@@ -6585,7 +6585,7 @@ const Bl = {
6585
6585
  f ? u.push({
6586
6586
  graphic: f,
6587
6587
  duration: v != null ? v : d
6588
- }) : Qi._LOGGER.warn(
6588
+ }) : Ki._LOGGER.warn(
6589
6589
  `Skipping frame! SpriteSheet does not have coordinate (${p}, ${g}), please check your SpriteSheet to confirm that sprite exists`
6590
6590
  );
6591
6591
  }
@@ -6752,7 +6752,7 @@ const Bl = {
6752
6752
  }
6753
6753
  };
6754
6754
  ar._LOGGER = I.getInstance();
6755
- let us = ar;
6755
+ let _s = ar;
6756
6756
  class $e extends nt {
6757
6757
  constructor(t) {
6758
6758
  var e;
@@ -6780,7 +6780,7 @@ class $e extends nt {
6780
6780
  return t;
6781
6781
  }
6782
6782
  _isAnimationOrGroup(t) {
6783
- return t instanceof us || t instanceof $e;
6783
+ return t instanceof _s || t instanceof $e;
6784
6784
  }
6785
6785
  tick(t, e) {
6786
6786
  for (const i of this.members) {
@@ -6958,7 +6958,7 @@ function ti(r) {
6958
6958
  return;
6959
6959
  }
6960
6960
  }
6961
- function Ji(r, t = T.Red, e, i, s, n, o = 1, a = "butt") {
6961
+ function ts(r, t = T.Red, e, i, s, n, o = 1, a = "butt") {
6962
6962
  r.save(), r.beginPath(), r.lineWidth = o, r.lineCap = a, r.strokeStyle = t.toString(), r.moveTo(e, i), r.lineTo(s, n), r.closePath(), r.stroke(), r.restore();
6963
6963
  }
6964
6964
  function Po(r, t = T.Red, e) {
@@ -6968,7 +6968,7 @@ function Eo(r, t, e, i, s = 1) {
6968
6968
  const n = t ? t.toString() : "blue", o = i.scale(s);
6969
6969
  r.beginPath(), r.strokeStyle = n, r.moveTo(e.x, e.y), r.lineTo(e.x + o.x, e.y + o.y), r.closePath(), r.stroke();
6970
6970
  }
6971
- function Ki(r, t, e, i, s, n = 5, o = T.White, a = null) {
6971
+ function es(r, t, e, i, s, n = 5, o = T.White, a = null) {
6972
6972
  let h;
6973
6973
  if (typeof n == "number")
6974
6974
  h = { tl: n, tr: n, br: n, bl: n };
@@ -6988,9 +6988,9 @@ function Io(r, t, e, i, s = T.White, n = null) {
6988
6988
  const Ro = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
6989
6989
  __proto__: null,
6990
6990
  circle: Io,
6991
- line: Ji,
6991
+ line: ts,
6992
6992
  point: Po,
6993
- roundRect: Ki,
6993
+ roundRect: es,
6994
6994
  vector: Eo
6995
6995
  }, Symbol.toStringTag, { value: "Module" }));
6996
6996
  class ei {
@@ -7028,7 +7028,7 @@ class ei {
7028
7028
  class Mo {
7029
7029
  constructor() {
7030
7030
  this._pool = new ei(
7031
- () => Z.identity(),
7031
+ () => j.identity(),
7032
7032
  (t) => t.reset(),
7033
7033
  100
7034
7034
  ), this._transforms = [], this._currentTransform = this._pool.rent(!0);
@@ -7089,14 +7089,14 @@ const kl = {
7089
7089
  Progress: "progress",
7090
7090
  Error: "error"
7091
7091
  };
7092
- class Pi {
7092
+ class Ei {
7093
7093
  /**
7094
7094
  * @param path Path to the remote resource
7095
7095
  * @param responseType The type to expect as a response: "" | "arraybuffer" | "blob" | "document" | "json" | "text";
7096
7096
  * @param bustCache Whether or not to cache-bust requests
7097
7097
  */
7098
7098
  constructor(t, e, i = !1) {
7099
- this.path = t, this.responseType = e, this.bustCache = i, this.data = null, this.logger = I.getInstance(), this.events = new $();
7099
+ this.path = t, this.responseType = e, this.bustCache = i, this.data = null, this.logger = I.getInstance(), this.events = new Z();
7100
7100
  }
7101
7101
  /**
7102
7102
  * Returns true if the Resource is completely loaded and is ready
@@ -7339,7 +7339,7 @@ class $t {
7339
7339
  constructor(t, e, i) {
7340
7340
  this._logger = I.getInstance(), this.data = new Image(), this._readyFuture = new yt(), this.ready = this._readyFuture.promise, this.path = t;
7341
7341
  let s = !1, n;
7342
- typeof e == "boolean" ? s = e : { filtering: i, wrapping: n, bustCache: s } = { ...e }, this._resource = new Pi(t, "blob", s), this.filtering = i != null ? i : this.filtering, typeof n == "string" ? this.wrapping = {
7342
+ typeof e == "boolean" ? s = e : { filtering: i, wrapping: n, bustCache: s } = { ...e }, this._resource = new Ei(t, "blob", s), this.filtering = i != null ? i : this.filtering, typeof n == "string" ? this.wrapping = {
7343
7343
  x: n,
7344
7344
  y: n
7345
7345
  } : this.wrapping = n != null ? n : this.wrapping, t.endsWith(".gif") && this._logger.warn(
@@ -7456,7 +7456,7 @@ class $t {
7456
7456
  this.data = new Image();
7457
7457
  }
7458
7458
  }
7459
- class _s extends nt {
7459
+ class fs extends nt {
7460
7460
  constructor(t) {
7461
7461
  super(t), this._text = "", this.alphabet = "", this.shadow = void 0, this.caseInsensitive = !1, this.spacing = 0, this.lineHeight = void 0, this._logger = I.getInstance();
7462
7462
  const { alphabet: e, spriteSheet: i, caseInsensitive: s, spacing: n, shadow: o, lineHeight: a } = t;
@@ -7496,7 +7496,7 @@ class _s extends nt {
7496
7496
  this.width = a.width, this.height = a.height, this.shadow && (t.save(), t.translate(this.shadow.offset.x, this.shadow.offset.y), this._preDraw(t, s, n), this._drawImage(t, 0, 0, o), this._postDraw(t), t.restore()), this._preDraw(t, s, n), this._drawImage(t, 0, 0, o), this._postDraw(t);
7497
7497
  }
7498
7498
  clone() {
7499
- return new _s({
7499
+ return new fs({
7500
7500
  alphabet: this.alphabet,
7501
7501
  spriteSheet: this.spriteSheet,
7502
7502
  spacing: this.spacing
@@ -7521,7 +7521,7 @@ class _s extends nt {
7521
7521
  return this._cachedText = t, this._cachedLines = s, this._cachedRenderWidth = e, s;
7522
7522
  }
7523
7523
  }
7524
- class Ei extends Ht {
7524
+ class Ii extends Ht {
7525
7525
  constructor(t) {
7526
7526
  super({
7527
7527
  image: t.image,
@@ -7537,7 +7537,7 @@ class Ei extends Ht {
7537
7537
  }), this._ready = new yt(), this.ready = this._ready.promise, this._options = t, this.image.isLoaded() ? this._applyTiling() : this.image.ready.then(() => this._applyTiling());
7538
7538
  }
7539
7539
  static fromSprite(t, e) {
7540
- return new Ei({
7540
+ return new Ii({
7541
7541
  sourceView: { ...t.sourceView },
7542
7542
  width: t.width,
7543
7543
  height: t.height,
@@ -7627,7 +7627,7 @@ class Te {
7627
7627
  throw Error(`No sprite exists in the SpriteSheet at (${t}, ${e}), y: ${e} should be between 0 and ${this.rows - 1} rows`);
7628
7628
  const s = t + e * this.columns, n = this.sprites[s];
7629
7629
  if (n)
7630
- return Ei.fromSprite(n, i);
7630
+ return Ii.fromSprite(n, i);
7631
7631
  throw Error(`Invalid sprite coordinates (${t}, ${e})`);
7632
7632
  }
7633
7633
  /**
@@ -7709,7 +7709,7 @@ class Te {
7709
7709
  });
7710
7710
  }
7711
7711
  }
7712
- const Do = "data:image/png;base64,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", Ii = class pt {
7712
+ const Do = "data:image/png;base64,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", Ri = class pt {
7713
7713
  static registerDebugConfig(t) {
7714
7714
  pt.config = t;
7715
7715
  }
@@ -7782,9 +7782,9 @@ const Do = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMAAAADACAYAAABS3GwHAA
7782
7782
  pt._drawCalls.length = 0;
7783
7783
  }
7784
7784
  };
7785
- Ii._drawCalls = [];
7786
- Ii.z = 1 / 0;
7787
- Ii.config = {
7785
+ Ri._drawCalls = [];
7786
+ Ri.z = 1 / 0;
7787
+ Ri.config = {
7788
7788
  // add some defaults
7789
7789
  settings: {
7790
7790
  text: {
@@ -7801,7 +7801,7 @@ Ii.config = {
7801
7801
  }
7802
7802
  }
7803
7803
  };
7804
- let St = Ii;
7804
+ let St = Ri;
7805
7805
  class fr {
7806
7806
  constructor() {
7807
7807
  this.fontSheet = Do, this.size = 16, this.load();
@@ -7831,7 +7831,7 @@ class fr {
7831
7831
  originOffset: { x: 2, y: 0 },
7832
7832
  margin: { x: 2, y: 0 }
7833
7833
  }
7834
- }), this._spriteFont = new _s({
7834
+ }), this._spriteFont = new fs({
7835
7835
  alphabet: " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~?",
7836
7836
  caseInsensitive: !1,
7837
7837
  spriteSheet: this._spriteSheet,
@@ -8019,12 +8019,12 @@ class gr extends nt {
8019
8019
  });
8020
8020
  }
8021
8021
  }
8022
- class fs extends Bt {
8022
+ class gs extends Bt {
8023
8023
  constructor(t, e = !0) {
8024
8024
  super(), this.draw = t, this.useTransform = e;
8025
8025
  }
8026
8026
  }
8027
- class gs extends Bt {
8027
+ class ps extends Bt {
8028
8028
  constructor(t) {
8029
8029
  super(), this.parallaxFactor = w(1, 1), this.parallaxFactor = t != null ? t : this.parallaxFactor;
8030
8030
  }
@@ -8079,7 +8079,7 @@ ke._LOGGER = I.getInstance();
8079
8079
  ke._TEXT_USAGE = /* @__PURE__ */ new Map();
8080
8080
  ke._TEXT_CACHE = /* @__PURE__ */ new Map();
8081
8081
  ke._MEASURE_CACHE = /* @__PURE__ */ new Map();
8082
- let ts = ke;
8082
+ let is = ke;
8083
8083
  function zo(r, t, e, i) {
8084
8084
  if (r.parent !== t.parent) {
8085
8085
  const c = r.clone(), d = r.globalPos.clone(), u = r.globalScale.clone(), _ = r.globalRotation;
@@ -8118,13 +8118,13 @@ class pr extends Ft {
8118
8118
  update(t) {
8119
8119
  this._token++;
8120
8120
  let e;
8121
- ts.checkAndClearCache(), this._graphicsContext.save(), this._camera && this._camera.draw(this._graphicsContext);
8121
+ is.checkAndClearCache(), this._graphicsContext.save(), this._camera && this._camera.draw(this._graphicsContext);
8122
8122
  for (let i = 0; i < this._sortedTransforms.length; i++) {
8123
8123
  const s = this._sortedTransforms[i], n = s.owner;
8124
8124
  if (n.hasTag("ex.offscreen") || (e = n.get(tt), !e.isVisible))
8125
8125
  continue;
8126
8126
  e.onPreTransformDraw && e.onPreTransformDraw(this._graphicsContext, t), n.events.emit("pretransformdraw", new Cn(this._graphicsContext, t, n)), s.coordPlane === ht.Screen && this._graphicsContext.restore(), this._graphicsContext.save(), s.coordPlane === ht.Screen && this._graphicsContext.translate(this._engine.screen.contentArea.left, this._engine.screen.contentArea.top), e.update(t, this._token);
8127
- const o = n.get(gs);
8127
+ const o = n.get(ps);
8128
8128
  if (o) {
8129
8129
  const a = x.One.sub(o.parallaxFactor), h = this._camera.drawPos.scale(a);
8130
8130
  this._graphicsContext.translate(h.x, h.y);
@@ -8198,7 +8198,7 @@ class mr extends Ft {
8198
8198
  let t, e, i;
8199
8199
  for (let s = 0; s < this.query.entities.length; s++) {
8200
8200
  const n = this.query.entities[s];
8201
- e = n.get(tt), t = n.get(P), i = n.get(gs);
8201
+ e = n.get(tt), t = n.get(P), i = n.get(ps);
8202
8202
  let o;
8203
8203
  if (i) {
8204
8204
  const h = x.One.sub(i.parallaxFactor);
@@ -8221,7 +8221,7 @@ class mr extends Ft {
8221
8221
  }
8222
8222
  }
8223
8223
  mr.priority = Jt.Higher;
8224
- class ps extends Ke {
8224
+ class ms extends Ke {
8225
8225
  constructor(t) {
8226
8226
  var e, i, s;
8227
8227
  super(t), this._radius = 0;
@@ -8235,7 +8235,7 @@ class ps extends Ke {
8235
8235
  this._radius = t, this.width = this._radius * 2, this.height = this._radius * 2, this.flagDirty();
8236
8236
  }
8237
8237
  clone() {
8238
- return new ps({
8238
+ return new ms({
8239
8239
  radius: this.radius,
8240
8240
  ...this.cloneGraphicOptions(),
8241
8241
  ...this.cloneRasterOptions()
@@ -8245,12 +8245,12 @@ class ps extends Ke {
8245
8245
  this.radius > 0 && (t.beginPath(), t.arc(this.radius, this.radius, this.radius, 0, Math.PI * 2), this.color && t.fill(), this.strokeColor && t.stroke());
8246
8246
  }
8247
8247
  }
8248
- class Ri extends Ke {
8248
+ class Mi extends Ke {
8249
8249
  constructor(t) {
8250
8250
  super(t), this.width = t.width, this.height = t.height, this.rasterize();
8251
8251
  }
8252
8252
  clone() {
8253
- return new Ri({
8253
+ return new Mi({
8254
8254
  width: this.width,
8255
8255
  height: this.height,
8256
8256
  ...this.cloneGraphicOptions(),
@@ -8294,7 +8294,7 @@ class xr extends Ke {
8294
8294
  }
8295
8295
  }
8296
8296
  }
8297
- class ms extends Ke {
8297
+ class xs extends Ke {
8298
8298
  constructor(t = {}) {
8299
8299
  super(t), this._options = t;
8300
8300
  }
@@ -8305,7 +8305,7 @@ class ms extends Ke {
8305
8305
  return this._ctx;
8306
8306
  }
8307
8307
  clone() {
8308
- return new ms({
8308
+ return new xs({
8309
8309
  ...this._options,
8310
8310
  ...this.cloneGraphicOptions(),
8311
8311
  ...this.cloneRasterOptions()
@@ -8650,7 +8650,7 @@ Read https://excaliburjs.com/docs/imagesource for more information.`
8650
8650
  }
8651
8651
  }
8652
8652
  }
8653
- class wr extends us {
8653
+ class wr extends _s {
8654
8654
  constructor(t) {
8655
8655
  super({
8656
8656
  ...t,
@@ -8664,7 +8664,7 @@ class wr extends us {
8664
8664
  for (let i = 0; i < this.frames.length; i++) {
8665
8665
  const s = this.frames[i].graphic;
8666
8666
  if (s && s instanceof Ht) {
8667
- const n = new Ei({
8667
+ const n = new Ii({
8668
8668
  image: s.image,
8669
8669
  width: t.width,
8670
8670
  height: t.height,
@@ -8730,14 +8730,15 @@ const Ho = {
8730
8730
  multiSampleAntialiasing: !0,
8731
8731
  filtering: wt.Blended,
8732
8732
  canvasImageRendering: "auto"
8733
- }, xs = class es {
8733
+ }, Fi = class ci {
8734
8734
  static clear() {
8735
- es.DrawCallCount = 0, es.DrawnImagesCount = 0;
8735
+ ci.DrawCallCount = 0, ci.DrawnImagesCount = 0, ci.RendererSwaps = 0;
8736
8736
  }
8737
8737
  };
8738
- xs.DrawCallCount = 0;
8739
- xs.DrawnImagesCount = 0;
8740
- let j = xs;
8738
+ Fi.DrawCallCount = 0;
8739
+ Fi.DrawnImagesCount = 0;
8740
+ Fi.RendererSwaps = 0;
8741
+ let $ = Fi;
8741
8742
  const Y = 1e-4;
8742
8743
  class No {
8743
8744
  constructor(t) {
@@ -8790,7 +8791,7 @@ class No {
8790
8791
  this._debugText.write(this._ex, t, e);
8791
8792
  }
8792
8793
  }
8793
- class is {
8794
+ class ss {
8794
8795
  constructor(t) {
8795
8796
  this.useDrawSorting = !1, this.z = 0, this.backgroundColor = T.ExcaliburBlue, this._state = new _r(), this.snapToPixel = !1, this.debug = new No(this);
8796
8797
  const { canvasElement: e, context: i, enableTransparency: s, snapToPixel: n, antialiasing: o, backgroundColor: a } = t;
@@ -8838,7 +8839,7 @@ class is {
8838
8839
  return;
8839
8840
  this.__ctx.globalAlpha = this.opacity;
8840
8841
  const c = [t, e, i, s, n, o, a, h, l].filter((d) => d !== void 0).map((d) => typeof d == "number" && this.snapToPixel ? ~~d : d);
8841
- this.__ctx.drawImage.apply(this.__ctx, c), j.DrawCallCount++, j.DrawnImagesCount = 1;
8842
+ this.__ctx.drawImage.apply(this.__ctx, c), $.DrawCallCount++, $.DrawnImagesCount = 1;
8842
8843
  }
8843
8844
  drawLine(t, e, i, s = 1) {
8844
8845
  this.__ctx.save(), this.__ctx.beginPath(), this.__ctx.strokeStyle = i.toString(), this.__ctx.moveTo(
@@ -8898,7 +8899,7 @@ class is {
8898
8899
  this.__ctx.scale(t, e);
8899
8900
  }
8900
8901
  getTransform() {
8901
- const t = this.__ctx.getTransform(), e = new Z();
8902
+ const t = this.__ctx.getTransform(), e = new j();
8902
8903
  return e.data[0] = t.a, e.data[1] = t.b, e.data[2] = t.c, e.data[3] = t.d, e.data[4] = t.e, e.data[5] = t.f, e;
8903
8904
  }
8904
8905
  multiply(t) {
@@ -8926,7 +8927,7 @@ class is {
8926
8927
  return null;
8927
8928
  }
8928
8929
  clear() {
8929
- this.__ctx.clearRect(0, 0, this.width, this.height), this.__ctx.fillStyle = this.backgroundColor.toString(), this.__ctx.fillRect(0, 0, this.width, this.height), j.clear();
8930
+ this.__ctx.clearRect(0, 0, this.width, this.height), this.__ctx.fillStyle = this.backgroundColor.toString(), this.__ctx.fillRect(0, 0, this.width, this.height), $.clear();
8930
8931
  }
8931
8932
  /**
8932
8933
  * Flushes the batched draw calls to the screen
@@ -8966,7 +8967,7 @@ class Wo {
8966
8967
  this._gl.deleteBuffer(this.buffer), this._gl = null;
8967
8968
  }
8968
8969
  }
8969
- function ss(r, t) {
8970
+ function ns(r, t) {
8970
8971
  switch (t) {
8971
8972
  case r.INT:
8972
8973
  case r.UNSIGNED_INT:
@@ -9098,7 +9099,7 @@ const Ll = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
9098
9099
  getAttributeComponentSize: Cr,
9099
9100
  getAttributePointerType: Tr,
9100
9101
  getGLTypeFromSource: yr,
9101
- getGlTypeSizeBytes: ss,
9102
+ getGlTypeSizeBytes: ns,
9102
9103
  getMaxShaderComplexity: vs,
9103
9104
  isAttributeInSource: br
9104
9105
  }, Symbol.toStringTag, { value: "Module" }));
@@ -9240,7 +9241,7 @@ const Sr = class Ue {
9240
9241
  this.trySetUniformFloatVector(s, n);
9241
9242
  else if (n instanceof T)
9242
9243
  this.trySetUniformFloatColor(s, n);
9243
- else if (n instanceof Z)
9244
+ else if (n instanceof j)
9244
9245
  this.setUniformAffineMatrix(s, n);
9245
9246
  else {
9246
9247
  const o = i.find((a) => a.name === s);
@@ -9925,7 +9926,7 @@ class Kt {
9925
9926
  }
9926
9927
  let e = 0;
9927
9928
  for (const n of this._layout) {
9928
- const o = ss(this._gl, n.glType);
9929
+ const o = ns(this._gl, n.glType);
9929
9930
  this._vertexTotalSizeBytes += o * n.size, e += n.size;
9930
9931
  }
9931
9932
  this._vertexBuffer.bufferData.length % e !== 0 && this._logger.warn(
@@ -9935,7 +9936,7 @@ class Kt {
9935
9936
  this._vao = i.createVertexArray(), i.bindVertexArray(this._vao), this._vertexBuffer.bind();
9936
9937
  let s = 0;
9937
9938
  for (const n of this._layout)
9938
- n.location !== -1 && (n.glType === i.INT ? i.vertexAttribIPointer(n.location, n.size, n.glType, this.totalVertexSizeBytes, s) : i.vertexAttribPointer(n.location, n.size, n.glType, n.normalized, this.totalVertexSizeBytes, s), i.enableVertexAttribArray(n.location)), s += ss(i, n.glType) * n.size;
9939
+ n.location !== -1 && (n.glType === i.INT ? i.vertexAttribIPointer(n.location, n.size, n.glType, this.totalVertexSizeBytes, s) : i.vertexAttribPointer(n.location, n.size, n.glType, n.normalized, this.totalVertexSizeBytes, s), i.enableVertexAttribArray(n.location)), s += ns(i, n.glType) * n.size;
9939
9940
  i.bindVertexArray(null), this._vertexBuffer.unbind(), this._initialized = !0;
9940
9941
  }
9941
9942
  /**
@@ -10311,7 +10312,7 @@ class Jo {
10311
10312
  if (this._lineCount === 0)
10312
10313
  return;
10313
10314
  const t = this._gl;
10314
- this._shader.use(), this._layout.use(!0), this._shader.setUniformMatrix("u_matrix", this._context.ortho), this._shader.setUniformBoolean("u_dashed", this._currentlyDashed), t.drawArrays(t.TRIANGLES, 0, this._lineCount * 6), j.DrawnImagesCount += this._lineCount, j.DrawCallCount++, this._vertexIndex = 0, this._lineCount = 0, this._lengthSoFar = 0;
10315
+ this._shader.use(), this._layout.use(!0), this._shader.setUniformMatrix("u_matrix", this._context.ortho), this._shader.setUniformBoolean("u_dashed", this._currentlyDashed), t.drawArrays(t.TRIANGLES, 0, this._lineCount * 6), $.DrawnImagesCount += this._lineCount, $.DrawCallCount++, this._vertexIndex = 0, this._lineCount = 0, this._lengthSoFar = 0;
10315
10316
  }
10316
10317
  }
10317
10318
  const Ko = `#version 300 es
@@ -10389,7 +10390,7 @@ class ea {
10389
10390
  if (this._pointCount === 0)
10390
10391
  return;
10391
10392
  const t = this._gl;
10392
- this._shader.use(), this._layout.use(!0), this._shader.setUniformMatrix("u_matrix", this._context.ortho), t.drawArrays(t.POINTS, 0, this._pointCount), j.DrawnImagesCount += this._pointCount, j.DrawCallCount++, this._pointCount = 0, this._vertexIndex = 0;
10393
+ this._shader.use(), this._layout.use(!0), this._shader.setUniformMatrix("u_matrix", this._context.ortho), t.drawArrays(t.POINTS, 0, this._pointCount), $.DrawnImagesCount += this._pointCount, $.DrawCallCount++, this._pointCount = 0, this._vertexIndex = 0;
10393
10394
  }
10394
10395
  }
10395
10396
  const ia = `#version 300 es
@@ -10538,7 +10539,7 @@ class na {
10538
10539
  if (this._circleCount === 0)
10539
10540
  return;
10540
10541
  const t = this._gl;
10541
- this._shader.use(), this._layout.use(!0), this._shader.setUniformMatrix("u_matrix", this._context.ortho), this._quads.bind(), t.drawElements(t.TRIANGLES, this._circleCount * 6, this._quads.bufferGlType, 0), j.DrawnImagesCount += this._circleCount, j.DrawCallCount++, this._circleCount = 0, this._vertexIndex = 0;
10542
+ this._shader.use(), this._layout.use(!0), this._shader.setUniformMatrix("u_matrix", this._context.ortho), this._quads.bind(), t.drawElements(t.TRIANGLES, this._circleCount * 6, this._quads.bufferGlType, 0), $.DrawnImagesCount += this._circleCount, $.DrawCallCount++, this._circleCount = 0, this._vertexIndex = 0;
10542
10543
  }
10543
10544
  }
10544
10545
  const ra = `#version 300 es
@@ -10812,7 +10813,7 @@ class ca {
10812
10813
  if (this._imageCount === 0)
10813
10814
  return;
10814
10815
  const t = this._gl;
10815
- this._shader.use(), this._layout.use(!0, 48 * this._imageCount), this._shader.setUniformMatrix("u_matrix", this._context.ortho), this._shader.setUniformBoolean("u_pixelart", this.pixelArtSampler), this._bindTextures(t), this._quads.bind(), t.drawElements(t.TRIANGLES, this._imageCount * 6, this._quads.bufferGlType, 0), j.DrawnImagesCount += this._imageCount, j.DrawCallCount++, this._imageCount = 0, this._vertexIndex = 0, this._textures.length = 0, this._textureIndex = 0, this._textureToIndex.clear(), this._images.clear(), this._imageToWidth.clear(), this._imageToHeight.clear();
10816
+ this._shader.use(), this._layout.use(!0, 48 * this._imageCount), this._shader.setUniformMatrix("u_matrix", this._context.ortho), this._shader.setUniformBoolean("u_pixelart", this.pixelArtSampler), this._bindTextures(t), this._quads.bind(), t.drawElements(t.TRIANGLES, this._imageCount * 6, this._quads.bufferGlType, 0), $.DrawnImagesCount += this._imageCount, $.DrawCallCount++, this._imageCount = 0, this._vertexIndex = 0, this._textures.length = 0, this._textureIndex = 0, this._textureToIndex.clear(), this._images.clear(), this._imageToWidth.clear(), this._imageToHeight.clear();
10816
10817
  }
10817
10818
  }
10818
10819
  const da = `#version 300 es
@@ -11001,7 +11002,7 @@ class _a {
11001
11002
  if (this._rectangleCount === 0)
11002
11003
  return;
11003
11004
  const t = this._gl;
11004
- this._shader.use(), this._layout.use(!0), this._shader.setUniformMatrix("u_matrix", this._context.ortho), this._quads.bind(), t.drawElements(t.TRIANGLES, this._rectangleCount * 6, this._quads.bufferGlType, 0), j.DrawnImagesCount += this._rectangleCount, j.DrawCallCount++, this._rectangleCount = 0, this._vertexIndex = 0;
11005
+ this._shader.use(), this._layout.use(!0), this._shader.setUniformMatrix("u_matrix", this._context.ortho), this._quads.bind(), t.drawElements(t.TRIANGLES, this._rectangleCount * 6, this._quads.bufferGlType, 0), $.DrawnImagesCount += this._rectangleCount, $.DrawCallCount++, this._rectangleCount = 0, this._vertexIndex = 0;
11005
11006
  }
11006
11007
  }
11007
11008
  const fa = `#version 300 es
@@ -11141,12 +11142,12 @@ class pa {
11141
11142
  if (this._circleCount === 0)
11142
11143
  return;
11143
11144
  const t = this._gl;
11144
- this._shader.use(), this._layout.use(!0), this._shader.setUniformMatrix("u_matrix", this._context.ortho), this._quads.bind(), t.drawElements(t.TRIANGLES, this._circleCount * 6, this._quads.bufferGlType, 0), j.DrawnImagesCount += this._circleCount, j.DrawCallCount++, this._circleCount = 0, this._vertexIndex = 0;
11145
+ this._shader.use(), this._layout.use(!0), this._shader.setUniformMatrix("u_matrix", this._context.ortho), this._quads.bind(), t.drawElements(t.TRIANGLES, this._circleCount * 6, this._quads.bufferGlType, 0), $.DrawnImagesCount += this._circleCount, $.DrawCallCount++, this._circleCount = 0, this._vertexIndex = 0;
11145
11146
  }
11146
11147
  }
11147
11148
  class ma {
11148
11149
  constructor() {
11149
- this.z = 0, this.priority = 0, this.renderer = "", this.transform = Z.identity(), this.state = {
11150
+ this.z = 0, this.priority = 0, this.renderer = "", this.transform = j.identity(), this.state = {
11150
11151
  z: 0,
11151
11152
  opacity: 1,
11152
11153
  tint: T.White,
@@ -11186,10 +11187,10 @@ class Ns {
11186
11187
  const m = this._context.getTransform(), f = this._context.opacity, b = v.getShader(), C = this._layout.vertexBuffer.bufferData;
11187
11188
  let S = 0, E = (t == null ? void 0 : t.width) || s || 0, y = (t == null ? void 0 : t.height) || n || 0, k = [0, 0, (c = s != null ? s : t == null ? void 0 : t.width) != null ? c : 0, (d = n != null ? n : t == null ? void 0 : t.height) != null ? d : 0], L = [e != null ? e : 1, i != null ? i : 1];
11188
11189
  o !== void 0 && a !== void 0 && h !== void 0 && l !== void 0 && (k = [e != null ? e : 1, i != null ? i : 1, (u = s != null ? s : t == null ? void 0 : t.width) != null ? u : 0, (_ = n != null ? n : t == null ? void 0 : t.height) != null ? _ : 0], L = [o, a], E = h, y = l), e = k[0], i = k[1];
11189
- const O = k[2], Q = k[3], st = w(L[0], L[1]), X = w(L[0] + E, L[1]), U = w(L[0], L[1] + y), ot = w(L[0] + E, L[1] + y), ct = t.width || E, A = t.height || y, oe = e / ct, ae = i / A, he = (e + O - 0.01) / ct, Le = (i + Q - 0.01) / A, Bi = m.getPosition(), Ms = Bi.add(ot), Fs = Bi.x / this._context.width, Ds = Bi.y / this._context.height, Bs = Ms.x / this._context.width, ks = Ms.y / this._context.height;
11190
+ const O = k[2], Q = k[3], st = w(L[0], L[1]), X = w(L[0] + E, L[1]), U = w(L[0], L[1] + y), ot = w(L[0] + E, L[1] + y), ct = t.width || E, A = t.height || y, oe = e / ct, ae = i / A, he = (e + O - 0.01) / ct, Le = (i + Q - 0.01) / A, Li = m.getPosition(), Ms = Li.add(ot), Fs = Li.x / this._context.width, Ds = Li.y / this._context.height, Bs = Ms.x / this._context.width, ks = Ms.y / this._context.height;
11190
11191
  C[S++] = st.x, C[S++] = st.y, C[S++] = oe, C[S++] = ae, C[S++] = Fs, C[S++] = Ds, C[S++] = U.x, C[S++] = U.y, C[S++] = oe, C[S++] = Le, C[S++] = Fs, C[S++] = ks, C[S++] = X.x, C[S++] = X.y, C[S++] = he, C[S++] = ae, C[S++] = Bs, C[S++] = Ds, C[S++] = ot.x, C[S++] = ot.y, C[S++] = he, C[S++] = Le, C[S++] = Bs, C[S++] = ks;
11191
11192
  let Ls = this._addImageAsTexture(t);
11192
- v.use(), this._layout.shader = b, this._layout.use(!0), b.trySetUniformFloat("u_time_ms", performance.now()), b.trySetUniformFloat("u_opacity", f), b.trySetUniformFloatVector("u_resolution", w(this._context.width, this._context.height)), b.trySetUniformFloatVector("u_graphic_resolution", w(ct, A)), b.trySetUniformFloatVector("u_size", w(O, Q)), b.trySetUniformMatrix("u_matrix", this._context.ortho), b.trySetUniformMatrix("u_transform", m.to4x4()), v.isOverridingGraphic && (p = v.images.u_graphic) != null && p.image && (Ls = this._addImageAsTexture(v.images.u_graphic.image)), g.activeTexture(g.TEXTURE0 + 0), g.bindTexture(g.TEXTURE_2D, Ls), b.trySetUniformInt("u_graphic", 0), v.isUsingScreenTexture && (g.activeTexture(g.TEXTURE0 + 1), g.bindTexture(g.TEXTURE_2D, this._context.materialScreenTexture), b.trySetUniformInt("u_screen_texture", 1)), this._quads.bind(), g.drawElements(g.TRIANGLES, 6, this._quads.bufferGlType, 0), j.DrawnImagesCount++, j.DrawCallCount++;
11193
+ v.use(), this._layout.shader = b, this._layout.use(!0), b.trySetUniformFloat("u_time_ms", performance.now()), b.trySetUniformFloat("u_opacity", f), b.trySetUniformFloatVector("u_resolution", w(this._context.width, this._context.height)), b.trySetUniformFloatVector("u_graphic_resolution", w(ct, A)), b.trySetUniformFloatVector("u_size", w(O, Q)), b.trySetUniformMatrix("u_matrix", this._context.ortho), b.trySetUniformMatrix("u_transform", m.to4x4()), v.isOverridingGraphic && (p = v.images.u_graphic) != null && p.image && (Ls = this._addImageAsTexture(v.images.u_graphic.image)), g.activeTexture(g.TEXTURE0 + 0), g.bindTexture(g.TEXTURE_2D, Ls), b.trySetUniformInt("u_graphic", 0), v.isUsingScreenTexture && (g.activeTexture(g.TEXTURE0 + 1), g.bindTexture(g.TEXTURE_2D, this._context.materialScreenTexture), b.trySetUniformInt("u_screen_texture", 1)), this._quads.bind(), g.drawElements(g.TRIANGLES, 6, this._quads.bufferGlType, 0), $.DrawnImagesCount++, $.DrawCallCount++;
11193
11194
  }
11194
11195
  _addImageAsTexture(t) {
11195
11196
  const e = t.getAttribute(z.Filtering), i = e ? ti(e) : void 0, s = Ot(t.getAttribute(z.WrappingX)), n = Ot(t.getAttribute(z.WrappingY)), o = t.getAttribute("forceUpload") === "true", a = this._context.textureLoader.load(
@@ -11457,7 +11458,7 @@ class wa {
11457
11458
  if (this._imageCount === 0)
11458
11459
  return;
11459
11460
  const t = this._gl;
11460
- this._shader.use(), this._bindData(t), this._shader.setUniformMatrix("u_matrix", this._context.ortho), this._shader.setUniformBoolean("u_pixelart", this.pixelArtSampler), this._bindTextures(t), t.drawArraysInstanced(t.TRIANGLES, 0, 6, this._imageCount), j.DrawnImagesCount += this._imageCount, j.DrawCallCount++, t.bindVertexArray(null), this._imageCount = 0, this._vertexIndex = 0, this._textures.length = 0, this._textureIndex = 0, this._textureToIndex.clear(), this._images.clear(), this._imageToWidth.clear(), this._imageToHeight.clear();
11461
+ this._shader.use(), this._bindData(t), this._shader.setUniformMatrix("u_matrix", this._context.ortho), this._shader.setUniformBoolean("u_pixelart", this.pixelArtSampler), this._bindTextures(t), t.drawArraysInstanced(t.TRIANGLES, 0, 6, this._imageCount), $.DrawnImagesCount += this._imageCount, $.DrawCallCount++, t.bindVertexArray(null), this._imageCount = 0, this._vertexIndex = 0, this._textures.length = 0, this._textureIndex = 0, this._textureToIndex.clear(), this._images.clear(), this._imageToWidth.clear(), this._imageToHeight.clear();
11461
11462
  }
11462
11463
  }
11463
11464
  const M = 1e-4;
@@ -11525,7 +11526,7 @@ class ba {
11525
11526
  }
11526
11527
  class jt {
11527
11528
  constructor(t) {
11528
- this._logger = I.getInstance(), this._renderers = /* @__PURE__ */ new Map(), this._lazyRenderersFactory = /* @__PURE__ */ new Map(), this.imageRenderer = Ne.isEnabled("use-legacy-image-renderer") ? "ex.image" : "ex.image-v2", this._isDrawLifecycle = !1, this.useDrawSorting = !0, this._drawCallPool = new ds(() => new ma(), void 0, 4e3), this._drawCallIndex = 0, this._drawCalls = new Array(4e3).fill(null), this._postProcessTargets = [], this._postprocessors = [], this._transform = new Mo(), this._state = new _r(), this.snapToPixel = !1, this.smoothing = !1, this.pixelArtSampler = !1, this.uvPadding = 0.01, this.backgroundColor = T.ExcaliburBlue, this.multiSampleAntialiasing = !0, this.transparency = !0, this._isContextLost = !1, this._disposed = !1, this._imageToWidth = /* @__PURE__ */ new Map(), this._imageToHeight = /* @__PURE__ */ new Map(), this._totalPostProcessorTime = 0;
11529
+ this._logger = I.getInstance(), this._renderers = /* @__PURE__ */ new Map(), this._lazyRenderersFactory = /* @__PURE__ */ new Map(), this.imageRenderer = Ne.isEnabled("use-legacy-image-renderer") ? "ex.image" : "ex.image-v2", this._isDrawLifecycle = !1, this.useDrawSorting = !0, this._drawCallPool = new us(() => new ma(), void 0, 4e3), this._drawCallIndex = 0, this._drawCalls = new Array(4e3).fill(null), this._postProcessTargets = [], this._postprocessors = [], this._transform = new Mo(), this._state = new _r(), this.snapToPixel = !1, this.smoothing = !1, this.pixelArtSampler = !1, this.uvPadding = 0.01, this.backgroundColor = T.ExcaliburBlue, this.multiSampleAntialiasing = !0, this.transparency = !0, this._isContextLost = !1, this._disposed = !1, this._imageToWidth = /* @__PURE__ */ new Map(), this._imageToHeight = /* @__PURE__ */ new Map(), this._totalPostProcessorTime = 0;
11529
11530
  const {
11530
11531
  canvasElement: e,
11531
11532
  context: i,
@@ -11824,7 +11825,7 @@ If you want to do custom drawing, use Actor.graphics, or any onPreDraw or onPost
11824
11825
  if (this._drawCalls.length && this._drawCallIndex) {
11825
11826
  let o = this._drawCalls[0].renderer, a = this.get(o);
11826
11827
  for (let h = 0; h < this._drawCallIndex; h++)
11827
- this._transform.current = this._drawCalls[h].transform, this._state.current = this._drawCalls[h].state, this._drawCalls[h].renderer !== o && (a.flush(), o = this._drawCalls[h].renderer, a = this.get(o)), a instanceof Ns && ((t = this.material) != null && t.isUsingScreenTexture) && (e.copyToTexture(this.materialScreenTexture), e.use()), a.draw(...this._drawCalls[h].args);
11828
+ this._transform.current = this._drawCalls[h].transform, this._state.current = this._drawCalls[h].state, this._drawCalls[h].renderer !== o && (a.flush(), o = this._drawCalls[h].renderer, a = this.get(o), $.RendererSwaps++), a instanceof Ns && ((t = this.material) != null && t.isUsingScreenTexture) && (e.copyToTexture(this.materialScreenTexture), e.use()), a.draw(...this._drawCalls[h].args);
11828
11829
  a.hasPendingDraws() && a.flush();
11829
11830
  }
11830
11831
  this._transform.current = s, this._state.current = n, this._drawCallPool.done(), this._drawCallIndex = 0, this._imageToHeight.clear(), this._imageToWidth.clear();
@@ -11889,7 +11890,7 @@ class Se {
11889
11890
  const n = e[s];
11890
11891
  this.color && t.fillText(n, 0, s * i), this.font.strokeColor && t.strokeText(n, 0, s * i);
11891
11892
  }
11892
- this.font.showDebug && (Ji(t, T.Green, -t.canvas.width / 2, 0, t.canvas.width / 2, 0, 2), Ji(t, T.Red, 0, -t.canvas.height / 2, 0, t.canvas.height / 2, 2));
11893
+ this.font.showDebug && (ts(t, T.Green, -t.canvas.width / 2, 0, t.canvas.width / 2, 0, 2), ts(t, T.Red, 0, -t.canvas.height / 2, 0, t.canvas.height / 2, 2));
11893
11894
  }
11894
11895
  _splitTextBitmap(t) {
11895
11896
  const e = [];
@@ -12016,24 +12017,24 @@ class Me extends nt {
12016
12017
  * @returns BoundingBox
12017
12018
  */
12018
12019
  measureText(t, e) {
12019
- return ts.measureText(t, this, e);
12020
+ return is.measureText(t, this, e);
12020
12021
  }
12021
12022
  _postDraw(t) {
12022
12023
  t.restore();
12023
12024
  }
12024
12025
  render(t, e, i, s, n, o) {
12025
- const a = ts.getTextInstance(e, this, i);
12026
+ const a = is.getTextInstance(e, this, i);
12026
12027
  this._textBounds = a.dimensions, this._preDraw(t, s, n), a.render(t, s, n, o), this._postDraw(t);
12027
12028
  }
12028
12029
  }
12029
- class Mi extends nt {
12030
+ class Di extends nt {
12030
12031
  constructor(t) {
12031
12032
  var e, i;
12032
12033
  super(t), this._text = "", this._textWidth = 0, this._textHeight = 0, this.font = (e = t.font) != null ? e : new Me(), this.color = (i = t.color) != null ? i : this.color, this.text = t.text, this.maxWidth = t.maxWidth;
12033
12034
  }
12034
12035
  clone() {
12035
12036
  var t, e;
12036
- return new Mi({
12037
+ return new Di({
12037
12038
  text: this.text.slice(),
12038
12039
  color: (e = (t = this.color) == null ? void 0 : t.clone()) != null ? e : T.Black,
12039
12040
  font: this.font.clone(),
@@ -12152,7 +12153,7 @@ class tt extends Bt {
12152
12153
  if (t) {
12153
12154
  this._color = t.clone();
12154
12155
  const e = this.current;
12155
- (e instanceof Ke || e instanceof Mi) && (e.color = this._color);
12156
+ (e instanceof Ke || e instanceof Di) && (e.color = this._color);
12156
12157
  }
12157
12158
  }
12158
12159
  getGraphic(t) {
@@ -12398,7 +12399,7 @@ function W() {
12398
12399
  }
12399
12400
  class Ta {
12400
12401
  constructor(t, e, i) {
12401
- this.id = W(), this._stopped = !1, this._repeatBuilder = e, this._repeatContext = new Fi(t), this._actionQueue = this._repeatContext.getQueue(), this._repeat = i, this._originalRepeat = i, this._repeatBuilder(this._repeatContext), this._repeat--;
12402
+ this.id = W(), this._stopped = !1, this._repeatBuilder = e, this._repeatContext = new Bi(t), this._actionQueue = this._repeatContext.getQueue(), this._repeat = i, this._originalRepeat = i, this._repeatBuilder(this._repeatContext), this._repeat--;
12402
12403
  }
12403
12404
  update(t) {
12404
12405
  this._actionQueue.isComplete() && (this._actionQueue.clearActions(), this._repeatBuilder(this._repeatContext), this._repeat--), this._actionQueue.update(t);
@@ -12415,7 +12416,7 @@ class Ta {
12415
12416
  }
12416
12417
  class Sa {
12417
12418
  constructor(t, e) {
12418
- this.id = W(), this._stopped = !1, this._repeatBuilder = e, this._repeatContext = new Fi(t), this._actionQueue = this._repeatContext.getQueue(), this._repeatBuilder(this._repeatContext);
12419
+ this.id = W(), this._stopped = !1, this._repeatBuilder = e, this._repeatContext = new Bi(t), this._actionQueue = this._repeatContext.getQueue(), this._repeatBuilder(this._repeatContext);
12419
12420
  }
12420
12421
  update(t) {
12421
12422
  this._stopped || (this._actionQueue.isComplete() && (this._actionQueue.clearActions(), this._repeatBuilder(this._repeatContext)), this._actionQueue.update(t));
@@ -12434,7 +12435,7 @@ function Aa(r) {
12434
12435
  }
12435
12436
  class Pa {
12436
12437
  constructor(t, e) {
12437
- this.entity = t, this.id = W(), this._started = !1, this._stopped = !1, this._legacyEasing = It.Linear, this._easing = ls, this._useLegacyEasing = !1;
12438
+ this.entity = t, this.id = W(), this._started = !1, this._stopped = !1, this._legacyEasing = It.Linear, this._easing = cs, this._useLegacyEasing = !1;
12438
12439
  var i;
12439
12440
  if (this._offset = e.offset, this._easing = (i = e.easing) != null ? i : this._easing, Fe(e.easing) && (this._legacyEasing = e.easing, this._useLegacyEasing = !0), this._tx = t.get(P), this._motion = t.get(H), !this._tx)
12440
12441
  throw new Error(`Entity ${t.name} has no TransformComponent, can only MoveBy on Entities with TransformComponents.`);
@@ -12482,7 +12483,7 @@ function Ea(r) {
12482
12483
  }
12483
12484
  class Ia {
12484
12485
  constructor(t, e) {
12485
- this.entity = t, this.id = W(), this._started = !1, this._stopped = !1, this._easing = ls, this._legacyEasing = It.Linear, this._useLegacyEasing = !1;
12486
+ this.entity = t, this.id = W(), this._started = !1, this._stopped = !1, this._easing = cs, this._legacyEasing = It.Linear, this._useLegacyEasing = !1;
12486
12487
  var i;
12487
12488
  if (this._end = e.pos, this._easing = (i = e.easing) != null ? i : this._easing, Fe(e.easing) && (this._legacyEasing = e.easing, this._useLegacyEasing = !0), this._tx = t.get(P), this._motion = t.get(H), !this._tx)
12488
12489
  throw new Error(`Entity ${t.name} has no TransformComponent, can only moveTo on Entities with TransformComponents.`);
@@ -12661,7 +12662,7 @@ class ka {
12661
12662
  }
12662
12663
  update(t) {
12663
12664
  this._started || (this._startScale = this._tx.scale, this._started = !0), this._currentMs -= t;
12664
- const e = D(Qt(0, this._durationMs, 0, 1, this._durationMs - this._currentMs), 0, 1), i = Ti(this._startScale, this._endScale, e), s = this._tx.scale, n = t / 1e3, o = i.sub(s).scale(n === 0 ? 0 : 1 / n);
12665
+ const e = D(Qt(0, this._durationMs, 0, 1, this._durationMs - this._currentMs), 0, 1), i = Si(this._startScale, this._endScale, e), s = this._tx.scale, n = t / 1e3, o = i.sub(s).scale(n === 0 ? 0 : 1 / n);
12665
12666
  this._motion.scaleFactor = o, this.isComplete() && (this._tx.scale = this._endScale, this._motion.angularVelocity = 0);
12666
12667
  }
12667
12668
  isComplete() {
@@ -12714,7 +12715,7 @@ class Ua {
12714
12715
  }
12715
12716
  update(t) {
12716
12717
  this._started || (this._startScale = this._tx.scale, this._endScale = this._startScale.add(this._scaleOffset), this._started = !0), this._currentMs -= t;
12717
- const e = D(Qt(0, this._durationMs, 0, 1, this._durationMs - this._currentMs), 0, 1), i = Ti(this._startScale, this._endScale, e), s = this._tx.scale, n = t / 1e3, o = i.sub(s).scale(n === 0 ? 0 : 1 / n);
12718
+ const e = D(Qt(0, this._durationMs, 0, 1, this._durationMs - this._currentMs), 0, 1), i = Si(this._startScale, this._endScale, e), s = this._tx.scale, n = t / 1e3, o = i.sub(s).scale(n === 0 ? 0 : 1 / n);
12718
12719
  this._motion.scaleFactor = o, this.isComplete() && (this._tx.scale = this._endScale, this._motion.angularVelocity = 0);
12719
12720
  }
12720
12721
  isComplete() {
@@ -12905,7 +12906,7 @@ class qs {
12905
12906
  this._started = !1, this._stopped = !1;
12906
12907
  }
12907
12908
  }
12908
- class Ui {
12909
+ class Oi {
12909
12910
  constructor(t, e, i, s) {
12910
12911
  this.id = W(), this._started = !1, this._stopped = !1, this._speedWasSpecified = !1, this._tolerance = 1, this._tx = t.get(P), this._motion = t.get(H), this._meetTx = e.get(P), this._meetMotion = e.get(H), this._current = new x(this._tx.pos.x, this._tx.pos.y), this._end = new x(this._meetTx.pos.x, this._meetTx.pos.y), this._speed = i || 0, i !== void 0 && (this._speedWasSpecified = !0), s !== void 0 && (this._tolerance = s);
12911
12912
  }
@@ -12972,7 +12973,7 @@ class Ya {
12972
12973
  var i;
12973
12974
  if (this._entity = t, this._tx = this._entity.get(P), !this._tx)
12974
12975
  throw new Error(`Entity ${t.name} has no TransformComponent, can only curveTo on Entities with TransformComponents.`);
12975
- this._curve = new Si({
12976
+ this._curve = new Ai({
12976
12977
  controlPoints: [w(0, 0), ...e.controlPoints],
12977
12978
  quality: e.quality
12978
12979
  }), this._durationMs = e.duration, this._mode = (i = e.mode) != null ? i : this._mode, this._currentMs = this._durationMs;
@@ -12998,7 +12999,7 @@ class $a {
12998
12999
  var i;
12999
13000
  if (this._entity = t, this._tx = this._entity.get(P), !this._tx)
13000
13001
  throw new Error(`Entity ${t.name} has no TransformComponent, can only curveTo on Entities with TransformComponents.`);
13001
- this._curve = this._curve = new Si({
13002
+ this._curve = this._curve = new Ai({
13002
13003
  controlPoints: [w(0, 0), ...e.controlPoints],
13003
13004
  quality: e.quality
13004
13005
  }), this._durationMs = e.duration, this._mode = (i = e.mode) != null ? i : this._mode, this._currentMs = this._durationMs;
@@ -13018,7 +13019,7 @@ class $a {
13018
13019
  this._stopped = !0;
13019
13020
  }
13020
13021
  }
13021
- class Fi {
13022
+ class Bi {
13022
13023
  constructor(t) {
13023
13024
  this._entity = t, this._queue = new ya(t);
13024
13025
  }
@@ -13196,7 +13197,7 @@ class Fi {
13196
13197
  * @param tolerance The tolerance in pixels to meet, if not specified it will be 1 pixel
13197
13198
  */
13198
13199
  meet(t, e, i) {
13199
- return e === void 0 && i === void 0 ? this._queue.add(new Ui(this._entity, t)) : i === void 0 ? this._queue.add(new Ui(this._entity, t, e)) : this._queue.add(new Ui(this._entity, t, e, i)), this;
13200
+ return e === void 0 && i === void 0 ? this._queue.add(new Oi(this._entity, t)) : i === void 0 ? this._queue.add(new Oi(this._entity, t, e)) : this._queue.add(new Oi(this._entity, t, e, i)), this;
13200
13201
  }
13201
13202
  /**
13202
13203
  * Returns a promise that resolves when the current action queue up to now
@@ -13217,7 +13218,7 @@ class qe extends Bt {
13217
13218
  super(...arguments), this.dependencies = [P, H], this._ctx = null;
13218
13219
  }
13219
13220
  onAdd(t) {
13220
- this._ctx = new Fi(t);
13221
+ this._ctx = new Bi(t);
13221
13222
  }
13222
13223
  onRemove() {
13223
13224
  this._ctx = null;
@@ -13451,14 +13452,14 @@ const Nl = {
13451
13452
  ExitViewPort: "exitviewport",
13452
13453
  ActionStart: "actionstart",
13453
13454
  ActionComplete: "actioncomplete"
13454
- }, Rr = class ns extends Rt {
13455
+ }, Rr = class rs extends Rt {
13455
13456
  // #endregion
13456
13457
  /**
13457
13458
  *
13458
13459
  * @param config
13459
13460
  */
13460
13461
  constructor(t) {
13461
- super(), this.events = new $(), this._anchor = Pt(x.Half, (O) => this._handleAnchorChange(O)), this._offset = Pt(x.Zero, (O) => this._handleOffsetChange(O)), this.logger = I.getInstance(), this._draggable = !1, this._dragging = !1, this._pointerDragStartHandler = () => {
13462
+ super(), this.events = new Z(), this._anchor = Pt(x.Half, (O) => this._handleAnchorChange(O)), this._offset = Pt(x.Zero, (O) => this._handleOffsetChange(O)), this.logger = I.getInstance(), this._draggable = !1, this._dragging = !1, this._pointerDragStartHandler = () => {
13462
13463
  this._dragging = !0;
13463
13464
  }, this._pointerDragEndHandler = () => {
13464
13465
  this._dragging = !1;
@@ -13495,17 +13496,17 @@ const Nl = {
13495
13496
  } = {
13496
13497
  ...t
13497
13498
  };
13498
- this.name = e != null ? e : this.name, this.anchor = C != null ? C : ns.defaults.anchor.clone(), this.offset = S != null ? S : x.Zero, this.transform = new P(), this.addComponent(this.transform), this.pos = n != null ? n : w(i != null ? i : 0, s != null ? s : 0), this.rotation = p != null ? p : 0, this.scale = a != null ? a : w(1, 1), this.z = v != null ? v : 0, this.transform.coordPlane = o != null ? o : ht.World, this.pointer = new fe(), this.addComponent(this.pointer), this.graphics = new tt({
13499
+ this.name = e != null ? e : this.name, this.anchor = C != null ? C : rs.defaults.anchor.clone(), this.offset = S != null ? S : x.Zero, this.transform = new P(), this.addComponent(this.transform), this.pos = n != null ? n : w(i != null ? i : 0, s != null ? s : 0), this.rotation = p != null ? p : 0, this.scale = a != null ? a : w(1, 1), this.z = v != null ? v : 0, this.transform.coordPlane = o != null ? o : ht.World, this.pointer = new fe(), this.addComponent(this.pointer), this.graphics = new tt({
13499
13500
  anchor: this.anchor,
13500
13501
  offset: this.offset,
13501
13502
  opacity: b
13502
13503
  }), this.addComponent(this.graphics), this.motion = new H(), this.addComponent(this.motion), this.vel = u != null ? u : x.Zero, this.acc = _ != null ? _ : x.Zero, this.angularVelocity = g != null ? g : 0, this.actions = new qe(), this.addComponent(this.actions), this.body = new N(), this.addComponent(this.body), this.body.collisionType = E != null ? E : R.Passive, y && (this.body.group = y), m && (this.color = m), d ? (this.collider = new it(d), this.addComponent(this.collider)) : c ? (this.collider = new it(ft.Circle(c)), this.addComponent(this.collider), m && this.graphics.add(
13503
- new ps({
13504
+ new ms({
13504
13505
  color: m,
13505
13506
  radius: c
13506
13507
  })
13507
13508
  )) : h > 0 && l > 0 ? (this.collider = new it(ft.Box(h, l, this.anchor)), this.addComponent(this.collider), m && h && l && this.graphics.add(
13508
- new Ri({
13509
+ new Mi({
13509
13510
  color: m,
13510
13511
  width: h,
13511
13512
  height: l
@@ -13677,7 +13678,7 @@ const Nl = {
13677
13678
  this.graphics.color = t;
13678
13679
  }
13679
13680
  clone() {
13680
- const t = new ns({
13681
+ const t = new rs({
13681
13682
  color: this.color.clone(),
13682
13683
  anchor: this.anchor.clone(),
13683
13684
  offset: this.offset.clone()
@@ -13985,7 +13986,7 @@ Rr.defaults = {
13985
13986
  let Dt = Rr;
13986
13987
  class it extends Bt {
13987
13988
  constructor(t) {
13988
- super(), this.events = new $(), this.$colliderAdded = new xt(), this.$colliderRemoved = new xt(), this._collidersToRemove = [], this.set(t);
13989
+ super(), this.events = new Z(), this.$colliderAdded = new xt(), this.$colliderRemoved = new xt(), this._collidersToRemove = [], this.set(t);
13989
13990
  }
13990
13991
  /**
13991
13992
  * Get the current collider geometry
@@ -14074,10 +14075,10 @@ class it extends Bt {
14074
14075
  ), t instanceof Dt && t.onPostCollisionResolve(i.self, i.other, i.side, i.contact);
14075
14076
  }), this.events.on("collisionstart", (e) => {
14076
14077
  const i = e;
14077
- t.events.emit("collisionstart", new fi(i.self, i.other, i.side, i.contact)), t instanceof Dt && t.onCollisionStart(i.self, i.other, i.side, i.contact);
14078
+ t.events.emit("collisionstart", new gi(i.self, i.other, i.side, i.contact)), t instanceof Dt && t.onCollisionStart(i.self, i.other, i.side, i.contact);
14078
14079
  }), this.events.on("collisionend", (e) => {
14079
14080
  const i = e;
14080
- t.events.emit("collisionend", new gi(i.self, i.other, i.side, i.lastContact)), t instanceof Dt && t.onCollisionEnd(i.self, i.other, i.side, i.lastContact);
14081
+ t.events.emit("collisionend", new pi(i.self, i.other, i.side, i.lastContact)), t instanceof Dt && t.onCollisionEnd(i.self, i.other, i.side, i.lastContact);
14081
14082
  });
14082
14083
  }
14083
14084
  onRemove() {
@@ -14135,15 +14136,15 @@ class it extends Bt {
14135
14136
  }
14136
14137
  }
14137
14138
  var le = /* @__PURE__ */ ((r) => (r.Rotation = "rotation", r.X = "x", r.Y = "y", r))(le || {});
14138
- const bs = class ci extends Bt {
14139
+ const bs = class di extends Bt {
14139
14140
  constructor(t) {
14140
14141
  var e, i, s;
14141
- super(), this.dependencies = [P, H], this.id = Pe("body", ci._ID++), this.events = new $(), this.oldTransform = new re(), this.__oldTransformCaptured = !1, this.enableFixedUpdateInterpolate = !0, this.collisionType = R.PreventCollision, this.group = Ee.All, this._sleeping = !1, this.bounciness = 0.2, this.friction = 0.99, this.useGravity = !0, this.limitDegreeOfFreedom = [], this._oldGlobalPos = x.Zero, this.oldVel = new x(0, 0), this.oldAcc = x.Zero, this._impulseScratch = w(0, 0), this._distanceFromCenterScratch = w(0, 0), t ? (this.collisionType = (e = t.type) != null ? e : this.collisionType, this.group = (i = t.group) != null ? i : this.group, this.useGravity = (s = t.useGravity) != null ? s : this.useGravity, this._bodyConfig = {
14142
+ super(), this.dependencies = [P, H], this.id = Pe("body", di._ID++), this.events = new Z(), this.oldTransform = new re(), this.__oldTransformCaptured = !1, this.enableFixedUpdateInterpolate = !0, this.collisionType = R.PreventCollision, this.group = Ee.All, this._sleeping = !1, this.bounciness = 0.2, this.friction = 0.99, this.useGravity = !0, this.limitDegreeOfFreedom = [], this._oldGlobalPos = x.Zero, this.oldVel = new x(0, 0), this.oldAcc = x.Zero, this._impulseScratch = w(0, 0), this._distanceFromCenterScratch = w(0, 0), t ? (this.collisionType = (e = t.type) != null ? e : this.collisionType, this.group = (i = t.group) != null ? i : this.group, this.useGravity = (s = t.useGravity) != null ? s : this.useGravity, this._bodyConfig = {
14142
14143
  ...ne().bodies,
14143
14144
  ...t.config
14144
14145
  }) : this._bodyConfig = {
14145
14146
  ...ne().bodies
14146
- }, this.updatePhysicsConfig(this._bodyConfig), this._mass = ci._DEFAULT_CONFIG.defaultMass;
14147
+ }, this.updatePhysicsConfig(this._bodyConfig), this._mass = di._DEFAULT_CONFIG.defaultMass;
14147
14148
  }
14148
14149
  get matrix() {
14149
14150
  return this.transform.get().matrix;
@@ -14163,7 +14164,7 @@ const bs = class ci extends Bt {
14163
14164
  * @param config
14164
14165
  */
14165
14166
  static updateDefaultPhysicsConfig(t) {
14166
- ci._DEFAULT_CONFIG = t;
14167
+ di._DEFAULT_CONFIG = t;
14167
14168
  }
14168
14169
  get mass() {
14169
14170
  return this._mass;
@@ -14577,7 +14578,7 @@ class Za extends Mr {
14577
14578
  }
14578
14579
  class Xs {
14579
14580
  constructor(t) {
14580
- this._pairs = /* @__PURE__ */ new Set(), this._nonPairs = /* @__PURE__ */ new Set(), this._pairPool = new ds(
14581
+ this._pairs = /* @__PURE__ */ new Set(), this._nonPairs = /* @__PURE__ */ new Set(), this._pairPool = new us(
14581
14582
  () => new vt({ id: Pe("collider", 0) }, { id: Pe("collider", 0) }),
14582
14583
  (e) => (e.colliderA = null, e.colliderB = null, e),
14583
14584
  200
@@ -15009,13 +15010,13 @@ class $s {
15009
15010
  new Ie(l.colliderA, l.colliderB, c, l.mtv, l)
15010
15011
  ), l.colliderA.events.emit(
15011
15012
  "beforecollisionresolve",
15012
- new Yi(l.colliderA, l.colliderB, c, l.mtv, l)
15013
+ new Zi(l.colliderA, l.colliderB, c, l.mtv, l)
15013
15014
  ), l.colliderB.events.emit(
15014
15015
  "precollision",
15015
15016
  new Ie(l.colliderB, l.colliderA, G.getOpposite(c), l.mtv.negate(), l)
15016
15017
  ), l.colliderB.events.emit(
15017
15018
  "beforecollisionresolve",
15018
- new Yi(l.colliderB, l.colliderA, G.getOpposite(c), l.mtv.negate(), l)
15019
+ new Zi(l.colliderB, l.colliderA, G.getOpposite(c), l.mtv.negate(), l)
15019
15020
  ), l.matchAwake();
15020
15021
  }
15021
15022
  const a = Array.from(this.idToContactConstraint.keys());
@@ -15059,13 +15060,13 @@ class $s {
15059
15060
  new Re(i.colliderA, i.colliderB, o, i.mtv, i)
15060
15061
  ), i.colliderA.events.emit(
15061
15062
  "aftercollisionresolve",
15062
- new $i(i.colliderA, i.colliderB, o, i.mtv, i)
15063
+ new ji(i.colliderA, i.colliderB, o, i.mtv, i)
15063
15064
  ), i.colliderB.events.emit(
15064
15065
  "postcollision",
15065
15066
  new Re(i.colliderB, i.colliderA, G.getOpposite(o), i.mtv.negate(), i)
15066
15067
  ), i.colliderB.events.emit(
15067
15068
  "aftercollisionresolve",
15068
- new $i(i.colliderB, i.colliderA, G.getOpposite(o), i.mtv.negate(), i)
15069
+ new ji(i.colliderB, i.colliderA, G.getOpposite(o), i.mtv.negate(), i)
15069
15070
  );
15070
15071
  }
15071
15072
  this.lastFrameContacts.clear();
@@ -15251,7 +15252,7 @@ class Cs extends Ft {
15251
15252
  We.SeparationPool.done();
15252
15253
  }
15253
15254
  getSolver() {
15254
- return this._configDirty && (this._configDirty = !1, this._arcadeSolver = new Ys(this._physics.config.arcade), this._realisticSolver = new $s(this._physics.config.realistic)), this._physics.config.solver === cs.Realistic ? this._realisticSolver : this._arcadeSolver;
15255
+ return this._configDirty && (this._configDirty = !1, this._arcadeSolver = new Ys(this._physics.config.arcade), this._realisticSolver = new $s(this._physics.config.realistic)), this._physics.config.solver === ds.Realistic ? this._realisticSolver : this._arcadeSolver;
15255
15256
  }
15256
15257
  debug(t) {
15257
15258
  this._processor.debug(t, 0);
@@ -15260,12 +15261,12 @@ class Cs extends Ft {
15260
15261
  for (const [t, e] of this._currentFrameContacts)
15261
15262
  if (!this._lastFrameContacts.has(t)) {
15262
15263
  const i = e.colliderA, s = e.colliderB, n = G.fromDirection(e.mtv), o = G.getOpposite(n);
15263
- i.events.emit("collisionstart", new fi(i, s, n, e)), i.events.emit("contactstart", new qi(i, s, n, e)), s.events.emit("collisionstart", new fi(s, i, o, e)), s.events.emit("contactstart", new qi(s, i, o, e));
15264
+ i.events.emit("collisionstart", new gi(i, s, n, e)), i.events.emit("contactstart", new Yi(i, s, n, e)), s.events.emit("collisionstart", new gi(s, i, o, e)), s.events.emit("contactstart", new Yi(s, i, o, e));
15264
15265
  }
15265
15266
  for (const [t, e] of this._lastFrameContacts)
15266
15267
  if (!this._currentFrameContacts.has(t)) {
15267
15268
  const i = e.colliderA, s = e.colliderB, n = G.fromDirection(e.mtv), o = G.getOpposite(n);
15268
- i.events.emit("collisionend", new gi(i, s, n, e)), i.events.emit("contactend", new Xi(i, s, n, e)), s.events.emit("collisionend", new gi(s, i, o, e)), s.events.emit("contactend", new Xi(s, i, o, e));
15269
+ i.events.emit("collisionend", new pi(i, s, n, e)), i.events.emit("contactend", new $i(i, s, n, e)), s.events.emit("collisionend", new pi(s, i, o, e)), s.events.emit("contactend", new $i(s, i, o, e));
15269
15270
  }
15270
15271
  }
15271
15272
  }
@@ -15274,7 +15275,7 @@ class Qa {
15274
15275
  constructor(t) {
15275
15276
  this.$configUpdate = new xt(), this._configDirty = !1, this.config = t, this.$configUpdate.subscribe((e) => {
15276
15277
  this._configDirty = !0, N.updateDefaultPhysicsConfig(e.bodies);
15277
- }), this._config.spatialPartition === xi.SparseHashGrid ? this._collisionProcessor = new Xs(this._config.sparseHashGrid) : this._collisionProcessor = new ji(this._config);
15278
+ }), this._config.spatialPartition === vi.SparseHashGrid ? this._collisionProcessor = new Xs(this._config.sparseHashGrid) : this._collisionProcessor = new Ji(this._config);
15278
15279
  }
15279
15280
  get config() {
15280
15281
  return To(this._config, (t) => {
@@ -15291,7 +15292,7 @@ class Qa {
15291
15292
  if (this._configDirty) {
15292
15293
  this._configDirty = !1;
15293
15294
  const t = this._collisionProcessor.getColliders();
15294
- this._config.spatialPartition === xi.SparseHashGrid ? this._collisionProcessor = new Xs(this._config.sparseHashGrid) : this._collisionProcessor = new ji(this._config);
15295
+ this._config.spatialPartition === vi.SparseHashGrid ? this._collisionProcessor = new Xs(this._config.sparseHashGrid) : this._collisionProcessor = new Ji(this._config);
15295
15296
  for (const e of t)
15296
15297
  this._collisionProcessor.track(e);
15297
15298
  }
@@ -15309,7 +15310,7 @@ class Qa {
15309
15310
  return this._collisionProcessor.query(t);
15310
15311
  }
15311
15312
  }
15312
- var di = /* @__PURE__ */ ((r) => (r.Fixed = "Fixed", r.FitContainerAndFill = "FitContainerAndFill", r.FitScreenAndFill = "FitScreenAndFill", r.FitContainerAndZoom = "FitContainerAndZoom", r.FitScreenAndZoom = "FitScreenAndZoom", r.FitScreen = "FitScreen", r.FillScreen = "FillScreen", r.FitContainer = "FitContainer", r.FillContainer = "FillContainer", r))(di || {});
15313
+ var ui = /* @__PURE__ */ ((r) => (r.Fixed = "Fixed", r.FitContainerAndFill = "FitContainerAndFill", r.FitScreenAndFill = "FitScreenAndFill", r.FitContainerAndZoom = "FitContainerAndZoom", r.FitScreenAndZoom = "FitScreenAndZoom", r.FitScreen = "FitScreen", r.FillScreen = "FillScreen", r.FitContainer = "FitContainer", r.FillContainer = "FillContainer", r))(ui || {});
15313
15314
  class Zs {
15314
15315
  /* istanbul ignore next */
15315
15316
  static get SVGA() {
@@ -15351,7 +15352,7 @@ const Wl = {
15351
15352
  };
15352
15353
  class js {
15353
15354
  constructor(t) {
15354
- this.events = new $(), this._antialiasing = !0, this._canvasImageRendering = "auto", this._resolutionStack = [], this._viewportStack = [], this._pixelRatioOverride = null, this._isFullscreen = !1, this._isDisposed = !1, this._logger = I.getInstance(), this._fullscreenChangeHandler = () => {
15355
+ this.events = new Z(), this._antialiasing = !0, this._canvasImageRendering = "auto", this._resolutionStack = [], this._viewportStack = [], this._pixelRatioOverride = null, this._isFullscreen = !1, this._isDisposed = !1, this._logger = I.getInstance(), this._fullscreenChangeHandler = () => {
15355
15356
  this._isDisposed || (this._isFullscreen = !this._isFullscreen, this._logger.debug("Fullscreen Change", this._isFullscreen), this.events.emit("fullscreen", {
15356
15357
  fullscreen: this.isFullscreen
15357
15358
  }));
@@ -15487,7 +15488,7 @@ class js {
15487
15488
  }
15488
15489
  this._canvas.width = this.scaledWidth, this._canvas.height = this.scaledHeight, this._canvasImageRendering === "auto" ? this._canvas.style.imageRendering = "auto" : (this._canvas.style.imageRendering = "pixelated", this._canvas.style.imageRendering === "" && (this._canvas.style.imageRendering = "crisp-edges"));
15489
15490
  const t = this.viewport.widthUnit === "percent" ? "%" : "px", e = this.viewport.heightUnit === "percent" ? "%" : "px";
15490
- this._canvas.style.width = this.viewport.width + t, this._canvas.style.height = this.viewport.height + e, this.graphicsContext.updateViewport(this.resolution), this.graphicsContext.resetTransform(), this.graphicsContext.smoothing = this._antialiasing, this.graphicsContext instanceof is && this.graphicsContext.scale(this.pixelRatio, this.pixelRatio), document.documentElement.style.setProperty("--ex-pixel-ratio", this.worldToPagePixelRatio.toString());
15491
+ this._canvas.style.width = this.viewport.width + t, this._canvas.style.height = this.viewport.height + e, this.graphicsContext.updateViewport(this.resolution), this.graphicsContext.resetTransform(), this.graphicsContext.smoothing = this._antialiasing, this.graphicsContext instanceof ss && this.graphicsContext.scale(this.pixelRatio, this.pixelRatio), document.documentElement.style.setProperty("--ex-pixel-ratio", this.worldToPagePixelRatio.toString());
15491
15492
  }
15492
15493
  /**
15493
15494
  * Get or set screen antialiasing,
@@ -15874,7 +15875,7 @@ class js {
15874
15875
  }, this.viewport = this.resolution), this._contentArea = F.fromDimension(this.resolution.width, this.resolution.height, x.Zero), this.displayMode === "FitScreen" && this._computeFit(), this.displayMode === "FitContainer" && this._computeFitContainer(), this.displayMode === "FitScreenAndFill" && this._computeFitScreenAndFill(), this.displayMode === "FitContainerAndFill" && this._computeFitContainerAndFill(), this.displayMode === "FitScreenAndZoom" && this._computeFitScreenAndZoom(), this.displayMode === "FitContainerAndZoom" && this._computeFitContainerAndZoom();
15875
15876
  }
15876
15877
  }
15877
- class vi {
15878
+ class wi {
15878
15879
  static create() {
15879
15880
  return this._INSTANCE || (window.AudioContext || window.webkitAudioContext) && (this._INSTANCE = new AudioContext()), this._INSTANCE;
15880
15881
  }
@@ -15882,7 +15883,7 @@ class vi {
15882
15883
  function Ja(r) {
15883
15884
  return !!r.playbackState;
15884
15885
  }
15885
- const Dr = class ui {
15886
+ const Dr = class _i {
15886
15887
  /**
15887
15888
  * Play an empty sound to unlock Safari WebAudio context. Call this function
15888
15889
  * right after a user interaction event.
@@ -15890,17 +15891,17 @@ const Dr = class ui {
15890
15891
  */
15891
15892
  static unlock() {
15892
15893
  return new Promise((e, i) => {
15893
- if (ui._UNLOCKED || !vi.create())
15894
+ if (_i._UNLOCKED || !wi.create())
15894
15895
  return e(!0);
15895
15896
  const s = setTimeout(() => {
15896
15897
  I.getInstance().warn("Excalibur was unable to unlock the audio context, audio probably will not play in this browser."), e(!1);
15897
- }, 200), n = vi.create();
15898
+ }, 200), n = wi.create();
15898
15899
  n.resume().then(
15899
15900
  () => {
15900
15901
  const o = n.createBuffer(1, 1, 22050), a = n.createBufferSource();
15901
15902
  let h = !1;
15902
15903
  a.buffer = o, a.connect(n.destination), a.onended = () => h = !0, a.start(0), setTimeout(() => {
15903
- Ja(a) ? (a.playbackState === a.PLAYING_STATE || a.playbackState === a.FINISHED_STATE) && (ui._UNLOCKED = !0) : (n.currentTime > 0 || h) && (ui._UNLOCKED = !0);
15904
+ Ja(a) ? (a.playbackState === a.PLAYING_STATE || a.playbackState === a.FINISHED_STATE) && (_i._UNLOCKED = !0) : (n.currentTime > 0 || h) && (_i._UNLOCKED = !0);
15904
15905
  }, 0), clearTimeout(s), e(!0);
15905
15906
  },
15906
15907
  () => {
@@ -15981,7 +15982,7 @@ class Ts {
15981
15982
  }
15982
15983
  class th {
15983
15984
  constructor(t) {
15984
- this._src = t, this._audioContext = vi.create(), this._volumeNode = this._audioContext.createGain(), this._playingFuture = new yt(), this._stateMachine = Ts.create(
15985
+ this._src = t, this._audioContext = wi.create(), this._volumeNode = this._audioContext.createGain(), this._playingFuture = new yt(), this._stateMachine = Ts.create(
15985
15986
  {
15986
15987
  start: "STOPPED",
15987
15988
  states: {
@@ -16175,11 +16176,11 @@ function sh(r) {
16175
16176
  }
16176
16177
  class Lr {
16177
16178
  constructor(...t) {
16178
- this.events = new $(), this.logger = I.getInstance(), this._loop = !1, this._volume = 1, this._isStopped = !1, this._tracks = [], this._wasPlayingOnHidden = !1, this._playbackRate = 1, this._audioContext = vi.create();
16179
+ this.events = new Z(), this.logger = I.getInstance(), this._loop = !1, this._volume = 1, this._isStopped = !1, this._tracks = [], this._wasPlayingOnHidden = !1, this._playbackRate = 1, this._audioContext = wi.create();
16179
16180
  let e;
16180
16181
  sh(t) ? e = t[0] : e = {
16181
16182
  paths: t
16182
- }, this._resource = new Pi("", Br.type.arraybuffer);
16183
+ }, this._resource = new Ei("", Br.type.arraybuffer);
16183
16184
  const { volume: i, position: s, playbackRate: n, loop: o, bustCache: a, duration: h } = e;
16184
16185
  this.volume = i != null ? i : this.volume, this.playbackRate = n != null ? n : this.playbackRate, this.loop = o != null ? o : this.loop, this.duration = h != null ? h : this.duration, this.bustCache = a != null ? a : this.bustCache, this.position = s != null ? s : this.position;
16185
16186
  for (const l of e.paths)
@@ -16406,12 +16407,12 @@ function Qs(r) {
16406
16407
  var t, e;
16407
16408
  return !!(r != null && r.prototype) && !!((e = (t = r == null ? void 0 : r.prototype) == null ? void 0 : t.constructor) != null && e.name);
16408
16409
  }
16409
- class wi {
16410
+ class bi {
16410
16411
  /**
16411
16412
  * @param options Optionally provide the list of resources you want to load at constructor time
16412
16413
  */
16413
16414
  constructor(t) {
16414
- this.events = new $(), this.canvas = new ms({
16415
+ this.events = new Z(), this.canvas = new xs({
16415
16416
  filtering: wt.Blended,
16416
16417
  smoothing: !0,
16417
16418
  cache: !1,
@@ -16449,7 +16450,7 @@ class wi {
16449
16450
  * Overridable lifecycle method, called after loading has completed
16450
16451
  */
16451
16452
  async onAfterLoad() {
16452
- await pi(500, this.engine.clock);
16453
+ await mi(500, this.engine.clock);
16453
16454
  }
16454
16455
  /**
16455
16456
  * Add a resource to the loader to load
@@ -16542,12 +16543,12 @@ class wi {
16542
16543
  this.events.off(t, e);
16543
16544
  }
16544
16545
  }
16545
- const nh = "data:image/png;base64,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", rh = 'button#excalibur-play{display:none}button#excalibur-play{box-sizing:border-box;display:flex;gap:.25rem;justify-content:center;position:relative;z-index:999;border-radius:6px;border:none;padding:1rem;margin:0;text-decoration:none;background:#00b233;color:#fff;font-family:sans-serif;font-size:2rem;white-space:nowrap;line-height:1;cursor:pointer;text-align:center;transition:background .25s ease-in-out,transform .15s ease;-webkit-appearance:none;-moz-appearance:none;-webkit-animation:excalibur-button-fadein .2s;-moz-animation:excalibur-button-fadein .2s;-ms-animation:excalibur-button-fadein .2s;-o-animation:excalibur-button-fadein .2s;animation:excalibur-button-fadein .2s}span#excalibur-play-icon{content:"";display:inline-block;position:relative;width:2rem;height:2rem}span#excalibur-play-icon:after{box-sizing:border-box;position:absolute;content:"";border:.5rem solid;border-color:transparent transparent transparent white;left:calc(50% - .1rem);top:calc(30% - .1rem);width:0;height:0}span#excalibur-play-icon:before{box-sizing:border-box;left:50%;top:50%;transform:translate(-50%,-50%);position:absolute;content:"";border:3px solid;border-radius:1rem;width:2rem;height:2rem}button#excalibur-play:focus{outline:1px solid #fff;outline-offset:-4px}button#excalibur-play:active{transform:scale(.99)}@keyframes excalibur-button-fadein{0%{opacity:0}to{opacity:1}}@-moz-keyframes excalibur-button-fadein{0%{opacity:0}to{opacity:1}}@-webkit-keyframes excalibur-button-fadein{0%{opacity:0}to{opacity:1}}@-ms-keyframes excalibur-button-fadein{0%{opacity:0}to{opacity:1}}@-o-keyframes excalibur-button-fadein{0%{opacity:0}to{opacity:1}}', zr = class Ur extends wi {
16546
+ const nh = "data:image/png;base64,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", rh = 'button#excalibur-play{display:none}button#excalibur-play{box-sizing:border-box;display:flex;gap:.25rem;justify-content:center;position:relative;z-index:999;border-radius:6px;border:none;padding:1rem;margin:0;text-decoration:none;background:#00b233;color:#fff;font-family:sans-serif;font-size:2rem;white-space:nowrap;line-height:1;cursor:pointer;text-align:center;transition:background .25s ease-in-out,transform .15s ease;-webkit-appearance:none;-moz-appearance:none;-webkit-animation:excalibur-button-fadein .2s;-moz-animation:excalibur-button-fadein .2s;-ms-animation:excalibur-button-fadein .2s;-o-animation:excalibur-button-fadein .2s;animation:excalibur-button-fadein .2s}span#excalibur-play-icon{content:"";display:inline-block;position:relative;width:2rem;height:2rem}span#excalibur-play-icon:after{box-sizing:border-box;position:absolute;content:"";border:.5rem solid;border-color:transparent transparent transparent white;left:calc(50% - .1rem);top:calc(30% - .1rem);width:0;height:0}span#excalibur-play-icon:before{box-sizing:border-box;left:50%;top:50%;transform:translate(-50%,-50%);position:absolute;content:"";border:3px solid;border-radius:1rem;width:2rem;height:2rem}button#excalibur-play:focus{outline:1px solid #fff;outline-offset:-4px}button#excalibur-play:active{transform:scale(.99)}@keyframes excalibur-button-fadein{0%{opacity:0}to{opacity:1}}@-moz-keyframes excalibur-button-fadein{0%{opacity:0}to{opacity:1}}@-webkit-keyframes excalibur-button-fadein{0%{opacity:0}to{opacity:1}}@-ms-keyframes excalibur-button-fadein{0%{opacity:0}to{opacity:1}}@-o-keyframes excalibur-button-fadein{0%{opacity:0}to{opacity:1}}', zr = class Ur extends bi {
16546
16547
  constructor(t) {
16547
16548
  const e = Array.isArray(t) ? {
16548
16549
  loadables: t
16549
16550
  } : t;
16550
- super(e), this._logger = I.getInstance(), this._originalOptions = { loadables: [] }, this.events = new $(), this._playButtonShown = !1, this.logo = nh, this.logoWidth = 468, this.logoHeight = 118, this.loadingBarColor = T.White, this.backgroundColor = "#176BAA", this._imageLoaded = new yt(), this.suppressPlayButton = !1, this._playButtonStyles = rh, this.playButtonText = "Play game", this.startButtonFactory = () => {
16551
+ super(e), this._logger = I.getInstance(), this._originalOptions = { loadables: [] }, this.events = new Z(), this._playButtonShown = !1, this.logo = nh, this.logoWidth = 468, this.logoHeight = 118, this.loadingBarColor = T.White, this.backgroundColor = "#176BAA", this._imageLoaded = new yt(), this.suppressPlayButton = !1, this._playButtonStyles = rh, this.playButtonText = "Play game", this.startButtonFactory = () => {
16551
16552
  let i = document.getElementById("excalibur-play");
16552
16553
  if (i || (i = document.createElement("button")), i.id = "excalibur-play", i.style.display = "none", i) {
16553
16554
  const s = document.createElement("span");
@@ -16582,7 +16583,7 @@ const nh = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAdQAAAB2CAYAAABxhGI9AA
16582
16583
  async showPlayButton() {
16583
16584
  var t, e;
16584
16585
  if (this.suppressPlayButton)
16585
- this.hidePlayButton(), await pi(500, (t = this.engine) == null ? void 0 : t.clock);
16586
+ this.hidePlayButton(), await mi(500, (t = this.engine) == null ? void 0 : t.clock);
16586
16587
  else {
16587
16588
  const i = () => {
16588
16589
  try {
@@ -16618,7 +16619,7 @@ const nh = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAdQAAAB2CAYAAABxhGI9AA
16618
16619
  }
16619
16620
  async onUserAction() {
16620
16621
  var t;
16621
- await pi(200, (t = this.engine) == null ? void 0 : t.clock), this.canvas.flagDirty(), await this.showPlayButton();
16622
+ await mi(200, (t = this.engine) == null ? void 0 : t.clock), this.canvas.flagDirty(), await this.showPlayButton();
16622
16623
  }
16623
16624
  async onBeforeLoad() {
16624
16625
  this.screen.pushResolutionAndViewport(), this.screen.resolution = { width: this.screen.resolution.width, height: this.screen.resolution.height }, this.screen.applyResolutionAndViewport();
@@ -16658,9 +16659,9 @@ const nh = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAdQAAAB2CAYAAABxhGI9AA
16658
16659
  return;
16659
16660
  }
16660
16661
  let l = o, c = s;
16661
- this.loadingBarPosition && (l = this.loadingBarPosition.x, c = this.loadingBarPosition.y), t.lineWidth = 2, Ki(t, l, c, n, 20, 10, this.loadingBarColor);
16662
+ this.loadingBarPosition && (l = this.loadingBarPosition.x, c = this.loadingBarPosition.y), t.lineWidth = 2, es(t, l, c, n, 20, 10, this.loadingBarColor);
16662
16663
  const d = n * this.progress, u = 5, _ = d - u * 2, p = 20 - u * 2;
16663
- Ki(
16664
+ es(
16664
16665
  t,
16665
16666
  l + u,
16666
16667
  c + u,
@@ -16677,7 +16678,7 @@ zr._DEFAULT_LOADER_OPTIONS = {
16677
16678
  fullscreenAfterLoad: !1,
16678
16679
  fullscreenContainer: void 0
16679
16680
  };
16680
- let rs = zr;
16681
+ let os = zr;
16681
16682
  const Js = {
16682
16683
  webgl: "WebGL",
16683
16684
  webaudio: "WebAudio",
@@ -16908,7 +16909,7 @@ const Or = class Nr {
16908
16909
  }
16909
16910
  };
16910
16911
  Or._MAX_ID = 0;
16911
- let Hi = Or;
16912
+ let Ni = Or;
16912
16913
  function Ks(r) {
16913
16914
  return r && r._dispatchPointerEvents && r._processPointerToObject;
16914
16915
  }
@@ -17088,7 +17089,7 @@ class lh extends Rt {
17088
17089
  */
17089
17090
  constructor(t) {
17090
17091
  var e, i, s;
17091
- super([], t.name), this.events = new $(), this._token = 0, this.logger = I.getInstance(), this.tiles = [], this._rows = [], this._cols = [], this.renderFromTopOfGraphic = !1, this.meshingLookBehind = 10, this._collidersDirty = !0, this._oldRotation = 0, this._originalOffsets = /* @__PURE__ */ new WeakMap(), this.meshingLookBehind = (e = t.meshingLookBehind) != null ? e : this.meshingLookBehind, this.addComponent(new P()), this.addComponent(new H()), this.addComponent(
17092
+ super([], t.name), this.events = new Z(), this._token = 0, this.logger = I.getInstance(), this.tiles = [], this._rows = [], this._cols = [], this.renderFromTopOfGraphic = !1, this.meshingLookBehind = 10, this._collidersDirty = !0, this._oldRotation = 0, this._originalOffsets = /* @__PURE__ */ new WeakMap(), this.meshingLookBehind = (e = t.meshingLookBehind) != null ? e : this.meshingLookBehind, this.addComponent(new P()), this.addComponent(new H()), this.addComponent(
17092
17093
  new N({
17093
17094
  type: R.Fixed
17094
17095
  })
@@ -17096,7 +17097,7 @@ class lh extends Rt {
17096
17097
  new tt({
17097
17098
  onPostDraw: (o, a) => this.draw(o, a)
17098
17099
  })
17099
- ), this.addComponent(new fs((o, a) => this.debug(o, a), !1)), this.addComponent(new it()), this.addComponent(new fe()), this.pointer = this.get(fe), this._graphics = this.get(tt), this.transform = this.get(P), this._motion = this.get(H), this.collider = this.get(it), this._composite = this.collider.useCompositeCollider([]), this.transform.pos = (i = t.pos) != null ? i : x.Zero, this._oldPos = this.transform.pos.clone(), this._oldScale = this.transform.scale.clone(), this.renderFromTopOfGraphic = (s = t.renderFromTopOfGraphic) != null ? s : this.renderFromTopOfGraphic, this.tileWidth = t.tileWidth, this.tileHeight = t.tileHeight, this.rows = t.rows, this.columns = t.columns, this._pointerEventDispatcher = new Ss(), this.tiles = new Array(this.rows * this.columns), this._rows = new Array(this.rows), this._cols = new Array(this.columns);
17100
+ ), this.addComponent(new gs((o, a) => this.debug(o, a), !1)), this.addComponent(new it()), this.addComponent(new fe()), this.pointer = this.get(fe), this._graphics = this.get(tt), this.transform = this.get(P), this._motion = this.get(H), this.collider = this.get(it), this._composite = this.collider.useCompositeCollider([]), this.transform.pos = (i = t.pos) != null ? i : x.Zero, this._oldPos = this.transform.pos.clone(), this._oldScale = this.transform.scale.clone(), this.renderFromTopOfGraphic = (s = t.renderFromTopOfGraphic) != null ? s : this.renderFromTopOfGraphic, this.tileWidth = t.tileWidth, this.tileHeight = t.tileHeight, this.rows = t.rows, this.columns = t.columns, this._pointerEventDispatcher = new Ss(), this.tiles = new Array(this.rows * this.columns), this._rows = new Array(this.rows), this._cols = new Array(this.columns);
17100
17101
  let n = [];
17101
17102
  for (let o = 0; o < this.columns; o++) {
17102
17103
  for (let a = 0; a < this.rows; a++) {
@@ -17303,7 +17304,7 @@ class lh extends Rt {
17303
17304
  getOnScreenTiles() {
17304
17305
  const t = this._engine.screen.getWorldBounds();
17305
17306
  let e = w(0, 0), i = this.transform.coordPlane === ht.Screen ? this._engine.screen.getScreenBounds() : t;
17306
- const s = this.get(gs);
17307
+ const s = this.get(ps);
17307
17308
  if (s && this.isInitialized) {
17308
17309
  const p = x.One.sub(s.parallaxFactor);
17309
17310
  e = this._engine.currentScene.camera.pos.scale(p), i = i.translate(e.negate());
@@ -17398,7 +17399,7 @@ class lh extends Rt {
17398
17399
  }
17399
17400
  class ch {
17400
17401
  constructor(t) {
17401
- this._posDirty = !1, this.events = new $(), this._solid = !1, this._graphics = [], this._offsets = [], this._colliders = [], this.data = /* @__PURE__ */ new Map();
17402
+ this._posDirty = !1, this.events = new Z(), this._solid = !1, this._graphics = [], this._offsets = [], this._colliders = [], this.data = /* @__PURE__ */ new Map();
17402
17403
  var e, i;
17403
17404
  this.x = t.x, this.y = t.y, this.map = t.map, this._width = t.map.tileWidth * this.map.scale.x, this._height = t.map.tileHeight * this.map.scale.y, this.solid = (e = t.solid) != null ? e : this.solid, this._graphics = (i = t.graphics) != null ? i : [], this._recalculate();
17404
17405
  }
@@ -17531,7 +17532,7 @@ class ch {
17531
17532
  e ? this.events.off(t, e) : this.events.off(t);
17532
17533
  }
17533
17534
  }
17534
- class bi extends Bt {
17535
+ class yi extends Bt {
17535
17536
  /**
17536
17537
  * Specify the isometric map to use to position this entity's z-index
17537
17538
  * @param mapOrOptions
@@ -17555,8 +17556,8 @@ class dh extends Rt {
17555
17556
  offset: i != null ? i : x.Zero,
17556
17557
  onPostDraw: (u, _) => this.draw(u, _)
17557
17558
  }),
17558
- new bi(s)
17559
- ]), this.solid = !1, this.events = new $(), this._tileBounds = new F(), this._graphics = [], this._colliders = [], this.data = /* @__PURE__ */ new Map(), this.x = t, this.y = e, this.map = s, this._transform = this.get(P), this._isometricEntityComponent = this.get(bi);
17559
+ new yi(s)
17560
+ ]), this.solid = !1, this.events = new Z(), this._tileBounds = new F(), this._graphics = [], this._colliders = [], this.data = /* @__PURE__ */ new Map(), this.x = t, this.y = e, this.map = s, this._transform = this.get(P), this._isometricEntityComponent = this.get(yi);
17560
17561
  const n = this.map.tileWidth / 2, o = this.map.tileHeight / 2, a = (this.x - this.y) * n, h = (this.x + this.y) * o;
17561
17562
  this._transform.pos = w(a, h), this._isometricEntityComponent.elevation = s.elevation, this._gfx = this.get(tt), this._gfx.isVisible = !1;
17562
17563
  const l = this.map.tileWidth, c = this.map.tileHeight, d = w(0, this.map.renderFromTopOfGraphic ? c : 0);
@@ -17654,7 +17655,7 @@ class Xl extends Rt {
17654
17655
  }),
17655
17656
  new it(),
17656
17657
  new fe(),
17657
- new fs((c, d) => this.debug(c, d), !1)
17658
+ new gs((c, d) => this.debug(c, d), !1)
17658
17659
  ],
17659
17660
  t.name
17660
17661
  ), this.elevation = 0, this.isVisible = !0, this.opacity = 1, this.renderFromTopOfGraphic = !1, this.graphicsOffset = w(0, 0), this._collidersDirty = !1, this._originalOffsets = /* @__PURE__ */ new WeakMap();
@@ -17803,13 +17804,13 @@ class Xl extends Rt {
17803
17804
  }
17804
17805
  class Wr extends Ft {
17805
17806
  constructor(t) {
17806
- super(), this.world = t, this.systemType = Mt.Update, this.query = this.world.query([P, bi]);
17807
+ super(), this.world = t, this.systemType = Mt.Update, this.query = this.world.query([P, yi]);
17807
17808
  }
17808
17809
  update() {
17809
17810
  let t, e;
17810
17811
  for (let i = 0; i < this.query.entities.length; i++) {
17811
17812
  const s = this.query.entities[i];
17812
- t = s.get(P), e = s.get(bi);
17813
+ t = s.get(P), e = s.get(yi);
17813
17814
  const o = Math.max(e.columns * e.tileWidth, e.rows * e.tileHeight) * e.elevation + t.pos.y;
17814
17815
  t.z = o;
17815
17816
  }
@@ -17932,7 +17933,7 @@ const Yl = {
17932
17933
  };
17933
17934
  class vh {
17934
17935
  constructor() {
17935
- this.events = new $(), this.transform = Z.identity(), this.inverse = Z.identity(), this._cameraStrategies = [], this.strategy = new uh(this), this._z = 1, this.dz = 0, this.az = 0, this.rotation = 0, this._angularVelocity = 0, this._posChanged = !1, this._pos = new ie(x.Zero, () => {
17936
+ this.events = new Z(), this.transform = j.identity(), this.inverse = j.identity(), this._cameraStrategies = [], this.strategy = new uh(this), this._z = 1, this.dz = 0, this.az = 0, this.rotation = 0, this._angularVelocity = 0, this._posChanged = !1, this._pos = new ie(x.Zero, () => {
17936
17937
  this._posChanged = !0;
17937
17938
  }), this.drawPos = this.pos.clone(), this._oldPos = this.pos.clone(), this.vel = x.Zero, this.acc = x.Zero, this._cameraMoving = !1, this._currentLerpTime = 0, this._lerpDuration = 1e3, this._lerpStart = null, this._lerpEnd = null, this._isShaking = !1, this._shakeMagnitudeX = 0, this._shakeMagnitudeY = 0, this._shakeDuration = 0, this._elapsedShakeTime = 0, this._xShake = 0, this._yShake = 0, this._isZooming = !1, this._zoomStart = 1, this._zoomEnd = 1, this._currentZoomTime = 0, this._zoomDuration = 0, this._legacyZoomEasing = It.EaseInOutCubic, this._useLegacyZoom = !1, this._zoomEasing = Hs, this._legacyEasing = It.EaseInOutCubic, this._useLegacyEasing = !1, this._easing = Hs, this._halfWidth = 0, this._halfHeight = 0, this._viewport = null, this._isInitialized = !1, this._snapPos = w(0, 0);
17938
17939
  }
@@ -18251,7 +18252,7 @@ class wh extends Dt {
18251
18252
  */
18252
18253
  constructor(t) {
18253
18254
  var e, i, s, n;
18254
- super({ ...t }), this.events = new $(), this.filter = (e = t.filter) != null ? e : () => !0, this.repeat = (i = t.repeat) != null ? i : -1, this.action = (s = t.action) != null ? s : () => {
18255
+ super({ ...t }), this.events = new Z(), this.filter = (e = t.filter) != null ? e : () => !0, this.repeat = (i = t.repeat) != null ? i : -1, this.action = (s = t.action) != null ? s : () => {
18255
18256
  }, this.target = t.target, this.graphics.isVisible = (n = t.visible) != null ? n : !1, this.body.collisionType = R.Passive, this.events.on("collisionstart", ({ other: o }) => {
18256
18257
  this._matchesTarget(o.owner) && (this.events.emit("enter", new Hn(this, o.owner)), this._dispatchAction(o.owner), this.repeat === 0 && this.kill());
18257
18258
  }), this.events.on("collisionend", ({ other: o }) => {
@@ -18298,7 +18299,7 @@ class Vr extends Ft {
18298
18299
  x.fromAngle(o.rotation).scale(50).add(x.Zero),
18299
18300
  a.rotationColor,
18300
18301
  2
18301
- ), this._graphicsContext.debug.drawText(`rot deg(${no(o.rotation).toFixed(2)})`, b), b = b.add(C)), (a.showAll || a.showScale) && this._graphicsContext.drawLine(x.Zero, o.scale.add(x.Zero), a.scaleColor, 2)), _ = f.get(fs), _ && (_.useTransform || this._graphicsContext.restore(), _.draw(this._graphicsContext, this._engine.debug), _.useTransform || (this._graphicsContext.save(), this._applyTransform(f))), p = f.get(N), p && ((g.showAll || g.showCollisionGroup) && (this._graphicsContext.debug.drawText(`collision group(${p.group.name})`, b), b = b.add(C)), (g.showAll || g.showCollisionType) && (this._graphicsContext.debug.drawText(`collision type(${p.collisionType})`, b), b = b.add(C)), (g.showAll || g.showMass) && (this._graphicsContext.debug.drawText(`mass(${p.mass})`, b), b = b.add(C)), (g.showAll || g.showMotion) && (this._graphicsContext.debug.drawText(`motion(${p.sleepMotion})`, b), b = b.add(C)), (g.showAll || g.showSleeping) && (this._graphicsContext.debug.drawText(`sleeping(${p.canSleep ? p.isSleeping : "cant sleep"})`, b), b = b.add(C))), this._graphicsContext.restore(), this._graphicsContext.save(), o.coordPlane === ht.Screen && this._graphicsContext.translate(this._engine.screen.contentArea.left, this._engine.screen.contentArea.top), h = f.get(H), h && ((l.showAll || l.showVelocity) && (this._graphicsContext.debug.drawText(`vel${h.vel.toString(2)}`, b.add(o.globalPos)), this._graphicsContext.drawLine(o.globalPos, o.globalPos.add(h.vel), l.velocityColor, 2), b = b.add(C)), (l.showAll || l.showAcceleration) && this._graphicsContext.drawLine(o.globalPos, o.globalPos.add(h.acc), l.accelerationColor, 2)), c = f.get(it), c) {
18302
+ ), this._graphicsContext.debug.drawText(`rot deg(${no(o.rotation).toFixed(2)})`, b), b = b.add(C)), (a.showAll || a.showScale) && this._graphicsContext.drawLine(x.Zero, o.scale.add(x.Zero), a.scaleColor, 2)), _ = f.get(gs), _ && (_.useTransform || this._graphicsContext.restore(), _.draw(this._graphicsContext, this._engine.debug), _.useTransform || (this._graphicsContext.save(), this._applyTransform(f))), p = f.get(N), p && ((g.showAll || g.showCollisionGroup) && (this._graphicsContext.debug.drawText(`collision group(${p.group.name})`, b), b = b.add(C)), (g.showAll || g.showCollisionType) && (this._graphicsContext.debug.drawText(`collision type(${p.collisionType})`, b), b = b.add(C)), (g.showAll || g.showMass) && (this._graphicsContext.debug.drawText(`mass(${p.mass})`, b), b = b.add(C)), (g.showAll || g.showMotion) && (this._graphicsContext.debug.drawText(`motion(${p.sleepMotion})`, b), b = b.add(C)), (g.showAll || g.showSleeping) && (this._graphicsContext.debug.drawText(`sleeping(${p.canSleep ? p.isSleeping : "cant sleep"})`, b), b = b.add(C))), this._graphicsContext.restore(), this._graphicsContext.save(), o.coordPlane === ht.Screen && this._graphicsContext.translate(this._engine.screen.contentArea.left, this._engine.screen.contentArea.top), h = f.get(H), h && ((l.showAll || l.showVelocity) && (this._graphicsContext.debug.drawText(`vel${h.vel.toString(2)}`, b.add(o.globalPos)), this._graphicsContext.drawLine(o.globalPos, o.globalPos.add(h.vel), l.velocityColor, 2), b = b.add(C)), (l.showAll || l.showAcceleration) && this._graphicsContext.drawLine(o.globalPos, o.globalPos.add(h.acc), l.accelerationColor, 2)), c = f.get(it), c) {
18302
18303
  const S = c.get();
18303
18304
  if ((d.showAll || d.showGeometry) && S && S.debug(this._graphicsContext, d.geometryColor, {
18304
18305
  lineWidth: d.geometryLineWidth,
@@ -18440,7 +18441,7 @@ class Gr extends Ft {
18440
18441
  Gr.priority = Jt.Higher;
18441
18442
  class Ps {
18442
18443
  constructor() {
18443
- this.events = new $(), this.enabled = !1, this.supported = !!navigator.getGamepads, this._gamePadTimeStamps = [0, 0, 0, 0], this._oldPads = [], this._pads = [], this._initSuccess = !1, this._navigator = navigator, this._minimumConfiguration = null, this._enabled = !0;
18444
+ this.events = new Z(), this.enabled = !1, this.supported = !!navigator.getGamepads, this._gamePadTimeStamps = [0, 0, 0, 0], this._oldPads = [], this._pads = [], this._initSuccess = !1, this._navigator = navigator, this._minimumConfiguration = null, this._enabled = !0;
18444
18445
  }
18445
18446
  init() {
18446
18447
  this.supported && (this._initSuccess || (this._oldPads = this._clonePads(this._navigator.getGamepads()), this._oldPads.length && this._oldPads[0] && (this._initSuccess = !0)));
@@ -18535,7 +18536,7 @@ class Ps {
18535
18536
  at(t) {
18536
18537
  if (this._enableAndUpdate(), t >= this._pads.length)
18537
18538
  for (let e = this._pads.length - 1, i = t; e < i; e++)
18538
- this._pads.push(new Oi()), this._oldPads.push(new Oi());
18539
+ this._pads.push(new Wi()), this._oldPads.push(new Wi());
18539
18540
  return this._pads[t];
18540
18541
  }
18541
18542
  /**
@@ -18565,7 +18566,7 @@ class Ps {
18565
18566
  */
18566
18567
  _clonePad(t) {
18567
18568
  let e, i;
18568
- const s = new Oi();
18569
+ const s = new Wi();
18569
18570
  if (!t)
18570
18571
  return s;
18571
18572
  for (e = 0, i = t.buttons.length; e < i; e++)
@@ -18576,9 +18577,9 @@ class Ps {
18576
18577
  }
18577
18578
  }
18578
18579
  Ps.MinAxisMoveThreshold = 0.05;
18579
- class Oi {
18580
+ class Wi {
18580
18581
  constructor() {
18581
- this.events = new $(), this.connected = !1, this._axes = new Array(4), this._buttons = new Array(16), this._buttonsUp = new Array(16), this._buttonsDown = new Array(16);
18582
+ this.events = new Z(), this.connected = !1, this._axes = new Array(4), this._buttons = new Array(16), this._buttonsUp = new Array(16), this._buttonsDown = new Array(16);
18582
18583
  for (let t = 0; t < this._buttons.length; t++)
18583
18584
  this._buttons[t] = 0;
18584
18585
  for (let t = 0; t < this._axes.length; t++)
@@ -18720,7 +18721,7 @@ class ri extends B {
18720
18721
  }
18721
18722
  class Th {
18722
18723
  constructor() {
18723
- this.events = new $(), this._enabled = !0, this._keys = [], this._keysUp = [], this._keysDown = [], this._releaseAllKeys = (t) => {
18724
+ this.events = new Z(), this._enabled = !0, this._keys = [], this._keysUp = [], this._keysDown = [], this._releaseAllKeys = (t) => {
18724
18725
  for (const e of this._keys) {
18725
18726
  const i = new ri(e, t.key, t);
18726
18727
  this.events.emit("up", i), this.events.emit("release", i);
@@ -18858,7 +18859,7 @@ class Sh {
18858
18859
  }
18859
18860
  class tn {
18860
18861
  constructor() {
18861
- this.events = new $(), this.lastPagePos = x.Zero, this.lastScreenPos = x.Zero, this.lastWorldPos = x.Zero, this._onPointerMove = (t) => {
18862
+ this.events = new Z(), this.lastPagePos = x.Zero, this.lastScreenPos = x.Zero, this.lastWorldPos = x.Zero, this._onPointerMove = (t) => {
18862
18863
  this.lastPagePos = new x(t.pagePos.x, t.pagePos.y), this.lastScreenPos = new x(t.screenPos.x, t.screenPos.y), this.lastWorldPos = new x(t.worldPos.x, t.worldPos.y);
18863
18864
  }, this._onPointerDown = (t) => {
18864
18865
  this.lastPagePos = new x(t.pagePos.x, t.pagePos.y), this.lastScreenPos = new x(t.screenPos.x, t.screenPos.y), this.lastWorldPos = new x(t.worldPos.x, t.worldPos.y);
@@ -18886,7 +18887,7 @@ class tn {
18886
18887
  this.lastScreenPos = e.screenPos, this.lastWorldPos = e.worldPos;
18887
18888
  }
18888
18889
  }
18889
- var _i = /* @__PURE__ */ ((r) => (r.Pixel = "Pixel", r.Line = "Line", r.Page = "Page", r))(_i || {}), ye = /* @__PURE__ */ ((r) => (r[r.NoButton = -1] = "NoButton", r[r.Left = 0] = "Left", r[r.Middle = 1] = "Middle", r[r.Right = 2] = "Right", r[r.Unknown = 3] = "Unknown", r))(ye || {}), ce = /* @__PURE__ */ ((r) => (r.Left = "Left", r.Middle = "Middle", r.Right = "Right", r.Unknown = "Unknown", r.NoButton = "NoButton", r))(ce || {}), de = /* @__PURE__ */ ((r) => (r.Touch = "Touch", r.Mouse = "Mouse", r.Pen = "Pen", r.Unknown = "Unknown", r))(de || {});
18890
+ var fi = /* @__PURE__ */ ((r) => (r.Pixel = "Pixel", r.Line = "Line", r.Page = "Page", r))(fi || {}), ye = /* @__PURE__ */ ((r) => (r[r.NoButton = -1] = "NoButton", r[r.Left = 0] = "Left", r[r.Middle = 1] = "Middle", r[r.Right = 2] = "Right", r[r.Unknown = 3] = "Unknown", r))(ye || {}), ce = /* @__PURE__ */ ((r) => (r.Left = "Left", r.Middle = "Middle", r.Right = "Right", r.Unknown = "Unknown", r.NoButton = "NoButton", r))(ce || {}), de = /* @__PURE__ */ ((r) => (r.Touch = "Touch", r.Mouse = "Mouse", r.Pen = "Pen", r.Unknown = "Unknown", r))(de || {});
18890
18891
  function Ah(r) {
18891
18892
  return globalThis.TouchEvent && r instanceof globalThis.TouchEvent;
18892
18893
  }
@@ -18895,7 +18896,7 @@ function Ph(r) {
18895
18896
  }
18896
18897
  class Es {
18897
18898
  constructor(t, e) {
18898
- this.target = t, this.engine = e, this.events = new $(), this.primary = new tn(), this._activeNativePointerIdsToNormalized = /* @__PURE__ */ new Map(), this.lastFramePointerCoords = /* @__PURE__ */ new Map(), this.currentFramePointerCoords = /* @__PURE__ */ new Map(), this.currentFramePointerDown = /* @__PURE__ */ new Map(), this.lastFramePointerDown = /* @__PURE__ */ new Map(), this.currentFrameDown = [], this.currentFrameUp = [], this.currentFrameMove = [], this.currentFrameCancel = [], this.currentFrameWheel = [], this._enabled = !0, this._pointers = [this.primary], this._boundHandle = this._handle.bind(this), this._boundWheel = this._handleWheel.bind(this);
18899
+ this.target = t, this.engine = e, this.events = new Z(), this.primary = new tn(), this._activeNativePointerIdsToNormalized = /* @__PURE__ */ new Map(), this.lastFramePointerCoords = /* @__PURE__ */ new Map(), this.currentFramePointerCoords = /* @__PURE__ */ new Map(), this.currentFramePointerDown = /* @__PURE__ */ new Map(), this.lastFramePointerDown = /* @__PURE__ */ new Map(), this.currentFrameDown = [], this.currentFrameUp = [], this.currentFrameMove = [], this.currentFrameCancel = [], this.currentFrameWheel = [], this._enabled = !0, this._pointers = [this.primary], this._boundHandle = this._handle.bind(this), this._boundWheel = this._handleWheel.bind(this);
18899
18900
  }
18900
18901
  toggleEnabled(t) {
18901
18902
  this._enabled = t;
@@ -19102,8 +19103,8 @@ class Es {
19102
19103
  return;
19103
19104
  (this.engine.pageScrollPreventionMode === Oe.All || this.engine.pageScrollPreventionMode === Oe.Canvas && t.target === this.engine.canvas) && t.preventDefault();
19104
19105
  const e = this.engine.screen.pageToScreenCoordinates(w(t.pageX, t.pageY)), i = this.engine.screen.screenToWorldCoordinates(e), s = -1 / 40, n = t.deltaX || t.wheelDeltaX * s || 0, o = t.deltaY || t.wheelDeltaY * s || t.wheelDelta * s || t.detail || 0, a = t.deltaZ || 0;
19105
- let h = _i.Pixel;
19106
- t.deltaMode && (t.deltaMode === 1 ? h = _i.Line : t.deltaMode === 2 && (h = _i.Page));
19106
+ let h = fi.Pixel;
19107
+ t.deltaMode && (t.deltaMode === 1 ? h = fi.Line : t.deltaMode === 2 && (h = fi.Page));
19107
19108
  const l = new Sh(i.x, i.y, t.pageX, t.pageY, e.x, e.y, 0, n, o, a, h, t);
19108
19109
  this.currentFrameWheel.push(l);
19109
19110
  }
@@ -19205,7 +19206,7 @@ function Gt(r) {
19205
19206
  }
19206
19207
  class Et {
19207
19208
  constructor() {
19208
- this._logger = I.getInstance(), this.events = new $(), this.camera = new vh(), this.world = new vo(this), this.physics = new Qa(ne()), this._isInitialized = !1, this._timers = [], this._cancelQueue = [], this.world.add(Gr), this.world.add(new ys(this.world, this.physics)), this.world.add(new Cs(this.world, this.physics)), this.world.add(As), this.world.add(Wr), this.world.add(mr), this.world.add(pr), this.world.add(Vr);
19209
+ this._logger = I.getInstance(), this.events = new Z(), this.camera = new vh(), this.world = new vo(this), this.physics = new Qa(ne()), this._isInitialized = !1, this._timers = [], this._cancelQueue = [], this.world.add(Gr), this.world.add(new ys(this.world, this.physics)), this.world.add(new Cs(this.world, this.physics)), this.world.add(As), this.world.add(Wr), this.world.add(mr), this.world.add(pr), this.world.add(Vr);
19209
19210
  }
19210
19211
  /**
19211
19212
  * The actors in the current scene
@@ -19464,7 +19465,7 @@ class Et {
19464
19465
  return this.actors.indexOf(t) > -1;
19465
19466
  }
19466
19467
  add(t) {
19467
- if (this.emit("entityadded", { target: t }), t instanceof Hi) {
19468
+ if (this.emit("entityadded", { target: t }), t instanceof Ni) {
19468
19469
  Xn(this._timers, t) || this.addTimer(t);
19469
19470
  return;
19470
19471
  }
@@ -19479,10 +19480,10 @@ class Et {
19479
19480
  */
19480
19481
  transfer(t) {
19481
19482
  let e;
19482
- t instanceof Rt && t.scene && t.scene !== this && (e = t.scene, t.scene.world.remove(t, !1)), t instanceof Hi && t.scene && (e = t.scene, t.scene.removeTimer(t)), e == null || e.emit("entityremoved", { target: t }), this.add(t);
19483
+ t instanceof Rt && t.scene && t.scene !== this && (e = t.scene, t.scene.world.remove(t, !1)), t instanceof Ni && t.scene && (e = t.scene, t.scene.removeTimer(t)), e == null || e.emit("entityremoved", { target: t }), this.add(t);
19483
19484
  }
19484
19485
  remove(t) {
19485
- this.emit("entityremoved", { target: t }), t instanceof Rt && (t.isActive && t.kill(), this.world.remove(t)), t instanceof Hi && this.removeTimer(t);
19486
+ this.emit("entityremoved", { target: t }), t instanceof Rt && (t.isActive && t.kill(), this.world.remove(t)), t instanceof Ni && this.removeTimer(t);
19486
19487
  }
19487
19488
  /**
19488
19489
  * Removes all entities and timers from the scene, optionally indicate whether deferred should or shouldn't be used.
@@ -19572,12 +19573,12 @@ class Ih {
19572
19573
  * Current frame statistics. Engine reuses this instance, use {@apilink FrameStats.clone} to copy frame stats.
19573
19574
  * Best accessed on {@apilink postframe} event. See {@apilink FrameStats}
19574
19575
  */
19575
- currFrame: new yi(),
19576
+ currFrame: new Ci(),
19576
19577
  /**
19577
19578
  * Previous frame statistics. Engine reuses this instance, use {@apilink FrameStats.clone} to copy frame stats.
19578
19579
  * Best accessed on {@apilink preframe} event. Best inspected on engine event `preframe`. See {@apilink FrameStats}
19579
19580
  */
19580
- prevFrame: new yi()
19581
+ prevFrame: new Ci()
19581
19582
  }, this.settings = {
19582
19583
  text: {
19583
19584
  foreground: T.Black,
@@ -19703,7 +19704,7 @@ class Ih {
19703
19704
  return e && i.start(), this._engine.clock = i, i;
19704
19705
  }
19705
19706
  }
19706
- class yi {
19707
+ class Ci {
19707
19708
  constructor() {
19708
19709
  this._id = 0, this._elapsedMs = 0, this._fps = 0, this._actorStats = {
19709
19710
  alive: 0,
@@ -19723,7 +19724,8 @@ class yi {
19723
19724
  }
19724
19725
  }, this._physicsStats = new Is(), this._graphicsStats = {
19725
19726
  drawCalls: 0,
19726
- drawnImages: 0
19727
+ drawnImages: 0,
19728
+ rendererSwaps: 0
19727
19729
  };
19728
19730
  }
19729
19731
  /**
@@ -19731,13 +19733,13 @@ class yi {
19731
19733
  * @param [otherStats] Optional stats to clone
19732
19734
  */
19733
19735
  reset(t) {
19734
- t ? (this.id = t.id, this.elapsedMs = t.elapsedMs, this.fps = t.fps, this.actors.alive = t.actors.alive, this.actors.killed = t.actors.killed, this.actors.ui = t.actors.ui, this.duration.update = t.duration.update, this.duration.draw = t.duration.draw, this._physicsStats.reset(t.physics), this.graphics.drawCalls = t.graphics.drawCalls, this.graphics.drawnImages = t.graphics.drawnImages) : (this.id = this.elapsedMs = this.fps = 0, this.actors.alive = this.actors.killed = this.actors.ui = 0, this.duration.update = this.duration.draw = 0, this._physicsStats.reset(), this.graphics.drawnImages = this.graphics.drawCalls = 0);
19736
+ t ? (this.id = t.id, this.elapsedMs = t.elapsedMs, this.fps = t.fps, this.actors.alive = t.actors.alive, this.actors.killed = t.actors.killed, this.actors.ui = t.actors.ui, this.duration.update = t.duration.update, this.duration.draw = t.duration.draw, this._physicsStats.reset(t.physics), this.graphics.drawCalls = t.graphics.drawCalls, this.graphics.drawnImages = t.graphics.drawnImages, this.graphics.rendererSwaps = t.graphics.rendererSwaps) : (this.id = this.elapsedMs = this.fps = 0, this.actors.alive = this.actors.killed = this.actors.ui = 0, this.duration.update = this.duration.draw = 0, this._physicsStats.reset(), this.graphics.drawnImages = this.graphics.drawCalls = this.graphics.rendererSwaps = 0);
19735
19737
  }
19736
19738
  /**
19737
19739
  * Provides a clone of this instance.
19738
19740
  */
19739
19741
  clone() {
19740
- const t = new yi();
19742
+ const t = new Ci();
19741
19743
  return t.reset(this), t;
19742
19744
  }
19743
19745
  /**
@@ -20154,7 +20156,7 @@ const kh = {
20154
20156
  };
20155
20157
  class Lh {
20156
20158
  constructor(t, e) {
20157
- this._engine = t, this.events = new $(), this._logger = I.getInstance(), this._initialized = !1, this.scenes = {}, this._sceneToInstance = /* @__PURE__ */ new Map(), this._sceneToLoader = /* @__PURE__ */ new Map(), this._sceneToTransition = /* @__PURE__ */ new Map(), this._loadedScenes = /* @__PURE__ */ new Set(), this._isTransitioning = !1, this.rootScene = this.currentScene = new Et(), this.add("root", this.rootScene), this.currentScene = this.rootScene, this.currentSceneName = "root";
20159
+ this._engine = t, this.events = new Z(), this._logger = I.getInstance(), this._initialized = !1, this.scenes = {}, this._sceneToInstance = /* @__PURE__ */ new Map(), this._sceneToLoader = /* @__PURE__ */ new Map(), this._sceneToTransition = /* @__PURE__ */ new Map(), this._loadedScenes = /* @__PURE__ */ new Set(), this._isTransitioning = !1, this.rootScene = this.currentScene = new Et(), this.add("root", this.rootScene), this.currentScene = this.rootScene, this.currentSceneName = "root";
20158
20160
  for (const i in e) {
20159
20161
  const s = e[i];
20160
20162
  this.add(i, s), i === "root" && (this.rootScene = this.getSceneInstance("root"), this.currentScene = this.rootScene);
@@ -20198,7 +20200,7 @@ class Lh {
20198
20200
  configureStart(t, e) {
20199
20201
  var i, s;
20200
20202
  const n = e == null ? void 0 : e.loader;
20201
- n instanceof wi ? this.mainLoader = n : Qs(n) ? this.mainLoader = new n() : this.mainLoader = new rs();
20203
+ n instanceof bi ? this.mainLoader = n : Qs(n) ? this.mainLoader = new n() : this.mainLoader = new os();
20202
20204
  let o;
20203
20205
  if (e != null && e.inTransition) {
20204
20206
  const { inTransition: h } = e;
@@ -20356,7 +20358,7 @@ class Lh {
20356
20358
  */
20357
20359
  async maybeLoadScene(t, e = !1) {
20358
20360
  var i;
20359
- const s = (i = this._getLoader(t)) != null ? i : new wi(), n = this.getSceneDefinition(t), o = this.getSceneInstance(t);
20361
+ const s = (i = this._getLoader(t)) != null ? i : new bi(), n = this.getSceneDefinition(t), o = this.getSceneInstance(t);
20360
20362
  n && o && !this._loadedScenes.has(o) && (o.onPreLoad(s), o.events.emit("preload", { loader: s }), e ? this._engine.load(s, e) : await this._engine.load(s), this._loadedScenes.add(o));
20361
20363
  }
20362
20364
  /**
@@ -20526,7 +20528,7 @@ const Ql = {
20526
20528
  ...kh
20527
20529
  };
20528
20530
  var Oe = /* @__PURE__ */ ((r) => (r[r.None = 0] = "None", r[r.Canvas = 1] = "Canvas", r[r.All = 2] = "All", r))(Oe || {});
20529
- const Di = class ee {
20531
+ const ki = class ee {
20530
20532
  /**
20531
20533
  * Creates a new game using the given {@apilink EngineOptions}. By default, if no options are provided,
20532
20534
  * the game will be rendered full screen (taking up all available browser window space).
@@ -20552,7 +20554,7 @@ const Di = class ee {
20552
20554
  * ```
20553
20555
  */
20554
20556
  constructor(t) {
20555
- this.scope = (S) => ee.Context.scope(this, S), this.version = an, this.events = new $(), this.maxFps = Number.POSITIVE_INFINITY, this._inputEnabled = !0, this._suppressPlayButton = !1, this.pauseAudioWhenHidden = !0, this._isDebug = !1, this.enableCanvasTransparency = !0, this.onFatalException = (S) => {
20557
+ this.scope = (S) => ee.Context.scope(this, S), this.version = an, this.events = new Z(), this.maxFps = Number.POSITIVE_INFINITY, this._inputEnabled = !0, this._suppressPlayButton = !1, this.pauseAudioWhenHidden = !0, this._isDebug = !1, this.enableCanvasTransparency = !0, this.onFatalException = (S) => {
20556
20558
  I.getInstance().fatal(S, S.stack);
20557
20559
  }, this._toaster = new Bh(), this._timescale = 1, this._isInitialized = !1, this._hasCreatedCanvas = !1, this._originalOptions = {}, this._handleWebGLContextLost = (S) => {
20558
20560
  var E;
@@ -20620,8 +20622,8 @@ O|===|* >________________>
20620
20622
  this.canvas && !t.enableCanvasContextMenu && this.canvas.addEventListener("contextmenu", (S) => {
20621
20623
  S.preventDefault();
20622
20624
  });
20623
- let u = (e = t.displayMode) != null ? e : di.Fixed;
20624
- t.width && t.height || t.viewport ? (t.displayMode === void 0 && (u = di.Fixed), this._logger.debug("Engine viewport is size " + t.width + " x " + t.height)) : t.displayMode || (this._logger.debug("Engine viewport is fit"), u = di.FitScreen);
20625
+ let u = (e = t.displayMode) != null ? e : ui.Fixed;
20626
+ t.width && t.height || t.viewport ? (t.displayMode === void 0 && (u = ui.Fixed), this._logger.debug("Engine viewport is size " + t.width + " x " + t.height)) : t.displayMode || (this._logger.debug("Engine viewport is fit"), u = ui.FitScreen);
20625
20627
  const _ = t.global && typeof t.global == "function" ? t.global() : t.global;
20626
20628
  this.global = _ != null ? _ : $r(), this.grabWindowFocus = t.grabWindowFocus, this.pointerScope = t.pointerScope, this._originalDisplayMode = u;
20627
20629
  let p, g, v, m, f, b;
@@ -20659,7 +20661,7 @@ O|===|* >________________>
20659
20661
  Read more about this issue at https://excaliburjs.com/docs/performance`
20660
20662
  ), C = !0;
20661
20663
  }
20662
- C && (this.graphicsContext = new is({
20664
+ C && (this.graphicsContext = new ss({
20663
20665
  canvasElement: this.canvas,
20664
20666
  enableTransparency: this.enableCanvasTransparency,
20665
20667
  antialiasing: v,
@@ -20685,7 +20687,7 @@ Read more about this issue at https://excaliburjs.com/docs/performance`
20685
20687
  enabled: t.physics
20686
20688
  } : (this.physics = {
20687
20689
  ...ne()
20688
- }, mi(this.physics, t.physics)), this.director = new Lh(this, t.scenes), this.director.events.pipe(this.events), this._initialize(t), window.___EXCALIBUR_DEVTOOL = this, ee.InstanceCount++;
20690
+ }, xi(this.physics, t.physics)), this.director = new Lh(this, t.scenes), this.director.events.pipe(this.events), this._initialize(t), window.___EXCALIBUR_DEVTOOL = this, ee.InstanceCount++;
20689
20691
  }
20690
20692
  static useEngine() {
20691
20693
  const t = Kr(ee.Context);
@@ -20858,7 +20860,7 @@ Read more about this issue at https://excaliburjs.com/docs/performance`
20858
20860
  const s = this.canvas.cloneNode(!1);
20859
20861
  this.canvas.parentNode.replaceChild(s, this.canvas), this.canvas = s;
20860
20862
  const n = { ...this._originalOptions, antialiasing: this.screen.antialiasing }, o = this._originalDisplayMode;
20861
- this.graphicsContext = new is({
20863
+ this.graphicsContext = new ss({
20862
20864
  canvasElement: this.canvas,
20863
20865
  enableTransparency: this.enableCanvasTransparency,
20864
20866
  antialiasing: n.antialiasing,
@@ -21139,7 +21141,7 @@ Read more about this issue at https://excaliburjs.com/docs/performance`
21139
21141
  throw new Error("Excalibur is incompatible with your browser");
21140
21142
  this._isLoading = !0;
21141
21143
  let i;
21142
- return t instanceof wi ? i = t : typeof t == "string" && (this.director.configureStart(t, e), i = 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(i != null ? i : new rs()), await this._overrideInitialize(this), this._isReadyFuture.resolve(), this.emit("start", new bn(this)), this._isReadyFuture.promise;
21144
+ return t instanceof bi ? i = t : typeof t == "string" && (this.director.configureStart(t, e), i = 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(i != null ? i : new os()), await this._overrideInitialize(this), this._isReadyFuture.resolve(), this.emit("start", new bn(this)), this._isReadyFuture.promise;
21143
21145
  });
21144
21146
  }
21145
21147
  _mainloop(t) {
@@ -21148,7 +21150,7 @@ Read more about this issue at https://excaliburjs.com/docs/performance`
21148
21150
  const e = t * this.timescale;
21149
21151
  this.currentFrameElapsedMs = e;
21150
21152
  const i = this.stats.prevFrame.id + 1;
21151
- this.stats.currFrame.reset(), this.stats.currFrame.id = i, this.stats.currFrame.elapsedMs = e, this.stats.currFrame.fps = this.clock.fpsSampler.fps, j.clear();
21153
+ this.stats.currFrame.reset(), this.stats.currFrame.id = i, this.stats.currFrame.elapsedMs = e, this.stats.currFrame.fps = this.clock.fpsSampler.fps, $.clear();
21152
21154
  const s = this.clock.now(), n = this.fixedUpdateTimestep;
21153
21155
  if (this.fixedUpdateTimestep)
21154
21156
  for (this._lagMs += e; this._lagMs >= n; )
@@ -21158,7 +21160,7 @@ Read more about this issue at https://excaliburjs.com/docs/performance`
21158
21160
  const o = this.clock.now();
21159
21161
  this.currentFrameLagMs = this._lagMs, this._draw(e);
21160
21162
  const a = this.clock.now();
21161
- this.stats.currFrame.duration.update = o - s, this.stats.currFrame.duration.draw = a - o, this.stats.currFrame.graphics.drawnImages = j.DrawnImagesCount, this.stats.currFrame.graphics.drawCalls = j.DrawCallCount, this.emit("postframe", new En(this, this.stats.currFrame)), this.stats.prevFrame.reset(this.stats.currFrame), this._monitorPerformanceThresholdAndTriggerFallback();
21163
+ this.stats.currFrame.duration.update = o - s, this.stats.currFrame.duration.draw = a - o, this.stats.currFrame.graphics.drawnImages = $.DrawnImagesCount, this.stats.currFrame.graphics.drawCalls = $.DrawCallCount, this.stats.currFrame.graphics.rendererSwaps = $.RendererSwaps, this.emit("postframe", new En(this, this.stats.currFrame)), this.stats.prevFrame.reset(this.stats.currFrame), this._monitorPerformanceThresholdAndTriggerFallback();
21162
21164
  });
21163
21165
  }
21164
21166
  /**
@@ -21207,7 +21209,7 @@ Read more about this issue at https://excaliburjs.com/docs/performance`
21207
21209
  try {
21208
21210
  if (t.isLoaded())
21209
21211
  return;
21210
- this._loader = t, this._isLoading = !0, this._hideLoader = e, t instanceof rs && (t.suppressPlayButton = t.suppressPlayButton || this._suppressPlayButton), this._loader.onInitialize(this), await t.load();
21212
+ this._loader = t, this._isLoading = !0, this._hideLoader = e, t instanceof os && (t.suppressPlayButton = t.suppressPlayButton || this._suppressPlayButton), this._loader.onInitialize(this), await t.load();
21211
21213
  } catch (i) {
21212
21214
  this._logger.error("Error loading resources, things may not behave properly", i), await Promise.resolve();
21213
21215
  } finally {
@@ -21216,9 +21218,9 @@ Read more about this issue at https://excaliburjs.com/docs/performance`
21216
21218
  });
21217
21219
  }
21218
21220
  };
21219
- Di.Context = Jr();
21220
- Di.InstanceCount = 0;
21221
- Di._DEFAULT_ENGINE_OPTIONS = {
21221
+ ki.Context = Jr();
21222
+ ki.InstanceCount = 0;
21223
+ ki._DEFAULT_ENGINE_OPTIONS = {
21222
21224
  width: 0,
21223
21225
  height: 0,
21224
21226
  enableCanvasTransparency: !0,
@@ -21246,14 +21248,14 @@ Di._DEFAULT_ENGINE_OPTIONS = {
21246
21248
  backgroundColor: T.fromHex("#2185d0")
21247
21249
  // Excalibur blue
21248
21250
  };
21249
- let Ni = Di;
21251
+ let Vi = ki;
21250
21252
  class Jl extends Dt {
21251
21253
  /**
21252
21254
  * Build a new label
21253
21255
  * @param options
21254
21256
  */
21255
21257
  constructor(t) {
21256
- super(t), this._font = new Me(), this._text = new Mi({ text: "", font: this._font });
21258
+ super(t), this._font = new Me(), this._text = new Di({ text: "", font: this._font });
21257
21259
  const { text: e, pos: i, x: s, y: n, spriteFont: o, font: a, color: h, maxWidth: l } = { text: "", ...t };
21258
21260
  this.pos = i != null ? i : s && n ? w(s, n) : this.pos, this.text = e != null ? e : this.text, this.font = a != null ? a : this.font, this.maxWidth = l != null ? l : this.maxWidth, this.spriteFont = o != null ? o : this.spriteFont, this._text.color = h != null ? h : this.color;
21259
21261
  const c = this.get(tt);
@@ -21403,7 +21405,7 @@ function nn(r, t) {
21403
21405
  if (!t())
21404
21406
  throw new Error(r);
21405
21407
  }
21406
- class os {
21408
+ class as {
21407
21409
  constructor(t, e, i) {
21408
21410
  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 = [];
21409
21411
  var s;
@@ -21508,7 +21510,7 @@ class os {
21508
21510
  }
21509
21511
  }
21510
21512
  }
21511
- os.GPU_MAX_PARTICLES = 1e5;
21513
+ as.GPU_MAX_PARTICLES = 1e5;
21512
21514
  class tc extends Dt {
21513
21515
  constructor(t) {
21514
21516
  super({ name: "GpuParticleEmitter", width: t.width, height: t.height }), this.particle = {
@@ -21525,7 +21527,7 @@ class tc extends Dt {
21525
21527
  randomRotation: !1
21526
21528
  }, this.graphics = new tt(), this.isEmitting = !1, this.emitRate = 1, this.emitterType = Ae.Rectangle, this.radius = 0, this.maxParticles = 2e3, this._particlesToEmit = 0, this.addComponent(this.graphics, !0), this.graphics.onPostDraw = this.draw.bind(this);
21527
21529
  const { particle: e, maxParticles: i, x: s, y: n, z: o, pos: a, isEmitting: h, emitRate: l, emitterType: c, radius: d, random: u } = { ...t };
21528
- this.maxParticles = D(i != null ? i : this.maxParticles, 0, os.GPU_MAX_PARTICLES), this.pos = a != null ? a : w(s != null ? s : 0, n != null ? n : 0), this.z = o != null ? o : 0, this.isEmitting = h != null ? h : this.isEmitting, this.emitRate = l != null ? l : this.emitRate, this.emitterType = c != null ? c : this.emitterType, this.radius = d != null ? d : this.radius, this.particle = { ...this.particle, ...e }, this.random = u != null ? u : new ge(), this.renderer = new os(this, this.random, this.particle);
21530
+ this.maxParticles = D(i != null ? i : this.maxParticles, 0, as.GPU_MAX_PARTICLES), this.pos = a != null ? a : w(s != null ? s : 0, n != null ? n : 0), this.z = o != null ? o : 0, this.isEmitting = h != null ? h : this.isEmitting, this.emitRate = l != null ? l : this.emitRate, this.emitterType = c != null ? c : this.emitterType, this.radius = d != null ? d : this.radius, this.particle = { ...this.particle, ...e }, this.random = u != null ? u : new ge(), this.renderer = new as(this, this.random, this.particle);
21529
21531
  }
21530
21532
  get pos() {
21531
21533
  return this.transform.pos;
@@ -21559,7 +21561,7 @@ class tc extends Dt {
21559
21561
  }
21560
21562
  class to {
21561
21563
  constructor(t, e) {
21562
- this.id = W(), this._stopped = !1, this._sequenceBuilder = e, this._sequenceContext = new Fi(t), this._actionQueue = this._sequenceContext.getQueue(), this._sequenceBuilder(this._sequenceContext);
21564
+ this.id = W(), this._stopped = !1, this._sequenceBuilder = e, this._sequenceContext = new Bi(t), this._actionQueue = this._sequenceContext.getQueue(), this._sequenceBuilder(this._sequenceContext);
21563
21565
  }
21564
21566
  update(t) {
21565
21567
  this._actionQueue.update(t);
@@ -21835,7 +21837,7 @@ class gc {
21835
21837
  * @param bustCache Optionally load texture with cache busting
21836
21838
  */
21837
21839
  constructor(t, e = !1) {
21838
- this.path = t, this.width = 0, this.height = 0, this._images = [], this.data = [], this._sprites = [], this._resource = new Pi(t, "arraybuffer", e);
21840
+ this.path = t, this.width = 0, this.height = 0, this._images = [], this.data = [], this._sprites = [], this._resource = new Ei(t, "arraybuffer", e);
21839
21841
  }
21840
21842
  /**
21841
21843
  * Should excalibur add a cache busting querystring? By default false.
@@ -21889,7 +21891,7 @@ class gc {
21889
21891
  duration: ((a = this._gif) == null ? void 0 : a.frames[o].delayMs) || void 0
21890
21892
  };
21891
21893
  });
21892
- return this._animation = new us({
21894
+ return this._animation = new _s({
21893
21895
  frames: s,
21894
21896
  frameDuration: t
21895
21897
  }), this._animation;
@@ -21903,7 +21905,7 @@ class gc {
21903
21905
  }
21904
21906
  const ai = (r) => r.reduce(function(t, e) {
21905
21907
  return t * 2 + e;
21906
- }, 0), Wi = (r) => {
21908
+ }, 0), Gi = (r) => {
21907
21909
  const t = [];
21908
21910
  for (let e = 7; e >= 0; e--)
21909
21911
  t.push(!!(r & 1 << e));
@@ -22000,12 +22002,12 @@ class Nh {
22000
22002
  if (e.sig = this._st.read(3), e.ver = this._st.read(3), e.sig !== "GIF")
22001
22003
  throw new Error("Not a GIF file.");
22002
22004
  e.width = this._st.readUnsigned(), e.height = this._st.readUnsigned(), this._currentFrameCanvas.width = e.width, this._currentFrameCanvas.height = e.height;
22003
- const i = Wi(this._st.readByte());
22005
+ const i = Gi(this._st.readByte());
22004
22006
  e.gctFlag = i.shift(), e.colorResolution = ai(i.splice(0, 3)), e.sortedFlag = i.shift(), e.globalColorTableSize = ai(i.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);
22005
22007
  }, this.parseExt = (e) => {
22006
22008
  const i = (h) => {
22007
22009
  this.checkBytes.push(this._st.readByte());
22008
- const l = Wi(this._st.readByte());
22010
+ const l = Gi(this._st.readByte());
22009
22011
  return h.reserved = l.splice(0, 3), h.disposalMethod = ai(l.splice(0, 3)), h.userInputFlag = l.shift(), h.transparentColorFlag = l.shift(), h.delayTime = this._st.readUnsigned(), h.transparentColorIndex = this._st.readByte(), h.terminator = this._st.readByte(), this._handler.gce && this._handler.gce(h) && this.checkBytes.push(this._handler.gce), h;
22010
22012
  }, s = (h) => {
22011
22013
  h.comment = this.readSubBlocks(), this._handler.com && this._handler.com(h) && this.checkBytes.push(this._handler.com);
@@ -22059,7 +22061,7 @@ class Nh {
22059
22061
  return l;
22060
22062
  };
22061
22063
  e.leftPos = this._st.readUnsigned(), e.topPos = this._st.readUnsigned(), e.width = this._st.readUnsigned(), e.height = this._st.readUnsigned();
22062
- const n = Wi(this._st.readByte());
22064
+ const n = Gi(this._st.readByte());
22063
22065
  e.lctFlag = n.shift(), e.interlaced = n.shift(), e.sorted = n.shift(), e.reserved = n.splice(0, 2), e.lctSize = ai(n.splice(0, 3)), e.lctFlag && (e.lctBytes = this.parseColorTableBytes(1 << e.lctSize + 1)), e.lzwMinCodeSize = this._st.readByte();
22064
22066
  const o = this.readSubBlocks();
22065
22067
  e.pixels = Oh(e.lzwMinCodeSize, o), e.interlaced && (e.pixels = s(e.pixels, e.width)), (i = this._gce) != null && i.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);
@@ -22108,7 +22110,7 @@ class Nh {
22108
22110
  }
22109
22111
  class pc {
22110
22112
  constructor(t, e, { bustCache: i, ...s } = {}) {
22111
- this.path = t, this.family = e, this._isLoaded = !1, this._resource = new Pi(t, "blob", i), this._options = s;
22113
+ this.path = t, this.family = e, this._isLoaded = !1, this._resource = new Ei(t, "blob", i), this._options = s;
22112
22114
  }
22113
22115
  async load() {
22114
22116
  if (this.isLoaded())
@@ -22140,11 +22142,11 @@ function Vh(...r) {
22140
22142
  var t;
22141
22143
  const e = I.getInstance();
22142
22144
  let i, s, n, o;
22143
- on(r[0]) && (s = globalThis, i = r[0], n = r[1]), on(r[1]) && (s = r[0], i = r[1], n = r[2]), r[1] instanceof Ni && (s = r[0], o = r[1], i = r[2], n = r[3]), r[0] instanceof Ni && (s = globalThis, o = r[0], i = r[1], n = r[2]);
22145
+ on(r[0]) && (s = globalThis, i = r[0], n = r[1]), on(r[1]) && (s = r[0], i = r[1], n = r[2]), r[1] instanceof Vi && (s = r[0], o = r[1], i = r[2], n = r[3]), r[0] instanceof Vi && (s = globalThis, o = r[0], i = r[1], n = r[2]);
22144
22146
  const a = Kr(rn), h = n == null ? void 0 : n.timing, l = a ? !1 : (t = n == null ? void 0 : n.autostart) != null ? t : !0;
22145
22147
  let c;
22146
22148
  try {
22147
- c = o != null ? o : Ni.useEngine();
22149
+ c = o != null ? o : Vi.useEngine();
22148
22150
  } catch (b) {
22149
22151
  throw Error(
22150
22152
  `Cannot run coroutine without engine parameter outside of an excalibur lifecycle method.
@@ -22195,7 +22197,7 @@ Pass an engine parameter to ex.coroutine(engine, function * {...})`
22195
22197
  class Rs extends Rt {
22196
22198
  constructor(t) {
22197
22199
  var e, i, s, n, o;
22198
- super(), this._logger = I.getInstance(), this.transform = new P(), this.graphics = new tt(), this._completeFuture = new yt(), this.started = !1, this._currentDistance = 0, this._currentProgress = 0, this.done = this._completeFuture.promise, this._useLegacyEasing = !1, this.name = `Transition#${this.id}`, this.duration = t.duration, Fe(t.easing) ? (this.legacyEasing = (e = t.easing) != null ? e : It.Linear, this._useLegacyEasing = !0) : this.easing = (i = t.easing) != null ? i : ls, this.direction = (s = t.direction) != null ? s : "out", this.hideLoader = (n = t.hideLoader) != null ? n : !1, this.blockInput = (o = t.blockInput) != null ? o : !1, this.transform.coordPlane = ht.Screen, this.transform.pos = x.Zero, this.transform.z = 1 / 0, this.graphics.anchor = x.Zero, this.addComponent(this.transform), this.addComponent(this.graphics), this.direction === "out" ? this._currentProgress = 0 : this._currentProgress = 1;
22200
+ super(), this._logger = I.getInstance(), this.transform = new P(), this.graphics = new tt(), this._completeFuture = new yt(), this.started = !1, this._currentDistance = 0, this._currentProgress = 0, this.done = this._completeFuture.promise, this._useLegacyEasing = !1, this.name = `Transition#${this.id}`, this.duration = t.duration, Fe(t.easing) ? (this.legacyEasing = (e = t.easing) != null ? e : It.Linear, this._useLegacyEasing = !0) : this.easing = (i = t.easing) != null ? i : cs, this.direction = (s = t.direction) != null ? s : "out", this.hideLoader = (n = t.hideLoader) != null ? n : !1, this.blockInput = (o = t.blockInput) != null ? o : !1, this.transform.coordPlane = ht.Screen, this.transform.pos = x.Zero, this.transform.z = 1 / 0, this.graphics.anchor = x.Zero, this.addComponent(this.transform), this.addComponent(this.graphics), this.direction === "out" ? this._currentProgress = 0 : this._currentProgress = 1;
22199
22201
  }
22200
22202
  /**
22201
22203
  * Returns a number between [0, 1] indicating what state the transition is in.
@@ -22313,7 +22315,7 @@ class mc extends Rs {
22313
22315
  }), this.name = `FadeInOut#${this.id}`, this.color = (i = t.color) != null ? i : T.Black;
22314
22316
  }
22315
22317
  onInitialize(t) {
22316
- this.transform.pos = t.screen.unsafeArea.topLeft, this.screenCover = new Ri({
22318
+ this.transform.pos = t.screen.unsafeArea.topLeft, this.screenCover = new Mi({
22317
22319
  width: t.screen.resolution.width,
22318
22320
  height: t.screen.resolution.height,
22319
22321
  color: this.color
@@ -22406,13 +22408,13 @@ const wc = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
22406
22408
  ScreenAppender: co,
22407
22409
  addItemToArray: fo,
22408
22410
  contains: Xn,
22409
- delay: pi,
22411
+ delay: mi,
22410
22412
  fail: Yn,
22411
22413
  getMinIndex: qn,
22412
22414
  getPosition: ze,
22413
22415
  isLegacyEasing: Fe,
22414
22416
  isObject: li,
22415
- mergeDeep: mi,
22417
+ mergeDeep: xi,
22416
22418
  omit: $n,
22417
22419
  removeItemFromArray: Be
22418
22420
  }, Symbol.toStringTag, { value: "Module" })), Gh = 5, De = {}, bc = () => {
@@ -22488,11 +22490,11 @@ class Cc {
22488
22490
  }
22489
22491
  }
22490
22492
  }
22491
- const an = "0.32.0-alpha.1588+edeeb62";
22493
+ const an = "0.32.0-alpha.1590+1be15c8";
22492
22494
  hn();
22493
22495
  export {
22494
22496
  Wn as ActionCompleteEvent,
22495
- Fi as ActionContext,
22497
+ Bi as ActionContext,
22496
22498
  ya as ActionQueue,
22497
22499
  to as ActionSequence,
22498
22500
  Nn as ActionStartEvent,
@@ -22503,17 +22505,17 @@ export {
22503
22505
  Nl as ActorEvents,
22504
22506
  Vn as AddEvent,
22505
22507
  Il as AddedComponent,
22506
- Z as AffineMatrix,
22507
- us as Animation,
22508
+ j as AffineMatrix,
22509
+ _s as Animation,
22508
22510
  So as AnimationDirection,
22509
22511
  Bl as AnimationEvents,
22510
22512
  Ao as AnimationStrategy,
22511
22513
  Ys as ArcadeSolver,
22512
- vi as AudioContextFactory,
22514
+ wi as AudioContextFactory,
22513
22515
  bh as Axes,
22514
22516
  _h as Axis,
22515
22517
  cr as BaseAlign,
22516
- Si as BezierCurve,
22518
+ Ai as BezierCurve,
22517
22519
  Wa as Blink,
22518
22520
  N as BodyComponent,
22519
22521
  F as BoundingBox,
@@ -22522,22 +22524,22 @@ export {
22522
22524
  qr as Buttons,
22523
22525
  vh as Camera,
22524
22526
  Yl as CameraEvents,
22525
- ms as Canvas,
22527
+ xs as Canvas,
22526
22528
  Uh as ChannelCollection,
22527
- ps as Circle,
22529
+ ms as Circle,
22528
22530
  _t as CircleCollider,
22529
22531
  jr as Clock,
22530
22532
  Yt as ClosestLineJumpTable,
22531
- Ai as Collider,
22533
+ Pi as Collider,
22532
22534
  it as ColliderComponent,
22533
22535
  we as CollisionContact,
22534
- gi as CollisionEndEvent,
22536
+ pi as CollisionEndEvent,
22535
22537
  Ee as CollisionGroup,
22536
- Li as CollisionGroupManager,
22538
+ Ui as CollisionGroupManager,
22537
22539
  Ut as CollisionJumpTable,
22538
- $i as CollisionPostSolveEvent,
22539
- Yi as CollisionPreSolveEvent,
22540
- fi as CollisionStartEvent,
22540
+ ji as CollisionPostSolveEvent,
22541
+ Zi as CollisionPreSolveEvent,
22542
+ gi as CollisionStartEvent,
22541
22543
  Cs as CollisionSystem,
22542
22544
  R as CollisionType,
22543
22545
  T as Color,
@@ -22548,9 +22550,9 @@ export {
22548
22550
  lt as CompositeCollider,
22549
22551
  pn as ConsoleAppender,
22550
22552
  ja as ContactConstraintPoint,
22551
- Xi as ContactEndEvent,
22553
+ $i as ContactEndEvent,
22552
22554
  _e as ContactSolveBias,
22553
- qi as ContactStartEvent,
22555
+ Yi as ContactStartEvent,
22554
22556
  ht as CoordPlane,
22555
22557
  xc as CrossFade,
22556
22558
  $a as CurveBy,
@@ -22558,12 +22560,12 @@ export {
22558
22560
  Ln as DeactivateEvent,
22559
22561
  St as Debug,
22560
22562
  Ih as DebugConfig,
22561
- fs as DebugGraphicsComponent,
22563
+ gs as DebugGraphicsComponent,
22562
22564
  Vr as DebugSystem,
22563
22565
  fr as DebugText,
22564
22566
  Ho as DefaultAntialiasOptions,
22565
22567
  sn as DefaultGarbageCollectionOptions,
22566
- wi as DefaultLoader,
22568
+ bi as DefaultLoader,
22567
22569
  Oo as DefaultPixelArtOptions,
22568
22570
  le as DegreeOfFreedom,
22569
22571
  Ga as Delay,
@@ -22572,9 +22574,9 @@ export {
22572
22574
  ur as Direction,
22573
22575
  Lh as Director,
22574
22576
  kh as DirectorEvents,
22575
- di as DisplayMode,
22577
+ ui as DisplayMode,
22576
22578
  Jn as DynamicTree,
22577
- ji as DynamicTreeCollisionProcessor,
22579
+ Ji as DynamicTreeCollisionProcessor,
22578
22580
  an as EX_VERSION,
22579
22581
  Na as EaseBy,
22580
22582
  Oa as EaseTo,
@@ -22583,18 +22585,18 @@ export {
22583
22585
  At as EdgeCollider,
22584
22586
  ph as ElasticToActorStrategy,
22585
22587
  Ae as EmitterType,
22586
- Ni as Engine,
22588
+ Vi as Engine,
22587
22589
  Ql as EngineEvents,
22588
22590
  Hn as EnterTriggerEvent,
22589
22591
  Un as EnterViewPortEvent,
22590
22592
  Rt as Entity,
22591
22593
  Dl as EntityEvents,
22592
22594
  go as EntityManager,
22593
- $ as EventEmitter,
22595
+ Z as EventEmitter,
22594
22596
  mn as EventTypes,
22595
22597
  El as Events,
22596
22598
  Br as ExResponse,
22597
- is as ExcaliburGraphicsContext2DCanvas,
22599
+ ss as ExcaliburGraphicsContext2DCanvas,
22598
22600
  jt as ExcaliburGraphicsContextWebGL,
22599
22601
  On as ExitTriggerEvent,
22600
22602
  zn as ExitViewPortEvent,
@@ -22604,17 +22606,17 @@ export {
22604
22606
  Xa as Flash,
22605
22607
  qs as Follow,
22606
22608
  Me as Font,
22607
- ts as FontCache,
22609
+ is as FontCache,
22608
22610
  pc as FontSource,
22609
22611
  dr as FontStyle,
22610
22612
  hr as FontUnit,
22611
22613
  Mh as FpsSampler,
22612
- yi as FrameStats,
22614
+ Ci as FrameStats,
22613
22615
  yt as Future,
22614
22616
  B as GameEvent,
22615
22617
  bn as GameStartEvent,
22616
22618
  yn as GameStopEvent,
22617
- Oi as Gamepad,
22619
+ Wi as Gamepad,
22618
22620
  Fn as GamepadAxisEvent,
22619
22621
  Mn as GamepadButtonEvent,
22620
22622
  In as GamepadConnectEvent,
@@ -22625,7 +22627,7 @@ export {
22625
22627
  Nh as GifParser,
22626
22628
  Ye as GlobalCoordinates,
22627
22629
  tc as GpuParticleEmitter,
22628
- os as GpuParticleRenderer,
22630
+ as as GpuParticleRenderer,
22629
22631
  dn as Graph,
22630
22632
  nt as Graphic,
22631
22633
  tt as GraphicsComponent,
@@ -22643,7 +22645,7 @@ export {
22643
22645
  Je as InitializeEvent,
22644
22646
  Zr as InputHost,
22645
22647
  yh as InputMapper,
22646
- bi as IsometricEntityComponent,
22648
+ yi as IsometricEntityComponent,
22647
22649
  Wr as IsometricEntitySystem,
22648
22650
  Xl as IsometricMap,
22649
22651
  dh as IsometricTile,
@@ -22655,7 +22657,7 @@ export {
22655
22657
  xh as LimitCameraBoundsStrategy,
22656
22658
  gr as Line,
22657
22659
  K as LineSegment,
22658
- rs as Loader,
22660
+ os as Loader,
22659
22661
  Gl as LoaderEvents,
22660
22662
  gh as LockCameraToActorAxisStrategy,
22661
22663
  fh as LockCameraToActorStrategy,
@@ -22665,7 +22667,7 @@ export {
22665
22667
  Tt as Matrix,
22666
22668
  ro as MatrixLocations,
22667
22669
  kr as MediaEvent,
22668
- Ui as Meet,
22670
+ Oi as Meet,
22669
22671
  H as MotionComponent,
22670
22672
  ys as MotionSystem,
22671
22673
  Ws as MoveBy,
@@ -22677,12 +22679,12 @@ export {
22677
22679
  eh as NativeSoundProcessedEvent,
22678
22680
  vr as NineSlice,
22679
22681
  Uo as NineSliceStretch,
22680
- Vi as Node,
22682
+ qi as Node,
22681
22683
  sr as None,
22682
22684
  xt as Observable,
22683
22685
  mr as OffscreenSystem,
22684
22686
  vt as Pair,
22685
- gs as ParallaxComponent,
22687
+ ps as ParallaxComponent,
22686
22688
  ec as ParallelActions,
22687
22689
  ws as Particle,
22688
22690
  Kl as ParticleEmitter,
@@ -22700,7 +22702,7 @@ export {
22700
22702
  de as PointerType,
22701
22703
  xr as Polygon,
22702
22704
  dt as PolygonCollider,
22703
- ds as Pool,
22705
+ us as Pool,
22704
22706
  ho as PositionNode,
22705
22707
  Re as PostCollisionEvent,
22706
22708
  An as PostDebugDrawEvent,
@@ -22717,7 +22719,7 @@ export {
22717
22719
  Zl as PreLoadEvent,
22718
22720
  Cn as PreTransformDrawEvent,
22719
22721
  pe as PreUpdateEvent,
22720
- Ci as Projection,
22722
+ Ti as Projection,
22721
22723
  si as QuadIndexBuffer,
22722
22724
  He as QuadTree,
22723
22725
  zt as Query,
@@ -22727,14 +22729,14 @@ export {
22727
22729
  Ke as Raster,
22728
22730
  Ce as Ray,
22729
22731
  $s as RealisticSolver,
22730
- Ri as Rectangle,
22732
+ Mi as Rectangle,
22731
22733
  Gn as RemoveEvent,
22732
22734
  Ml as RemovedComponent,
22733
22735
  ei as RentalPool,
22734
22736
  Ta as Repeat,
22735
22737
  Sa as RepeatForever,
22736
22738
  Zs as Resolution,
22737
- Pi as Resource,
22739
+ Ei as Resource,
22738
22740
  kl as ResourceEvents,
22739
22741
  Da as RotateBy,
22740
22742
  Fa as RotateByWithOptions,
@@ -22760,15 +22762,15 @@ export {
22760
22762
  ft as Shape,
22761
22763
  G as Side,
22762
22764
  vc as Slide,
22763
- cs as SolverStrategy,
22765
+ ds as SolverStrategy,
22764
22766
  Lr as Sound,
22765
22767
  Vl as SoundEvents,
22766
22768
  fc as SoundManager,
22767
22769
  Fr as SparseHashGrid,
22768
22770
  Xs as SparseHashGridCollisionProcessor,
22769
- xi as SpatialPartitionStrategy,
22771
+ vi as SpatialPartitionStrategy,
22770
22772
  Ht as Sprite,
22771
- _s as SpriteFont,
22773
+ fs as SpriteFont,
22772
22774
  Te as SpriteSheet,
22773
22775
  Qr as StandardClock,
22774
22776
  Ts as StateMachine,
@@ -22780,15 +22782,15 @@ export {
22780
22782
  Mt as SystemType,
22781
22783
  jn as TagQuery,
22782
22784
  Fh as TestClock,
22783
- Mi as Text,
22785
+ Di as Text,
22784
22786
  lr as TextAlign,
22785
22787
  Ve as TextureLoader,
22786
22788
  ch as Tile,
22787
22789
  lh as TileMap,
22788
22790
  ql as TileMapEvents,
22789
22791
  wr as TiledAnimation,
22790
- Ei as TiledSprite,
22791
- Hi as Timer,
22792
+ Ii as TiledSprite,
22793
+ Ni as Timer,
22792
22794
  Bh as Toaster,
22793
22795
  re as Transform,
22794
22796
  P as TransformComponent,
@@ -22807,7 +22809,7 @@ export {
22807
22809
  Dn as VisibleEvent,
22808
22810
  Ka as WebAudio,
22809
22811
  th as WebAudioInstance,
22810
- _i as WheelDeltaMode,
22812
+ fi as WheelDeltaMode,
22811
22813
  Sh as WheelEvent,
22812
22814
  vo as World,
22813
22815
  so as approximatelyEqual,
@@ -22881,8 +22883,8 @@ export {
22881
22883
  mo as isSystemConstructor,
22882
22884
  at as lerp,
22883
22885
  cn as lerpAngle,
22884
- Ti as lerpVector,
22885
- ls as linear,
22886
+ Si as lerpVector,
22887
+ cs as linear,
22886
22888
  Gh as maxMessages,
22887
22889
  W as nextActionId,
22888
22890
  yc as obsolete,