@daneren2005/shared-memory-physics 1.6.3 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -182,26 +182,26 @@ function M(e) {
182
182
  }
183
183
  //#endregion
184
184
  //#region src/components/dynamics-component.ts
185
- var N = 0, ee = 1, P = 2, F = 3, I = class extends t {
185
+ var N = 0, ee = 1, te = 2, ne = 3, P = class extends t {
186
186
  get accelerationX() {
187
187
  return this.block[0];
188
188
  }
189
189
  set accelerationX(e) {
190
- re(e, "Acceleration"), this.block[0] = e;
190
+ ae(e, "Acceleration"), this.block[0] = e;
191
191
  }
192
192
  get accelerationY() {
193
193
  return this.block[1];
194
194
  }
195
195
  set accelerationY(e) {
196
- re(e, "Acceleration"), this.block[1] = e;
196
+ ae(e, "Acceleration"), this.block[1] = e;
197
197
  }
198
198
  get mass() {
199
199
  return 1 / this.block[2];
200
200
  }
201
201
  set mass(e) {
202
- ne(e), this.block[2] = 1 / e;
202
+ ie(e), this.block[2] = 1 / e;
203
203
  }
204
- }, te = {
204
+ }, re = {
205
205
  type: Float32Array,
206
206
  size: 3,
207
207
  loadProperties: [
@@ -211,14 +211,14 @@ var N = 0, ee = 1, P = 2, F = 3, I = class extends t {
211
211
  ],
212
212
  toBlock(e) {
213
213
  let t = e.accelerationX ?? 0, n = e.accelerationY ?? 0, r = e.mass ?? 1;
214
- return re(t, "Acceleration"), re(n, "Acceleration"), ne(r), [
214
+ return ae(t, "Acceleration"), ae(n, "Acceleration"), ie(r), [
215
215
  t,
216
216
  n,
217
217
  1 / r
218
218
  ];
219
219
  },
220
220
  attach(e, t, n) {
221
- return new I(t.getBlock(n), n);
221
+ return new P(t.getBlock(n), n);
222
222
  },
223
223
  save(e) {
224
224
  return {
@@ -228,40 +228,43 @@ var N = 0, ee = 1, P = 2, F = 3, I = class extends t {
228
228
  };
229
229
  }
230
230
  };
231
- function ne(e) {
231
+ function ie(e) {
232
232
  if (!Number.isFinite(e) || e <= 0) throw Error("Mass must be a finite number greater than zero");
233
233
  }
234
- function re(e, t) {
234
+ function ae(e, t) {
235
235
  if (!Number.isFinite(e)) throw Error(`${t} must be a finite number`);
236
236
  }
237
237
  //#endregion
238
238
  //#region src/components/body-component.ts
239
- var ie = 1, ae = 2, oe = 3, se = 4, ce = [
239
+ var oe = 1, se = 2, ce = 3, le = 4, ue = [
240
240
  1,
241
241
  2,
242
242
  3,
243
243
  4
244
- ], le = 1, ue = 4294967295;
245
- function de(e, t, n, r) {
244
+ ], de = 1, fe = 4294967295;
245
+ function pe(e, t, n, r) {
246
246
  return (t & n) !== 0 && (r & e) !== 0;
247
247
  }
248
- var fe = 0, pe = 1, me = 2, he = 3, ge = 7, _e = 8, ve = 16, ye = 32;
249
- function L(e) {
248
+ var me = 0, he = 1, ge = 2, _e = 3, ve = 7, ye = 8, be = 16, xe = 32, Se = 64;
249
+ function F(e) {
250
250
  return e[0] & 7;
251
251
  }
252
- function R(e) {
253
- return (e[0] & 8) != 0;
252
+ function I(e) {
253
+ return !!(e[0] & 8);
254
254
  }
255
- function be(e) {
256
- return (e[0] & 16) != 0;
255
+ function Ce(e) {
256
+ return !!(e[0] & 16);
257
257
  }
258
- function xe(e) {
259
- return (e[0] & 32) != 0;
258
+ function we(e) {
259
+ return !!(e[0] & 64);
260
260
  }
261
- function Se(e) {
261
+ function Te(e) {
262
+ return !!(e[0] & 32);
263
+ }
264
+ function Ee(e) {
262
265
  e[0] |= 32;
263
266
  }
264
- var Ce = class extends t {
267
+ var De = class extends t {
265
268
  get shape() {
266
269
  return this.block[0] & 7;
267
270
  }
@@ -281,18 +284,24 @@ var Ce = class extends t {
281
284
  this.block[2] = e;
282
285
  }
283
286
  get sensor() {
284
- return (this.block[0] & 8) != 0;
287
+ return !!(this.block[0] & 8);
285
288
  }
286
289
  set sensor(e) {
287
290
  this.block[0] = e ? this.block[0] | 8 : this.block[0] & -9;
288
291
  }
289
292
  get continuousCollisionDetection() {
290
- return (this.block[0] & 16) != 0;
293
+ return !!(this.block[0] & 16);
291
294
  }
292
295
  set continuousCollisionDetection(e) {
293
296
  this.block[0] = e ? this.block[0] | 16 : this.block[0] & -17;
294
297
  }
295
- }, we = {
298
+ get blocksPath() {
299
+ return !!(this.block[0] & 64);
300
+ }
301
+ set blocksPath(e) {
302
+ this.block[0] = e ? this.block[0] | 64 : this.block[0] & -65;
303
+ }
304
+ }, Oe = {
296
305
  type: Uint32Array,
297
306
  size: 3,
298
307
  loadProperties: [
@@ -304,40 +313,41 @@ var Ce = class extends t {
304
313
  "collideCategory",
305
314
  "collideMask",
306
315
  "sensor",
307
- "continuousCollisionDetection"
316
+ "continuousCollisionDetection",
317
+ "blocksPath"
308
318
  ],
309
319
  toBlock(e) {
310
320
  return [
311
- Te(e),
321
+ ke(e),
312
322
  e.collideCategory ?? 1,
313
323
  e.collideMask ?? 4294967295
314
324
  ];
315
325
  },
316
326
  attach(e, t, n) {
317
- return new Ce(t.getBlock(n), n);
327
+ return new De(t.getBlock(n), n);
318
328
  }
319
329
  };
320
- function Te(e) {
321
- let t = Ee(e);
322
- return e.sensor && (t |= 8), e.continuousCollisionDetection && (t |= 16), t;
330
+ function ke(e) {
331
+ let t = Ae(e);
332
+ return e.sensor && (t |= 8), e.continuousCollisionDetection && (t |= 16), e.blocksPath && (t |= 64), t;
323
333
  }
324
- function Ee(e) {
334
+ function Ae(e) {
325
335
  let t = e.shape;
326
336
  if (t === void 0) return e.vertices === void 0 ? e.radius === void 0 ? 1 : 2 : 4;
327
- if (!ce.includes(t)) throw Error(`Unknown body shape: ${t}`);
337
+ if (!ue.includes(t)) throw Error(`Unknown body shape: ${t}`);
328
338
  if (t === 4 && e.vertices === void 0) throw Error("A polygon body requires vertices");
329
339
  return t;
330
340
  }
331
341
  //#endregion
332
342
  //#region src/components/bounciness-component.ts
333
- var De = 0, Oe = 1, ke = class extends t {
343
+ var je = 0, Me = 1, Ne = class extends t {
334
344
  get bounciness() {
335
345
  return this.block[0];
336
346
  }
337
347
  set bounciness(e) {
338
348
  this.block[0] = e;
339
349
  }
340
- }, Ae = {
350
+ }, Pe = {
341
351
  type: Float32Array,
342
352
  size: 1,
343
353
  loadProperties: ["bounciness"],
@@ -345,9 +355,9 @@ var De = 0, Oe = 1, ke = class extends t {
345
355
  return [e.bounciness ?? 0];
346
356
  },
347
357
  attach(e, t, n) {
348
- return new ke(t.getBlock(n), n);
358
+ return new Ne(t.getBlock(n), n);
349
359
  }
350
- }, je = 0, Me = 1, Ne = 2, Pe = 3, Fe = 4, Ie = 5, Le = 6, Re = 7, ze = 8, Be = 9, Ve = 10, He = 11, Ue = class extends t {
360
+ }, Fe = 0, Ie = 1, Le = 2, Re = 3, ze = 4, Be = 5, Ve = 6, He = 7, Ue = 8, We = 9, Ge = 10, Ke = 11, qe = class extends t {
351
361
  get x() {
352
362
  return this.block[0];
353
363
  }
@@ -360,69 +370,67 @@ var De = 0, Oe = 1, ke = class extends t {
360
370
  set y(e) {
361
371
  this.block[1] = e;
362
372
  }
363
- get prevX() {
373
+ get syncedTick() {
364
374
  return this.block[2];
365
375
  }
366
- set prevX(e) {
376
+ set syncedTick(e) {
367
377
  this.block[2] = e;
368
378
  }
369
- get prevY() {
379
+ get duration() {
370
380
  return this.block[3];
371
381
  }
372
- set prevY(e) {
382
+ set duration(e) {
373
383
  this.block[3] = e;
374
384
  }
375
- get progress() {
376
- return this.block[4];
385
+ get tick() {
386
+ return i(this.block, 4);
377
387
  }
378
- set progress(e) {
379
- this.block[4] = e;
388
+ set tick(e) {
389
+ a(this.block, 4, e);
380
390
  }
381
- get syncedTick() {
391
+ get totalDuration() {
382
392
  return this.block[5];
383
393
  }
384
- set syncedTick(e) {
394
+ set totalDuration(e) {
385
395
  this.block[5] = e;
386
396
  }
387
- get duration() {
397
+ get syncedDuration() {
388
398
  return this.block[6];
389
399
  }
390
- set duration(e) {
400
+ set syncedDuration(e) {
391
401
  this.block[6] = e;
392
402
  }
393
- get tick() {
394
- return i(this.block, 7);
395
- }
396
- set tick(e) {
397
- a(this.block, 7, e);
398
- }
399
- get totalDuration() {
403
+ get targetX() {
400
404
  return this.block[8];
401
405
  }
402
- set totalDuration(e) {
406
+ set targetX(e) {
403
407
  this.block[8] = e;
404
408
  }
405
- get syncedDuration() {
409
+ get targetY() {
406
410
  return this.block[9];
407
411
  }
408
- set syncedDuration(e) {
412
+ set targetY(e) {
409
413
  this.block[9] = e;
410
414
  }
411
- get remainingDuration() {
415
+ get syncedStepDuration() {
412
416
  return this.block[10];
413
417
  }
414
- set remainingDuration(e) {
418
+ set syncedStepDuration(e) {
415
419
  this.block[10] = e;
416
420
  }
417
- }, We = {
421
+ get remainingDuration() {
422
+ return this.block[7];
423
+ }
424
+ set remainingDuration(e) {
425
+ this.block[7] = e;
426
+ }
427
+ }, Je = {
418
428
  type: Float32Array,
419
429
  size: 11,
420
430
  loadProperties: ["interpolate"],
421
431
  toBlock(e) {
422
432
  let t = e.x ?? 0, n = e.y ?? 0;
423
433
  return [
424
- t,
425
- n,
426
434
  t,
427
435
  n,
428
436
  0,
@@ -431,163 +439,165 @@ var De = 0, Oe = 1, ke = class extends t {
431
439
  0,
432
440
  0,
433
441
  0,
442
+ t,
443
+ n,
434
444
  0
435
445
  ];
436
446
  },
437
447
  attach(e, t, n) {
438
- return new Ue(t.getBlock(n), n);
448
+ return new qe(t.getBlock(n), n);
439
449
  }
440
450
  };
441
- function Ge(e) {
451
+ function Ye(e) {
442
452
  let { transform: t, interpolation: n } = e.components;
443
- !t || !n || (n.prevX = n.x = t.x, n.prevY = n.y = t.y, n.remainingDuration = 0, n.syncedDuration = n.totalDuration);
453
+ t && n && (n.targetX = n.x = t.x, n.targetY = n.y = t.y, n.remainingDuration = 0, n.syncedStepDuration = 0, n.syncedDuration = n.totalDuration);
444
454
  }
445
- function Ke(e, t) {
455
+ function Xe(e, t) {
446
456
  let { transform: n, velocity: r, interpolation: i } = e.components;
447
457
  if (!n || !r || !i) return;
448
458
  let a = 1 - (t.stepFraction < 0 ? 0 : t.stepFraction > 1 ? 1 : t.stepFraction), o = t.stepMs / 1e3, s = n.x, c = n.y, l = r.velocityX * o * a, u = r.velocityY * o * a;
449
- i.prevX = s, i.prevY = c, n.x = s + l, n.y = c + u, i.x = s, i.y = c, i.duration = t.stepMs * a, i.progress = 0, i.syncedTick = t.tick, i.totalDuration += i.duration, i.syncedDuration = i.totalDuration, i.remainingDuration = i.duration, i.tick = t.tick;
459
+ n.x = s + l, n.y = c + u, i.x = s, i.y = c, i.duration = t.stepMs * a, i.syncedTick = t.tick, i.totalDuration += i.duration, i.syncedDuration = i.totalDuration, i.remainingDuration = i.duration, i.targetX = n.x, i.targetY = n.y, i.syncedStepDuration = i.duration, i.tick = t.tick;
450
460
  }
451
461
  //#endregion
452
462
  //#region src/components/registry.ts
453
- var qe = {
463
+ var Ze = {
454
464
  transform: T,
455
465
  velocity: j,
456
- body: we,
466
+ body: Oe,
457
467
  polygon: m,
458
- bounciness: Ae,
459
- dynamics: te,
460
- interpolation: We
461
- }, z = {
468
+ bounciness: Pe,
469
+ dynamics: re,
470
+ interpolation: Je
471
+ }, L = {
462
472
  x: 0,
463
473
  y: 0
464
- }, B = {
474
+ }, R = {
465
475
  x: 0,
466
476
  y: 0
467
477
  };
468
- function V(e, t) {
478
+ function z(e, t) {
469
479
  return Math.max(0, (e - t) / 2);
470
480
  }
471
- function H(e, t, n) {
481
+ function Qe(e, t, n) {
472
482
  return e === 2 ? t / 2 : e === 3 ? n / 2 : 0;
473
483
  }
474
- function U(e, t, n) {
484
+ function B(e, t, n) {
475
485
  return e === 2 ? t <= 0 : e === 3 ? n <= 0 : t <= 0 || n <= 0;
476
486
  }
477
- function W(e, t, n, r) {
478
- return e === 2 ? t / 2 : e === 3 ? Math.abs(Math.cos(r)) * V(t, n) + n / 2 : nt(t, n, r);
487
+ function V(e, t, n, r) {
488
+ return e === 2 ? t / 2 : e === 3 ? Math.abs(Math.cos(r)) * z(t, n) + n / 2 : st(t, n, r);
479
489
  }
480
- function G(e, t, n, r) {
481
- return e === 2 ? t / 2 : e === 3 ? Math.abs(Math.sin(r)) * V(t, n) + n / 2 : rt(t, n, r);
490
+ function H(e, t, n, r) {
491
+ return e === 2 ? t / 2 : e === 3 ? Math.abs(Math.sin(r)) * z(t, n) + n / 2 : ct(t, n, r);
482
492
  }
483
- function Je(e, t, n, r, i, a, o, s, c, l, u, d) {
484
- if (U(e, r, i) || U(o, l, u)) return !1;
493
+ function $e(e, t, n, r, i, a, o, s, c, l, u, d) {
494
+ if (B(e, r, i) || B(o, l, u)) return !1;
485
495
  let f = e !== 1, p = o !== 1;
486
- if (!f && !p) return it(t, n, r, i, a, s, c, l, u, d);
487
- if (f && !p) return Je(o, s, c, l, u, d, e, t, n, r, i, a);
488
- let m = K(o, l, u), h = Math.cos(d) * m, g = Math.sin(d) * m, _ = H(o, l, u);
489
- if (!f) return ot(s - h, c - g, s + h, c + g, t, n, r, i, a) < _ * _;
490
- let v = K(e, r, i), y = Math.cos(a) * v, b = Math.sin(a) * v, x = H(e, r, i) + _;
491
- return at(t - y, n - b, t + y, n + b, s - h, c - g, s + h, c + g) < x * x;
496
+ if (!f && !p) return lt(t, n, r, i, a, s, c, l, u, d);
497
+ if (f && !p) return $e(o, s, c, l, u, d, e, t, n, r, i, a);
498
+ let m = U(o, l, u), h = Math.cos(d) * m, g = Math.sin(d) * m, _ = Qe(o, l, u);
499
+ if (!f) return dt(s - h, c - g, s + h, c + g, t, n, r, i, a) < _ * _;
500
+ let v = U(e, r, i), y = Math.cos(a) * v, b = Math.sin(a) * v, x = Qe(e, r, i) + _;
501
+ return ut(t - y, n - b, t + y, n + b, s - h, c - g, s + h, c + g) < x * x;
492
502
  }
493
- function K(e, t, n) {
494
- return e === 3 ? V(t, n) : 0;
503
+ function U(e, t, n) {
504
+ return e === 3 ? z(t, n) : 0;
495
505
  }
496
- function Ye(e, t, n, r, i, a, o, s, c, l, u, d, f) {
506
+ function et(e, t, n, r, i, a, o, s, c, l, u, d, f) {
497
507
  let p = e !== 1, m = o !== 1;
498
- return !p && !m ? Xe(t, n, r, i, a, s, c, l, u, d, f) : p && m ? Ze(e, t, n, r, i, a, o, s, c, l, u, d, f) : p ? Qe(s, c, l, u, d, e, t, n, r, i, a, f) : Qe(t, n, r, i, a, o, s, c, l, u, d, f) ? (f.x = -f.x, f.y = -f.y, !0) : !1;
508
+ return !p && !m ? tt(t, n, r, i, a, s, c, l, u, d, f) : p && m ? nt(e, t, n, r, i, a, o, s, c, l, u, d, f) : p ? rt(s, c, l, u, d, e, t, n, r, i, a, f) : rt(t, n, r, i, a, o, s, c, l, u, d, f) ? (f.x = -f.x, f.y = -f.y, !0) : !1;
499
509
  }
500
- function Xe(e, t, n, r, i, a, o, s, c, l, u) {
501
- let d = Math.cos(i), f = Math.sin(i), p = Math.cos(l), m = Math.sin(l), h = n / 2, g = r / 2, _ = s / 2, v = c / 2, y = e - a, b = t - o, x = q(d, f, y, b, h, g, d, f, _, v, p, m);
510
+ function tt(e, t, n, r, i, a, o, s, c, l, u) {
511
+ let d = Math.cos(i), f = Math.sin(i), p = Math.cos(l), m = Math.sin(l), h = n / 2, g = r / 2, _ = s / 2, v = c / 2, y = e - a, b = t - o, x = W(d, f, y, b, h, g, d, f, _, v, p, m);
502
512
  u.x = d, u.y = f;
503
- let S = q(-f, d, y, b, h, g, d, f, _, v, p, m);
504
- return S < x && (x = S, u.x = -f, u.y = d), S = q(p, m, y, b, h, g, d, f, _, v, p, m), S < x && (x = S, u.x = p, u.y = m), S = q(-m, p, y, b, h, g, d, f, _, v, p, m), S < x && (u.x = -m, u.y = p), et(y, b, u), !0;
513
+ let S = W(-f, d, y, b, h, g, d, f, _, v, p, m);
514
+ return S < x && (x = S, u.x = -f, u.y = d), S = W(p, m, y, b, h, g, d, f, _, v, p, m), S < x && (x = S, u.x = p, u.y = m), S = W(-m, p, y, b, h, g, d, f, _, v, p, m), S < x && (u.x = -m, u.y = p), at(y, b, u), !0;
505
515
  }
506
- function Ze(e, t, n, r, i, a, o, s, c, l, u, d, f) {
507
- let p = K(e, r, i), m = Math.cos(a) * p, h = Math.sin(a) * p, g = K(o, l, u), _ = Math.cos(d) * g, v = Math.sin(d) * g, y = Math.sqrt(at(t - m, n - h, t + m, n + h, s - _, c - v, s + _, c + v, z));
508
- return y > 0 ? (f.x = z.x / y, f.y = z.y / y, !0) : tt(t - s, n - c, f);
516
+ function nt(e, t, n, r, i, a, o, s, c, l, u, d, f) {
517
+ let p = U(e, r, i), m = Math.cos(a) * p, h = Math.sin(a) * p, g = U(o, l, u), _ = Math.cos(d) * g, v = Math.sin(d) * g, y = Math.sqrt(ut(t - m, n - h, t + m, n + h, s - _, c - v, s + _, c + v, L));
518
+ return y > 0 ? (f.x = L.x / y, f.y = L.y / y, !0) : ot(t - s, n - c, f);
509
519
  }
510
- function Qe(e, t, n, r, i, a, o, s, c, l, u, d) {
511
- let f = K(a, c, l), p = Math.cos(u) * f, m = Math.sin(u) * f, h = Math.sqrt(ot(o - p, s - m, o + p, s + m, e, t, n, r, i, z));
512
- if (h > 0) return d.x = z.x / h, d.y = z.y / h, !0;
513
- let g = Math.cos(i), _ = Math.sin(i), v = o - e, y = s - t, b = v * g + y * _, x = -v * _ + y * g, S = p * g + m * _, C = -p * _ + m * g, w = H(a, c, l), T = n / 2, E = r / 2, D = $e(1, 0, b, x, S, C, w, T, E);
520
+ function rt(e, t, n, r, i, a, o, s, c, l, u, d) {
521
+ let f = U(a, c, l), p = Math.cos(u) * f, m = Math.sin(u) * f, h = Math.sqrt(dt(o - p, s - m, o + p, s + m, e, t, n, r, i, L));
522
+ if (h > 0) return d.x = L.x / h, d.y = L.y / h, !0;
523
+ let g = Math.cos(i), _ = Math.sin(i), v = o - e, y = s - t, b = v * g + y * _, x = -v * _ + y * g, S = p * g + m * _, C = -p * _ + m * g, w = Qe(a, c, l), T = n / 2, E = r / 2, D = it(1, 0, b, x, S, C, w, T, E);
514
524
  d.x = 1, d.y = 0;
515
- let O = $e(0, 1, b, x, S, C, w, T, E);
516
- O < D && (D = O, d.x = 0, d.y = 1), tt(-C, S, B) && (O = $e(B.x, B.y, b, x, S, C, w, T, E), O < D && (d.x = B.x, d.y = B.y)), et(b, x, d);
525
+ let O = it(0, 1, b, x, S, C, w, T, E);
526
+ O < D && (D = O, d.x = 0, d.y = 1), ot(-C, S, R) && (O = it(R.x, R.y, b, x, S, C, w, T, E), O < D && (d.x = R.x, d.y = R.y)), at(b, x, d);
517
527
  let k = d.x, A = d.y;
518
528
  return d.x = k * g - A * _, d.y = k * _ + A * g, !0;
519
529
  }
520
- function $e(e, t, n, r, i, a, o, s, c) {
530
+ function it(e, t, n, r, i, a, o, s, c) {
521
531
  return s * Math.abs(e) + c * Math.abs(t) + (Math.abs(i * e + a * t) + o) - Math.abs(n * e + r * t);
522
532
  }
523
- function et(e, t, n) {
533
+ function at(e, t, n) {
524
534
  e * n.x + t * n.y < 0 && (n.x = -n.x, n.y = -n.y);
525
535
  }
526
- function tt(e, t, n) {
536
+ function ot(e, t, n) {
527
537
  let r = Math.sqrt(e * e + t * t);
528
- return r === 0 ? !1 : (n.x = e / r, n.y = t / r, !0);
538
+ return r !== 0 && (n.x = e / r, n.y = t / r, !0);
529
539
  }
530
- function nt(e, t, n) {
540
+ function st(e, t, n) {
531
541
  return (Math.abs(Math.cos(n)) * e + Math.abs(Math.sin(n)) * t) / 2;
532
542
  }
533
- function rt(e, t, n) {
543
+ function ct(e, t, n) {
534
544
  return (Math.abs(Math.sin(n)) * e + Math.abs(Math.cos(n)) * t) / 2;
535
545
  }
536
- function it(e, t, n, r, i, a, o, s, c, l) {
546
+ function lt(e, t, n, r, i, a, o, s, c, l) {
537
547
  if (n <= 0 || r <= 0 || s <= 0 || c <= 0) return !1;
538
548
  let u = Math.cos(i), d = Math.sin(i), f = Math.cos(l), p = Math.sin(l), m = n / 2, h = r / 2, g = s / 2, _ = c / 2, v = a - e, y = o - t;
539
- return q(u, d, v, y, m, h, u, d, g, _, f, p) > 0 && q(-d, u, v, y, m, h, u, d, g, _, f, p) > 0 && q(f, p, v, y, m, h, u, d, g, _, f, p) > 0 && q(-p, f, v, y, m, h, u, d, g, _, f, p) > 0;
549
+ return W(u, d, v, y, m, h, u, d, g, _, f, p) > 0 && W(-d, u, v, y, m, h, u, d, g, _, f, p) > 0 && W(f, p, v, y, m, h, u, d, g, _, f, p) > 0 && W(-p, f, v, y, m, h, u, d, g, _, f, p) > 0;
540
550
  }
541
- function q(e, t, n, r, i, a, o, s, c, l, u, d) {
551
+ function W(e, t, n, r, i, a, o, s, c, l, u, d) {
542
552
  return i * Math.abs(o * e + s * t) + a * Math.abs(-s * e + o * t) + (c * Math.abs(u * e + d * t) + l * Math.abs(-d * e + u * t)) - Math.abs(n * e + r * t);
543
553
  }
544
- function at(e, t, n, r, i, a, o, s, c) {
554
+ function ut(e, t, n, r, i, a, o, s, c) {
545
555
  let l = n - e, u = r - t, d = o - i, f = s - a, p = e - i, m = t - a, h = l * l + u * u, g = d * d + f * f, _ = d * p + f * m, v = 0, y = 0;
546
556
  if (h <= 0 && g <= 0) return c && (c.x = p, c.y = m), p * p + m * m;
547
- if (h <= 0) y = Y(_ / g);
557
+ if (h <= 0) y = q(_ / g);
548
558
  else {
549
559
  let e = l * p + u * m;
550
- if (g <= 0) v = Y(-e / h);
560
+ if (g <= 0) v = q(-e / h);
551
561
  else {
552
562
  let t = l * d + u * f, n = h * g - t * t;
553
- n !== 0 && (v = Y((t * _ - e * g) / n)), y = (t * v + _) / g, y < 0 ? (y = 0, v = Y(-e / h)) : y > 1 && (y = 1, v = Y((t - e) / h));
563
+ n !== 0 && (v = q((t * _ - e * g) / n)), y = (t * v + _) / g, y < 0 ? (y = 0, v = q(-e / h)) : y > 1 && (y = 1, v = q((t - e) / h));
554
564
  }
555
565
  }
556
566
  let b = e + l * v - (i + d * y), x = t + u * v - (a + f * y);
557
567
  return c && (c.x = b, c.y = x), b * b + x * x;
558
568
  }
559
- function ot(e, t, n, r, i, a, o, s, c, l) {
569
+ function dt(e, t, n, r, i, a, o, s, c, l) {
560
570
  let u = Math.cos(c), d = Math.sin(c), f = o / 2, p = s / 2, m = e - i, h = t - a, g = n - i, _ = r - a, v = m * u + h * d, y = -m * d + h * u, b = g * u + _ * d, x = -g * d + _ * u;
561
- if (!ct(v, y, b, x, f, p)) return l && (l.x = 0, l.y = 0), 0;
562
- if (!l) return Math.min(lt(v, y, f, p), lt(b, x, f, p), J(-f, -p, v, y, b, x), J(f, -p, v, y, b, x), J(f, p, v, y, b, x), J(-f, p, v, y, b, x));
563
- let S = lt(v, y, f, p, l);
564
- S = st(S, lt(b, x, f, p, B), B, l, !1), S = st(S, J(-f, -p, v, y, b, x, B), B, l, !0), S = st(S, J(f, -p, v, y, b, x, B), B, l, !0), S = st(S, J(f, p, v, y, b, x, B), B, l, !0), S = st(S, J(-f, p, v, y, b, x, B), B, l, !0);
571
+ if (!ft(v, y, b, x, f, p)) return l && (l.x = 0, l.y = 0), 0;
572
+ if (!l) return Math.min(pt(v, y, f, p), pt(b, x, f, p), K(-f, -p, v, y, b, x), K(f, -p, v, y, b, x), K(f, p, v, y, b, x), K(-f, p, v, y, b, x));
573
+ let S = pt(v, y, f, p, l);
574
+ S = G(S, pt(b, x, f, p, R), R, l, !1), S = G(S, K(-f, -p, v, y, b, x, R), R, l, !0), S = G(S, K(f, -p, v, y, b, x, R), R, l, !0), S = G(S, K(f, p, v, y, b, x, R), R, l, !0), S = G(S, K(-f, p, v, y, b, x, R), R, l, !0);
565
575
  let C = l.x, w = l.y;
566
576
  return l.x = C * u - w * d, l.y = C * d + w * u, S;
567
577
  }
568
- function st(e, t, n, r, i) {
578
+ function G(e, t, n, r, i) {
569
579
  return t >= e ? e : (r.x = i ? -n.x : n.x, r.y = i ? -n.y : n.y, t);
570
580
  }
571
- function J(e, t, n, r, i, a, o) {
572
- let s = i - n, c = a - r, l = s * s + c * c, u = l > 0 ? Y(((e - n) * s + (t - r) * c) / l) : 0, d = e - (n + s * u), f = t - (r + c * u);
581
+ function K(e, t, n, r, i, a, o) {
582
+ let s = i - n, c = a - r, l = s * s + c * c, u = l > 0 ? q(((e - n) * s + (t - r) * c) / l) : 0, d = e - (n + s * u), f = t - (r + c * u);
573
583
  return o && (o.x = d, o.y = f), d * d + f * f;
574
584
  }
575
- function ct(e, t, n, r, i, a) {
585
+ function ft(e, t, n, r, i, a) {
576
586
  if (Math.max(e, n) < -i || Math.min(e, n) > i || Math.max(t, r) < -a || Math.min(t, r) > a) return !0;
577
587
  let o = -(r - t), s = n - e;
578
588
  return Math.abs(o * e + s * t) > i * Math.abs(o) + a * Math.abs(s);
579
589
  }
580
- function lt(e, t, n, r, i) {
590
+ function pt(e, t, n, r, i) {
581
591
  let a = Math.abs(e) - n, o = Math.abs(t) - r, s = a > 0 ? a : 0, c = o > 0 ? o : 0;
582
592
  return i && (i.x = e < 0 ? -s : s, i.y = t < 0 ? -c : c), s * s + c * c;
583
593
  }
584
- function Y(e) {
594
+ function q(e) {
585
595
  return e < 0 ? 0 : e > 1 ? 1 : e;
586
596
  }
587
597
  //#endregion
588
598
  //#region src/systems/spatial-bounds.ts
589
- function X(e) {
590
- let t = e.transform, n = e.body ? L(e.body) : 1, r = t[2], i = t[3], a = t[4], o = W(n, r, i, a), s = G(n, r, i, a), c = t[0], l = t[1];
599
+ function J(e) {
600
+ let t = e.transform, n = e.body ? F(e.body) : 1, r = t[2], i = t[3], a = t[4], o = V(n, r, i, a), s = H(n, r, i, a), c = t[0], l = t[1];
591
601
  return {
592
602
  minX: c - o,
593
603
  minY: l - s,
@@ -595,23 +605,23 @@ function X(e) {
595
605
  maxY: l + s
596
606
  };
597
607
  }
598
- function ut(e, t, n, r, i) {
608
+ function mt(e, t, n, r, i) {
599
609
  return e.minX <= r && e.maxX >= t && e.minY <= i && e.maxY >= n;
600
610
  }
601
- function dt(e, t) {
611
+ function ht(e, t) {
602
612
  return t > e ? t - e : Math.max(1, Math.abs(e)) * 2 ** -52;
603
613
  }
604
614
  //#endregion
605
615
  //#region src/world.ts
606
- function ft(e, t) {
616
+ function gt(e, t) {
607
617
  t.spatialMapMemory = e.spatialMap.getSharedMemory();
608
618
  }
609
- function pt(e) {
619
+ function _t(e) {
610
620
  if (e.spatialMap) return e.spatialMap;
611
621
  if (!e.heap || !e.spatialMapMemory) throw Error("Spatial system world is missing its shared MemoryHeap or spatial map");
612
622
  return e.spatialMap = new o(e.heap, e.spatialMapMemory), e.spatialMap;
613
623
  }
614
- var mt = class extends e {
624
+ var vt = class extends e {
615
625
  spatialMap;
616
626
  spatialIds = /* @__PURE__ */ new Set();
617
627
  constructor(e, t = {}) {
@@ -634,7 +644,7 @@ var mt = class extends e {
634
644
  this.spatialIds.delete(t.eid), this.spatialMap.remove(t.eid);
635
645
  return;
636
646
  }
637
- let i = X({
647
+ let i = J({
638
648
  transform: r,
639
649
  body: n.body?.block
640
650
  });
@@ -642,12 +652,12 @@ var mt = class extends e {
642
652
  }
643
653
  searchSpatial(e, t, n, r, i) {
644
654
  if (n < e || r < t) return [];
645
- let a = [], o = Number.isFinite(e) && Number.isFinite(t) && Number.isFinite(n) && Number.isFinite(r) ? this.spatialMap.search(e, t, dt(e, n), dt(t, r)) : this.spatialIds;
655
+ let a = [], o = Number.isFinite(e) && Number.isFinite(t) && Number.isFinite(n) && Number.isFinite(r) ? this.spatialMap.search(e, t, ht(e, n), ht(t, r)) : this.spatialIds;
646
656
  for (let s of o) {
647
657
  let o = this.getEntityByEid(s);
648
658
  if (!o || i && !i(o)) continue;
649
659
  let c = o.components, l = c.transform?.block;
650
- l && ut(X({
660
+ l && mt(J({
651
661
  transform: l,
652
662
  body: c.body?.block
653
663
  }), e, t, n, r) && a.push(o);
@@ -669,60 +679,60 @@ var mt = class extends e {
669
679
  return t ? [t] : [];
670
680
  });
671
681
  }
672
- }, ht = {
682
+ }, yt = {
673
683
  min: 0,
674
684
  max: 0
675
- }, gt = {
685
+ }, bt = {
676
686
  min: 0,
677
687
  max: 0
678
- }, Z = {
688
+ }, Y = {
679
689
  overlap: !0,
680
690
  depth: Infinity,
681
691
  x: 0,
682
692
  y: 0
683
693
  };
684
- function _t(e, t, n, r, i, a, o, s, c, l, u, d, f, p) {
685
- return yt(e, t, n, r, i, a, o, s, c, l, u, d, f, p, !1);
694
+ function xt(e, t, n, r, i, a, o, s, c, l, u, d, f, p) {
695
+ return Ct(e, t, n, r, i, a, o, s, c, l, u, d, f, p, !1);
686
696
  }
687
- function vt(e, t, n, r, i, a, o, s, c, l, u, d, f, p, m) {
688
- return Z.depth = Infinity, !yt(e, t, n, r, i, a, o, s, c, l, u, d, f, p, !0) || Z.depth === Infinity ? !1 : (m.x = Z.x, m.y = Z.y, !0);
697
+ function St(e, t, n, r, i, a, o, s, c, l, u, d, f, p, m) {
698
+ return Y.depth = Infinity, !Ct(e, t, n, r, i, a, o, s, c, l, u, d, f, p, !0) || Y.depth === Infinity ? !1 : (m.x = Y.x, m.y = Y.y, !0);
689
699
  }
690
- function yt(e, t, n, r, i, a, o, s, c, l, u, d, f, p, m) {
691
- return !(e === 4 && (!t || !bt(t, n, r, i, a, o, e, t, n, r, i, a, o, s, c, l, u, d, f, p, m)) || s === 4 && (!c || !bt(c, l, u, d, f, p, e, t, n, r, i, a, o, s, c, l, u, d, f, p, m)) || e === 1 && !xt(o, e, t, n, r, i, a, o, s, c, l, u, d, f, p, m) || s === 1 && !xt(p, e, t, n, r, i, a, o, s, c, l, u, d, f, p, m) || Ot(e) && c && !St(e, n, r, i, a, o, c, l, u, d, f, p, e, t, n, r, i, a, o, s, c, l, u, d, f, p, m) || Ot(s) && t && !St(s, l, u, d, f, p, t, n, r, i, a, o, e, t, n, r, i, a, o, s, c, l, u, d, f, p, m));
700
+ function Ct(e, t, n, r, i, a, o, s, c, l, u, d, f, p, m) {
701
+ return !(e === 4 && (!t || !wt(t, n, r, i, a, o, e, t, n, r, i, a, o, s, c, l, u, d, f, p, m)) || s === 4 && (!c || !wt(c, l, u, d, f, p, e, t, n, r, i, a, o, s, c, l, u, d, f, p, m)) || e === 1 && !Tt(o, e, t, n, r, i, a, o, s, c, l, u, d, f, p, m) || s === 1 && !Tt(p, e, t, n, r, i, a, o, s, c, l, u, d, f, p, m) || Mt(e) && c && !Et(e, n, r, i, a, o, c, l, u, d, f, p, e, t, n, r, i, a, o, s, c, l, u, d, f, p, m) || Mt(s) && t && !Et(s, l, u, d, f, p, t, n, r, i, a, o, e, t, n, r, i, a, o, s, c, l, u, d, f, p, m));
692
702
  }
693
- function bt(e, t, n, r, i, a, o, s, c, l, u, d, f, p, m, h, g, _, v, y, b) {
703
+ function wt(e, t, n, r, i, a, o, s, c, l, u, d, f, p, m, h, g, _, v, y, b) {
694
704
  let x = e[0], S = Math.cos(a), C = Math.sin(a);
695
705
  for (let a = 0; a < x; a++) {
696
- let w = (a + 1) % x, T = Tt(e, a, t, r, i, S, C), E = Et(e, a, n, r, i, S, C), D = Tt(e, w, t, r, i, S, C);
697
- if (!Ct(E - Et(e, w, n, r, i, S, C), D - T, o, s, c, l, u, d, f, p, m, h, g, _, v, y, b)) return !1;
706
+ let w = (a + 1) % x, T = kt(e, a, t, r, i, S, C), E = At(e, a, n, r, i, S, C), D = kt(e, w, t, r, i, S, C);
707
+ if (!Dt(E - At(e, w, n, r, i, S, C), D - T, o, s, c, l, u, d, f, p, m, h, g, _, v, y, b)) return !1;
698
708
  }
699
709
  return !0;
700
710
  }
701
- function xt(e, t, n, r, i, a, o, s, c, l, u, d, f, p, m, h) {
711
+ function Tt(e, t, n, r, i, a, o, s, c, l, u, d, f, p, m, h) {
702
712
  let g = Math.cos(e), _ = Math.sin(e);
703
- return Ct(g, _, t, n, r, i, a, o, s, c, l, u, d, f, p, m, h) && Ct(-_, g, t, n, r, i, a, o, s, c, l, u, d, f, p, m, h);
713
+ return Dt(g, _, t, n, r, i, a, o, s, c, l, u, d, f, p, m, h) && Dt(-_, g, t, n, r, i, a, o, s, c, l, u, d, f, p, m, h);
704
714
  }
705
- function St(e, t, n, r, i, a, o, s, c, l, u, d, f, p, m, h, g, _, v, y, b, x, S, C, w, T, E) {
706
- let D = e === 3 ? V(r, i) : 0, O = Math.cos(a) * D, k = Math.sin(a) * D, A = t - O, j = n - k, M = t + O, N = n + k, ee = o[0], P = Math.cos(d), F = Math.sin(d);
715
+ function Et(e, t, n, r, i, a, o, s, c, l, u, d, f, p, m, h, g, _, v, y, b, x, S, C, w, T, E) {
716
+ let D = e === 3 ? z(r, i) : 0, O = Math.cos(a) * D, k = Math.sin(a) * D, A = t - O, j = n - k, M = t + O, N = n + k, ee = o[0], te = Math.cos(d), ne = Math.sin(d);
707
717
  for (let e = 0; e < ee; e++) {
708
- let t = Tt(o, e, s, l, u, P, F), n = Et(o, e, c, l, u, P, F), r = Dt(A, j, M, N, t, n), i = A + (M - A) * r, a = j + (N - j) * r;
709
- if (!Ct(t - i, n - a, f, p, m, h, g, _, v, y, b, x, S, C, w, T, E)) return !1;
718
+ let t = kt(o, e, s, l, u, te, ne), n = At(o, e, c, l, u, te, ne), r = jt(A, j, M, N, t, n), i = A + (M - A) * r, a = j + (N - j) * r;
719
+ if (!Dt(t - i, n - a, f, p, m, h, g, _, v, y, b, x, S, C, w, T, E)) return !1;
710
720
  }
711
721
  return !0;
712
722
  }
713
- function Ct(e, t, n, r, i, a, o, s, c, l, u, d, f, p, m, h, g) {
723
+ function Dt(e, t, n, r, i, a, o, s, c, l, u, d, f, p, m, h, g) {
714
724
  let _ = Math.hypot(e, t);
715
725
  if (_ === 0) return !0;
716
- e /= _, t /= _, wt(n, r, i, a, o, s, c, e, t, ht), wt(l, u, d, f, p, m, h, e, t, gt);
717
- let v = ht.max - gt.min, y = gt.max - ht.min;
726
+ e /= _, t /= _, Ot(n, r, i, a, o, s, c, e, t, yt), Ot(l, u, d, f, p, m, h, e, t, bt);
727
+ let v = yt.max - bt.min, y = bt.max - yt.min;
718
728
  if (!g && (v <= 0 || y <= 0)) return !1;
719
729
  if (g) {
720
730
  let n, r;
721
- v <= 0 ? (n = -v, r = -1) : y <= 0 ? (n = -y, r = 1) : v < y ? (n = v, r = -1) : (n = y, r = 1), n < Z.depth && (Z.depth = n, Z.x = e * r, Z.y = t * r);
731
+ v <= 0 ? (n = -v, r = -1) : y <= 0 ? (n = -y, r = 1) : v < y ? (n = v, r = -1) : (n = y, r = 1), n < Y.depth && (Y.depth = n, Y.x = e * r, Y.y = t * r);
722
732
  }
723
733
  return !0;
724
734
  }
725
- function wt(e, t, n, r, i, a, o, s, c, l) {
735
+ function Ot(e, t, n, r, i, a, o, s, c, l) {
726
736
  let u = n * s + r * c;
727
737
  if (e === 2) {
728
738
  let e = i / 2;
@@ -730,7 +740,7 @@ function wt(e, t, n, r, i, a, o, s, c, l) {
730
740
  return;
731
741
  }
732
742
  if (e === 3) {
733
- let e = V(i, a), t = Math.abs(s * Math.cos(o) + c * Math.sin(o)) * e + a / 2;
743
+ let e = z(i, a), t = Math.abs(s * Math.cos(o) + c * Math.sin(o)) * e + a / 2;
734
744
  l.min = u - t, l.max = u + t;
735
745
  return;
736
746
  }
@@ -746,48 +756,48 @@ function wt(e, t, n, r, i, a, o, s, c, l) {
746
756
  let d = t[0], f = Math.cos(o), p = Math.sin(o);
747
757
  l.min = Infinity, l.max = -Infinity;
748
758
  for (let e = 0; e < d; e++) {
749
- let o = Tt(t, e, n, i, a, f, p), u = Et(t, e, r, i, a, f, p), d = o * s + u * c;
759
+ let o = kt(t, e, n, i, a, f, p), u = At(t, e, r, i, a, f, p), d = o * s + u * c;
750
760
  l.min = Math.min(l.min, d), l.max = Math.max(l.max, d);
751
761
  }
752
762
  }
753
- function Tt(e, t, n, r, i, a, o) {
763
+ function kt(e, t, n, r, i, a, o) {
754
764
  let s = 1 + t * 2;
755
765
  return n + e[s] * r * a - e[s + 1] * i * o;
756
766
  }
757
- function Et(e, t, n, r, i, a, o) {
767
+ function At(e, t, n, r, i, a, o) {
758
768
  let s = 1 + t * 2;
759
769
  return n + e[s] * r * o + e[s + 1] * i * a;
760
770
  }
761
- function Dt(e, t, n, r, i, a) {
771
+ function jt(e, t, n, r, i, a) {
762
772
  let o = n - e, s = r - t, c = o * o + s * s;
763
773
  return c === 0 ? 0 : Math.min(1, Math.max(0, ((i - e) * o + (a - t) * s) / c));
764
774
  }
765
- function Ot(e) {
775
+ function Mt(e) {
766
776
  return e === 2 || e === 3;
767
777
  }
768
- function kt(e, t, n, r, i, a) {
769
- if (Lt(n, r, "Force"), Lt(i, a, "Impulse"), n === 0 && r === 0 && i === 0 && a === 0) return;
770
- let o = e.get(t) ?? It(), s = {
778
+ function Nt(e, t, n, r, i, a) {
779
+ if (Vt(n, r, "Force"), Vt(i, a, "Impulse"), n === 0 && r === 0 && i === 0 && a === 0) return;
780
+ let o = e.get(t) ?? Bt(), s = {
771
781
  ...o,
772
782
  forceX: o.forceX + n,
773
783
  forceY: o.forceY + r,
774
784
  impulseX: o.impulseX + i,
775
785
  impulseY: o.impulseY + a
776
786
  };
777
- Lt(s.forceX, s.forceY, "Accumulated force"), Lt(s.impulseX, s.impulseY, "Accumulated impulse"), e.set(t, s);
787
+ Vt(s.forceX, s.forceY, "Accumulated force"), Vt(s.impulseX, s.impulseY, "Accumulated impulse"), e.set(t, s);
778
788
  }
779
- function At(e, t, n) {
780
- Rt(n), !(n.velocityX === void 0 && n.velocityY === void 0) && e.set(t, {
781
- ...e.get(t) ?? It(),
789
+ function Pt(e, t, n) {
790
+ Ht(n), (n.velocityX !== void 0 || n.velocityY !== void 0) && e.set(t, {
791
+ ...e.get(t) ?? Bt(),
782
792
  ...n
783
793
  });
784
794
  }
785
- function jt(e, t) {
795
+ function Ft(e, t) {
786
796
  if (e.size === 0) return t;
787
797
  let n = /* @__PURE__ */ new Map();
788
798
  for (let [t, r] of e) n.set(t, { ...r });
789
- return Ft(t, (e, t) => {
790
- let r = n.get(e) ?? It();
799
+ return zt(t, (e, t) => {
800
+ let r = n.get(e) ?? Bt();
791
801
  n.set(e, {
792
802
  forceX: r.forceX + t.forceX,
793
803
  forceY: r.forceY + t.forceY,
@@ -801,13 +811,13 @@ function jt(e, t) {
801
811
  ...t
802
812
  })).sort((e, t) => e.entityId - t.entityId);
803
813
  }
804
- function Mt(e, t, n, r) {
805
- let i = e.dynamicsCommands, a = i instanceof Float64Array ? i : void 0, o = Nt(i && !(i instanceof Float64Array) ? i : void 0, t), s = a ? Pt(a, t) : -1, c = n[2];
814
+ function It(e, t, n, r) {
815
+ let i = e.dynamicsCommands, a = i instanceof Float64Array ? i : void 0, o = Lt(i && !(i instanceof Float64Array) ? i : void 0, t), s = a ? Rt(a, t) : -1, c = n[2];
806
816
  if (!r && !o && s < 0 && c === 0) return;
807
817
  let l = e.elapsedTime / 1e3, u = r?.[2] ?? 1, d = s < 0 ? o?.forceX ?? 0 : a[s + 1], f = s < 0 ? o?.forceY ?? 0 : a[s + 2], p = s < 0 ? o?.impulseX ?? 0 : a[s + 3], m = s < 0 ? o?.impulseY ?? 0 : a[s + 4], h = s < 0 ? 0 : a[s + 5], g = s < 0 ? o?.velocityX : h & 1 ? a[s + 6] : void 0, _ = s < 0 ? o?.velocityY : h & 2 ? a[s + 7] : void 0, v = c > 0 ? 1 / (1 + c * l) : 1, y = (n[0] + (r?.[0] ?? 0) * l + d * u * l + p * u) * v, b = (n[1] + (r?.[1] ?? 0) * l + f * u * l + m * u) * v;
808
818
  n[0] = g ?? y, n[1] = _ ?? b;
809
819
  }
810
- function Nt(e, t) {
820
+ function Lt(e, t) {
811
821
  if (!e) return;
812
822
  let n = 0, r = e.length - 1;
813
823
  for (; n <= r;) {
@@ -816,7 +826,7 @@ function Nt(e, t) {
816
826
  a.entityId < t ? n = i + 1 : r = i - 1;
817
827
  }
818
828
  }
819
- function Pt(e, t) {
829
+ function Rt(e, t) {
820
830
  let n = 0, r = e.length / 8 - 1;
821
831
  for (; n <= r;) {
822
832
  let i = n + r >>> 1, a = i * 8, o = e[a + 0];
@@ -825,7 +835,7 @@ function Pt(e, t) {
825
835
  }
826
836
  return -1;
827
837
  }
828
- function Ft(e, t) {
838
+ function zt(e, t) {
829
839
  if (e) {
830
840
  if (!(e instanceof Float64Array)) {
831
841
  for (let { entityId: n, ...r } of e) t(n, r);
@@ -844,7 +854,7 @@ function Ft(e, t) {
844
854
  }
845
855
  }
846
856
  }
847
- function It() {
857
+ function Bt() {
848
858
  return {
849
859
  forceX: 0,
850
860
  forceY: 0,
@@ -852,18 +862,18 @@ function It() {
852
862
  impulseY: 0
853
863
  };
854
864
  }
855
- function Lt(e, t, n) {
865
+ function Vt(e, t, n) {
856
866
  if (!Number.isFinite(e) || !Number.isFinite(t)) throw Error(`${n} must contain finite numbers`);
857
867
  }
858
- function Rt(e) {
868
+ function Ht(e) {
859
869
  if (e.velocityX !== void 0 && !Number.isFinite(e.velocityX) || e.velocityY !== void 0 && !Number.isFinite(e.velocityY)) throw Error("Velocity assignment must contain finite numbers");
860
870
  }
861
871
  //#endregion
862
872
  //#region src/systems/collision.ts
863
- var zt = 1e-4, Bt = 24, Vt = "collidable", Q = [], Ht = 2 ** 26, Ut = {
873
+ var X = 1e-4, Ut = 24, Wt = "collidable", Z = [], Gt = 2 ** 26, Kt = {
864
874
  fraction: 1,
865
- blocking: Q
866
- }, Wt = class {
875
+ blocking: Z
876
+ }, qt = class {
867
877
  buckets = [];
868
878
  hasBounciness = !1;
869
879
  resolved = /* @__PURE__ */ new Set();
@@ -874,18 +884,18 @@ var zt = 1e-4, Bt = 24, Vt = "collidable", Q = [], Ht = 2 ** 26, Ut = {
874
884
  if (!o || !s) continue;
875
885
  let c = s[1];
876
886
  if (c === 0) continue;
877
- let l = L(s), u = o[2], d = o[3];
878
- if (U(l, u, d)) continue;
879
- let f = o[4], p = W(l, u, d, f), m = G(l, u, d, f);
887
+ let l = F(s), u = o[2], d = o[3];
888
+ if (B(l, u, d)) continue;
889
+ let f = o[4], p = V(l, u, d, f), m = H(l, u, d, f);
880
890
  e.bounciness && (this.hasBounciness = !0);
881
- let h = e.velocity, g = e.dynamics, _ = Nt(a, n.entityId), v = i ? Pt(i, n.entityId) : -1, y = g?.[2] ?? 1, b = v < 0 ? _?.forceX ?? 0 : i[v + 1], x = v < 0 ? _?.forceY ?? 0 : i[v + 2], S = v < 0 ? _?.impulseX ?? 0 : i[v + 3], C = v < 0 ? _?.impulseY ?? 0 : i[v + 4], w = v < 0 ? 0 : i[v + 5], T = v < 0 ? _?.velocityX : w & 1 ? i[v + 6] : void 0, E = v < 0 ? _?.velocityY : w & 2 ? i[v + 7] : void 0, D = h?.[0] ?? 0, O = h?.[1] ?? 0, k = D + (g?.[0] ?? 0) * t + b * y * t + S * y, A = O + (g?.[1] ?? 0) * t + x * y * t + C * y, j = T ?? k, M = E ?? A, N = Math.max(Math.abs(D), Math.abs(j)) * t, ee = Math.max(Math.abs(O), Math.abs(M)) * t, P = o[0], F = o[1], I = r.get(c);
882
- I || (I = {
891
+ let h = e.velocity, g = e.dynamics, _ = Lt(a, n.entityId), v = i ? Rt(i, n.entityId) : -1, y = g?.[2] ?? 1, b = v < 0 ? _?.forceX ?? 0 : i[v + 1], x = v < 0 ? _?.forceY ?? 0 : i[v + 2], S = v < 0 ? _?.impulseX ?? 0 : i[v + 3], C = v < 0 ? _?.impulseY ?? 0 : i[v + 4], w = v < 0 ? 0 : i[v + 5], T = v < 0 ? _?.velocityX : w & 1 ? i[v + 6] : void 0, E = v < 0 ? _?.velocityY : w & 2 ? i[v + 7] : void 0, D = h?.[0] ?? 0, O = h?.[1] ?? 0, k = D + (g?.[0] ?? 0) * t + b * y * t + S * y, A = O + (g?.[1] ?? 0) * t + x * y * t + C * y, j = T ?? k, M = E ?? A, N = Math.max(Math.abs(D), Math.abs(j)) * t, ee = Math.max(Math.abs(O), Math.abs(M)) * t, te = o[0], ne = o[1], P = r.get(c);
892
+ P || (P = {
883
893
  entries: [],
884
894
  bounds: []
885
- }, r.set(c, I)), I.entries.push({
895
+ }, r.set(c, P)), P.entries.push({
886
896
  entityId: n.entityId,
887
897
  components: e
888
- }), I.bounds.push(P - p - N, F - m - ee, P + p + N, F + m + ee);
898
+ }), P.bounds.push(te - p - N, ne - m - ee, te + p + N, ne + m + ee);
889
899
  }
890
900
  for (let [e, { entries: t, bounds: n }] of r) {
891
901
  let r = new s(t.length);
@@ -898,17 +908,17 @@ var zt = 1e-4, Bt = 24, Vt = "collidable", Q = [], Ht = 2 ** 26, Ut = {
898
908
  }
899
909
  }
900
910
  claimContact(e, t) {
901
- let n = e < t ? e * Ht + t : t * Ht + e;
902
- return this.resolved.has(n) ? !1 : (this.resolved.add(n), !0);
911
+ let n = e < t ? e * Gt + t : t * Gt + e;
912
+ return !this.resolved.has(n) && (this.resolved.add(n), !0);
903
913
  }
904
914
  forEachOverlapping(e, t, n = 0, r = 0) {
905
- let i = qt(e);
915
+ let i = Q(e);
906
916
  if (!i) return;
907
917
  let { x: a, y: o, halfWidth: s, halfHeight: c } = i;
908
918
  if (i.ccd && (n !== 0 || r !== 0)) {
909
919
  let e = a - n, l = o - r, u = Math.min(e, a) - s, d = Math.min(l, o) - c, f = Math.max(e, a) + s, p = Math.max(l, o) + c;
910
920
  this.forEachCandidate(i, u, d, f, p, (a) => {
911
- Jt(i, e, l, n, r, a) && t(a);
921
+ Xt(i, e, l, n, r, a) && t(a);
912
922
  });
913
923
  return;
914
924
  }
@@ -917,7 +927,7 @@ var zt = 1e-4, Bt = 24, Vt = "collidable", Q = [], Ht = 2 ** 26, Ut = {
917
927
  });
918
928
  }
919
929
  contactPoint(e, t, n, r) {
920
- let i = e.components.transform, a = i[0], o = i[1], s = Math.sqrt(n * n + r * r), c = qt(e);
930
+ let i = e.components.transform, a = i[0], o = i[1], s = Math.sqrt(n * n + r * r), c = Q(e);
921
931
  if (!c || s === 0) return {
922
932
  x: a,
923
933
  y: o
@@ -930,33 +940,33 @@ var zt = 1e-4, Bt = 24, Vt = "collidable", Q = [], Ht = 2 ** 26, Ut = {
930
940
  };
931
941
  }
932
942
  contactNormal(e, t, n, r, i) {
933
- let a = qt(e);
943
+ let a = Q(e);
934
944
  if (!a) return !1;
935
945
  let o = n === 0 && r === 0 ? {
936
946
  x: a.x,
937
947
  y: a.y
938
948
  } : this.contactPoint(e, t, n, r);
939
- return Gt(a, o.x, o.y, t, i);
949
+ return Jt(a, o.x, o.y, t, i);
940
950
  }
941
951
  sweep(e, t, n) {
942
- let r = Math.sqrt(t * t + n * n), i = qt(e);
952
+ let r = Math.sqrt(t * t + n * n), i = Q(e);
943
953
  if (!i || r === 0) return {
944
954
  fraction: 1,
945
- blocking: Q
955
+ blocking: Z
946
956
  };
947
957
  if (i.ccd) return this.sweepContinuous(i, t, n, r);
948
958
  let a = this.gatherCandidates(i, t, n);
949
959
  return a.length === 0 ? {
950
960
  fraction: 1,
951
- blocking: Q
961
+ blocking: Z
952
962
  } : this.refine(i, a, t, n, r);
953
963
  }
954
964
  resolveMove(e, t, n, r) {
955
- let i = Math.sqrt(t * t + n * n), a = qt(e);
965
+ let i = Math.sqrt(t * t + n * n), a = Q(e);
956
966
  if (!a || i === 0) return {
957
967
  moveX: t,
958
968
  moveY: n,
959
- blocking: Q
969
+ blocking: Z
960
970
  };
961
971
  if (a.ccd) {
962
972
  let e = this.sweepContinuous(a, t, n, i);
@@ -970,20 +980,20 @@ var zt = 1e-4, Bt = 24, Vt = "collidable", Q = [], Ht = 2 ** 26, Ut = {
970
980
  if (o.length === 0) return {
971
981
  moveX: t,
972
982
  moveY: n,
973
- blocking: Q
983
+ blocking: Z
974
984
  };
975
985
  if (r && t !== 0 && n !== 0) {
976
986
  let e = this.gatherCandidates(a, t, 0), r = this.gatherCandidates(a, 0, n);
977
987
  if (e.length === 0 && r.length === 0) return Math.abs(t) >= Math.abs(n) ? {
978
988
  moveX: t,
979
989
  moveY: 0,
980
- blocking: Q
990
+ blocking: Z
981
991
  } : {
982
992
  moveX: 0,
983
993
  moveY: n,
984
- blocking: Q
994
+ blocking: Z
985
995
  };
986
- let i = e.length === 0 ? Ut : this.refine(a, e, t, 0, Math.abs(t)), o = r.length === 0 ? Ut : this.refine(a, r, 0, n, Math.abs(n)), s = t * i.fraction, c = n * o.fraction;
996
+ let i = e.length === 0 ? Kt : this.refine(a, e, t, 0, Math.abs(t)), o = r.length === 0 ? Kt : this.refine(a, r, 0, n, Math.abs(n)), s = t * i.fraction, c = n * o.fraction;
987
997
  if (s !== 0 && c !== 0) {
988
998
  let e = this.gatherCandidates(a, s, c);
989
999
  if (e.length > 0) {
@@ -998,7 +1008,7 @@ var zt = 1e-4, Bt = 24, Vt = "collidable", Q = [], Ht = 2 ** 26, Ut = {
998
1008
  return {
999
1009
  moveX: s,
1000
1010
  moveY: c,
1001
- blocking: Kt(i.blocking, o.blocking)
1011
+ blocking: Yt(i.blocking, o.blocking)
1002
1012
  };
1003
1013
  }
1004
1014
  let s = this.refine(a, o, t, n, i);
@@ -1013,19 +1023,19 @@ var zt = 1e-4, Bt = 24, Vt = "collidable", Q = [], Ht = 2 ** 26, Ut = {
1013
1023
  if (e.sensor) return [];
1014
1024
  let s = r + t, c = i + n, l = [];
1015
1025
  return this.forEachCandidate(e, s - a, c - o, s + a, c + o, (t) => {
1016
- $(e, s, c, t) && (R(t.components.body) || $(e, r, i, t) || l.push(t));
1026
+ $(e, s, c, t) && (I(t.components.body) || $(e, r, i, t) || l.push(t));
1017
1027
  }), l;
1018
1028
  }
1019
1029
  refine(e, t, n, r, i) {
1020
- let { x: a, y: o } = e, s = 0, c = 1, l = zt / i;
1021
- for (let i = 0; i < Bt && c - s > l; i++) {
1030
+ let { x: a, y: o } = e, s = 0, c = 1, l = X / i;
1031
+ for (let i = 0; i < Ut && c - s > l; i++) {
1022
1032
  let i = (s + c) / 2;
1023
1033
  this.blockedAt(e, t, n, r, i) ? c = i : s = i;
1024
1034
  }
1025
1035
  let u = [], d = a + n * c, f = o + r * c;
1026
1036
  for (let n of t) $(e, d, f, n) && u.push(n);
1027
1037
  return {
1028
- fraction: s * i > zt ? s : 0,
1038
+ fraction: s * i > X ? s : 0,
1029
1039
  blocking: u
1030
1040
  };
1031
1041
  }
@@ -1033,22 +1043,22 @@ var zt = 1e-4, Bt = 24, Vt = "collidable", Q = [], Ht = 2 ** 26, Ut = {
1033
1043
  if (e.sensor) return [];
1034
1044
  let { x: r, y: i, halfWidth: a, halfHeight: o } = e, s = r + t, c = i + n, l = [];
1035
1045
  return this.forEachCandidate(e, Math.min(r, s) - a, Math.min(i, c) - o, Math.max(r, s) + a, Math.max(i, c) + o, (a) => {
1036
- R(a.components.body) || $(e, r, i, a) || Jt(e, r, i, t, n, a) && l.push(a);
1046
+ I(a.components.body) || $(e, r, i, a) || Xt(e, r, i, t, n, a) && l.push(a);
1037
1047
  }), l;
1038
1048
  }
1039
1049
  sweepContinuous(e, t, n, r) {
1040
1050
  let i = this.gatherContinuousCandidates(e, t, n);
1041
1051
  if (i.length === 0) return {
1042
1052
  fraction: 1,
1043
- blocking: Q
1053
+ blocking: Z
1044
1054
  };
1045
- let a = 1, o = [], s = zt / r;
1055
+ let a = 1, o = [], s = X / r;
1046
1056
  for (let c of i) {
1047
1057
  let i = this.entryFraction(e, c, t, n, r);
1048
1058
  i < a - s ? (a = i, o = [c]) : i <= a + s && o.push(c);
1049
1059
  }
1050
1060
  return {
1051
- fraction: a * r > zt ? a : 0,
1061
+ fraction: a * r > X ? a : 0,
1052
1062
  blocking: o
1053
1063
  };
1054
1064
  }
@@ -1056,12 +1066,12 @@ var zt = 1e-4, Bt = 24, Vt = "collidable", Q = [], Ht = 2 ** 26, Ut = {
1056
1066
  let a;
1057
1067
  if (this.blockedAtOne(e, t, n, r, 1)) a = 1;
1058
1068
  else {
1059
- let o = t.components.transform, s = o[0] - e.x, c = o[1] - e.y, l = Yt((s * n + c * r) / (i * i));
1069
+ let o = t.components.transform, s = o[0] - e.x, c = o[1] - e.y, l = Zt((s * n + c * r) / (i * i));
1060
1070
  if (!this.blockedAtOne(e, t, n, r, l)) return l;
1061
1071
  a = l;
1062
1072
  }
1063
- let o = 0, s = zt / i;
1064
- for (let i = 0; i < Bt && a - o > s; i++) {
1073
+ let o = 0, s = X / i;
1074
+ for (let i = 0; i < Ut && a - o > s; i++) {
1065
1075
  let i = (o + a) / 2;
1066
1076
  this.blockedAtOne(e, t, n, r, i) ? a = i : o = i;
1067
1077
  }
@@ -1078,30 +1088,30 @@ var zt = 1e-4, Bt = 24, Vt = "collidable", Q = [], Ht = 2 ** 26, Ut = {
1078
1088
  forEachCandidate(e, t, r, i, a, o) {
1079
1089
  for (let s of this.buckets) if ((e.mask & s.category) !== 0) for (let c of s.index.search(t, r, i, a)) {
1080
1090
  let t = s.entries[c];
1081
- t.entityId !== e.entityId && (t.components.body[2] & e.category) !== 0 && t.components.entity?.[n] !== 1 && (xe(t.components.body) || o(t));
1091
+ t.entityId !== e.entityId && (t.components.body[2] & e.category) !== 0 && t.components.entity?.[n] !== 1 && (Te(t.components.body) || o(t));
1082
1092
  }
1083
1093
  }
1084
1094
  };
1085
- function Gt(e, t, n, r, i) {
1086
- let a = r.components.transform, o = L(r.components.body), s = a[0], c = a[1], l = a[2], u = a[3], d = a[4];
1087
- return e.shape === 4 || o === 4 ? vt(e.shape, e.polygon, t, n, e.width, e.height, e.angle, o, r.components.polygon, s, c, l, u, d, i) : Ye(e.shape, t, n, e.width, e.height, e.angle, o, s, c, l, u, d, i);
1095
+ function Jt(e, t, n, r, i) {
1096
+ let a = r.components.transform, o = F(r.components.body), s = a[0], c = a[1], l = a[2], u = a[3], d = a[4];
1097
+ return e.shape === 4 || o === 4 ? St(e.shape, e.polygon, t, n, e.width, e.height, e.angle, o, r.components.polygon, s, c, l, u, d, i) : et(e.shape, t, n, e.width, e.height, e.angle, o, s, c, l, u, d, i);
1088
1098
  }
1089
- function Kt(e, t) {
1099
+ function Yt(e, t) {
1090
1100
  if (e.length === 0) return t;
1091
1101
  if (t.length === 0) return e;
1092
1102
  let n = [...e];
1093
1103
  for (let e of t) n.some((t) => t.entityId === e.entityId) || n.push(e);
1094
1104
  return n;
1095
1105
  }
1096
- function qt(e) {
1106
+ function Q(e) {
1097
1107
  let t = e.components.body;
1098
1108
  if (!t) return;
1099
1109
  let n = t[2];
1100
1110
  if (n === 0) return;
1101
- let r = e.components.transform, i = L(t), a = r[2], o = r[3];
1102
- if (U(i, a, o)) return;
1111
+ let r = e.components.transform, i = F(t), a = r[2], o = r[3];
1112
+ if (B(i, a, o)) return;
1103
1113
  let s = r[4], c = e.components.polygon;
1104
- if (!(i === 4 && !c)) return {
1114
+ if (i !== 4 || c) return {
1105
1115
  entityId: e.entityId,
1106
1116
  shape: i,
1107
1117
  polygon: c,
@@ -1110,36 +1120,36 @@ function qt(e) {
1110
1120
  width: a,
1111
1121
  height: o,
1112
1122
  angle: s,
1113
- halfWidth: W(i, a, o, s),
1114
- halfHeight: G(i, a, o, s),
1123
+ halfWidth: V(i, a, o, s),
1124
+ halfHeight: H(i, a, o, s),
1115
1125
  category: t[1],
1116
1126
  mask: n,
1117
- sensor: R(t),
1118
- ccd: be(t)
1127
+ sensor: I(t),
1128
+ ccd: Ce(t)
1119
1129
  };
1120
1130
  }
1121
- function Jt(e, t, n, r, i, a) {
1122
- let o = t + r, s = n + i, c = a.components.transform, l = L(a.components.body), u = c[0], d = c[1], f = c[2], p = c[3], m = c[4];
1131
+ function Xt(e, t, n, r, i, a) {
1132
+ let o = t + r, s = n + i, c = a.components.transform, l = F(a.components.body), u = c[0], d = c[1], f = c[2], p = c[3], m = c[4];
1123
1133
  if (e.shape === 1 || e.shape === 4) {
1124
1134
  let c = Math.cos(e.angle), h = Math.sin(e.angle), g = r * c + i * h, _ = -r * h + i * c;
1125
- return Xt(1, void 0, (t + o) / 2, (n + s) / 2, e.width + Math.abs(g), e.height + Math.abs(_), e.angle, l, a.components.polygon, u, d, f, p, m);
1135
+ return Qt(1, void 0, (t + o) / 2, (n + s) / 2, e.width + Math.abs(g), e.height + Math.abs(_), e.angle, l, a.components.polygon, u, d, f, p, m);
1126
1136
  }
1127
- let h = H(e.shape, e.width, e.height), g = Math.sqrt(r * r + i * i), _ = g > 0 ? Math.atan2(i, r) : e.angle;
1128
- return Xt(3, void 0, (t + o) / 2, (n + s) / 2, g + h * 2, h * 2, _, l, a.components.polygon, u, d, f, p, m) ? !0 : Xt(e.shape, e.polygon, o, s, e.width, e.height, e.angle, l, a.components.polygon, u, d, f, p, m);
1137
+ let h = Qe(e.shape, e.width, e.height), g = Math.sqrt(r * r + i * i), _ = g > 0 ? Math.atan2(i, r) : e.angle;
1138
+ return Qt(3, void 0, (t + o) / 2, (n + s) / 2, g + h * 2, h * 2, _, l, a.components.polygon, u, d, f, p, m) ? !0 : Qt(e.shape, e.polygon, o, s, e.width, e.height, e.angle, l, a.components.polygon, u, d, f, p, m);
1129
1139
  }
1130
- function Yt(e) {
1140
+ function Zt(e) {
1131
1141
  return e < 0 ? 0 : e > 1 ? 1 : e;
1132
1142
  }
1133
1143
  function $(e, t, n, r) {
1134
1144
  let i = r.components.transform;
1135
- return Xt(e.shape, e.polygon, t, n, e.width, e.height, e.angle, L(r.components.body), r.components.polygon, i[0], i[1], i[2], i[3], i[4]);
1145
+ return Qt(e.shape, e.polygon, t, n, e.width, e.height, e.angle, F(r.components.body), r.components.polygon, i[0], i[1], i[2], i[3], i[4]);
1136
1146
  }
1137
- function Xt(e, t, n, r, i, a, o, s, c, l, u, d, f, p) {
1138
- return e !== 4 && s !== 4 ? Je(e, n, r, i, a, o, s, l, u, d, f, p) : _t(e, t, n, r, i, a, o, s, c, l, u, d, f, p);
1147
+ function Qt(e, t, n, r, i, a, o, s, c, l, u, d, f, p) {
1148
+ return e !== 4 && s !== 4 ? $e(e, n, r, i, a, o, s, l, u, d, f, p) : xt(e, t, n, r, i, a, o, s, c, l, u, d, f, p);
1139
1149
  }
1140
1150
  //#endregion
1141
1151
  //#region src/systems/spatial-index.ts
1142
- var Zt = class {
1152
+ var $t = class {
1143
1153
  entries = [];
1144
1154
  index;
1145
1155
  constructor(e) {
@@ -1147,7 +1157,7 @@ var Zt = class {
1147
1157
  for (let n of e) {
1148
1158
  let e = n.components, r = e.transform;
1149
1159
  if (!r) continue;
1150
- let i = e.body, a = i ? L(i) : 1, o = r[2], s = r[3], c = r[4], l = r[0], u = r[1], d = W(a, o, s, c), f = G(a, o, s, c);
1160
+ let i = e.body, a = i ? F(i) : 1, o = r[2], s = r[3], c = r[4], l = r[0], u = r[1], d = V(a, o, s, c), f = H(a, o, s, c);
1151
1161
  this.entries.push({
1152
1162
  entityId: n.entityId,
1153
1163
  components: e
@@ -1179,14 +1189,14 @@ var Zt = class {
1179
1189
  let o = this.entries;
1180
1190
  return (i ? a.neighbors(e, t, n, r, (e) => i(o[e])) : a.neighbors(e, t, n, r)).map((e) => o[e]);
1181
1191
  }
1182
- }, Qt = {
1192
+ }, en = {
1183
1193
  x: 0,
1184
1194
  y: 0
1185
1195
  };
1186
- function $t(e, t, n = !1) {
1187
- !nn(e, n) && !nn(t, n) || rn(e, t) && an(e, t, Qt) && (tn(e, Qt.x, Qt.y, n), tn(t, -Qt.x, -Qt.y, n));
1196
+ function tn(e, t, n = !1) {
1197
+ (an(e, n) || an(t, n)) && on(e, t) && sn(e, t, en) && (rn(e, en.x, en.y, n), rn(t, -en.x, -en.y, n));
1188
1198
  }
1189
- function en(e, t, n) {
1199
+ function nn(e, t, n) {
1190
1200
  let r = e.components.bounciness, i = e.components.velocity;
1191
1201
  if (!r || !i) return;
1192
1202
  let a = i[0], o = i[1], s = a * t + o * n;
@@ -1194,9 +1204,9 @@ function en(e, t, n) {
1194
1204
  let c = (1 + r[0]) * s;
1195
1205
  i[0] = a - c * t, i[1] = o - c * n;
1196
1206
  }
1197
- function tn(e, t, n, r) {
1207
+ function rn(e, t, n, r) {
1198
1208
  if (e.components.bounciness) {
1199
- en(e, t, n);
1209
+ nn(e, t, n);
1200
1210
  return;
1201
1211
  }
1202
1212
  let i = e.components.velocity;
@@ -1204,60 +1214,60 @@ function tn(e, t, n, r) {
1204
1214
  let a = i[0], o = i[1], s = a * t + o * n;
1205
1215
  s < 0 && (i[0] = a - s * t, i[1] = o - s * n);
1206
1216
  }
1207
- function nn(e, t) {
1217
+ function an(e, t) {
1208
1218
  return e.components.velocity !== void 0 && (t || e.components.bounciness !== void 0);
1209
1219
  }
1210
- function rn(e, t) {
1211
- return !sn(e.components.body) && !sn(t.components.body);
1220
+ function on(e, t) {
1221
+ return !ln(e.components.body) && !ln(t.components.body);
1212
1222
  }
1213
- function an(e, t, n) {
1214
- let r = e.components.transform, i = t.components.transform, a = on(e.components.body), o = on(t.components.body);
1215
- return a === 4 || o === 4 ? vt(a, e.components.polygon, r[0], r[1], r[2], r[3], r[4], o, t.components.polygon, i[0], i[1], i[2], i[3], i[4], n) : Ye(a, r[0], r[1], r[2], r[3], r[4], o, i[0], i[1], i[2], i[3], i[4], n);
1223
+ function sn(e, t, n) {
1224
+ let r = e.components.transform, i = t.components.transform, a = cn(e.components.body), o = cn(t.components.body);
1225
+ return a === 4 || o === 4 ? St(a, e.components.polygon, r[0], r[1], r[2], r[3], r[4], o, t.components.polygon, i[0], i[1], i[2], i[3], i[4], n) : et(a, r[0], r[1], r[2], r[3], r[4], o, i[0], i[1], i[2], i[3], i[4], n);
1216
1226
  }
1217
- function on(e) {
1218
- return e ? L(e) : 1;
1227
+ function cn(e) {
1228
+ return e ? F(e) : 1;
1219
1229
  }
1220
- function sn(e) {
1221
- return e !== void 0 && R(e);
1230
+ function ln(e) {
1231
+ return e !== void 0 && I(e);
1222
1232
  }
1223
1233
  //#endregion
1224
1234
  //#region src/systems/physics-update.ts
1225
- function cn(e, t, n) {
1235
+ function un(e, t, n) {
1226
1236
  if (!e.spatialMap && (!e.heap || !e.spatialMapMemory)) return;
1227
- let r = pt(e), i = X(n);
1237
+ let r = _t(e), i = J(n);
1228
1238
  r.update(t, i.minX, i.minY, i.maxX - i.minX, i.maxY - i.minY);
1229
1239
  }
1230
- var ln = "position-updated", un = {
1240
+ var dn = "position-updated", fn = {
1231
1241
  x: 0,
1232
1242
  y: 0
1233
1243
  };
1234
- function dn(e = {}) {
1244
+ function pn(e = {}) {
1235
1245
  let { onCollision: t, optional: r = [], group: i, stopVelocityOnContact: a = !1 } = e, o, s, c = /* @__PURE__ */ new Map(), l = Object.assign((e, r, c, l, u) => {
1236
1246
  if (c.entity?.[n] === 1) return;
1237
- if (c.body !== void 0 && xe(c.body)) {
1247
+ if (c.body !== void 0 && Te(c.body)) {
1238
1248
  u.entityDied(r);
1239
1249
  return;
1240
1250
  }
1241
- let d = i ? pn(c, i) : 0;
1251
+ let d = i ? hn(c, i) : 0;
1242
1252
  if (i && e.skipGroup === d) return;
1243
1253
  let f = {
1244
1254
  entityId: r,
1245
1255
  components: c
1246
1256
  }, p = c.interpolation, m = e.elapsedTime / 1e3;
1247
- Mt(e, r, c.velocity, c.dynamics);
1257
+ It(e, r, c.velocity, c.dynamics);
1248
1258
  let h = c.velocity[0] * m, g = c.velocity[1] * m;
1249
- vn(p, c.transform, e.elapsedTime);
1259
+ bn(p, e.elapsedTime);
1250
1260
  let _ = i ? s?.get(d) : o;
1251
1261
  if (!_) {
1252
- bn(r, c.transform, h, g, u, e.reportMoves), cn(e, r, c), yn(p, e.tick);
1262
+ Sn(r, c.transform, h, g, u, e.reportMoves), un(e, r, c), xn(p, e.tick);
1253
1263
  return;
1254
1264
  }
1255
1265
  let v = c.bounciness !== void 0, y = _.resolveMove(f, h, g, !v);
1256
- if (bn(r, c.transform, y.moveX, y.moveY, u, e.reportMoves), cn(e, r, c), yn(p, e.tick), !(!_.hasBounciness && !a && !t)) {
1266
+ if (Sn(r, c.transform, y.moveX, y.moveY, u, e.reportMoves), un(e, r, c), xn(p, e.tick), _.hasBounciness || a || t) {
1257
1267
  _.forEachOverlapping(f, (n) => {
1258
- _.claimContact(r, n.entityId) && mn(e, _, f, n, l, u, y.moveX, y.moveY, a, t);
1268
+ _.claimContact(r, n.entityId) && gn(e, _, f, n, l, u, y.moveX, y.moveY, a, t);
1259
1269
  }, y.moveX, y.moveY);
1260
- for (let n of y.blocking) _.claimContact(r, n.entityId) && mn(e, _, f, n, l, u, y.moveX, y.moveY, a, t);
1270
+ for (let n of y.blocking) _.claimContact(r, n.entityId) && gn(e, _, f, n, l, u, y.moveX, y.moveY, a, t);
1261
1271
  }
1262
1272
  }, { physics: {
1263
1273
  collision: !0,
@@ -1266,60 +1276,60 @@ function dn(e = {}) {
1266
1276
  group: i
1267
1277
  } });
1268
1278
  return l.preRun = (e, t, n) => {
1269
- fn(e, c), e.dieAtImpact = (t, n) => {
1270
- gn(e, i ? s?.get(pn(t.components, i)) : o, t, n);
1279
+ mn(e, c), e.dieAtImpact = (t, n) => {
1280
+ vn(e, i ? s?.get(hn(t.components, i)) : o, t, n);
1271
1281
  };
1272
1282
  let r = e.elapsedTime / 1e3, a = n.collidable ?? [];
1273
1283
  if (!i) {
1274
- o = new Wt(a, r, e.dynamicsCommands);
1284
+ o = new qt(a, r, e.dynamicsCommands);
1275
1285
  return;
1276
1286
  }
1277
1287
  let l = /* @__PURE__ */ new Map();
1278
1288
  for (let t of a) {
1279
- let n = pn(t.components, i);
1289
+ let n = hn(t.components, i);
1280
1290
  if (e.skipGroup === n) continue;
1281
1291
  let r = l.get(n);
1282
1292
  r || (r = [], l.set(n, r)), r.push(t);
1283
1293
  }
1284
1294
  s = /* @__PURE__ */ new Map();
1285
- for (let [t, n] of l) s.set(t, new Wt(n, r, e.dynamicsCommands));
1295
+ for (let [t, n] of l) s.set(t, new qt(n, r, e.dynamicsCommands));
1286
1296
  }, l;
1287
1297
  }
1288
- function fn(e, t) {
1298
+ function mn(e, t) {
1289
1299
  let n = e, r = e.commandQueueId ?? 0, i = t.get(r);
1290
- i && (e.dynamicsCommands = jt(i, e.dynamicsCommands), t.delete(r));
1300
+ i && (e.dynamicsCommands = Ft(i, e.dynamicsCommands), t.delete(r));
1291
1301
  let a = () => {
1292
1302
  let e = t.get(r);
1293
1303
  return e || (e = /* @__PURE__ */ new Map(), t.set(r, e)), e;
1294
1304
  };
1295
1305
  n.queueForce = (e, t, n) => {
1296
- kt(a(), e, t, n, 0, 0);
1306
+ Nt(a(), e, t, n, 0, 0);
1297
1307
  }, n.queueImpulse = (e, t, n) => {
1298
- kt(a(), e, 0, 0, t, n);
1308
+ Nt(a(), e, 0, 0, t, n);
1299
1309
  }, n.queueVelocity = (e, t) => {
1300
- At(a(), e, t);
1310
+ Pt(a(), e, t);
1301
1311
  };
1302
1312
  }
1303
- function pn(e, t) {
1313
+ function hn(e, t) {
1304
1314
  let n = e[t.component];
1305
1315
  return n ? n[t.index] : 0;
1306
1316
  }
1307
- function mn(e, t, n, r, i, a, o, s, c, l) {
1308
- if ($t(n, r, c), !l) return;
1309
- let u = X(n.components), d = X(r.components);
1310
- un.x = 0, un.y = 0, t.contactNormal(n, r, o, s, un), l(e, n, r, i, a, {
1311
- normalX: un.x,
1312
- normalY: un.y
1313
- }), hn(e, n.entityId, n.components, u), hn(e, r.entityId, r.components, d);
1317
+ function gn(e, t, n, r, i, a, o, s, c, l) {
1318
+ if (tn(n, r, c), !l) return;
1319
+ let u = J(n.components), d = J(r.components);
1320
+ fn.x = 0, fn.y = 0, t.contactNormal(n, r, o, s, fn), l(e, n, r, i, a, {
1321
+ normalX: fn.x,
1322
+ normalY: fn.y
1323
+ }), _n(e, n.entityId, n.components, u), _n(e, r.entityId, r.components, d);
1314
1324
  }
1315
- function hn(e, t, n, r) {
1316
- let i = X(n);
1317
- (i.minX !== r.minX || i.minY !== r.minY || i.maxX !== r.maxX || i.maxY !== r.maxY) && cn(e, t, n);
1325
+ function _n(e, t, n, r) {
1326
+ let i = J(n);
1327
+ (i.minX !== r.minX || i.minY !== r.minY || i.maxX !== r.maxX || i.maxY !== r.maxY) && un(e, t, n);
1318
1328
  }
1319
- function gn(e, t, n, r) {
1329
+ function vn(e, t, n, r) {
1320
1330
  let i = n.components.body;
1321
- if (!i || xe(i)) return;
1322
- Se(i);
1331
+ if (!i || Te(i)) return;
1332
+ Ee(i);
1323
1333
  let a = n.components.transform, o = n.components.velocity, s = r.components.transform, c = r.components.body;
1324
1334
  if (!t || !a || !o || !s || !c) return;
1325
1335
  let l = e.elapsedTime / 1e3, u = o[0] * l, d = o[1] * l;
@@ -1336,34 +1346,34 @@ function gn(e, t, n, r) {
1336
1346
  } }, u, d);
1337
1347
  a[0] = f.x, a[1] = f.y;
1338
1348
  }
1339
- function _n(e, t, n, r, i) {
1349
+ function yn(e, t, n, r, i) {
1340
1350
  let a = e.elapsedTime / 1e3, o = n.interpolation;
1341
- Mt(e, t, n.velocity, n.dynamics), vn(o, n.transform, e.elapsedTime), bn(t, n.transform, n.velocity[0] * a, n.velocity[1] * a, i, e.reportMoves), cn(e, t, n), yn(o, e.tick);
1351
+ It(e, t, n.velocity, n.dynamics), bn(o, e.elapsedTime), Sn(t, n.transform, n.velocity[0] * a, n.velocity[1] * a, i, e.reportMoves), un(e, t, n), xn(o, e.tick);
1342
1352
  }
1343
- function vn(e, t, n) {
1344
- e && (a(e, 7, NaN), e[2] = t[0], e[3] = t[1], e[6] = n, e[8] += n);
1353
+ function bn(e, t) {
1354
+ e && (a(e, 4, NaN), e[3] = t, e[5] += t);
1345
1355
  }
1346
- function yn(e, t) {
1347
- e && a(e, 7, t);
1356
+ function xn(e, t) {
1357
+ e && a(e, 4, t);
1348
1358
  }
1349
- function bn(e, t, n, r, i, a) {
1350
- n === 0 && r === 0 || (n !== 0 && c(t, 0, n, Infinity), r !== 0 && c(t, 1, r, Infinity), a !== !1 && i.emitSystemEvent(ln, e));
1359
+ function Sn(e, t, n, r, i, a) {
1360
+ (n !== 0 || r !== 0) && (n !== 0 && c(t, 0, n, Infinity), r !== 0 && c(t, 1, r, Infinity), a !== !1 && i.emitSystemEvent(dn, e));
1351
1361
  }
1352
1362
  //#endregion
1353
1363
  //#region src/systems/physics-system.ts
1354
- var xn = 50, Sn = 1, Cn = class extends r {
1364
+ var Cn = 50, wn = 1, Tn = class extends r {
1355
1365
  spatialWorld;
1356
1366
  pendingDynamicsCommands = /* @__PURE__ */ new Map();
1357
- commandQueueId = Sn++;
1367
+ commandQueueId = wn++;
1358
1368
  tick = 0;
1359
1369
  reportMoves;
1360
1370
  skipGroup;
1361
1371
  constructor(e, t = {}) {
1362
- let n = t.updateFunction ?? _n, r = t.optional ?? n.physics?.optional ?? [], i = t.collision ?? n.physics?.collision ?? !1, a = n === _n || n.physics?.dynamics === !0, o = n.physics?.group, s = [];
1372
+ let n = t.updateFunction ?? yn, r = t.optional ?? n.physics?.optional ?? [], i = t.collision ?? n.physics?.collision ?? !1, a = n === yn || n.physics?.dynamics === !0, o = n.physics?.group, s = [];
1363
1373
  i && !r.includes("body") && s.push("body"), i && !r.includes("bounciness") && s.push("bounciness"), i && !r.includes("polygon") && s.push("polygon"), r.includes("interpolation") || s.push("interpolation"), a && !r.includes("dynamics") && s.push("dynamics"), i && s.push("entity"), o && !r.includes(o.component) && s.push(o.component);
1364
1374
  let c = s.length ? [...s, ...r] : r, l = r.includes("bounciness") ? [...r] : ["bounciness", ...r];
1365
1375
  l.includes("polygon") || l.push("polygon"), a && !l.includes("dynamics") && l.push("dynamics"), o && !l.includes(o.component) && l.push(o.component);
1366
- let u = i ? { [Vt]: {
1376
+ let u = i ? { [Wt]: {
1367
1377
  required: ["transform", "body"],
1368
1378
  optional: [
1369
1379
  "velocity",
@@ -1374,7 +1384,7 @@ var xn = 50, Sn = 1, Cn = class extends r {
1374
1384
  } } : void 0, d = u || t.queries ? {
1375
1385
  ...u,
1376
1386
  ...t.queries
1377
- } : void 0, f = wn(t.scope, t.filter);
1387
+ } : void 0, f = En(t.scope, t.filter);
1378
1388
  super(e, {
1379
1389
  name: t.name ?? "PhysicsSystem",
1380
1390
  deltaBetweenRuns: t.deltaBetweenRuns ?? 50,
@@ -1392,7 +1402,7 @@ var xn = 50, Sn = 1, Cn = class extends r {
1392
1402
  }
1393
1403
  startInterpolation(e) {
1394
1404
  let t = this.deltaBetweenRuns;
1395
- t <= 0 || Ke(e, {
1405
+ t <= 0 || Xe(e, {
1396
1406
  stepMs: t,
1397
1407
  stepFraction: this.currentDelta / t,
1398
1408
  tick: this.tick
@@ -1406,14 +1416,14 @@ var xn = 50, Sn = 1, Cn = class extends r {
1406
1416
  }
1407
1417
  queueVelocity(e, t) {
1408
1418
  let n = typeof e == "number" ? e : e.eid;
1409
- At(this.pendingDynamicsCommands, n, t);
1419
+ Pt(this.pendingDynamicsCommands, n, t);
1410
1420
  }
1411
1421
  addDataToWorld(e) {
1412
- e.tick = ++this.tick, ft(this.spatialWorld, e), e.reportMoves = this.reportMoves ?? this.listenerCount("position-updated") > 0, e.skipGroup = this.skipGroup, e.commandQueueId = this.commandQueueId, e.dynamicsCommands = this.snapshotDynamicsCommands();
1422
+ e.tick = ++this.tick, gt(this.spatialWorld, e), e.reportMoves = this.reportMoves ?? this.listenerCount("position-updated") > 0, e.skipGroup = this.skipGroup, e.commandQueueId = this.commandQueueId, e.dynamicsCommands = this.snapshotDynamicsCommands();
1413
1423
  }
1414
1424
  queueDynamics(e, t, n, r, i) {
1415
1425
  let a = typeof e == "number" ? e : e.eid;
1416
- kt(this.pendingDynamicsCommands, a, t, n, r, i);
1426
+ Nt(this.pendingDynamicsCommands, a, t, n, r, i);
1417
1427
  }
1418
1428
  snapshotDynamicsCommands() {
1419
1429
  if (this.pendingDynamicsCommands.size === 0) return;
@@ -1429,39 +1439,42 @@ var xn = 50, Sn = 1, Cn = class extends r {
1429
1439
  return n;
1430
1440
  }
1431
1441
  };
1432
- function wn(e, t) {
1442
+ function En(e, t) {
1433
1443
  return e ? t ? (n) => e(n) && t(n) : e : t;
1434
1444
  }
1435
1445
  //#endregion
1436
1446
  //#region src/systems/interpolation-update.ts
1437
- var Tn = 1.5, En = .5, Dn = (e, t, n) => {
1438
- let r = n.interpolation, a = n.transform, o = i(r, 7), s = r[6], c = r[8], l = a[0], u = a[1], d = i(r, 7);
1439
- if (o !== d) return;
1447
+ var Dn = 1.5, On = .5, kn = (e, t, n) => {
1448
+ let r = n.interpolation, a = n.transform, o = i(r, 4), s = r[3], c = r[5], l = a[0], u = a[1], d = i(r, 4);
1449
+ if (o !== d) {
1450
+ if (s = r[10], s <= 0 || r[7] <= 0) return;
1451
+ l = r[8], u = r[9], c = r[6], d = r[2];
1452
+ } else r[8] = l, r[9] = u, r[10] = s;
1440
1453
  if (s <= 0) {
1441
- r[4] = 1, r[5] = d, r[9] = c, r[10] = 0, r[0] = l, r[1] = u;
1454
+ r[2] = d, r[6] = c, r[7] = 0, r[0] = l, r[1] = u;
1442
1455
  return;
1443
1456
  }
1444
- let f = r[4], p = r[10];
1445
- if (d !== r[5]) {
1446
- let e = r[9], t = c >= e ? c - e : s;
1447
- p += t, r[9] = c, f = 0, r[5] = d;
1457
+ let f = r[7];
1458
+ if (d !== r[2]) {
1459
+ let e = r[6], t = c >= e ? c - e : s;
1460
+ f += t, r[6] = c, r[2] = d;
1448
1461
  }
1449
- if (f += e.elapsedTime / s, f > 1 && (f = 1), r[4] = f, p <= 0) {
1450
- r[10] = 0, r[0] = l, r[1] = u;
1462
+ if (f <= 0) {
1463
+ r[7] = 0, r[0] = l, r[1] = u;
1451
1464
  return;
1452
1465
  }
1453
- let m = Math.min(Math.max(e.elapsedTime, 0), p), h = s * Tn, g = p - m;
1454
- g > h && (m += Math.min(g - h, m * En));
1455
- let _ = m / p, v = r[0], y = r[1];
1456
- r[0] = v + (l - v) * _, r[1] = y + (u - y) * _, r[10] = p - m;
1457
- }, On = class extends r {
1466
+ let p = Math.min(Math.max(e.elapsedTime, 0), f), m = s * Dn, h = f - p;
1467
+ h > m && (p += Math.min(h - m, p * On));
1468
+ let g = p / f, _ = r[0], v = r[1];
1469
+ r[0] = _ + (l - _) * g, r[1] = v + (u - v) * g, r[7] = f - p;
1470
+ }, An = class extends r {
1458
1471
  constructor(e, t = {}) {
1459
1472
  super(e, {
1460
1473
  name: t.name ?? "InterpolationSystem",
1461
1474
  deltaBetweenRuns: 0,
1462
1475
  firstRun: t.firstRun,
1463
1476
  required: ["transform", "interpolation"],
1464
- updateFunction: Dn,
1477
+ updateFunction: kn,
1465
1478
  forceMainThread: t.forceMainThread ?? !t.getWorker,
1466
1479
  getWorker: t.getWorker ?? (() => {
1467
1480
  throw Error("InterpolationSystem cannot start a worker: no getWorker was supplied");
@@ -1470,6 +1483,6 @@ var Tn = 1.5, En = .5, Dn = (e, t, n) => {
1470
1483
  }
1471
1484
  };
1472
1485
  //#endregion
1473
- export { pe as BODY_CATEGORY_INDEX, ve as BODY_CCD_FLAG, ye as BODY_DYING_FLAG, fe as BODY_FLAGS_INDEX, me as BODY_MASK_INDEX, _e as BODY_SENSOR_FLAG, ge as BODY_SHAPE_MASK, he as BODY_SIZE, De as BOUNCINESS_INDEX, Oe as BOUNCINESS_SIZE, Vt as COLLIDABLE_QUERY, Wt as CollisionBroadphase, le as DEFAULT_COLLIDE_CATEGORY, ue as DEFAULT_COLLIDE_MASK, xn as DEFAULT_PHYSICS_STEP_MS, N as DYNAMICS_ACCELERATION_X_INDEX, ee as DYNAMICS_ACCELERATION_Y_INDEX, P as DYNAMICS_INVERSE_MASS_INDEX, F as DYNAMICS_SIZE, Le as INTERPOLATION_DURATION_INDEX, Ne as INTERPOLATION_PREV_X_INDEX, Pe as INTERPOLATION_PREV_Y_INDEX, Fe as INTERPOLATION_PROGRESS_INDEX, Ve as INTERPOLATION_REMAINING_DURATION_INDEX, He as INTERPOLATION_SIZE, Be as INTERPOLATION_SYNCED_DURATION_INDEX, Ie as INTERPOLATION_SYNCED_TICK_INDEX, Re as INTERPOLATION_TICK_INDEX, ze as INTERPOLATION_TOTAL_DURATION_INDEX, je as INTERPOLATION_X_INDEX, Me as INTERPOLATION_Y_INDEX, On as InterpolationSystem, l as MAX_POLYGON_VERTICES, f as POLYGON_SIZE, u as POLYGON_VERTEX_COUNT_INDEX, d as POLYGON_VERTICES_INDEX, ln as POSITION_UPDATED_EVENT, mt as PhysicalWorld, Cn as PhysicsSystem, oe as SHAPE_CAPSULE, ae as SHAPE_CIRCLE, se as SHAPE_POLYGON, ie as SHAPE_RECTANGLE, Zt as SpatialIndex, S as TRANSFORM_ANGLE_INDEX, x as TRANSFORM_HEIGHT_INDEX, C as TRANSFORM_SIZE, b as TRANSFORM_WIDTH_INDEX, v as TRANSFORM_X_INDEX, y as TRANSFORM_Y_INDEX, O as VELOCITY_DAMPING_INDEX, k as VELOCITY_SIZE, E as VELOCITY_X_INDEX, D as VELOCITY_Y_INDEX, ft as addPhysicalWorldData, we as bodyDefinition, L as bodyShape, Ae as bouncinessDefinition, rt as boundsHalfHeight, nt as boundsHalfWidth, de as canCollide, V as capsuleHalfLength, Ye as contactNormal, dn as createPhysicsUpdate, te as dynamicsDefinition, pt as getSpatialMap, Mt as integrateDynamics, We as interpolationDefinition, Dn as interpolationUpdate, be as isContinuous, xe as isDying, R as isSensor, Se as markDying, it as orientedBoxesOverlap, qe as physicsRegistry, _n as physicsUpdate, J as pointSegmentDistanceSquared, vt as polygonContactNormal, m as polygonDefinition, _t as polygonShapesOverlap, h as preparePolygon, ot as segmentBoxDistanceSquared, at as segmentSegmentDistanceSquared, G as shapeHalfHeight, W as shapeHalfWidth, U as shapeIsEmpty, H as shapeRadius, Je as shapesOverlap, Ge as snapEntity, Ke as startSpawnInterpolation, T as transformDefinition, cn as updateSpatialMap, j as velocityDefinition };
1486
+ export { Se as BODY_BLOCKS_PATH_FLAG, he as BODY_CATEGORY_INDEX, be as BODY_CCD_FLAG, xe as BODY_DYING_FLAG, me as BODY_FLAGS_INDEX, ge as BODY_MASK_INDEX, ye as BODY_SENSOR_FLAG, ve as BODY_SHAPE_MASK, _e as BODY_SIZE, je as BOUNCINESS_INDEX, Me as BOUNCINESS_SIZE, Wt as COLLIDABLE_QUERY, qt as CollisionBroadphase, de as DEFAULT_COLLIDE_CATEGORY, fe as DEFAULT_COLLIDE_MASK, Cn as DEFAULT_PHYSICS_STEP_MS, N as DYNAMICS_ACCELERATION_X_INDEX, ee as DYNAMICS_ACCELERATION_Y_INDEX, te as DYNAMICS_INVERSE_MASS_INDEX, ne as DYNAMICS_SIZE, Re as INTERPOLATION_DURATION_INDEX, He as INTERPOLATION_REMAINING_DURATION_INDEX, Ke as INTERPOLATION_SIZE, Ve as INTERPOLATION_SYNCED_DURATION_INDEX, Ge as INTERPOLATION_SYNCED_STEP_DURATION_INDEX, Le as INTERPOLATION_SYNCED_TICK_INDEX, Ue as INTERPOLATION_TARGET_X_INDEX, We as INTERPOLATION_TARGET_Y_INDEX, ze as INTERPOLATION_TICK_INDEX, Be as INTERPOLATION_TOTAL_DURATION_INDEX, Fe as INTERPOLATION_X_INDEX, Ie as INTERPOLATION_Y_INDEX, An as InterpolationSystem, l as MAX_POLYGON_VERTICES, f as POLYGON_SIZE, u as POLYGON_VERTEX_COUNT_INDEX, d as POLYGON_VERTICES_INDEX, dn as POSITION_UPDATED_EVENT, vt as PhysicalWorld, Tn as PhysicsSystem, ce as SHAPE_CAPSULE, se as SHAPE_CIRCLE, le as SHAPE_POLYGON, oe as SHAPE_RECTANGLE, $t as SpatialIndex, S as TRANSFORM_ANGLE_INDEX, x as TRANSFORM_HEIGHT_INDEX, C as TRANSFORM_SIZE, b as TRANSFORM_WIDTH_INDEX, v as TRANSFORM_X_INDEX, y as TRANSFORM_Y_INDEX, O as VELOCITY_DAMPING_INDEX, k as VELOCITY_SIZE, E as VELOCITY_X_INDEX, D as VELOCITY_Y_INDEX, gt as addPhysicalWorldData, we as blocksPath, Oe as bodyDefinition, F as bodyShape, Pe as bouncinessDefinition, ct as boundsHalfHeight, st as boundsHalfWidth, pe as canCollide, z as capsuleHalfLength, et as contactNormal, pn as createPhysicsUpdate, re as dynamicsDefinition, _t as getSpatialMap, It as integrateDynamics, Je as interpolationDefinition, kn as interpolationUpdate, Ce as isContinuous, Te as isDying, I as isSensor, Ee as markDying, lt as orientedBoxesOverlap, Ze as physicsRegistry, yn as physicsUpdate, K as pointSegmentDistanceSquared, St as polygonContactNormal, m as polygonDefinition, xt as polygonShapesOverlap, h as preparePolygon, dt as segmentBoxDistanceSquared, ut as segmentSegmentDistanceSquared, H as shapeHalfHeight, V as shapeHalfWidth, B as shapeIsEmpty, Qe as shapeRadius, $e as shapesOverlap, Ye as snapEntity, Xe as startSpawnInterpolation, T as transformDefinition, un as updateSpatialMap, j as velocityDefinition };
1474
1487
 
1475
1488
  //# sourceMappingURL=index.js.map