@vworlds/vecs-physics 1.0.52 → 1.0.54

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.
Files changed (50) hide show
  1. package/adapter/engine.d.ts +14 -4
  2. package/adapter/engine.js +14 -5
  3. package/adapter/engine.js.map +1 -1
  4. package/adapter/queries.d.ts +4 -4
  5. package/adapter/queries.js +19 -24
  6. package/adapter/queries.js.map +1 -1
  7. package/adapter/runtime.d.ts +14 -1
  8. package/adapter/runtime.js +27 -7
  9. package/adapter/runtime.js.map +1 -1
  10. package/body/components.d.ts +4 -1
  11. package/body/components.js +4 -1
  12. package/body/components.js.map +1 -1
  13. package/body/lifecycle.js +12 -17
  14. package/body/lifecycle.js.map +1 -1
  15. package/body/mass.js +47 -2
  16. package/body/mass.js.map +1 -1
  17. package/body/pose_in.js +7 -23
  18. package/body/pose_in.js.map +1 -1
  19. package/body/pose_out.d.ts +3 -0
  20. package/body/pose_out.js +59 -50
  21. package/body/pose_out.js.map +1 -1
  22. package/core/module.js +8 -2
  23. package/core/module.js.map +1 -1
  24. package/core/reaper.js +25 -16
  25. package/core/reaper.js.map +1 -1
  26. package/core/step.js +1 -1
  27. package/core/step.js.map +1 -1
  28. package/events/opt_in.js +8 -3
  29. package/events/opt_in.js.map +1 -1
  30. package/events/publish.d.ts +3 -0
  31. package/events/publish.js +138 -81
  32. package/events/publish.js.map +1 -1
  33. package/forces/gather.js +3 -5
  34. package/forces/gather.js.map +1 -1
  35. package/forces/impulses.js +10 -5
  36. package/forces/impulses.js.map +1 -1
  37. package/joints/lifecycle.js +6 -6
  38. package/joints/lifecycle.js.map +1 -1
  39. package/kinematic/targets.js +39 -40
  40. package/kinematic/targets.js.map +1 -1
  41. package/materials/sync.js +1 -1
  42. package/materials/sync.js.map +1 -1
  43. package/module.d.ts +3 -1
  44. package/module.js +6 -3
  45. package/module.js.map +1 -1
  46. package/package.json +3 -3
  47. package/shapes/chain.js +6 -3
  48. package/shapes/chain.js.map +1 -1
  49. package/shapes/lifecycle.js +8 -10
  50. package/shapes/lifecycle.js.map +1 -1
@@ -2,7 +2,7 @@ import { Module } from "@vworlds/vecs";
2
2
  import { getPhysicsEngine, PhysicsSystemTag, } from "../adapter/engine.js";
3
3
  import { Body } from "../body/components.js";
4
4
  import { KinematicTargetPosition, KinematicTargetRotation } from "./components.js";
5
- import { scr_b2Vec2 } from "../adapter/runtime.js";
5
+ import { rev, scr_fastOut } from "../adapter/runtime.js";
6
6
  import { PhysicsCoreModule } from "../core/module.js";
7
7
  export class KinematicTargetsModule extends Module {
8
8
  init() {
@@ -32,61 +32,60 @@ function drivePositionTarget(engine, bodyId, target, dt) {
32
32
  if (target === undefined) {
33
33
  return;
34
34
  }
35
- const position = engine.box2d.b2Body_GetPosition(bodyId);
36
- try {
37
- const dx = target.x - position.x;
38
- const dy = target.y - position.y;
39
- const dist = Math.hypot(dx, dy);
40
- if (dist > target.tolerance) {
41
- let vx = dx / dt;
42
- let vy = dy / dt;
43
- const speed = Math.hypot(vx, vy);
44
- if (speed > engine.maximumLinearSpeed) {
45
- const scale = engine.maximumLinearSpeed / speed;
46
- vx *= scale;
47
- vy *= scale;
48
- }
49
- setLinearVelocity(engine, bodyId, vx, vy);
50
- if (target.wake) {
51
- engine.box2d.b2Body_SetAwake(bodyId, true);
52
- }
35
+ const fast = engine.fast;
36
+ fast.module._b2x_Body_GetPosition(bodyId.index1, rev(bodyId), scr_fastOut);
37
+ fast.sync();
38
+ const out = scr_fastOut >> 2;
39
+ const px = fast.f32[out];
40
+ const py = fast.f32[out + 1];
41
+ const dx = target.x - px;
42
+ const dy = target.y - py;
43
+ const dist = Math.hypot(dx, dy);
44
+ if (dist > target.tolerance) {
45
+ let vx = dx / dt;
46
+ let vy = dy / dt;
47
+ const speed = Math.hypot(vx, vy);
48
+ if (speed > engine.maximumLinearSpeed) {
49
+ const scale = engine.maximumLinearSpeed / speed;
50
+ vx *= scale;
51
+ vy *= scale;
53
52
  }
54
- else {
55
- setLinearVelocity(engine, bodyId, 0, 0);
53
+ setLinearVelocity(engine, bodyId, vx, vy);
54
+ if (target.wake) {
55
+ fast.module._b2x_Body_SetAwake(bodyId.index1, rev(bodyId), 1);
56
56
  }
57
57
  }
58
- finally {
59
- position.delete();
58
+ else {
59
+ setLinearVelocity(engine, bodyId, 0, 0);
60
60
  }
61
61
  }
62
62
  function driveRotationTarget(engine, bodyId, target, dt) {
63
63
  if (target === undefined) {
64
64
  return;
65
65
  }
66
- const rotation = engine.box2d.b2Body_GetRotation(bodyId);
67
- try {
68
- const da = wrap(target.angle - rotation.GetAngle(), -Math.PI, Math.PI);
69
- if (Math.abs(da) > target.tolerance) {
70
- engine.box2d.b2Body_SetAngularVelocity(bodyId, da / dt);
71
- if (target.wake) {
72
- engine.box2d.b2Body_SetAwake(bodyId, true);
73
- }
74
- }
75
- else {
76
- engine.box2d.b2Body_SetAngularVelocity(bodyId, 0);
66
+ const fast = engine.fast;
67
+ const r = rev(bodyId);
68
+ fast.module._b2x_Body_GetPose(bodyId.index1, r, scr_fastOut);
69
+ fast.sync();
70
+ // The exact Box2D b2Atan2 result used by embind's GetAngle.
71
+ const angle = fast.f32[(scr_fastOut + fast.layout.pose.angle) >> 2];
72
+ const da = wrap(target.angle - angle, -Math.PI, Math.PI);
73
+ if (Math.abs(da) > target.tolerance) {
74
+ fast.module._b2x_Body_SetAngularVelocity(bodyId.index1, r, da / dt);
75
+ if (target.wake) {
76
+ fast.module._b2x_Body_SetAwake(bodyId.index1, r, 1);
77
77
  }
78
78
  }
79
- finally {
80
- rotation.delete();
79
+ else {
80
+ fast.module._b2x_Body_SetAngularVelocity(bodyId.index1, r, 0);
81
81
  }
82
82
  }
83
83
  function isKinematicBody(engine, bodyId) {
84
- return engine.box2d.b2Body_GetType(bodyId) === engine.box2d.b2BodyType.b2_kinematicBody;
84
+ return (engine.fast.module._b2x_Body_GetType(bodyId.index1, rev(bodyId)) ===
85
+ engine.box2d.b2BodyType.b2_kinematicBody.value);
85
86
  }
86
87
  function setLinearVelocity(engine, bodyId, x, y) {
87
- const vec = scr_b2Vec2[0];
88
- vec.Set(x, y);
89
- engine.box2d.b2Body_SetLinearVelocity(bodyId, vec);
88
+ engine.fast.module._b2x_Body_SetLinearVelocity(bodyId.index1, rev(bodyId), x, y);
90
89
  }
91
90
  function wrap(value, min, max) {
92
91
  const range = max - min;
@@ -1 +1 @@
1
- {"version":3,"file":"targets.js","sourceRoot":"","sources":["../../../../src/kinematic/targets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"targets.js","sourceRoot":"","sources":["../../../../src/kinematic/targets.ts"],"names":[],"mappings":"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"}
package/materials/sync.js CHANGED
@@ -25,7 +25,7 @@ export class MaterialFilterSyncModule extends Module {
25
25
  inject: [SingleShape, { target: [ChildOf, [Body]] }],
26
26
  }, (it, material, [shape, body]) => {
27
27
  if (requiresMaterialRecreate(engine, shape, material)) {
28
- // box2d3-wasm@5.2.0 exposes no shape setters for rollingResistance,
28
+ // Keep the existing shape-recreation contract for rollingResistance,
29
29
  // tangentSpeed, or userMaterialId, so those updates recreate the shape.
30
30
  recreateSingleShapeForEntity(engine, it.entity, it.entity.target(ChildOf), body, shape);
31
31
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../../src/materials/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../../src/materials/sync.ts"],"names":[],"mappings":"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"}
package/module.d.ts CHANGED
@@ -1,7 +1,9 @@
1
1
  import { Module } from "@vworlds/vecs";
2
2
  import { type PhysicsOptions } from "./core/module.js";
3
3
  export type { PhysicsOptions } from "./core/module.js";
4
- /** World module that installs physics when registered with `world.module`. */
4
+ /** World module that installs physics when registered with `world.module`.
5
+ * Internal cleanup runs after preStep and before step, so a pre-step entity
6
+ * destruction cannot leave a colliding body behind for that step. */
5
7
  export declare class PhysicsModule extends Module<PhysicsOptions | undefined> {
6
8
  init(options: PhysicsOptions | undefined): void;
7
9
  }
package/module.js CHANGED
@@ -22,7 +22,9 @@ import { KinematicModule } from "./kinematic/module.js";
22
22
  import { MaterialsModule } from "./materials/module.js";
23
23
  import { ShapesModule } from "./shapes/module.js";
24
24
  import { ShapePoseModule } from "./shapes/pose_sync.js";
25
- /** World module that installs physics when registered with `world.module`. */
25
+ /** World module that installs physics when registered with `world.module`.
26
+ * Internal cleanup runs after preStep and before step, so a pre-step entity
27
+ * destruction cannot leave a colliding body behind for that step. */
26
28
  export class PhysicsModule extends Module {
27
29
  init(options) {
28
30
  const world = this.world;
@@ -38,13 +40,14 @@ export class PhysicsModule extends Module {
38
40
  world.module(MaterialsModule);
39
41
  world.module(EventsModule);
40
42
  world.module(EventOptInModule);
41
- world.module(PhysicsReaperModule);
42
43
  world.module(ShapePoseModule);
43
44
  world.module(BodyPoseInModule);
44
45
  world.module(KinematicModule);
45
46
  world.module(ForcesModule);
46
- world.module(BodyMassModule);
47
47
  world.module(DebugModule);
48
+ // physics-cleanup: drain flush-time teardown, then recompute surviving mass.
49
+ world.module(PhysicsReaperModule);
50
+ world.module(BodyMassModule);
48
51
  // physics-step: integrator.
49
52
  world.module(PhysicsStepModule);
50
53
  // physics-post: writeback, events, and one-shot cleanup.
package/module.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../src/module.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,4EAA4E;AAC5E,6EAA6E;AAC7E,WAAW;AAEX,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAuB,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAIxD,8EAA8E;AAC9E,MAAM,OAAO,aAAc,SAAQ,MAAkC;IAC5D,IAAI,CAAC,OAAmC;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEzB,2EAA2E;QAC3E,wEAAwE;QACxE,6DAA6D;QAC7D,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACpC,KAAK,CAAC,MAAM,CAAC,iBAAiB,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;QAE/C,6DAA6D;QAC7D,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACzB,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC3B,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC3B,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAC9B,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC3B,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC/B,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAClC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAC9B,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC/B,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAC9B,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC3B,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAC7B,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAE1B,4BAA4B;QAC5B,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAEhC,yDAAyD;QACzD,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAChC,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACjC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAClC,CAAC;CACF"}
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../src/module.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,4EAA4E;AAC5E,6EAA6E;AAC7E,WAAW;AAEX,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAuB,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAIxD;;qEAEqE;AACrE,MAAM,OAAO,aAAc,SAAQ,MAAkC;IAC5D,IAAI,CAAC,OAAmC;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEzB,2EAA2E;QAC3E,wEAAwE;QACxE,6DAA6D;QAC7D,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACpC,KAAK,CAAC,MAAM,CAAC,iBAAiB,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;QAE/C,6DAA6D;QAC7D,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACzB,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC3B,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC3B,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAC9B,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC3B,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC/B,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAC9B,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC/B,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAC9B,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC3B,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAE1B,6EAA6E;QAC7E,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAClC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAE7B,4BAA4B;QAC5B,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAEhC,yDAAyD;QACzD,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAChC,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACjC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAClC,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vworlds/vecs-physics",
3
- "version": "1.0.52",
3
+ "version": "1.0.54",
4
4
  "type": "module",
5
5
  "main": "./index.js",
6
6
  "types": "./index.d.ts",
@@ -15,8 +15,8 @@
15
15
  "url": "git+https://github.com/vworlds/vecs.git"
16
16
  },
17
17
  "dependencies": {
18
- "@vworlds/vecs": "1.0.52",
19
- "box2d3-wasm": "^5.2.0"
18
+ "@vworlds/box2d3-wasm": "6.0.1",
19
+ "@vworlds/vecs": "1.0.54"
20
20
  },
21
21
  "license": "MIT"
22
22
  }
package/shapes/chain.js CHANGED
@@ -18,14 +18,17 @@ export class ChainLifecycleModule extends Module {
18
18
  .phase(phase)
19
19
  .enter({ cursor: Iter, inject: [Chain, { target: [ChildOf, [Body]] }] }, (it, [chain, body]) => {
20
20
  createChainForEntity(engine, it.entity, it.entity.target(ChildOf), body, chain);
21
- })
22
- .exit([Chain, { target: [ChildOf, Entity] }], (entity, [chain, parent]) => {
23
- destroyChainForEntity(engine, entity, true, parent, chain);
24
21
  })
25
22
  .update({ watch: Chain, cursor: Iter, inject: [{ target: [ChildOf, [Body]] }] }, (it, chain, [body]) => {
26
23
  recreateChainForEntity(engine, it.entity, it.entity.target(ChildOf), body, chain);
27
24
  })
28
25
  .add(PhysicsSystemTag);
26
+ world
27
+ .query("PhysicsChainTeardown")
28
+ .with(chainWithBodyParent)
29
+ .exit([Chain, { target: [ChildOf, Entity] }], (entity, [chain, parent]) => {
30
+ destroyChainForEntity(engine, entity, true, parent, chain);
31
+ });
29
32
  world
30
33
  .system("PhysicsChainLifecycle:ChildOf")
31
34
  .with(ChildOf, chainWithBodyParent)
@@ -1 +1 @@
1
- {"version":3,"file":"chain.js","sourceRoot":"","sources":["../../../../src/shapes/chain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE9D,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GAGjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EACL,aAAa,EACb,uBAAuB,EACvB,aAAa,EACb,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAExB,MAAM,OAAO,oBAAqB,SAAQ,MAAM;IACvC,IAAI;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAEhC,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;QACpC,KAAK;aACF,MAAM,CAAC,uBAAuB,CAAC;aAC/B,IAAI,CAAC,mBAAmB,CAAC;aACzB,KAAK,CAAC,KAAK,CAAC;aACZ,KAAK,CACJ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAChE,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;YACpB,oBAAoB,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAClF,CAAC,CACF;aACA,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE;YACxE,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAC7D,CAAC,CAAC;aACD,MAAM,CACL,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EACvE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE;YACpB,sBAAsB,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACpF,CAAC,CACF;aACA,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAEzB,KAAK;aACF,MAAM,CAAC,+BAA+B,CAAC;aACvC,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC;aAClC,KAAK,CAAC,KAAK,CAAC;aACZ,MAAM,CACL;YACE,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;SAC/C,EACD,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;YAC9B,sBAAsB,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACpF,CAAC,CACF;aACA,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,UAAU,sBAAsB,CACpC,MAAqB,EACrB,MAAc,EACd,YAAgC,EAChC,UAA4B,EAC5B,KAAwB;IAExB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;IAClE,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,oBAAoB,CAC3B,MAAqB,EACrB,MAAc,EACd,YAAgC,EAChC,UAA4B,EAC5B,KAAwB;IAExB,MAAM,MAAM,GAAG,UAAU,EAAE,OAAO,CAAC;IACnC,IAAI,YAAY,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC9E,OAAO;IACT,CAAC;IACD,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AAC3D,CAAC;AAED,mFAAmF;AACnF,iFAAiF;AACjF,wDAAwD;AACxD,SAAS,qBAAqB,CAC5B,MAAqB,EACrB,MAAc,EACd,YAAqB,EACrB,MAAe,EACf,KAAuB;IAEvB,MAAM,cAAc,GAAG,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;IAC/C,MAAM,aAAa,GAAG,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,aAAa,EAAE,QAAQ,CAAC;IACxC,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,eAAe,EAAE,CAAC;YAClD,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;QACD,aAAa,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO;IACT,CAAC;IAED,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IACD,uBAAuB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAEhD,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAsB,CAAC;IAC5D,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,YAAY,CAAC,QAAQ,GAAG,SAAS,CAAC;IACpC,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAClB,MAAqB,EACrB,MAAc,EACd,MAAc,EACd,MAAgB,EAChB,KAAY;IAEZ,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC3B,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAC7B,CAAC,KAAK,EAAE,EAAE,CACR,IAAI,KAAK,CAAC,MAAM,CACd,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,EACtC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CACvC,CACJ,CAAC;IACF,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE;YAC7D,aAAa,CAAC,GAAG,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;YAC7C,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC;YACxB,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;YAC1B,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACtB,OAAO,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;QACzB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAC7C,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;YAAS,CAAC;QACT,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAqB,EAAE,MAAc,EAAE,KAAY;IAChF,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC;IAC/B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAA8B,CAAC;IAC/F,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1D,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"chain.js","sourceRoot":"","sources":["../../../../src/shapes/chain.ts"],"names":[],"mappings":"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"}
@@ -21,11 +21,6 @@ export class ShapeLifecycleModule extends Module {
21
21
  .phase(phase)
22
22
  .enter({ cursor: Iter, inject: [SingleShape, { target: [ChildOf, [Body]] }] }, (it, [shape, body]) => {
23
23
  createShapeForEntity(engine, it.entity, it.entity.target(ChildOf), body, shape);
24
- })
25
- // Snapshot the target and shape while the relationship still exists; the
26
- // exit callback may run after the source entity has been destroyed.
27
- .exit([SingleShape, { target: [ChildOf, Entity] }], (entity, [shape, parent]) => {
28
- destroyShapeForEntity(engine, entity, true, parent, shape);
29
24
  })
30
25
  .update({ watch: SingleShape, cursor: Iter, inject: [{ target: [ChildOf, [Body]] }] }, (it, shape, [body]) => {
31
26
  if ((shape instanceof Capsule &&
@@ -36,6 +31,12 @@ export class ShapeLifecycleModule extends Module {
36
31
  recreateSingleShapeForEntity(engine, it.entity, it.entity.target(ChildOf), body, shape);
37
32
  })
38
33
  .add(PhysicsSystemTag);
34
+ world
35
+ .query("PhysicsShapeTeardown")
36
+ .with(singleShapeWithBodyParent)
37
+ .exit([SingleShape, { target: [ChildOf, Entity] }], (entity, [shape, parent]) => {
38
+ destroyShapeForEntity(engine, entity, true, parent, shape);
39
+ });
39
40
  world
40
41
  .system("PhysicsShapeLifecycle:ChildOf")
41
42
  .with(ChildOf, singleShapeWithBodyParent)
@@ -92,11 +93,8 @@ function destroyShapeForEntity(engine, entity, deferDestroy, parent, shape) {
92
93
  engine.entityByShapeIndex.delete(shapeId.index1);
93
94
  }
94
95
  markParentBodyMassDirty(engine, resolvedParent);
95
- // Clear the handle on the live component if it still exists (e.g. the
96
- // parent body was removed and the shape entity remains, no longer matching
97
- // the lifecycle predicate). When `shape` was injected from an exit
98
- // snapshot, `entity.get(Shape)` is already cleared by `_destroy` and this
99
- // is a no-op.
96
+ // Clear the handle if the component is still readable at this exit flush
97
+ // (e.g. a surviving shape whose parent lost Body), before a later create pass.
100
98
  const mutableShape = entity.get(SingleShape);
101
99
  if (mutableShape !== undefined) {
102
100
  mutableShape._shapeId = undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../../../src/shapes/lifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../../../src/shapes/lifecycle.ts"],"names":[],"mappings":"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"}