@ignifx/physics-2d 0.9.0 → 0.11.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.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { AssetHandle, AssetLoader, Component, ComponentHooks, DiagnosticsGroup, Disconnect, Entity, ErrorContext, Extension, ExtensionContext, IgnifxError, JsonValue, LayerMask, MutableVec2, Schema, SchemaDescription, Signal, Vec2, Vec2Like } from "@ignifx/core";
1
+ import { AssetHandle, AssetLoader, Component, ComponentHooks, DiagnosticsGroup, Disconnect, Entity, ErrorContext, Extension, ExtensionContext, IgnifxError, JsonValue, LayerMask, MutableVec2, Schema, SchemaDescription, Signal, Vec2, Vec2Like, Vec3 } from "@ignifx/core";
2
2
  import { Collider, EventQueue, RigidBody, World } from "@dimforge/rapier2d-compat";
3
3
  import { TilemapCollisionData } from "@ignifx/2d";
4
4
  //#region src/settings.d.ts
@@ -315,6 +315,13 @@ export declare abstract class Collider2D extends Component implements ComponentH
315
315
  onAttach(): void;
316
316
  /** Marks the entity's body for a rebuild, which removes this collider from it. */
317
317
  onDetach(): void;
318
+ /**
319
+ * Rebuilds the body after a tool changed fields from outside: an editor's inspector, or a hot
320
+ * reload's new default (`ComponentHooks.onValidate`).
321
+ *
322
+ * @param fields - The fields that changed.
323
+ */
324
+ onValidate(fields: readonly string[]): void;
318
325
  /**
319
326
  * Rebuilds the entity's body and shapes at the start of the next fixed step. Call it after
320
327
  * changing a size, an offset, `isTrigger`, or the entity's scale.
@@ -511,6 +518,13 @@ export declare class Rigidbody2D extends Component implements ComponentHooks {
511
518
  onAttach(): void;
512
519
  /** Marks the entity's body for a rebuild, which turns it back into an implicit static body. */
513
520
  onDetach(): void;
521
+ /**
522
+ * Rebuilds the body after a tool changed fields from outside: an editor's inspector, or a hot
523
+ * reload's new default (`ComponentHooks.onValidate`).
524
+ *
525
+ * @param fields - The fields that changed.
526
+ */
527
+ onValidate(fields: readonly string[]): void;
514
528
  /**
515
529
  * Rebuilds the body at the start of the next fixed step. Call it after changing `bodyType`,
516
530
  * `mass`, `freezeRotation`, damping, or the entity's scale.
@@ -655,6 +669,13 @@ export declare class CharacterController2D extends Component implements Componen
655
669
  onAttach(): void;
656
670
  /** Releases the Rapier controller and its collider. */
657
671
  onDetach(): void;
672
+ /**
673
+ * Rebuilds the body after a tool changed fields from outside: an editor's inspector, or a hot
674
+ * reload's new default (`ComponentHooks.onValidate`).
675
+ *
676
+ * @param fields - The fields that changed.
677
+ */
678
+ onValidate(fields: readonly string[]): void;
658
679
  /** Rebuilds the capsule or box at the start of the next fixed step. */
659
680
  rebuild(): void;
660
681
  /**
@@ -878,19 +899,21 @@ export declare class EdgeCollider2D extends Collider2D {
878
899
  }
879
900
  //#endregion
880
901
  //#region src/components/tilemap-collider.d.ts
881
- /**
882
- * Read tile collision data through the optional 2D toolkit's type and rebuild when its version changes.
883
- * Closed polylines preserve concave tile outlines that convex hulls would fill in. They are thin
884
- * surfaces, so a body starting inside the map is not pushed out.
885
- */
886
902
  /**
887
903
  * The collision surface of a tilemap, as one static body's worth of Rapier shapes.
888
904
  *
905
+ * @remarks
906
+ * The collider reads the `Tilemap` on its own entity, so a scene file that holds both components
907
+ * has tile collision as soon as it loads. It follows that tilemap: a tile edit, a new map, or a
908
+ * tilemap added later all reach physics at the next fixed step. Assign
909
+ * {@link TilemapCollider2D.collisionData} only to use other geometry, such as data you built in
910
+ * code or a tilemap on another entity.
911
+ *
889
912
  * @example
890
913
  * ```ts
891
- * const map = world.createEntity("Map");
892
- * const collider = map.addComponent(TilemapCollider2D);
893
- * collider.collisionData = tilemap.collisionData;
914
+ * const level = world.createEntity("Level");
915
+ * level.addComponent(Tilemap).map = app.assets.load<TilemapAsset>("level.tilemap.json");
916
+ * level.addComponent(TilemapCollider2D); // reads the Tilemap beside it
894
917
  * ```
895
918
  *
896
919
  * @public
@@ -904,21 +927,33 @@ export declare class TilemapCollider2D extends Collider2D {
904
927
  /** Applies the shared defaults. */
905
928
  constructor();
906
929
  /**
907
- * The merged chunk geometry this collider builds shapes from.
930
+ * The merged chunk geometry this collider builds shapes from: the assigned data, or else the
931
+ * `Tilemap` on the same entity.
932
+ *
933
+ * @remarks
934
+ * Reading it works in any app, before any body is built. An edit-mode app also builds the body
935
+ * without stepping (ADR-0028, amendment of 2026-10-20), so `app.physics2d.colliderOutlines` draws
936
+ * the same outlines from Rapier.
908
937
  *
909
- * @returns The data, or `null` when none has been supplied.
938
+ * @returns The data, or `null` when nothing was assigned and the entity has no `Tilemap`.
910
939
  */
911
940
  get collisionData(): TilemapCollisionData | null;
912
941
  /**
913
- * Replaces the tilemap geometry and schedules a rebuild.
942
+ * Uses other geometry instead of the sibling tilemap's, and schedules a rebuild.
914
943
  *
915
- * @param value - The merged chunk geometry, or `null` to drop the shapes.
944
+ * @param value - The merged chunk geometry, or `null` to go back to the `Tilemap` on the same
945
+ * entity (no shapes when there is none).
916
946
  */
917
947
  set collisionData(value: TilemapCollisionData | null);
918
948
  /**
919
949
  * Whether the supplied data has changed since the shapes were built. The runtime polls this once
920
950
  * per fixed step, which is how a tile edit reaches physics without a cross-package subscription.
921
951
  *
952
+ * @remarks
953
+ * A disabled collider, or one on an inactive entity, builds no shapes, so it answers `false`
954
+ * rather than asking for the same empty rebuild every step. Enabling it again finds the data
955
+ * changed and rebuilds.
956
+ *
922
957
  * @returns `true` when a rebuild is due.
923
958
  *
924
959
  * @internal
@@ -1134,6 +1169,13 @@ interface BodyRecord2D {
1134
1169
  staticVersion: number;
1135
1170
  /** Whether the `IGX-1151` diagnostic has already been reported for this body. */
1136
1171
  reportedMove: boolean;
1172
+ /**
1173
+ * `Transform.worldMatrixVersion` when the body was last placed. An edit-mode app compares it each
1174
+ * frame to follow a transform the editor moved (ADR-0028, amendment of 2026-10-20).
1175
+ */
1176
+ placedVersion: number;
1177
+ /** The lossy scale the colliders were built at; a different scale needs new colliders. */
1178
+ readonly placedScale: Vec3;
1137
1179
  /** Signal connections the record owns, dropped when it is torn down. */
1138
1180
  disconnects: Disconnect[];
1139
1181
  }
@@ -1206,6 +1248,13 @@ declare class Physics2DRuntime {
1206
1248
  * @returns `true` once a step has completed.
1207
1249
  */
1208
1250
  get hasStepped(): boolean;
1251
+ /**
1252
+ * Whether this runtime belongs to an edit-mode app, where bodies are kept in sync with the world
1253
+ * by {@link Physics2DRuntime.syncEditMode} and never stepped (ADR-0028, amendment of 2026-10-20).
1254
+ *
1255
+ * @returns `true` in an editor's scene view.
1256
+ */
1257
+ get isEditMode(): boolean;
1209
1258
  /**
1210
1259
  * Every body, in creation order.
1211
1260
  *
@@ -1349,6 +1398,19 @@ declare class Physics2DRuntime {
1349
1398
  * @param fixedDeltaSeconds - The fixed step in seconds.
1350
1399
  */
1351
1400
  step(fixedDeltaSeconds: number): void;
1401
+ /**
1402
+ * Brings the bodies in line with the world without stepping, which is all an edit-mode app ever
1403
+ * does with them (ADR-0028, amendment of 2026-10-20): it builds, rebuilds, and removes bodies for
1404
+ * component, layer, and tile changes, and places every body whose transform moved where the
1405
+ * transform now is, so a query sees what the editor shows. The world is never stepped, so nothing
1406
+ * falls, no contact or trigger callback fires, and no pose is written back to a transform.
1407
+ *
1408
+ * @remarks
1409
+ * Rapier refreshes its broadphase only inside a step, so after a change this runs the same
1410
+ * zero-length step a game runs before its first real one (S6.2). With a zero timestep nothing
1411
+ * moves; the events it reports are dropped. A changed scale rebuilds the body's colliders.
1412
+ */
1413
+ syncEditMode(): void;
1352
1414
  /**
1353
1415
  * Writes the interpolated display pose of every interpolated body.
1354
1416
  *
@@ -1388,6 +1450,23 @@ interface Physics2DRapierHandles {
1388
1450
  /** Rapier's `World`. */
1389
1451
  readonly world: RapierWorld;
1390
1452
  }
1453
+ /**
1454
+ * One 2D collider's outline, from `app.physics2d.colliderOutlines`: what an editor draws as a
1455
+ * collider gizmo (ADR-0028, amendment of 2026-10-20).
1456
+ *
1457
+ * @public
1458
+ */
1459
+ interface ColliderOutline2D {
1460
+ /** The collider the outline is of. */
1461
+ readonly collider: Collider2D;
1462
+ /** Whether the collider is a trigger, which an editor usually draws in another colour. */
1463
+ readonly isTrigger: boolean;
1464
+ /**
1465
+ * The outline as world-space line segments in the XY plane: every four numbers are one segment,
1466
+ * the `x, y` of its two ends, in metres.
1467
+ */
1468
+ readonly lines: Float32Array;
1469
+ }
1391
1470
  /**
1392
1471
  * The service behind `app.physics2d`.
1393
1472
  *
@@ -1438,7 +1517,7 @@ export declare class Physics2DService {
1438
1517
  * @param maxDistance - How far to travel; defaults to 10 km.
1439
1518
  * @param options - Layer mask and trigger behaviour.
1440
1519
  * @returns The hit, or `null` when the ray clears everything.
1441
- * @throws IgnifxError with code `IGX-1153` when no fixed step has run yet.
1520
+ * @throws IgnifxError with code `IGX-1153` when no fixed step has run yet, outside edit mode.
1442
1521
  */
1443
1522
  raycast(origin: Vec2Like, direction: Vec2Like, maxDistance?: number, options?: QueryOptions2D): RaycastHit2D | null;
1444
1523
  /**
@@ -1449,7 +1528,7 @@ export declare class Physics2DService {
1449
1528
  * @param maxDistance - How far to travel; defaults to 10 km.
1450
1529
  * @param options - Layer mask and trigger behaviour.
1451
1530
  * @returns The hits, in increasing distance. The array is reused between calls.
1452
- * @throws IgnifxError with code `IGX-1153` when no fixed step has run yet.
1531
+ * @throws IgnifxError with code `IGX-1153` when no fixed step has run yet, outside edit mode.
1453
1532
  */
1454
1533
  raycastAll(origin: Vec2Like, direction: Vec2Like, maxDistance?: number, options?: QueryOptions2D): readonly RaycastHit2D[];
1455
1534
  /**
@@ -1459,7 +1538,7 @@ export declare class Physics2DService {
1459
1538
  * @param radius - Its radius in metres.
1460
1539
  * @param options - Layer mask and trigger behaviour.
1461
1540
  * @returns The overlapping entities, in Rapier's order. The array is reused between calls.
1462
- * @throws IgnifxError with code `IGX-1153` when no fixed step has run yet.
1541
+ * @throws IgnifxError with code `IGX-1153` when no fixed step has run yet, outside edit mode.
1463
1542
  */
1464
1543
  overlapCircle(centre: Vec2Like, radius: number, options?: QueryOptions2D): readonly Entity[];
1465
1544
  /**
@@ -1470,7 +1549,7 @@ export declare class Physics2DService {
1470
1549
  * @param rotation - Its rotation in degrees counter-clockwise; defaults to `0`.
1471
1550
  * @param options - Layer mask and trigger behaviour.
1472
1551
  * @returns The overlapping entities. The array is reused between calls.
1473
- * @throws IgnifxError with code `IGX-1153` when no fixed step has run yet.
1552
+ * @throws IgnifxError with code `IGX-1153` when no fixed step has run yet, outside edit mode.
1474
1553
  */
1475
1554
  overlapBox(centre: Vec2Like, size: Vec2Like, rotation?: number, options?: QueryOptions2D): readonly Entity[];
1476
1555
  /**
@@ -1482,9 +1561,32 @@ export declare class Physics2DService {
1482
1561
  * @param maxDistance - How far to sweep.
1483
1562
  * @param options - Layer mask and trigger behaviour.
1484
1563
  * @returns The hit, or `null`.
1485
- * @throws IgnifxError with code `IGX-1153` when no fixed step has run yet.
1564
+ * @throws IgnifxError with code `IGX-1153` when no fixed step has run yet, outside edit mode.
1486
1565
  */
1487
1566
  shapeCast(centre: Vec2Like, radius: number, direction: Vec2Like, maxDistance: number, options?: QueryOptions2D): ShapeCastHit2D | null;
1567
+ /**
1568
+ * The outlines of an entity's 2D colliders, as world-space line segments: what an editor draws as
1569
+ * collider gizmos (ADR-0028, amendment of 2026-10-20).
1570
+ *
1571
+ * @remarks
1572
+ * The segments are Rapier's own debug drawing of the colliders the entity's body is built from,
1573
+ * so a polygon, an edge chain, a capsule, a one-way platform, and every piece of a
1574
+ * `TilemapCollider2D` are outlined exactly. A body exists from the first fixed step in a game,
1575
+ * and from the first frame or query in an edit-mode app, which keeps bodies on the transforms the
1576
+ * editor moves; an entity without one (no enabled collider yet, or before that point) has no
1577
+ * outline. A `CharacterController2D`'s own shape is not a collider and is not outlined.
1578
+ *
1579
+ * @param entity - The entity whose colliders to outline.
1580
+ * @returns One outline per collider that produced a shape, in component order; empty when none.
1581
+ *
1582
+ * @example
1583
+ * ```ts
1584
+ * for (const outline of app.physics2d.colliderOutlines(selected)) {
1585
+ * drawLines2D(outline.lines, outline.isTrigger ? "orange" : "green");
1586
+ * }
1587
+ * ```
1588
+ */
1589
+ colliderOutlines(entity: Entity): readonly ColliderOutline2D[];
1488
1590
  }
1489
1591
  //#endregion
1490
1592
  //#region src/extension.d.ts
@@ -1553,5 +1655,5 @@ export declare const physics2d: (options?: Physics2DOptions) => Extension;
1553
1655
  */
1554
1656
  export declare function describeSchemas(): Readonly<Record<string, SchemaDescription>>;
1555
1657
  //#endregion
1556
- export type { BodyType2D, CapsuleDirection2D, CharacterCollision2D, CharacterShape2D, Collision2D, CollisionEventMode2D, CombineRule, ContactPoint2D, InterpolationMode2D, Physics2DErrorOptions, Physics2DMaterialValues, Physics2DOptions, Physics2DRapierHandles, Physics2DSettings, QueryOptions2D, RaycastHit2D, Rigidbody2DRapierHandles, ShapeCastHit2D, TriggerEvent2D };
1658
+ export type { BodyType2D, CapsuleDirection2D, CharacterCollision2D, CharacterShape2D, ColliderOutline2D, Collision2D, CollisionEventMode2D, CombineRule, ContactPoint2D, InterpolationMode2D, Physics2DErrorOptions, Physics2DMaterialValues, Physics2DOptions, Physics2DRapierHandles, Physics2DSettings, QueryOptions2D, RaycastHit2D, Rigidbody2DRapierHandles, ShapeCastHit2D, TriggerEvent2D };
1557
1659
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../src/settings.ts","../src/material.ts","../src/lite/rapier/world.ts","../src/components/collider.ts","../src/events.ts","../src/components/rigidbody.ts","../src/components/character-controller.ts","../src/components/colliders.ts","../src/components/tilemap-collider.ts","../src/errors.ts","../src/queries.ts","../src/runtime/body-record.ts","../src/runtime/runtime.ts","../src/runtime/host.ts","../src/service.ts","../src/extension.ts","../src/schemas.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/settings.ts","../src/material.ts","../src/lite/rapier/world.ts","../src/components/collider.ts","../src/events.ts","../src/components/rigidbody.ts","../src/components/character-controller.ts","../src/components/colliders.ts","../src/components/tilemap-collider.ts","../src/errors.ts","../src/queries.ts","../src/runtime/body-record.ts","../src/runtime/runtime.ts","../src/runtime/host.ts","../src/service.ts","../src/extension.ts","../src/schemas.ts"],"mappings":"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"}