@daneren2005/shared-memory-physics 1.7.0 → 1.7.2
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/README.md +30 -14
- package/dist/components/interpolation-component.d.ts +9 -1
- package/dist/components/polygon-component.d.ts +3 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.js +368 -311
- package/dist/index.js.map +1 -1
- package/dist/math/shapes.d.ts +1 -0
- package/dist/systems/interpolation-channels.d.ts +6 -0
- package/dist/systems/interpolation-system.d.ts +3 -1
- package/dist/systems/interpolation-update.d.ts +5 -2
- package/dist/systems/physics-system.d.ts +3 -0
- package/dist/systems/physics-update.d.ts +1 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -13,29 +13,29 @@ var l = 16, u = 0, d = 1, f = 33, p = class extends t {
|
|
|
13
13
|
size: 33,
|
|
14
14
|
loadProperties: ["vertices"],
|
|
15
15
|
toBlock(e) {
|
|
16
|
-
let t = h(e.vertices);
|
|
16
|
+
let t = h(e.vertices, e.width, e.height);
|
|
17
17
|
return [t.vertices.length / 2, ...t.vertices];
|
|
18
18
|
},
|
|
19
19
|
attach(e, t, n) {
|
|
20
20
|
return new p(t.getBlock(n), n);
|
|
21
21
|
}
|
|
22
22
|
};
|
|
23
|
-
function h(e) {
|
|
23
|
+
function h(e, t, n) {
|
|
24
24
|
if (!e || e.length < 3 || e.length > 16) throw Error("A polygon needs between 3 and 16 vertices");
|
|
25
|
-
let
|
|
26
|
-
for (let [
|
|
27
|
-
if (!Number.isFinite(
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
let
|
|
31
|
-
if (
|
|
32
|
-
let
|
|
25
|
+
let r = Infinity, i = Infinity, a = -Infinity, o = -Infinity;
|
|
26
|
+
for (let [t, n] of e) {
|
|
27
|
+
if (!Number.isFinite(t) || !Number.isFinite(n)) throw Error("Polygon vertices must be finite numbers");
|
|
28
|
+
r = Math.min(r, t), i = Math.min(i, n), a = Math.max(a, t), o = Math.max(o, n);
|
|
29
|
+
}
|
|
30
|
+
let s = a - r, c = o - i;
|
|
31
|
+
if (s <= 0 || c <= 0) throw Error("A polygon must have nonzero width and height");
|
|
32
|
+
let l = 0;
|
|
33
33
|
for (let t = 0; t < e.length; t++) {
|
|
34
34
|
let n = e[(t + e.length - 1) % e.length], r = e[t], i = e[(t + 1) % e.length], a = (r[0] - n[0]) * (i[1] - r[1]) - (r[1] - n[1]) * (i[0] - r[0]);
|
|
35
35
|
if (a === 0) throw Error("A polygon cannot contain duplicate or collinear adjacent vertices");
|
|
36
36
|
let o = Math.sign(a);
|
|
37
|
-
if (
|
|
38
|
-
else if (o !==
|
|
37
|
+
if (l === 0) l = o;
|
|
38
|
+
else if (o !== l) throw Error("Polygon vertices must describe a convex polygon in boundary order");
|
|
39
39
|
}
|
|
40
40
|
for (let t = 0; t < e.length; t++) {
|
|
41
41
|
let n = e[t], r = e[(t + 1) % e.length];
|
|
@@ -45,12 +45,18 @@ function h(e) {
|
|
|
45
45
|
if (g(n, r, a, o)) throw Error("Polygon edges cannot cross or share non-adjacent vertices");
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
if (t === void 0 != (n === void 0)) throw Error("A sized polygon needs both a width and a height");
|
|
49
|
+
let u = t !== void 0 && n !== void 0;
|
|
50
|
+
if (u) {
|
|
51
|
+
if (!(t > 0) || !(n > 0)) throw Error("A sized polygon needs a positive width and height");
|
|
52
|
+
if (r < -t / 2 || a > t / 2 || i < -n / 2 || o > n / 2) throw Error("Polygon vertices must fit inside the width and height they are given with");
|
|
53
|
+
}
|
|
54
|
+
let d = u ? t : s, f = u ? n : c, p = u ? 0 : (r + a) / 2, m = u ? 0 : (i + o) / 2, h = [], _ = l > 0 ? e : e.toReversed();
|
|
55
|
+
for (let [e, t] of _) h.push((e - p) / d, (t - m) / f);
|
|
50
56
|
return {
|
|
51
|
-
width:
|
|
52
|
-
height:
|
|
53
|
-
vertices:
|
|
57
|
+
width: d,
|
|
58
|
+
height: f,
|
|
59
|
+
vertices: h
|
|
54
60
|
};
|
|
55
61
|
}
|
|
56
62
|
function g(e, t, n, r) {
|
|
@@ -105,8 +111,8 @@ var v = 0, y = 1, b = 2, x = 3, S = 4, C = 5, w = class extends t {
|
|
|
105
111
|
toBlock(e) {
|
|
106
112
|
let t = e.radius, n = e.vertices, r = e.width, i = e.height;
|
|
107
113
|
if (n !== void 0) {
|
|
108
|
-
if (t !== void 0
|
|
109
|
-
let e = h(n);
|
|
114
|
+
if (t !== void 0) throw Error("A transform takes polygon vertices or a radius, not both");
|
|
115
|
+
let e = h(n, r, i);
|
|
110
116
|
r = e.width, i = e.height;
|
|
111
117
|
}
|
|
112
118
|
if (t !== void 0) {
|
|
@@ -182,26 +188,26 @@ function M(e) {
|
|
|
182
188
|
}
|
|
183
189
|
//#endregion
|
|
184
190
|
//#region src/components/dynamics-component.ts
|
|
185
|
-
var N = 0,
|
|
191
|
+
var N = 0, P = 1, ee = 2, F = 3, I = class extends t {
|
|
186
192
|
get accelerationX() {
|
|
187
193
|
return this.block[0];
|
|
188
194
|
}
|
|
189
195
|
set accelerationX(e) {
|
|
190
|
-
|
|
196
|
+
re(e, "Acceleration"), this.block[0] = e;
|
|
191
197
|
}
|
|
192
198
|
get accelerationY() {
|
|
193
199
|
return this.block[1];
|
|
194
200
|
}
|
|
195
201
|
set accelerationY(e) {
|
|
196
|
-
|
|
202
|
+
re(e, "Acceleration"), this.block[1] = e;
|
|
197
203
|
}
|
|
198
204
|
get mass() {
|
|
199
205
|
return 1 / this.block[2];
|
|
200
206
|
}
|
|
201
207
|
set mass(e) {
|
|
202
|
-
|
|
208
|
+
ne(e), this.block[2] = 1 / e;
|
|
203
209
|
}
|
|
204
|
-
},
|
|
210
|
+
}, te = {
|
|
205
211
|
type: Float32Array,
|
|
206
212
|
size: 3,
|
|
207
213
|
loadProperties: [
|
|
@@ -211,14 +217,14 @@ var N = 0, ee = 1, te = 2, ne = 3, P = class extends t {
|
|
|
211
217
|
],
|
|
212
218
|
toBlock(e) {
|
|
213
219
|
let t = e.accelerationX ?? 0, n = e.accelerationY ?? 0, r = e.mass ?? 1;
|
|
214
|
-
return
|
|
220
|
+
return re(t, "Acceleration"), re(n, "Acceleration"), ne(r), [
|
|
215
221
|
t,
|
|
216
222
|
n,
|
|
217
223
|
1 / r
|
|
218
224
|
];
|
|
219
225
|
},
|
|
220
226
|
attach(e, t, n) {
|
|
221
|
-
return new
|
|
227
|
+
return new I(t.getBlock(n), n);
|
|
222
228
|
},
|
|
223
229
|
save(e) {
|
|
224
230
|
return {
|
|
@@ -228,43 +234,43 @@ var N = 0, ee = 1, te = 2, ne = 3, P = class extends t {
|
|
|
228
234
|
};
|
|
229
235
|
}
|
|
230
236
|
};
|
|
231
|
-
function
|
|
237
|
+
function ne(e) {
|
|
232
238
|
if (!Number.isFinite(e) || e <= 0) throw Error("Mass must be a finite number greater than zero");
|
|
233
239
|
}
|
|
234
|
-
function
|
|
240
|
+
function re(e, t) {
|
|
235
241
|
if (!Number.isFinite(e)) throw Error(`${t} must be a finite number`);
|
|
236
242
|
}
|
|
237
243
|
//#endregion
|
|
238
244
|
//#region src/components/body-component.ts
|
|
239
|
-
var
|
|
245
|
+
var ie = 1, ae = 2, oe = 3, se = 4, ce = [
|
|
240
246
|
1,
|
|
241
247
|
2,
|
|
242
248
|
3,
|
|
243
249
|
4
|
|
244
|
-
],
|
|
245
|
-
function
|
|
250
|
+
], le = 1, ue = 4294967295;
|
|
251
|
+
function de(e, t, n, r) {
|
|
246
252
|
return (t & n) !== 0 && (r & e) !== 0;
|
|
247
253
|
}
|
|
248
|
-
var
|
|
249
|
-
function
|
|
254
|
+
var fe = 0, pe = 1, me = 2, he = 3, ge = 7, _e = 8, ve = 16, ye = 32, be = 64;
|
|
255
|
+
function L(e) {
|
|
250
256
|
return e[0] & 7;
|
|
251
257
|
}
|
|
252
|
-
function
|
|
258
|
+
function R(e) {
|
|
253
259
|
return !!(e[0] & 8);
|
|
254
260
|
}
|
|
255
|
-
function
|
|
261
|
+
function xe(e) {
|
|
256
262
|
return !!(e[0] & 16);
|
|
257
263
|
}
|
|
258
|
-
function
|
|
264
|
+
function Se(e) {
|
|
259
265
|
return !!(e[0] & 64);
|
|
260
266
|
}
|
|
261
|
-
function
|
|
267
|
+
function Ce(e) {
|
|
262
268
|
return !!(e[0] & 32);
|
|
263
269
|
}
|
|
264
|
-
function
|
|
270
|
+
function we(e) {
|
|
265
271
|
e[0] |= 32;
|
|
266
272
|
}
|
|
267
|
-
var
|
|
273
|
+
var Te = class extends t {
|
|
268
274
|
get shape() {
|
|
269
275
|
return this.block[0] & 7;
|
|
270
276
|
}
|
|
@@ -301,7 +307,7 @@ var De = class extends t {
|
|
|
301
307
|
set blocksPath(e) {
|
|
302
308
|
this.block[0] = e ? this.block[0] | 64 : this.block[0] & -65;
|
|
303
309
|
}
|
|
304
|
-
},
|
|
310
|
+
}, Ee = {
|
|
305
311
|
type: Uint32Array,
|
|
306
312
|
size: 3,
|
|
307
313
|
loadProperties: [
|
|
@@ -318,36 +324,36 @@ var De = class extends t {
|
|
|
318
324
|
],
|
|
319
325
|
toBlock(e) {
|
|
320
326
|
return [
|
|
321
|
-
|
|
327
|
+
De(e),
|
|
322
328
|
e.collideCategory ?? 1,
|
|
323
329
|
e.collideMask ?? 4294967295
|
|
324
330
|
];
|
|
325
331
|
},
|
|
326
332
|
attach(e, t, n) {
|
|
327
|
-
return new
|
|
333
|
+
return new Te(t.getBlock(n), n);
|
|
328
334
|
}
|
|
329
335
|
};
|
|
330
|
-
function
|
|
331
|
-
let t =
|
|
336
|
+
function De(e) {
|
|
337
|
+
let t = Oe(e);
|
|
332
338
|
return e.sensor && (t |= 8), e.continuousCollisionDetection && (t |= 16), e.blocksPath && (t |= 64), t;
|
|
333
339
|
}
|
|
334
|
-
function
|
|
340
|
+
function Oe(e) {
|
|
335
341
|
let t = e.shape;
|
|
336
342
|
if (t === void 0) return e.vertices === void 0 ? e.radius === void 0 ? 1 : 2 : 4;
|
|
337
|
-
if (!
|
|
343
|
+
if (!ce.includes(t)) throw Error(`Unknown body shape: ${t}`);
|
|
338
344
|
if (t === 4 && e.vertices === void 0) throw Error("A polygon body requires vertices");
|
|
339
345
|
return t;
|
|
340
346
|
}
|
|
341
347
|
//#endregion
|
|
342
348
|
//#region src/components/bounciness-component.ts
|
|
343
|
-
var
|
|
349
|
+
var ke = 0, Ae = 1, je = class extends t {
|
|
344
350
|
get bounciness() {
|
|
345
351
|
return this.block[0];
|
|
346
352
|
}
|
|
347
353
|
set bounciness(e) {
|
|
348
354
|
this.block[0] = e;
|
|
349
355
|
}
|
|
350
|
-
},
|
|
356
|
+
}, Me = {
|
|
351
357
|
type: Float32Array,
|
|
352
358
|
size: 1,
|
|
353
359
|
loadProperties: ["bounciness"],
|
|
@@ -355,9 +361,9 @@ var je = 0, Me = 1, Ne = class extends t {
|
|
|
355
361
|
return [e.bounciness ?? 0];
|
|
356
362
|
},
|
|
357
363
|
attach(e, t, n) {
|
|
358
|
-
return new
|
|
364
|
+
return new je(t.getBlock(n), n);
|
|
359
365
|
}
|
|
360
|
-
},
|
|
366
|
+
}, Ne = 0, Pe = 1, Fe = 2, Ie = 3, Le = 4, Re = 5, ze = 6, Be = 7, Ve = 8, He = 9, Ue = 10, We = 11, Ge = 12, Ke = 13, qe = 14, Je = 15, Ye = 16, Xe = 17, Ze = class extends t {
|
|
361
367
|
get x() {
|
|
362
368
|
return this.block[0];
|
|
363
369
|
}
|
|
@@ -418,15 +424,27 @@ var je = 0, Me = 1, Ne = class extends t {
|
|
|
418
424
|
set syncedStepDuration(e) {
|
|
419
425
|
this.block[10] = e;
|
|
420
426
|
}
|
|
427
|
+
get previousX() {
|
|
428
|
+
return this.block[12];
|
|
429
|
+
}
|
|
430
|
+
set previousX(e) {
|
|
431
|
+
this.block[12] = e;
|
|
432
|
+
}
|
|
433
|
+
get previousY() {
|
|
434
|
+
return this.block[13];
|
|
435
|
+
}
|
|
436
|
+
set previousY(e) {
|
|
437
|
+
this.block[13] = e;
|
|
438
|
+
}
|
|
421
439
|
get remainingDuration() {
|
|
422
440
|
return this.block[7];
|
|
423
441
|
}
|
|
424
442
|
set remainingDuration(e) {
|
|
425
443
|
this.block[7] = e;
|
|
426
444
|
}
|
|
427
|
-
},
|
|
445
|
+
}, Qe = {
|
|
428
446
|
type: Float32Array,
|
|
429
|
-
size:
|
|
447
|
+
size: 17,
|
|
430
448
|
loadProperties: ["interpolate"],
|
|
431
449
|
toBlock(e) {
|
|
432
450
|
let t = e.x ?? 0, n = e.y ?? 0;
|
|
@@ -441,18 +459,24 @@ var je = 0, Me = 1, Ne = class extends t {
|
|
|
441
459
|
0,
|
|
442
460
|
t,
|
|
443
461
|
n,
|
|
462
|
+
0,
|
|
463
|
+
0,
|
|
464
|
+
t,
|
|
465
|
+
n,
|
|
466
|
+
0,
|
|
467
|
+
0,
|
|
444
468
|
0
|
|
445
469
|
];
|
|
446
470
|
},
|
|
447
471
|
attach(e, t, n) {
|
|
448
|
-
return new
|
|
472
|
+
return new Ze(t.getBlock(n), n);
|
|
449
473
|
}
|
|
450
474
|
};
|
|
451
|
-
function
|
|
475
|
+
function $e(e) {
|
|
452
476
|
let { transform: t, interpolation: n } = e.components;
|
|
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);
|
|
477
|
+
t && n && (n.targetX = n.x = t.x, n.targetY = n.y = t.y, n.previousX = t.x, n.previousY = t.y, n.remainingDuration = 0, n.syncedStepDuration = 0, n.syncedDuration = n.totalDuration);
|
|
454
478
|
}
|
|
455
|
-
function
|
|
479
|
+
function et(e, t) {
|
|
456
480
|
let { transform: n, velocity: r, interpolation: i } = e.components;
|
|
457
481
|
if (!n || !r || !i) return;
|
|
458
482
|
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;
|
|
@@ -460,144 +484,147 @@ function Xe(e, t) {
|
|
|
460
484
|
}
|
|
461
485
|
//#endregion
|
|
462
486
|
//#region src/components/registry.ts
|
|
463
|
-
var
|
|
487
|
+
var tt = {
|
|
464
488
|
transform: T,
|
|
465
489
|
velocity: j,
|
|
466
|
-
body:
|
|
490
|
+
body: Ee,
|
|
467
491
|
polygon: m,
|
|
468
|
-
bounciness:
|
|
469
|
-
dynamics:
|
|
470
|
-
interpolation:
|
|
471
|
-
},
|
|
492
|
+
bounciness: Me,
|
|
493
|
+
dynamics: te,
|
|
494
|
+
interpolation: Qe
|
|
495
|
+
}, z = {
|
|
472
496
|
x: 0,
|
|
473
497
|
y: 0
|
|
474
|
-
},
|
|
498
|
+
}, B = {
|
|
475
499
|
x: 0,
|
|
476
500
|
y: 0
|
|
477
501
|
};
|
|
478
|
-
function
|
|
479
|
-
return Math.
|
|
502
|
+
function V(e, t) {
|
|
503
|
+
return Math.abs(e - t) / 2;
|
|
504
|
+
}
|
|
505
|
+
function H(e, t, n) {
|
|
506
|
+
return t > e ? n + Math.PI / 2 : n;
|
|
480
507
|
}
|
|
481
|
-
function
|
|
482
|
-
return e === 2 ? t / 2 : e === 3 ? n / 2 : 0;
|
|
508
|
+
function U(e, t, n) {
|
|
509
|
+
return e === 2 ? t / 2 : e === 3 ? Math.min(t, n) / 2 : 0;
|
|
483
510
|
}
|
|
484
|
-
function
|
|
485
|
-
return e === 2 ? t <= 0 :
|
|
511
|
+
function W(e, t, n) {
|
|
512
|
+
return e === 2 ? t <= 0 : t <= 0 || n <= 0;
|
|
486
513
|
}
|
|
487
|
-
function
|
|
488
|
-
return e === 2 ? t / 2 : e === 3 ? Math.abs(Math.cos(r)) *
|
|
514
|
+
function nt(e, t, n, r) {
|
|
515
|
+
return e === 2 ? t / 2 : e === 3 ? Math.abs(Math.cos(H(t, n, r))) * V(t, n) + Math.min(t, n) / 2 : pt(t, n, r);
|
|
489
516
|
}
|
|
490
|
-
function
|
|
491
|
-
return e === 2 ? t / 2 : e === 3 ? Math.abs(Math.sin(r)) *
|
|
517
|
+
function rt(e, t, n, r) {
|
|
518
|
+
return e === 2 ? t / 2 : e === 3 ? Math.abs(Math.sin(H(t, n, r))) * V(t, n) + Math.min(t, n) / 2 : mt(t, n, r);
|
|
492
519
|
}
|
|
493
|
-
function
|
|
494
|
-
if (
|
|
520
|
+
function it(e, t, n, r, i, a, o, s, c, l, u, d) {
|
|
521
|
+
if (W(e, r, i) || W(o, l, u)) return !1;
|
|
495
522
|
let f = e !== 1, p = o !== 1;
|
|
496
|
-
if (!f && !p) return
|
|
497
|
-
if (f && !p) return
|
|
498
|
-
let m =
|
|
499
|
-
if (!f) return
|
|
500
|
-
let
|
|
501
|
-
return
|
|
523
|
+
if (!f && !p) return ht(t, n, r, i, a, s, c, l, u, d);
|
|
524
|
+
if (f && !p) return it(o, s, c, l, u, d, e, t, n, r, i, a);
|
|
525
|
+
let m = at(o, l, u), h = H(l, u, d), g = Math.cos(h) * m, _ = Math.sin(h) * m, v = U(o, l, u);
|
|
526
|
+
if (!f) return _t(s - g, c - _, s + g, c + _, t, n, r, i, a) < v * v;
|
|
527
|
+
let y = at(e, r, i), b = H(r, i, a), x = Math.cos(b) * y, S = Math.sin(b) * y, C = U(e, r, i) + v;
|
|
528
|
+
return gt(t - x, n - S, t + x, n + S, s - g, c - _, s + g, c + _) < C * C;
|
|
502
529
|
}
|
|
503
|
-
function
|
|
504
|
-
return e === 3 ?
|
|
530
|
+
function at(e, t, n) {
|
|
531
|
+
return e === 3 ? V(t, n) : 0;
|
|
505
532
|
}
|
|
506
|
-
function
|
|
533
|
+
function ot(e, t, n, r, i, a, o, s, c, l, u, d, f) {
|
|
507
534
|
let p = e !== 1, m = o !== 1;
|
|
508
|
-
return !p && !m ?
|
|
535
|
+
return !p && !m ? st(t, n, r, i, a, s, c, l, u, d, f) : p && m ? ct(e, t, n, r, i, a, o, s, c, l, u, d, f) : p ? lt(s, c, l, u, d, e, t, n, r, i, a, f) : lt(t, n, r, i, a, o, s, c, l, u, d, f) ? (f.x = -f.x, f.y = -f.y, !0) : !1;
|
|
509
536
|
}
|
|
510
|
-
function
|
|
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 =
|
|
537
|
+
function st(e, t, n, r, i, a, o, s, c, l, u) {
|
|
538
|
+
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 = G(d, f, y, b, h, g, d, f, _, v, p, m);
|
|
512
539
|
u.x = d, u.y = f;
|
|
513
|
-
let S =
|
|
514
|
-
return S < x && (x = S, u.x = -f, u.y = d), S =
|
|
540
|
+
let S = G(-f, d, y, b, h, g, d, f, _, v, p, m);
|
|
541
|
+
return S < x && (x = S, u.x = -f, u.y = d), S = G(p, m, y, b, h, g, d, f, _, v, p, m), S < x && (x = S, u.x = p, u.y = m), S = G(-m, p, y, b, h, g, d, f, _, v, p, m), S < x && (u.x = -m, u.y = p), dt(y, b, u), !0;
|
|
515
542
|
}
|
|
516
|
-
function
|
|
517
|
-
let p =
|
|
518
|
-
return
|
|
543
|
+
function ct(e, t, n, r, i, a, o, s, c, l, u, d, f) {
|
|
544
|
+
let p = at(e, r, i), m = H(r, i, a), h = Math.cos(m) * p, g = Math.sin(m) * p, _ = at(o, l, u), v = H(l, u, d), y = Math.cos(v) * _, b = Math.sin(v) * _, x = Math.sqrt(gt(t - h, n - g, t + h, n + g, s - y, c - b, s + y, c + b, z));
|
|
545
|
+
return x > 0 ? (f.x = z.x / x, f.y = z.y / x, !0) : ft(t - s, n - c, f);
|
|
519
546
|
}
|
|
520
|
-
function
|
|
521
|
-
let f =
|
|
522
|
-
if (
|
|
523
|
-
let
|
|
547
|
+
function lt(e, t, n, r, i, a, o, s, c, l, u, d) {
|
|
548
|
+
let f = at(a, c, l), p = H(c, l, u), m = Math.cos(p) * f, h = Math.sin(p) * f, g = Math.sqrt(_t(o - m, s - h, o + m, s + h, e, t, n, r, i, z));
|
|
549
|
+
if (g > 0) return d.x = z.x / g, d.y = z.y / g, !0;
|
|
550
|
+
let _ = Math.cos(i), v = Math.sin(i), y = o - e, b = s - t, x = y * _ + b * v, S = -y * v + b * _, C = m * _ + h * v, w = -m * v + h * _, T = U(a, c, l), E = n / 2, D = r / 2, O = ut(1, 0, x, S, C, w, T, E, D);
|
|
524
551
|
d.x = 1, d.y = 0;
|
|
525
|
-
let
|
|
526
|
-
|
|
527
|
-
let
|
|
528
|
-
return d.x =
|
|
552
|
+
let k = ut(0, 1, x, S, C, w, T, E, D);
|
|
553
|
+
k < O && (O = k, d.x = 0, d.y = 1), ft(-w, C, B) && (k = ut(B.x, B.y, x, S, C, w, T, E, D), k < O && (d.x = B.x, d.y = B.y)), dt(x, S, d);
|
|
554
|
+
let A = d.x, j = d.y;
|
|
555
|
+
return d.x = A * _ - j * v, d.y = A * v + j * _, !0;
|
|
529
556
|
}
|
|
530
|
-
function
|
|
557
|
+
function ut(e, t, n, r, i, a, o, s, c) {
|
|
531
558
|
return s * Math.abs(e) + c * Math.abs(t) + (Math.abs(i * e + a * t) + o) - Math.abs(n * e + r * t);
|
|
532
559
|
}
|
|
533
|
-
function
|
|
560
|
+
function dt(e, t, n) {
|
|
534
561
|
e * n.x + t * n.y < 0 && (n.x = -n.x, n.y = -n.y);
|
|
535
562
|
}
|
|
536
|
-
function
|
|
563
|
+
function ft(e, t, n) {
|
|
537
564
|
let r = Math.sqrt(e * e + t * t);
|
|
538
565
|
return r !== 0 && (n.x = e / r, n.y = t / r, !0);
|
|
539
566
|
}
|
|
540
|
-
function
|
|
567
|
+
function pt(e, t, n) {
|
|
541
568
|
return (Math.abs(Math.cos(n)) * e + Math.abs(Math.sin(n)) * t) / 2;
|
|
542
569
|
}
|
|
543
|
-
function
|
|
570
|
+
function mt(e, t, n) {
|
|
544
571
|
return (Math.abs(Math.sin(n)) * e + Math.abs(Math.cos(n)) * t) / 2;
|
|
545
572
|
}
|
|
546
|
-
function
|
|
573
|
+
function ht(e, t, n, r, i, a, o, s, c, l) {
|
|
547
574
|
if (n <= 0 || r <= 0 || s <= 0 || c <= 0) return !1;
|
|
548
575
|
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;
|
|
549
|
-
return
|
|
576
|
+
return G(u, d, v, y, m, h, u, d, g, _, f, p) > 0 && G(-d, u, v, y, m, h, u, d, g, _, f, p) > 0 && G(f, p, v, y, m, h, u, d, g, _, f, p) > 0 && G(-p, f, v, y, m, h, u, d, g, _, f, p) > 0;
|
|
550
577
|
}
|
|
551
|
-
function
|
|
578
|
+
function G(e, t, n, r, i, a, o, s, c, l, u, d) {
|
|
552
579
|
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);
|
|
553
580
|
}
|
|
554
|
-
function
|
|
581
|
+
function gt(e, t, n, r, i, a, o, s, c) {
|
|
555
582
|
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;
|
|
556
583
|
if (h <= 0 && g <= 0) return c && (c.x = p, c.y = m), p * p + m * m;
|
|
557
|
-
if (h <= 0) y =
|
|
584
|
+
if (h <= 0) y = J(_ / g);
|
|
558
585
|
else {
|
|
559
586
|
let e = l * p + u * m;
|
|
560
|
-
if (g <= 0) v =
|
|
587
|
+
if (g <= 0) v = J(-e / h);
|
|
561
588
|
else {
|
|
562
589
|
let t = l * d + u * f, n = h * g - t * t;
|
|
563
|
-
n !== 0 && (v =
|
|
590
|
+
n !== 0 && (v = J((t * _ - e * g) / n)), y = (t * v + _) / g, y < 0 ? (y = 0, v = J(-e / h)) : y > 1 && (y = 1, v = J((t - e) / h));
|
|
564
591
|
}
|
|
565
592
|
}
|
|
566
593
|
let b = e + l * v - (i + d * y), x = t + u * v - (a + f * y);
|
|
567
594
|
return c && (c.x = b, c.y = x), b * b + x * x;
|
|
568
595
|
}
|
|
569
|
-
function
|
|
596
|
+
function _t(e, t, n, r, i, a, o, s, c, l) {
|
|
570
597
|
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;
|
|
571
|
-
if (!
|
|
572
|
-
if (!l) return Math.min(
|
|
573
|
-
let S =
|
|
574
|
-
S =
|
|
598
|
+
if (!vt(v, y, b, x, f, p)) return l && (l.x = 0, l.y = 0), 0;
|
|
599
|
+
if (!l) return Math.min(yt(v, y, f, p), yt(b, x, f, p), q(-f, -p, v, y, b, x), q(f, -p, v, y, b, x), q(f, p, v, y, b, x), q(-f, p, v, y, b, x));
|
|
600
|
+
let S = yt(v, y, f, p, l);
|
|
601
|
+
S = K(S, yt(b, x, f, p, B), B, l, !1), S = K(S, q(-f, -p, v, y, b, x, B), B, l, !0), S = K(S, q(f, -p, v, y, b, x, B), B, l, !0), S = K(S, q(f, p, v, y, b, x, B), B, l, !0), S = K(S, q(-f, p, v, y, b, x, B), B, l, !0);
|
|
575
602
|
let C = l.x, w = l.y;
|
|
576
603
|
return l.x = C * u - w * d, l.y = C * d + w * u, S;
|
|
577
604
|
}
|
|
578
|
-
function
|
|
605
|
+
function K(e, t, n, r, i) {
|
|
579
606
|
return t >= e ? e : (r.x = i ? -n.x : n.x, r.y = i ? -n.y : n.y, t);
|
|
580
607
|
}
|
|
581
|
-
function
|
|
582
|
-
let s = i - n, c = a - r, l = s * s + c * c, u = l > 0 ?
|
|
608
|
+
function q(e, t, n, r, i, a, o) {
|
|
609
|
+
let s = i - n, c = a - r, l = s * s + c * c, u = l > 0 ? J(((e - n) * s + (t - r) * c) / l) : 0, d = e - (n + s * u), f = t - (r + c * u);
|
|
583
610
|
return o && (o.x = d, o.y = f), d * d + f * f;
|
|
584
611
|
}
|
|
585
|
-
function
|
|
612
|
+
function vt(e, t, n, r, i, a) {
|
|
586
613
|
if (Math.max(e, n) < -i || Math.min(e, n) > i || Math.max(t, r) < -a || Math.min(t, r) > a) return !0;
|
|
587
614
|
let o = -(r - t), s = n - e;
|
|
588
615
|
return Math.abs(o * e + s * t) > i * Math.abs(o) + a * Math.abs(s);
|
|
589
616
|
}
|
|
590
|
-
function
|
|
617
|
+
function yt(e, t, n, r, i) {
|
|
591
618
|
let a = Math.abs(e) - n, o = Math.abs(t) - r, s = a > 0 ? a : 0, c = o > 0 ? o : 0;
|
|
592
619
|
return i && (i.x = e < 0 ? -s : s, i.y = t < 0 ? -c : c), s * s + c * c;
|
|
593
620
|
}
|
|
594
|
-
function
|
|
621
|
+
function J(e) {
|
|
595
622
|
return e < 0 ? 0 : e > 1 ? 1 : e;
|
|
596
623
|
}
|
|
597
624
|
//#endregion
|
|
598
625
|
//#region src/systems/spatial-bounds.ts
|
|
599
|
-
function
|
|
600
|
-
let t = e.transform, n = e.body ?
|
|
626
|
+
function Y(e) {
|
|
627
|
+
let t = e.transform, n = e.body ? L(e.body) : 1, r = t[2], i = t[3], a = t[4], o = nt(n, r, i, a), s = rt(n, r, i, a), c = t[0], l = t[1];
|
|
601
628
|
return {
|
|
602
629
|
minX: c - o,
|
|
603
630
|
minY: l - s,
|
|
@@ -605,23 +632,23 @@ function J(e) {
|
|
|
605
632
|
maxY: l + s
|
|
606
633
|
};
|
|
607
634
|
}
|
|
608
|
-
function
|
|
635
|
+
function bt(e, t, n, r, i) {
|
|
609
636
|
return e.minX <= r && e.maxX >= t && e.minY <= i && e.maxY >= n;
|
|
610
637
|
}
|
|
611
|
-
function
|
|
638
|
+
function xt(e, t) {
|
|
612
639
|
return t > e ? t - e : Math.max(1, Math.abs(e)) * 2 ** -52;
|
|
613
640
|
}
|
|
614
641
|
//#endregion
|
|
615
642
|
//#region src/world.ts
|
|
616
|
-
function
|
|
643
|
+
function St(e, t) {
|
|
617
644
|
t.spatialMapMemory = e.spatialMap.getSharedMemory();
|
|
618
645
|
}
|
|
619
|
-
function
|
|
646
|
+
function Ct(e) {
|
|
620
647
|
if (e.spatialMap) return e.spatialMap;
|
|
621
648
|
if (!e.heap || !e.spatialMapMemory) throw Error("Spatial system world is missing its shared MemoryHeap or spatial map");
|
|
622
649
|
return e.spatialMap = new o(e.heap, e.spatialMapMemory), e.spatialMap;
|
|
623
650
|
}
|
|
624
|
-
var
|
|
651
|
+
var wt = class extends e {
|
|
625
652
|
spatialMap;
|
|
626
653
|
spatialIds = /* @__PURE__ */ new Set();
|
|
627
654
|
constructor(e, t = {}) {
|
|
@@ -644,7 +671,7 @@ var vt = class extends e {
|
|
|
644
671
|
this.spatialIds.delete(t.eid), this.spatialMap.remove(t.eid);
|
|
645
672
|
return;
|
|
646
673
|
}
|
|
647
|
-
let i =
|
|
674
|
+
let i = Y({
|
|
648
675
|
transform: r,
|
|
649
676
|
body: n.body?.block
|
|
650
677
|
});
|
|
@@ -652,12 +679,12 @@ var vt = class extends e {
|
|
|
652
679
|
}
|
|
653
680
|
searchSpatial(e, t, n, r, i) {
|
|
654
681
|
if (n < e || r < t) return [];
|
|
655
|
-
let a = [], o = Number.isFinite(e) && Number.isFinite(t) && Number.isFinite(n) && Number.isFinite(r) ? this.spatialMap.search(e, t,
|
|
682
|
+
let a = [], o = Number.isFinite(e) && Number.isFinite(t) && Number.isFinite(n) && Number.isFinite(r) ? this.spatialMap.search(e, t, xt(e, n), xt(t, r)) : this.spatialIds;
|
|
656
683
|
for (let s of o) {
|
|
657
684
|
let o = this.getEntityByEid(s);
|
|
658
685
|
if (!o || i && !i(o)) continue;
|
|
659
686
|
let c = o.components, l = c.transform?.block;
|
|
660
|
-
l &&
|
|
687
|
+
l && bt(Y({
|
|
661
688
|
transform: l,
|
|
662
689
|
body: c.body?.block
|
|
663
690
|
}), e, t, n, r) && a.push(o);
|
|
@@ -679,60 +706,60 @@ var vt = class extends e {
|
|
|
679
706
|
return t ? [t] : [];
|
|
680
707
|
});
|
|
681
708
|
}
|
|
682
|
-
},
|
|
709
|
+
}, Tt = {
|
|
683
710
|
min: 0,
|
|
684
711
|
max: 0
|
|
685
|
-
},
|
|
712
|
+
}, Et = {
|
|
686
713
|
min: 0,
|
|
687
714
|
max: 0
|
|
688
|
-
},
|
|
715
|
+
}, X = {
|
|
689
716
|
overlap: !0,
|
|
690
717
|
depth: Infinity,
|
|
691
718
|
x: 0,
|
|
692
719
|
y: 0
|
|
693
720
|
};
|
|
694
|
-
function
|
|
695
|
-
return
|
|
721
|
+
function Dt(e, t, n, r, i, a, o, s, c, l, u, d, f, p) {
|
|
722
|
+
return kt(e, t, n, r, i, a, o, s, c, l, u, d, f, p, !1);
|
|
696
723
|
}
|
|
697
|
-
function
|
|
698
|
-
return
|
|
724
|
+
function Ot(e, t, n, r, i, a, o, s, c, l, u, d, f, p, m) {
|
|
725
|
+
return X.depth = Infinity, !kt(e, t, n, r, i, a, o, s, c, l, u, d, f, p, !0) || X.depth === Infinity ? !1 : (m.x = X.x, m.y = X.y, !0);
|
|
699
726
|
}
|
|
700
|
-
function
|
|
701
|
-
return !(e === 4 && (!t || !
|
|
727
|
+
function kt(e, t, n, r, i, a, o, s, c, l, u, d, f, p, m) {
|
|
728
|
+
return !(e === 4 && (!t || !At(t, n, r, i, a, o, e, t, n, r, i, a, o, s, c, l, u, d, f, p, m)) || s === 4 && (!c || !At(c, l, u, d, f, p, e, t, n, r, i, a, o, s, c, l, u, d, f, p, m)) || e === 1 && !jt(o, e, t, n, r, i, a, o, s, c, l, u, d, f, p, m) || s === 1 && !jt(p, e, t, n, r, i, a, o, s, c, l, u, d, f, p, m) || Rt(e) && c && !Mt(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) || Rt(s) && t && !Mt(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));
|
|
702
729
|
}
|
|
703
|
-
function
|
|
730
|
+
function At(e, t, n, r, i, a, o, s, c, l, u, d, f, p, m, h, g, _, v, y, b) {
|
|
704
731
|
let x = e[0], S = Math.cos(a), C = Math.sin(a);
|
|
705
732
|
for (let a = 0; a < x; a++) {
|
|
706
|
-
let w = (a + 1) % x, T =
|
|
707
|
-
if (!
|
|
733
|
+
let w = (a + 1) % x, T = Ft(e, a, t, r, i, S, C), E = It(e, a, n, r, i, S, C), D = Ft(e, w, t, r, i, S, C);
|
|
734
|
+
if (!Nt(E - It(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;
|
|
708
735
|
}
|
|
709
736
|
return !0;
|
|
710
737
|
}
|
|
711
|
-
function
|
|
738
|
+
function jt(e, t, n, r, i, a, o, s, c, l, u, d, f, p, m, h) {
|
|
712
739
|
let g = Math.cos(e), _ = Math.sin(e);
|
|
713
|
-
return
|
|
740
|
+
return Nt(g, _, t, n, r, i, a, o, s, c, l, u, d, f, p, m, h) && Nt(-_, g, t, n, r, i, a, o, s, c, l, u, d, f, p, m, h);
|
|
714
741
|
}
|
|
715
|
-
function
|
|
716
|
-
let D = e === 3 ?
|
|
742
|
+
function Mt(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) {
|
|
743
|
+
let D = e === 3 ? V(r, i) : 0, O = H(r, i, a), k = Math.cos(O) * D, A = Math.sin(O) * D, j = t - k, M = n - A, N = t + k, P = n + A, ee = o[0], F = Math.cos(d), I = Math.sin(d);
|
|
717
744
|
for (let e = 0; e < ee; e++) {
|
|
718
|
-
let t =
|
|
719
|
-
if (!
|
|
745
|
+
let t = Ft(o, e, s, l, u, F, I), n = It(o, e, c, l, u, F, I), r = Lt(j, M, N, P, t, n), i = j + (N - j) * r, a = M + (P - M) * r;
|
|
746
|
+
if (!Nt(t - i, n - a, f, p, m, h, g, _, v, y, b, x, S, C, w, T, E)) return !1;
|
|
720
747
|
}
|
|
721
748
|
return !0;
|
|
722
749
|
}
|
|
723
|
-
function
|
|
750
|
+
function Nt(e, t, n, r, i, a, o, s, c, l, u, d, f, p, m, h, g) {
|
|
724
751
|
let _ = Math.hypot(e, t);
|
|
725
752
|
if (_ === 0) return !0;
|
|
726
|
-
e /= _, t /= _,
|
|
727
|
-
let v =
|
|
753
|
+
e /= _, t /= _, Pt(n, r, i, a, o, s, c, e, t, Tt), Pt(l, u, d, f, p, m, h, e, t, Et);
|
|
754
|
+
let v = Tt.max - Et.min, y = Et.max - Tt.min;
|
|
728
755
|
if (!g && (v <= 0 || y <= 0)) return !1;
|
|
729
756
|
if (g) {
|
|
730
757
|
let n, 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 <
|
|
758
|
+
v <= 0 ? (n = -v, r = -1) : y <= 0 ? (n = -y, r = 1) : v < y ? (n = v, r = -1) : (n = y, r = 1), n < X.depth && (X.depth = n, X.x = e * r, X.y = t * r);
|
|
732
759
|
}
|
|
733
760
|
return !0;
|
|
734
761
|
}
|
|
735
|
-
function
|
|
762
|
+
function Pt(e, t, n, r, i, a, o, s, c, l) {
|
|
736
763
|
let u = n * s + r * c;
|
|
737
764
|
if (e === 2) {
|
|
738
765
|
let e = i / 2;
|
|
@@ -740,8 +767,8 @@ function Ot(e, t, n, r, i, a, o, s, c, l) {
|
|
|
740
767
|
return;
|
|
741
768
|
}
|
|
742
769
|
if (e === 3) {
|
|
743
|
-
let e =
|
|
744
|
-
l.min = u -
|
|
770
|
+
let e = V(i, a), t = H(i, a, o), n = Math.abs(s * Math.cos(t) + c * Math.sin(t)) * e + Math.min(i, a) / 2;
|
|
771
|
+
l.min = u - n, l.max = u + n;
|
|
745
772
|
return;
|
|
746
773
|
}
|
|
747
774
|
if (e === 1) {
|
|
@@ -756,48 +783,48 @@ function Ot(e, t, n, r, i, a, o, s, c, l) {
|
|
|
756
783
|
let d = t[0], f = Math.cos(o), p = Math.sin(o);
|
|
757
784
|
l.min = Infinity, l.max = -Infinity;
|
|
758
785
|
for (let e = 0; e < d; e++) {
|
|
759
|
-
let o =
|
|
786
|
+
let o = Ft(t, e, n, i, a, f, p), u = It(t, e, r, i, a, f, p), d = o * s + u * c;
|
|
760
787
|
l.min = Math.min(l.min, d), l.max = Math.max(l.max, d);
|
|
761
788
|
}
|
|
762
789
|
}
|
|
763
|
-
function
|
|
790
|
+
function Ft(e, t, n, r, i, a, o) {
|
|
764
791
|
let s = 1 + t * 2;
|
|
765
792
|
return n + e[s] * r * a - e[s + 1] * i * o;
|
|
766
793
|
}
|
|
767
|
-
function
|
|
794
|
+
function It(e, t, n, r, i, a, o) {
|
|
768
795
|
let s = 1 + t * 2;
|
|
769
796
|
return n + e[s] * r * o + e[s + 1] * i * a;
|
|
770
797
|
}
|
|
771
|
-
function
|
|
798
|
+
function Lt(e, t, n, r, i, a) {
|
|
772
799
|
let o = n - e, s = r - t, c = o * o + s * s;
|
|
773
800
|
return c === 0 ? 0 : Math.min(1, Math.max(0, ((i - e) * o + (a - t) * s) / c));
|
|
774
801
|
}
|
|
775
|
-
function
|
|
802
|
+
function Rt(e) {
|
|
776
803
|
return e === 2 || e === 3;
|
|
777
804
|
}
|
|
778
|
-
function
|
|
779
|
-
if (
|
|
780
|
-
let o = e.get(t) ??
|
|
805
|
+
function zt(e, t, n, r, i, a) {
|
|
806
|
+
if (qt(n, r, "Force"), qt(i, a, "Impulse"), n === 0 && r === 0 && i === 0 && a === 0) return;
|
|
807
|
+
let o = e.get(t) ?? Kt(), s = {
|
|
781
808
|
...o,
|
|
782
809
|
forceX: o.forceX + n,
|
|
783
810
|
forceY: o.forceY + r,
|
|
784
811
|
impulseX: o.impulseX + i,
|
|
785
812
|
impulseY: o.impulseY + a
|
|
786
813
|
};
|
|
787
|
-
|
|
814
|
+
qt(s.forceX, s.forceY, "Accumulated force"), qt(s.impulseX, s.impulseY, "Accumulated impulse"), e.set(t, s);
|
|
788
815
|
}
|
|
789
|
-
function
|
|
790
|
-
|
|
791
|
-
...e.get(t) ??
|
|
816
|
+
function Bt(e, t, n) {
|
|
817
|
+
Jt(n), (n.velocityX !== void 0 || n.velocityY !== void 0) && e.set(t, {
|
|
818
|
+
...e.get(t) ?? Kt(),
|
|
792
819
|
...n
|
|
793
820
|
});
|
|
794
821
|
}
|
|
795
|
-
function
|
|
822
|
+
function Vt(e, t) {
|
|
796
823
|
if (e.size === 0) return t;
|
|
797
824
|
let n = /* @__PURE__ */ new Map();
|
|
798
825
|
for (let [t, r] of e) n.set(t, { ...r });
|
|
799
|
-
return
|
|
800
|
-
let r = n.get(e) ??
|
|
826
|
+
return Gt(t, (e, t) => {
|
|
827
|
+
let r = n.get(e) ?? Kt();
|
|
801
828
|
n.set(e, {
|
|
802
829
|
forceX: r.forceX + t.forceX,
|
|
803
830
|
forceY: r.forceY + t.forceY,
|
|
@@ -811,13 +838,13 @@ function Ft(e, t) {
|
|
|
811
838
|
...t
|
|
812
839
|
})).sort((e, t) => e.entityId - t.entityId);
|
|
813
840
|
}
|
|
814
|
-
function
|
|
815
|
-
let i = e.dynamicsCommands, a = i instanceof Float64Array ? i : void 0, o =
|
|
841
|
+
function Ht(e, t, n, r) {
|
|
842
|
+
let i = e.dynamicsCommands, a = i instanceof Float64Array ? i : void 0, o = Ut(i && !(i instanceof Float64Array) ? i : void 0, t), s = a ? Wt(a, t) : -1, c = n[2];
|
|
816
843
|
if (!r && !o && s < 0 && c === 0) return;
|
|
817
844
|
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;
|
|
818
845
|
n[0] = g ?? y, n[1] = _ ?? b;
|
|
819
846
|
}
|
|
820
|
-
function
|
|
847
|
+
function Ut(e, t) {
|
|
821
848
|
if (!e) return;
|
|
822
849
|
let n = 0, r = e.length - 1;
|
|
823
850
|
for (; n <= r;) {
|
|
@@ -826,7 +853,7 @@ function Lt(e, t) {
|
|
|
826
853
|
a.entityId < t ? n = i + 1 : r = i - 1;
|
|
827
854
|
}
|
|
828
855
|
}
|
|
829
|
-
function
|
|
856
|
+
function Wt(e, t) {
|
|
830
857
|
let n = 0, r = e.length / 8 - 1;
|
|
831
858
|
for (; n <= r;) {
|
|
832
859
|
let i = n + r >>> 1, a = i * 8, o = e[a + 0];
|
|
@@ -835,7 +862,7 @@ function Rt(e, t) {
|
|
|
835
862
|
}
|
|
836
863
|
return -1;
|
|
837
864
|
}
|
|
838
|
-
function
|
|
865
|
+
function Gt(e, t) {
|
|
839
866
|
if (e) {
|
|
840
867
|
if (!(e instanceof Float64Array)) {
|
|
841
868
|
for (let { entityId: n, ...r } of e) t(n, r);
|
|
@@ -854,7 +881,7 @@ function zt(e, t) {
|
|
|
854
881
|
}
|
|
855
882
|
}
|
|
856
883
|
}
|
|
857
|
-
function
|
|
884
|
+
function Kt() {
|
|
858
885
|
return {
|
|
859
886
|
forceX: 0,
|
|
860
887
|
forceY: 0,
|
|
@@ -862,18 +889,18 @@ function Bt() {
|
|
|
862
889
|
impulseY: 0
|
|
863
890
|
};
|
|
864
891
|
}
|
|
865
|
-
function
|
|
892
|
+
function qt(e, t, n) {
|
|
866
893
|
if (!Number.isFinite(e) || !Number.isFinite(t)) throw Error(`${n} must contain finite numbers`);
|
|
867
894
|
}
|
|
868
|
-
function
|
|
895
|
+
function Jt(e) {
|
|
869
896
|
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");
|
|
870
897
|
}
|
|
871
898
|
//#endregion
|
|
872
899
|
//#region src/systems/collision.ts
|
|
873
|
-
var
|
|
900
|
+
var Yt = 1e-4, Xt = 24, Zt = "collidable", Z = [], Qt = 2 ** 26, $t = {
|
|
874
901
|
fraction: 1,
|
|
875
902
|
blocking: Z
|
|
876
|
-
},
|
|
903
|
+
}, en = class {
|
|
877
904
|
buckets = [];
|
|
878
905
|
hasBounciness = !1;
|
|
879
906
|
resolved = /* @__PURE__ */ new Set();
|
|
@@ -884,18 +911,18 @@ var X = 1e-4, Ut = 24, Wt = "collidable", Z = [], Gt = 2 ** 26, Kt = {
|
|
|
884
911
|
if (!o || !s) continue;
|
|
885
912
|
let c = s[1];
|
|
886
913
|
if (c === 0) continue;
|
|
887
|
-
let l =
|
|
888
|
-
if (
|
|
889
|
-
let f = o[4], p =
|
|
914
|
+
let l = L(s), u = o[2], d = o[3];
|
|
915
|
+
if (W(l, u, d)) continue;
|
|
916
|
+
let f = o[4], p = nt(l, u, d, f), m = rt(l, u, d, f);
|
|
890
917
|
e.bounciness && (this.hasBounciness = !0);
|
|
891
|
-
let h = e.velocity, g = e.dynamics, _ =
|
|
892
|
-
|
|
918
|
+
let h = e.velocity, g = e.dynamics, _ = Ut(a, n.entityId), v = i ? Wt(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, P = Math.max(Math.abs(O), Math.abs(M)) * t, ee = o[0], F = o[1], I = r.get(c);
|
|
919
|
+
I || (I = {
|
|
893
920
|
entries: [],
|
|
894
921
|
bounds: []
|
|
895
|
-
}, r.set(c,
|
|
922
|
+
}, r.set(c, I)), I.entries.push({
|
|
896
923
|
entityId: n.entityId,
|
|
897
924
|
components: e
|
|
898
|
-
}),
|
|
925
|
+
}), I.bounds.push(ee - p - N, F - m - P, ee + p + N, F + m + P);
|
|
899
926
|
}
|
|
900
927
|
for (let [e, { entries: t, bounds: n }] of r) {
|
|
901
928
|
let r = new s(t.length);
|
|
@@ -908,7 +935,7 @@ var X = 1e-4, Ut = 24, Wt = "collidable", Z = [], Gt = 2 ** 26, Kt = {
|
|
|
908
935
|
}
|
|
909
936
|
}
|
|
910
937
|
claimContact(e, t) {
|
|
911
|
-
let n = e < t ? e *
|
|
938
|
+
let n = e < t ? e * Qt + t : t * Qt + e;
|
|
912
939
|
return !this.resolved.has(n) && (this.resolved.add(n), !0);
|
|
913
940
|
}
|
|
914
941
|
forEachOverlapping(e, t, n = 0, r = 0) {
|
|
@@ -918,7 +945,7 @@ var X = 1e-4, Ut = 24, Wt = "collidable", Z = [], Gt = 2 ** 26, Kt = {
|
|
|
918
945
|
if (i.ccd && (n !== 0 || r !== 0)) {
|
|
919
946
|
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;
|
|
920
947
|
this.forEachCandidate(i, u, d, f, p, (a) => {
|
|
921
|
-
|
|
948
|
+
rn(i, e, l, n, r, a) && t(a);
|
|
922
949
|
});
|
|
923
950
|
return;
|
|
924
951
|
}
|
|
@@ -946,7 +973,7 @@ var X = 1e-4, Ut = 24, Wt = "collidable", Z = [], Gt = 2 ** 26, Kt = {
|
|
|
946
973
|
x: a.x,
|
|
947
974
|
y: a.y
|
|
948
975
|
} : this.contactPoint(e, t, n, r);
|
|
949
|
-
return
|
|
976
|
+
return tn(a, o.x, o.y, t, i);
|
|
950
977
|
}
|
|
951
978
|
sweep(e, t, n) {
|
|
952
979
|
let r = Math.sqrt(t * t + n * n), i = Q(e);
|
|
@@ -993,7 +1020,7 @@ var X = 1e-4, Ut = 24, Wt = "collidable", Z = [], Gt = 2 ** 26, Kt = {
|
|
|
993
1020
|
moveY: n,
|
|
994
1021
|
blocking: Z
|
|
995
1022
|
};
|
|
996
|
-
let i = e.length === 0 ?
|
|
1023
|
+
let i = e.length === 0 ? $t : this.refine(a, e, t, 0, Math.abs(t)), o = r.length === 0 ? $t : this.refine(a, r, 0, n, Math.abs(n)), s = t * i.fraction, c = n * o.fraction;
|
|
997
1024
|
if (s !== 0 && c !== 0) {
|
|
998
1025
|
let e = this.gatherCandidates(a, s, c);
|
|
999
1026
|
if (e.length > 0) {
|
|
@@ -1008,7 +1035,7 @@ var X = 1e-4, Ut = 24, Wt = "collidable", Z = [], Gt = 2 ** 26, Kt = {
|
|
|
1008
1035
|
return {
|
|
1009
1036
|
moveX: s,
|
|
1010
1037
|
moveY: c,
|
|
1011
|
-
blocking:
|
|
1038
|
+
blocking: nn(i.blocking, o.blocking)
|
|
1012
1039
|
};
|
|
1013
1040
|
}
|
|
1014
1041
|
let s = this.refine(a, o, t, n, i);
|
|
@@ -1023,19 +1050,19 @@ var X = 1e-4, Ut = 24, Wt = "collidable", Z = [], Gt = 2 ** 26, Kt = {
|
|
|
1023
1050
|
if (e.sensor) return [];
|
|
1024
1051
|
let s = r + t, c = i + n, l = [];
|
|
1025
1052
|
return this.forEachCandidate(e, s - a, c - o, s + a, c + o, (t) => {
|
|
1026
|
-
$(e, s, c, t) && (
|
|
1053
|
+
$(e, s, c, t) && (R(t.components.body) || $(e, r, i, t) || l.push(t));
|
|
1027
1054
|
}), l;
|
|
1028
1055
|
}
|
|
1029
1056
|
refine(e, t, n, r, i) {
|
|
1030
|
-
let { x: a, y: o } = e, s = 0, c = 1, l =
|
|
1031
|
-
for (let i = 0; i <
|
|
1057
|
+
let { x: a, y: o } = e, s = 0, c = 1, l = Yt / i;
|
|
1058
|
+
for (let i = 0; i < Xt && c - s > l; i++) {
|
|
1032
1059
|
let i = (s + c) / 2;
|
|
1033
1060
|
this.blockedAt(e, t, n, r, i) ? c = i : s = i;
|
|
1034
1061
|
}
|
|
1035
1062
|
let u = [], d = a + n * c, f = o + r * c;
|
|
1036
1063
|
for (let n of t) $(e, d, f, n) && u.push(n);
|
|
1037
1064
|
return {
|
|
1038
|
-
fraction: s * i >
|
|
1065
|
+
fraction: s * i > Yt ? s : 0,
|
|
1039
1066
|
blocking: u
|
|
1040
1067
|
};
|
|
1041
1068
|
}
|
|
@@ -1043,7 +1070,7 @@ var X = 1e-4, Ut = 24, Wt = "collidable", Z = [], Gt = 2 ** 26, Kt = {
|
|
|
1043
1070
|
if (e.sensor) return [];
|
|
1044
1071
|
let { x: r, y: i, halfWidth: a, halfHeight: o } = e, s = r + t, c = i + n, l = [];
|
|
1045
1072
|
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) => {
|
|
1046
|
-
|
|
1073
|
+
R(a.components.body) || $(e, r, i, a) || rn(e, r, i, t, n, a) && l.push(a);
|
|
1047
1074
|
}), l;
|
|
1048
1075
|
}
|
|
1049
1076
|
sweepContinuous(e, t, n, r) {
|
|
@@ -1052,13 +1079,13 @@ var X = 1e-4, Ut = 24, Wt = "collidable", Z = [], Gt = 2 ** 26, Kt = {
|
|
|
1052
1079
|
fraction: 1,
|
|
1053
1080
|
blocking: Z
|
|
1054
1081
|
};
|
|
1055
|
-
let a = 1, o = [], s =
|
|
1082
|
+
let a = 1, o = [], s = Yt / r;
|
|
1056
1083
|
for (let c of i) {
|
|
1057
1084
|
let i = this.entryFraction(e, c, t, n, r);
|
|
1058
1085
|
i < a - s ? (a = i, o = [c]) : i <= a + s && o.push(c);
|
|
1059
1086
|
}
|
|
1060
1087
|
return {
|
|
1061
|
-
fraction: a * r >
|
|
1088
|
+
fraction: a * r > Yt ? a : 0,
|
|
1062
1089
|
blocking: o
|
|
1063
1090
|
};
|
|
1064
1091
|
}
|
|
@@ -1066,12 +1093,12 @@ var X = 1e-4, Ut = 24, Wt = "collidable", Z = [], Gt = 2 ** 26, Kt = {
|
|
|
1066
1093
|
let a;
|
|
1067
1094
|
if (this.blockedAtOne(e, t, n, r, 1)) a = 1;
|
|
1068
1095
|
else {
|
|
1069
|
-
let o = t.components.transform, s = o[0] - e.x, c = o[1] - e.y, l =
|
|
1096
|
+
let o = t.components.transform, s = o[0] - e.x, c = o[1] - e.y, l = an((s * n + c * r) / (i * i));
|
|
1070
1097
|
if (!this.blockedAtOne(e, t, n, r, l)) return l;
|
|
1071
1098
|
a = l;
|
|
1072
1099
|
}
|
|
1073
|
-
let o = 0, s =
|
|
1074
|
-
for (let i = 0; i <
|
|
1100
|
+
let o = 0, s = Yt / i;
|
|
1101
|
+
for (let i = 0; i < Xt && a - o > s; i++) {
|
|
1075
1102
|
let i = (o + a) / 2;
|
|
1076
1103
|
this.blockedAtOne(e, t, n, r, i) ? a = i : o = i;
|
|
1077
1104
|
}
|
|
@@ -1088,15 +1115,15 @@ var X = 1e-4, Ut = 24, Wt = "collidable", Z = [], Gt = 2 ** 26, Kt = {
|
|
|
1088
1115
|
forEachCandidate(e, t, r, i, a, o) {
|
|
1089
1116
|
for (let s of this.buckets) if ((e.mask & s.category) !== 0) for (let c of s.index.search(t, r, i, a)) {
|
|
1090
1117
|
let t = s.entries[c];
|
|
1091
|
-
t.entityId !== e.entityId && (t.components.body[2] & e.category) !== 0 && t.components.entity?.[n] !== 1 && (
|
|
1118
|
+
t.entityId !== e.entityId && (t.components.body[2] & e.category) !== 0 && t.components.entity?.[n] !== 1 && (Ce(t.components.body) || o(t));
|
|
1092
1119
|
}
|
|
1093
1120
|
}
|
|
1094
1121
|
};
|
|
1095
|
-
function
|
|
1096
|
-
let a = r.components.transform, o =
|
|
1097
|
-
return e.shape === 4 || o === 4 ?
|
|
1122
|
+
function tn(e, t, n, r, i) {
|
|
1123
|
+
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];
|
|
1124
|
+
return e.shape === 4 || o === 4 ? Ot(e.shape, e.polygon, t, n, e.width, e.height, e.angle, o, r.components.polygon, s, c, l, u, d, i) : ot(e.shape, t, n, e.width, e.height, e.angle, o, s, c, l, u, d, i);
|
|
1098
1125
|
}
|
|
1099
|
-
function
|
|
1126
|
+
function nn(e, t) {
|
|
1100
1127
|
if (e.length === 0) return t;
|
|
1101
1128
|
if (t.length === 0) return e;
|
|
1102
1129
|
let n = [...e];
|
|
@@ -1108,8 +1135,8 @@ function Q(e) {
|
|
|
1108
1135
|
if (!t) return;
|
|
1109
1136
|
let n = t[2];
|
|
1110
1137
|
if (n === 0) return;
|
|
1111
|
-
let r = e.components.transform, i =
|
|
1112
|
-
if (
|
|
1138
|
+
let r = e.components.transform, i = L(t), a = r[2], o = r[3];
|
|
1139
|
+
if (W(i, a, o)) return;
|
|
1113
1140
|
let s = r[4], c = e.components.polygon;
|
|
1114
1141
|
if (i !== 4 || c) return {
|
|
1115
1142
|
entityId: e.entityId,
|
|
@@ -1120,36 +1147,36 @@ function Q(e) {
|
|
|
1120
1147
|
width: a,
|
|
1121
1148
|
height: o,
|
|
1122
1149
|
angle: s,
|
|
1123
|
-
halfWidth:
|
|
1124
|
-
halfHeight:
|
|
1150
|
+
halfWidth: nt(i, a, o, s),
|
|
1151
|
+
halfHeight: rt(i, a, o, s),
|
|
1125
1152
|
category: t[1],
|
|
1126
1153
|
mask: n,
|
|
1127
|
-
sensor:
|
|
1128
|
-
ccd:
|
|
1154
|
+
sensor: R(t),
|
|
1155
|
+
ccd: xe(t)
|
|
1129
1156
|
};
|
|
1130
1157
|
}
|
|
1131
|
-
function
|
|
1132
|
-
let o = t + r, s = n + i, c = a.components.transform, l =
|
|
1158
|
+
function rn(e, t, n, r, i, a) {
|
|
1159
|
+
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];
|
|
1133
1160
|
if (e.shape === 1 || e.shape === 4) {
|
|
1134
1161
|
let c = Math.cos(e.angle), h = Math.sin(e.angle), g = r * c + i * h, _ = -r * h + i * c;
|
|
1135
|
-
return
|
|
1162
|
+
return on(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);
|
|
1136
1163
|
}
|
|
1137
|
-
let h =
|
|
1138
|
-
return
|
|
1164
|
+
let h = U(e.shape, e.width, e.height), g = Math.sqrt(r * r + i * i), _ = g > 0 ? Math.atan2(i, r) : e.angle;
|
|
1165
|
+
return on(3, void 0, (t + o) / 2, (n + s) / 2, g + h * 2, h * 2, _, l, a.components.polygon, u, d, f, p, m) ? !0 : on(e.shape, e.polygon, o, s, e.width, e.height, e.angle, l, a.components.polygon, u, d, f, p, m);
|
|
1139
1166
|
}
|
|
1140
|
-
function
|
|
1167
|
+
function an(e) {
|
|
1141
1168
|
return e < 0 ? 0 : e > 1 ? 1 : e;
|
|
1142
1169
|
}
|
|
1143
1170
|
function $(e, t, n, r) {
|
|
1144
1171
|
let i = r.components.transform;
|
|
1145
|
-
return
|
|
1172
|
+
return on(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]);
|
|
1146
1173
|
}
|
|
1147
|
-
function
|
|
1148
|
-
return e !== 4 && s !== 4 ?
|
|
1174
|
+
function on(e, t, n, r, i, a, o, s, c, l, u, d, f, p) {
|
|
1175
|
+
return e !== 4 && s !== 4 ? it(e, n, r, i, a, o, s, l, u, d, f, p) : Dt(e, t, n, r, i, a, o, s, c, l, u, d, f, p);
|
|
1149
1176
|
}
|
|
1150
1177
|
//#endregion
|
|
1151
1178
|
//#region src/systems/spatial-index.ts
|
|
1152
|
-
var
|
|
1179
|
+
var sn = class {
|
|
1153
1180
|
entries = [];
|
|
1154
1181
|
index;
|
|
1155
1182
|
constructor(e) {
|
|
@@ -1157,7 +1184,7 @@ var $t = class {
|
|
|
1157
1184
|
for (let n of e) {
|
|
1158
1185
|
let e = n.components, r = e.transform;
|
|
1159
1186
|
if (!r) continue;
|
|
1160
|
-
let i = e.body, a = i ?
|
|
1187
|
+
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 = nt(a, o, s, c), f = rt(a, o, s, c);
|
|
1161
1188
|
this.entries.push({
|
|
1162
1189
|
entityId: n.entityId,
|
|
1163
1190
|
components: e
|
|
@@ -1189,14 +1216,14 @@ var $t = class {
|
|
|
1189
1216
|
let o = this.entries;
|
|
1190
1217
|
return (i ? a.neighbors(e, t, n, r, (e) => i(o[e])) : a.neighbors(e, t, n, r)).map((e) => o[e]);
|
|
1191
1218
|
}
|
|
1192
|
-
},
|
|
1219
|
+
}, cn = {
|
|
1193
1220
|
x: 0,
|
|
1194
1221
|
y: 0
|
|
1195
1222
|
};
|
|
1196
|
-
function
|
|
1197
|
-
(
|
|
1223
|
+
function ln(e, t, n = !1) {
|
|
1224
|
+
(fn(e, n) || fn(t, n)) && pn(e, t) && mn(e, t, cn) && (dn(e, cn.x, cn.y, n), dn(t, -cn.x, -cn.y, n));
|
|
1198
1225
|
}
|
|
1199
|
-
function
|
|
1226
|
+
function un(e, t, n) {
|
|
1200
1227
|
let r = e.components.bounciness, i = e.components.velocity;
|
|
1201
1228
|
if (!r || !i) return;
|
|
1202
1229
|
let a = i[0], o = i[1], s = a * t + o * n;
|
|
@@ -1204,9 +1231,9 @@ function nn(e, t, n) {
|
|
|
1204
1231
|
let c = (1 + r[0]) * s;
|
|
1205
1232
|
i[0] = a - c * t, i[1] = o - c * n;
|
|
1206
1233
|
}
|
|
1207
|
-
function
|
|
1234
|
+
function dn(e, t, n, r) {
|
|
1208
1235
|
if (e.components.bounciness) {
|
|
1209
|
-
|
|
1236
|
+
un(e, t, n);
|
|
1210
1237
|
return;
|
|
1211
1238
|
}
|
|
1212
1239
|
let i = e.components.velocity;
|
|
@@ -1214,60 +1241,60 @@ function rn(e, t, n, r) {
|
|
|
1214
1241
|
let a = i[0], o = i[1], s = a * t + o * n;
|
|
1215
1242
|
s < 0 && (i[0] = a - s * t, i[1] = o - s * n);
|
|
1216
1243
|
}
|
|
1217
|
-
function
|
|
1244
|
+
function fn(e, t) {
|
|
1218
1245
|
return e.components.velocity !== void 0 && (t || e.components.bounciness !== void 0);
|
|
1219
1246
|
}
|
|
1220
|
-
function
|
|
1221
|
-
return !
|
|
1247
|
+
function pn(e, t) {
|
|
1248
|
+
return !gn(e.components.body) && !gn(t.components.body);
|
|
1222
1249
|
}
|
|
1223
|
-
function
|
|
1224
|
-
let r = e.components.transform, i = t.components.transform, a =
|
|
1225
|
-
return a === 4 || o === 4 ?
|
|
1250
|
+
function mn(e, t, n) {
|
|
1251
|
+
let r = e.components.transform, i = t.components.transform, a = hn(e.components.body), o = hn(t.components.body);
|
|
1252
|
+
return a === 4 || o === 4 ? Ot(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) : ot(a, r[0], r[1], r[2], r[3], r[4], o, i[0], i[1], i[2], i[3], i[4], n);
|
|
1226
1253
|
}
|
|
1227
|
-
function
|
|
1228
|
-
return e ?
|
|
1254
|
+
function hn(e) {
|
|
1255
|
+
return e ? L(e) : 1;
|
|
1229
1256
|
}
|
|
1230
|
-
function
|
|
1231
|
-
return e !== void 0 &&
|
|
1257
|
+
function gn(e) {
|
|
1258
|
+
return e !== void 0 && R(e);
|
|
1232
1259
|
}
|
|
1233
1260
|
//#endregion
|
|
1234
1261
|
//#region src/systems/physics-update.ts
|
|
1235
|
-
function
|
|
1262
|
+
function _n(e, t, n) {
|
|
1236
1263
|
if (!e.spatialMap && (!e.heap || !e.spatialMapMemory)) return;
|
|
1237
|
-
let r =
|
|
1264
|
+
let r = Ct(e), i = Y(n);
|
|
1238
1265
|
r.update(t, i.minX, i.minY, i.maxX - i.minX, i.maxY - i.minY);
|
|
1239
1266
|
}
|
|
1240
|
-
var
|
|
1267
|
+
var vn = "position-updated", yn = {
|
|
1241
1268
|
x: 0,
|
|
1242
1269
|
y: 0
|
|
1243
1270
|
};
|
|
1244
|
-
function
|
|
1271
|
+
function bn(e = {}) {
|
|
1245
1272
|
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) => {
|
|
1246
1273
|
if (c.entity?.[n] === 1) return;
|
|
1247
|
-
if (c.body !== void 0 &&
|
|
1274
|
+
if (c.body !== void 0 && Ce(c.body)) {
|
|
1248
1275
|
u.entityDied(r);
|
|
1249
1276
|
return;
|
|
1250
1277
|
}
|
|
1251
|
-
let d = i ?
|
|
1278
|
+
let d = i ? Sn(c, i) : 0;
|
|
1252
1279
|
if (i && e.skipGroup === d) return;
|
|
1253
1280
|
let f = {
|
|
1254
1281
|
entityId: r,
|
|
1255
1282
|
components: c
|
|
1256
1283
|
}, p = c.interpolation, m = e.elapsedTime / 1e3;
|
|
1257
|
-
|
|
1284
|
+
Ht(e, r, c.velocity, c.dynamics);
|
|
1258
1285
|
let h = c.velocity[0] * m, g = c.velocity[1] * m;
|
|
1259
|
-
|
|
1286
|
+
Dn(p, c.transform, e);
|
|
1260
1287
|
let _ = i ? s?.get(d) : o;
|
|
1261
1288
|
if (!_) {
|
|
1262
|
-
|
|
1289
|
+
kn(r, c.transform, h, g, u, e.reportMoves), _n(e, r, c), On(p, e.tick);
|
|
1263
1290
|
return;
|
|
1264
1291
|
}
|
|
1265
1292
|
let v = c.bounciness !== void 0, y = _.resolveMove(f, h, g, !v);
|
|
1266
|
-
if (
|
|
1293
|
+
if (kn(r, c.transform, y.moveX, y.moveY, u, e.reportMoves), _n(e, r, c), On(p, e.tick), _.hasBounciness || a || t) {
|
|
1267
1294
|
_.forEachOverlapping(f, (n) => {
|
|
1268
|
-
_.claimContact(r, n.entityId) &&
|
|
1295
|
+
_.claimContact(r, n.entityId) && Cn(e, _, f, n, l, u, y.moveX, y.moveY, a, t);
|
|
1269
1296
|
}, y.moveX, y.moveY);
|
|
1270
|
-
for (let n of y.blocking) _.claimContact(r, n.entityId) &&
|
|
1297
|
+
for (let n of y.blocking) _.claimContact(r, n.entityId) && Cn(e, _, f, n, l, u, y.moveX, y.moveY, a, t);
|
|
1271
1298
|
}
|
|
1272
1299
|
}, { physics: {
|
|
1273
1300
|
collision: !0,
|
|
@@ -1276,60 +1303,60 @@ function pn(e = {}) {
|
|
|
1276
1303
|
group: i
|
|
1277
1304
|
} });
|
|
1278
1305
|
return l.preRun = (e, t, n) => {
|
|
1279
|
-
|
|
1280
|
-
|
|
1306
|
+
xn(e, c), e.dieAtImpact = (t, n) => {
|
|
1307
|
+
Tn(e, i ? s?.get(Sn(t.components, i)) : o, t, n);
|
|
1281
1308
|
};
|
|
1282
1309
|
let r = e.elapsedTime / 1e3, a = n.collidable ?? [];
|
|
1283
1310
|
if (!i) {
|
|
1284
|
-
o = new
|
|
1311
|
+
o = new en(a, r, e.dynamicsCommands);
|
|
1285
1312
|
return;
|
|
1286
1313
|
}
|
|
1287
1314
|
let l = /* @__PURE__ */ new Map();
|
|
1288
1315
|
for (let t of a) {
|
|
1289
|
-
let n =
|
|
1316
|
+
let n = Sn(t.components, i);
|
|
1290
1317
|
if (e.skipGroup === n) continue;
|
|
1291
1318
|
let r = l.get(n);
|
|
1292
1319
|
r || (r = [], l.set(n, r)), r.push(t);
|
|
1293
1320
|
}
|
|
1294
1321
|
s = /* @__PURE__ */ new Map();
|
|
1295
|
-
for (let [t, n] of l) s.set(t, new
|
|
1322
|
+
for (let [t, n] of l) s.set(t, new en(n, r, e.dynamicsCommands));
|
|
1296
1323
|
}, l;
|
|
1297
1324
|
}
|
|
1298
|
-
function
|
|
1325
|
+
function xn(e, t) {
|
|
1299
1326
|
let n = e, r = e.commandQueueId ?? 0, i = t.get(r);
|
|
1300
|
-
i && (e.dynamicsCommands =
|
|
1327
|
+
i && (e.dynamicsCommands = Vt(i, e.dynamicsCommands), t.delete(r));
|
|
1301
1328
|
let a = () => {
|
|
1302
1329
|
let e = t.get(r);
|
|
1303
1330
|
return e || (e = /* @__PURE__ */ new Map(), t.set(r, e)), e;
|
|
1304
1331
|
};
|
|
1305
1332
|
n.queueForce = (e, t, n) => {
|
|
1306
|
-
|
|
1333
|
+
zt(a(), e, t, n, 0, 0);
|
|
1307
1334
|
}, n.queueImpulse = (e, t, n) => {
|
|
1308
|
-
|
|
1335
|
+
zt(a(), e, 0, 0, t, n);
|
|
1309
1336
|
}, n.queueVelocity = (e, t) => {
|
|
1310
|
-
|
|
1337
|
+
Bt(a(), e, t);
|
|
1311
1338
|
};
|
|
1312
1339
|
}
|
|
1313
|
-
function
|
|
1340
|
+
function Sn(e, t) {
|
|
1314
1341
|
let n = e[t.component];
|
|
1315
1342
|
return n ? n[t.index] : 0;
|
|
1316
1343
|
}
|
|
1317
|
-
function
|
|
1318
|
-
if (
|
|
1319
|
-
let u =
|
|
1320
|
-
|
|
1321
|
-
normalX:
|
|
1322
|
-
normalY:
|
|
1323
|
-
}),
|
|
1344
|
+
function Cn(e, t, n, r, i, a, o, s, c, l) {
|
|
1345
|
+
if (ln(n, r, c), !l) return;
|
|
1346
|
+
let u = Y(n.components), d = Y(r.components);
|
|
1347
|
+
yn.x = 0, yn.y = 0, t.contactNormal(n, r, o, s, yn), l(e, n, r, i, a, {
|
|
1348
|
+
normalX: yn.x,
|
|
1349
|
+
normalY: yn.y
|
|
1350
|
+
}), wn(e, n.entityId, n.components, u), wn(e, r.entityId, r.components, d);
|
|
1324
1351
|
}
|
|
1325
|
-
function
|
|
1326
|
-
let i =
|
|
1327
|
-
(i.minX !== r.minX || i.minY !== r.minY || i.maxX !== r.maxX || i.maxY !== r.maxY) &&
|
|
1352
|
+
function wn(e, t, n, r) {
|
|
1353
|
+
let i = Y(n);
|
|
1354
|
+
(i.minX !== r.minX || i.minY !== r.minY || i.maxX !== r.maxX || i.maxY !== r.maxY) && _n(e, t, n);
|
|
1328
1355
|
}
|
|
1329
|
-
function
|
|
1356
|
+
function Tn(e, t, n, r) {
|
|
1330
1357
|
let i = n.components.body;
|
|
1331
|
-
if (!i ||
|
|
1332
|
-
|
|
1358
|
+
if (!i || Ce(i)) return;
|
|
1359
|
+
we(i);
|
|
1333
1360
|
let a = n.components.transform, o = n.components.velocity, s = r.components.transform, c = r.components.body;
|
|
1334
1361
|
if (!t || !a || !o || !s || !c) return;
|
|
1335
1362
|
let l = e.elapsedTime / 1e3, u = o[0] * l, d = o[1] * l;
|
|
@@ -1346,34 +1373,50 @@ function vn(e, t, n, r) {
|
|
|
1346
1373
|
} }, u, d);
|
|
1347
1374
|
a[0] = f.x, a[1] = f.y;
|
|
1348
1375
|
}
|
|
1349
|
-
function
|
|
1376
|
+
function En(e, t, n, r, i) {
|
|
1350
1377
|
let a = e.elapsedTime / 1e3, o = n.interpolation;
|
|
1351
|
-
|
|
1378
|
+
Ht(e, t, n.velocity, n.dynamics), Dn(o, n.transform, e), kn(t, n.transform, n.velocity[0] * a, n.velocity[1] * a, i, e.reportMoves), _n(e, t, n), On(o, e.tick);
|
|
1352
1379
|
}
|
|
1353
|
-
function
|
|
1354
|
-
e && (a(e, 4, NaN), e[3] =
|
|
1380
|
+
function Dn(e, t, n) {
|
|
1381
|
+
e && (a(e, 16, NaN), e[12] = t[0], e[13] = t[1], e[14] = e[3], e[15] = e[5], a(e, 16, i(e, 4)), a(e, 4, NaN), e[11] = n.interpolationChannel ?? 0, e[3] = n.elapsedTime, e[5] += n.elapsedTime);
|
|
1355
1382
|
}
|
|
1356
|
-
function
|
|
1383
|
+
function On(e, t) {
|
|
1357
1384
|
e && a(e, 4, t);
|
|
1358
1385
|
}
|
|
1359
|
-
function
|
|
1360
|
-
(n !== 0 || r !== 0) && (n !== 0 && c(t, 0, n, Infinity), r !== 0 && c(t, 1, r, Infinity), a !== !1 && i.emitSystemEvent(
|
|
1386
|
+
function kn(e, t, n, r, i, a) {
|
|
1387
|
+
(n !== 0 || r !== 0) && (n !== 0 && c(t, 0, n, Infinity), r !== 0 && c(t, 1, r, Infinity), a !== !1 && i.emitSystemEvent(vn, e));
|
|
1388
|
+
}
|
|
1389
|
+
//#endregion
|
|
1390
|
+
//#region src/systems/interpolation-channels.ts
|
|
1391
|
+
var An = /* @__PURE__ */ new WeakMap();
|
|
1392
|
+
function jn(e, t) {
|
|
1393
|
+
let n = An.get(e);
|
|
1394
|
+
return n || (n = [void 0], An.set(e, n)), n.push(t), n.length - 1;
|
|
1395
|
+
}
|
|
1396
|
+
function Mn(e, t) {
|
|
1397
|
+
let n = An.get(e);
|
|
1398
|
+
n && t > 0 && t < n.length && (n[t] = void 0);
|
|
1399
|
+
}
|
|
1400
|
+
function Nn(e) {
|
|
1401
|
+
let t = An.get(e);
|
|
1402
|
+
if (t) return t.map((e) => e ? e.committedTick : NaN);
|
|
1361
1403
|
}
|
|
1362
1404
|
//#endregion
|
|
1363
1405
|
//#region src/systems/physics-system.ts
|
|
1364
|
-
var
|
|
1406
|
+
var Pn = 50, Fn = 1, In = class extends r {
|
|
1365
1407
|
spatialWorld;
|
|
1366
1408
|
pendingDynamicsCommands = /* @__PURE__ */ new Map();
|
|
1367
|
-
commandQueueId =
|
|
1409
|
+
commandQueueId = Fn++;
|
|
1368
1410
|
tick = 0;
|
|
1411
|
+
interpolationChannel;
|
|
1369
1412
|
reportMoves;
|
|
1370
1413
|
skipGroup;
|
|
1371
1414
|
constructor(e, t = {}) {
|
|
1372
|
-
let n = t.updateFunction ??
|
|
1415
|
+
let n = t.updateFunction ?? En, r = t.optional ?? n.physics?.optional ?? [], i = t.collision ?? n.physics?.collision ?? !1, a = n === En || n.physics?.dynamics === !0, o = n.physics?.group, s = [];
|
|
1373
1416
|
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);
|
|
1374
1417
|
let c = s.length ? [...s, ...r] : r, l = r.includes("bounciness") ? [...r] : ["bounciness", ...r];
|
|
1375
1418
|
l.includes("polygon") || l.push("polygon"), a && !l.includes("dynamics") && l.push("dynamics"), o && !l.includes(o.component) && l.push(o.component);
|
|
1376
|
-
let u = i ? { [
|
|
1419
|
+
let u = i ? { [Zt]: {
|
|
1377
1420
|
required: ["transform", "body"],
|
|
1378
1421
|
optional: [
|
|
1379
1422
|
"velocity",
|
|
@@ -1384,7 +1427,7 @@ var Cn = 50, wn = 1, Tn = class extends r {
|
|
|
1384
1427
|
} } : void 0, d = u || t.queries ? {
|
|
1385
1428
|
...u,
|
|
1386
1429
|
...t.queries
|
|
1387
|
-
} : void 0, f =
|
|
1430
|
+
} : void 0, f = Ln(t.scope, t.filter);
|
|
1388
1431
|
super(e, {
|
|
1389
1432
|
name: t.name ?? "PhysicsSystem",
|
|
1390
1433
|
deltaBetweenRuns: t.deltaBetweenRuns ?? 50,
|
|
@@ -1398,11 +1441,17 @@ var Cn = 50, wn = 1, Tn = class extends r {
|
|
|
1398
1441
|
getWorker: t.getWorker ?? (() => {
|
|
1399
1442
|
throw Error("PhysicsSystem cannot start a worker: no getWorker was supplied");
|
|
1400
1443
|
})
|
|
1401
|
-
}), this.spatialWorld = e, this.reportMoves = t.reportMoves, this.skipGroup = t.skipGroup;
|
|
1444
|
+
}), this.spatialWorld = e, this.reportMoves = t.reportMoves, this.skipGroup = t.skipGroup, this.interpolationChannel = jn(e, this);
|
|
1445
|
+
}
|
|
1446
|
+
get committedTick() {
|
|
1447
|
+
return this.isCurrentlyRunning() ? this.tick - 1 : this.tick;
|
|
1448
|
+
}
|
|
1449
|
+
destroy() {
|
|
1450
|
+
Mn(this.world, this.interpolationChannel), super.destroy();
|
|
1402
1451
|
}
|
|
1403
1452
|
startInterpolation(e) {
|
|
1404
1453
|
let t = this.deltaBetweenRuns;
|
|
1405
|
-
t <= 0 ||
|
|
1454
|
+
t <= 0 || et(e, {
|
|
1406
1455
|
stepMs: t,
|
|
1407
1456
|
stepFraction: this.currentDelta / t,
|
|
1408
1457
|
tick: this.tick
|
|
@@ -1416,14 +1465,14 @@ var Cn = 50, wn = 1, Tn = class extends r {
|
|
|
1416
1465
|
}
|
|
1417
1466
|
queueVelocity(e, t) {
|
|
1418
1467
|
let n = typeof e == "number" ? e : e.eid;
|
|
1419
|
-
|
|
1468
|
+
Bt(this.pendingDynamicsCommands, n, t);
|
|
1420
1469
|
}
|
|
1421
1470
|
addDataToWorld(e) {
|
|
1422
|
-
e.tick = ++this.tick,
|
|
1471
|
+
e.tick = ++this.tick, e.interpolationChannel = this.interpolationChannel, St(this.spatialWorld, e), e.reportMoves = this.reportMoves ?? this.listenerCount("position-updated") > 0, e.skipGroup = this.skipGroup, e.commandQueueId = this.commandQueueId, e.dynamicsCommands = this.snapshotDynamicsCommands();
|
|
1423
1472
|
}
|
|
1424
1473
|
queueDynamics(e, t, n, r, i) {
|
|
1425
1474
|
let a = typeof e == "number" ? e : e.eid;
|
|
1426
|
-
|
|
1475
|
+
zt(this.pendingDynamicsCommands, a, t, n, r, i);
|
|
1427
1476
|
}
|
|
1428
1477
|
snapshotDynamicsCommands() {
|
|
1429
1478
|
if (this.pendingDynamicsCommands.size === 0) return;
|
|
@@ -1439,50 +1488,58 @@ var Cn = 50, wn = 1, Tn = class extends r {
|
|
|
1439
1488
|
return n;
|
|
1440
1489
|
}
|
|
1441
1490
|
};
|
|
1442
|
-
function
|
|
1491
|
+
function Ln(e, t) {
|
|
1443
1492
|
return e ? t ? (n) => e(n) && t(n) : e : t;
|
|
1444
1493
|
}
|
|
1445
1494
|
//#endregion
|
|
1446
1495
|
//#region src/systems/interpolation-update.ts
|
|
1447
|
-
var
|
|
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 (
|
|
1496
|
+
var Rn = 1.5, zn = .5, Bn = (e, t, n) => {
|
|
1497
|
+
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), f = o === d, p = e.committedTicks?.[r[11]];
|
|
1498
|
+
if (p !== void 0 && !Number.isNaN(p) && !(f && d <= p)) {
|
|
1499
|
+
let e = i(r, 16);
|
|
1500
|
+
s = r[14], c = r[15], l = r[12], u = r[13], d = i(r, 16), f = e === d;
|
|
1501
|
+
}
|
|
1502
|
+
if (f) r[8] = l, r[9] = u, r[10] = s;
|
|
1503
|
+
else {
|
|
1450
1504
|
if (s = r[10], s <= 0 || r[7] <= 0) return;
|
|
1451
1505
|
l = r[8], u = r[9], c = r[6], d = r[2];
|
|
1452
|
-
}
|
|
1506
|
+
}
|
|
1453
1507
|
if (s <= 0) {
|
|
1454
1508
|
r[2] = d, r[6] = c, r[7] = 0, r[0] = l, r[1] = u;
|
|
1455
1509
|
return;
|
|
1456
1510
|
}
|
|
1457
|
-
let
|
|
1511
|
+
let m = r[7];
|
|
1458
1512
|
if (d !== r[2]) {
|
|
1459
1513
|
let e = r[6], t = c >= e ? c - e : s;
|
|
1460
|
-
|
|
1514
|
+
m += t, r[6] = c, r[2] = d;
|
|
1461
1515
|
}
|
|
1462
|
-
if (
|
|
1516
|
+
if (m <= 0) {
|
|
1463
1517
|
r[7] = 0, r[0] = l, r[1] = u;
|
|
1464
1518
|
return;
|
|
1465
1519
|
}
|
|
1466
|
-
let
|
|
1467
|
-
|
|
1468
|
-
let
|
|
1469
|
-
r[0] =
|
|
1470
|
-
},
|
|
1520
|
+
let h = Math.min(Math.max(e.elapsedTime, 0), m), g = s * Rn, _ = m - h;
|
|
1521
|
+
_ > g && (h += Math.min(_ - g, h * zn));
|
|
1522
|
+
let v = h / m, y = r[0], b = r[1];
|
|
1523
|
+
r[0] = y + (l - y) * v, r[1] = b + (u - b) * v, r[7] = m - h;
|
|
1524
|
+
}, Vn = class extends r {
|
|
1471
1525
|
constructor(e, t = {}) {
|
|
1472
1526
|
super(e, {
|
|
1473
1527
|
name: t.name ?? "InterpolationSystem",
|
|
1474
1528
|
deltaBetweenRuns: 0,
|
|
1475
1529
|
firstRun: t.firstRun,
|
|
1476
1530
|
required: ["transform", "interpolation"],
|
|
1477
|
-
updateFunction:
|
|
1531
|
+
updateFunction: Bn,
|
|
1478
1532
|
forceMainThread: t.forceMainThread ?? !t.getWorker,
|
|
1479
1533
|
getWorker: t.getWorker ?? (() => {
|
|
1480
1534
|
throw Error("InterpolationSystem cannot start a worker: no getWorker was supplied");
|
|
1481
1535
|
})
|
|
1482
1536
|
});
|
|
1483
1537
|
}
|
|
1538
|
+
addDataToWorld(e) {
|
|
1539
|
+
e.committedTicks = Nn(this.world);
|
|
1540
|
+
}
|
|
1484
1541
|
};
|
|
1485
1542
|
//#endregion
|
|
1486
|
-
export {
|
|
1543
|
+
export { be as BODY_BLOCKS_PATH_FLAG, 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, ke as BOUNCINESS_INDEX, Ae as BOUNCINESS_SIZE, Zt as COLLIDABLE_QUERY, en as CollisionBroadphase, le as DEFAULT_COLLIDE_CATEGORY, ue as DEFAULT_COLLIDE_MASK, Pn as DEFAULT_PHYSICS_STEP_MS, N as DYNAMICS_ACCELERATION_X_INDEX, P as DYNAMICS_ACCELERATION_Y_INDEX, ee as DYNAMICS_INVERSE_MASS_INDEX, F as DYNAMICS_SIZE, We as INTERPOLATION_CHANNEL_INDEX, Ie as INTERPOLATION_DURATION_INDEX, qe as INTERPOLATION_PREVIOUS_DURATION_INDEX, Ye as INTERPOLATION_PREVIOUS_TICK_INDEX, Je as INTERPOLATION_PREVIOUS_TOTAL_DURATION_INDEX, Ge as INTERPOLATION_PREVIOUS_X_INDEX, Ke as INTERPOLATION_PREVIOUS_Y_INDEX, Be as INTERPOLATION_REMAINING_DURATION_INDEX, Xe as INTERPOLATION_SIZE, ze as INTERPOLATION_SYNCED_DURATION_INDEX, Ue as INTERPOLATION_SYNCED_STEP_DURATION_INDEX, Fe as INTERPOLATION_SYNCED_TICK_INDEX, Ve as INTERPOLATION_TARGET_X_INDEX, He as INTERPOLATION_TARGET_Y_INDEX, Le as INTERPOLATION_TICK_INDEX, Re as INTERPOLATION_TOTAL_DURATION_INDEX, Ne as INTERPOLATION_X_INDEX, Pe as INTERPOLATION_Y_INDEX, Vn as InterpolationSystem, l as MAX_POLYGON_VERTICES, f as POLYGON_SIZE, u as POLYGON_VERTEX_COUNT_INDEX, d as POLYGON_VERTICES_INDEX, vn as POSITION_UPDATED_EVENT, wt as PhysicalWorld, In as PhysicsSystem, oe as SHAPE_CAPSULE, ae as SHAPE_CIRCLE, se as SHAPE_POLYGON, ie as SHAPE_RECTANGLE, sn 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, St as addPhysicalWorldData, Se as blocksPath, Ee as bodyDefinition, L as bodyShape, Me as bouncinessDefinition, mt as boundsHalfHeight, pt as boundsHalfWidth, de as canCollide, H as capsuleCoreAngle, V as capsuleHalfLength, ot as contactNormal, bn as createPhysicsUpdate, te as dynamicsDefinition, Ct as getSpatialMap, Ht as integrateDynamics, Qe as interpolationDefinition, Bn as interpolationUpdate, xe as isContinuous, Ce as isDying, R as isSensor, we as markDying, ht as orientedBoxesOverlap, tt as physicsRegistry, En as physicsUpdate, q as pointSegmentDistanceSquared, Ot as polygonContactNormal, m as polygonDefinition, Dt as polygonShapesOverlap, h as preparePolygon, _t as segmentBoxDistanceSquared, gt as segmentSegmentDistanceSquared, rt as shapeHalfHeight, nt as shapeHalfWidth, W as shapeIsEmpty, U as shapeRadius, it as shapesOverlap, $e as snapEntity, et as startSpawnInterpolation, T as transformDefinition, _n as updateSpatialMap, j as velocityDefinition };
|
|
1487
1544
|
|
|
1488
1545
|
//# sourceMappingURL=index.js.map
|