@datamoc/mw_games 0.39.1 → 0.41.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.
Files changed (94) hide show
  1. package/CHANGELOG.md +89 -0
  2. package/REFERENCE.md +2115 -0
  3. package/api-surface.json +48 -0
  4. package/data/microgm-opt.PROVENANCE.md +23 -0
  5. package/data/microgm-opt.sf2 +0 -0
  6. package/data/soundfont-catalog.json +183 -0
  7. package/dist/ai/index.d.ts +10 -0
  8. package/dist/ai/index.d.ts.map +1 -1
  9. package/dist/ai/index.js.map +1 -1
  10. package/dist/ai/lua.d.ts +6 -0
  11. package/dist/ai/lua.d.ts.map +1 -1
  12. package/dist/ai/lua.js.map +1 -1
  13. package/dist/audio/SampleDecoder.d.ts +41 -0
  14. package/dist/audio/SampleDecoder.d.ts.map +1 -0
  15. package/dist/audio/SampleDecoder.js +70 -0
  16. package/dist/audio/SampleDecoder.js.map +1 -0
  17. package/dist/audio/SoundFont.d.ts +59 -0
  18. package/dist/audio/SoundFont.d.ts.map +1 -1
  19. package/dist/audio/SoundFont.js +248 -2
  20. package/dist/audio/SoundFont.js.map +1 -1
  21. package/dist/audio/index.d.ts +3 -1
  22. package/dist/audio/index.d.ts.map +1 -1
  23. package/dist/audio/index.js +2 -1
  24. package/dist/audio/index.js.map +1 -1
  25. package/dist/mw_games.global.js +11 -11
  26. package/dist/mwl/presentation.d.ts +16 -0
  27. package/dist/mwl/presentation.d.ts.map +1 -1
  28. package/dist/mwl/presentation.js.map +1 -1
  29. package/dist/mwl/pyroeis-runtime.d.ts +7 -0
  30. package/dist/mwl/pyroeis-runtime.d.ts.map +1 -1
  31. package/dist/mwl/pyroeis-runtime.js.map +1 -1
  32. package/dist/mwl/pyroeis.d.ts +3 -0
  33. package/dist/mwl/pyroeis.d.ts.map +1 -1
  34. package/dist/mwl/pyroeis.js.map +1 -1
  35. package/dist/physics/PhysicsWorld.d.ts +3 -0
  36. package/dist/physics/PhysicsWorld.d.ts.map +1 -1
  37. package/dist/physics/PhysicsWorld.js.map +1 -1
  38. package/dist/physics/XpbdWorld.d.ts +11 -0
  39. package/dist/physics/XpbdWorld.d.ts.map +1 -1
  40. package/dist/physics/XpbdWorld.js.map +1 -1
  41. package/dist/physics/cloth/index.d.ts +20 -19
  42. package/dist/physics/cloth/index.d.ts.map +1 -1
  43. package/dist/physics/cloth/index.js +19 -0
  44. package/dist/physics/cloth/index.js.map +1 -1
  45. package/dist/physics/spring/index.d.ts +19 -18
  46. package/dist/physics/spring/index.d.ts.map +1 -1
  47. package/dist/physics/spring/index.js +23 -0
  48. package/dist/physics/spring/index.js.map +1 -1
  49. package/dist/three-d/Character3D.d.ts +8 -7
  50. package/dist/three-d/Character3D.d.ts.map +1 -1
  51. package/dist/three-d/Character3D.js +7 -0
  52. package/dist/three-d/Character3D.js.map +1 -1
  53. package/dist/three-d/Collision3D.d.ts +4 -0
  54. package/dist/three-d/Collision3D.d.ts.map +1 -1
  55. package/dist/three-d/Collision3D.js.map +1 -1
  56. package/dist/three-d/Engine3D.d.ts +2 -0
  57. package/dist/three-d/Engine3D.d.ts.map +1 -1
  58. package/dist/three-d/Engine3D.js.map +1 -1
  59. package/dist/three-d/Grid.d.ts +5 -0
  60. package/dist/three-d/Grid.d.ts.map +1 -1
  61. package/dist/three-d/Grid.js.map +1 -1
  62. package/dist/three-d/Heightmap.d.ts +3 -0
  63. package/dist/three-d/Heightmap.d.ts.map +1 -1
  64. package/dist/three-d/Heightmap.js.map +1 -1
  65. package/dist/three-d/TileGrid3D.d.ts +6 -0
  66. package/dist/three-d/TileGrid3D.d.ts.map +1 -1
  67. package/dist/three-d/TileGrid3D.js.map +1 -1
  68. package/dist/three-d/Vox.d.ts +7 -0
  69. package/dist/three-d/Vox.d.ts.map +1 -1
  70. package/dist/three-d/Vox.js.map +1 -1
  71. package/dist/two-d/presentation/MwlPresentation.d.ts +7 -0
  72. package/dist/two-d/presentation/MwlPresentation.d.ts.map +1 -1
  73. package/dist/two-d/presentation/MwlPresentation.js.map +1 -1
  74. package/dist/version.d.ts +1 -1
  75. package/dist/version.js +1 -1
  76. package/package.json +18 -1
  77. package/sbom.cdx.json +139 -139
  78. package/tools/benchmark-browser.mjs +6 -0
  79. package/tools/bundle-size.mjs +4 -0
  80. package/tools/compile-resources.d.mts +22 -0
  81. package/tools/compile-resources.mjs +116 -3
  82. package/tools/emit-page.d.mts +7 -1
  83. package/tools/emit-page.mjs +20 -2
  84. package/tools/init.mjs +3 -1
  85. package/tools/make-example-assets.mjs +4 -0
  86. package/tools/multiplayer-server.mjs +4 -0
  87. package/tools/mwl.mjs +7 -0
  88. package/tools/play-uci.mjs +4 -0
  89. package/tools/sbom.mjs +4 -0
  90. package/tools/soundfonts.d.mts +79 -0
  91. package/tools/soundfonts.mjs +301 -0
  92. package/tools/verify-scenarios.mjs +6 -2
  93. package/tools/vite.mjs +2 -0
  94. package/tools.md +216 -0
@@ -1,22 +1,4 @@
1
- /**
2
- * A small pinned-point cloth mesh: Verlet integration over a grid of points joined by
3
- * structural distance constraints, the top row pinned by default. Renderer-free arithmetic
4
- * (roadmap 423): no physics engine, no allocations per step, deterministic for a fixed
5
- * `update(dt)` sequence, so a frame budget is exact rather than hoped for - one update
6
- * costs O(points + links), two relaxation passes over structural links only, never shear
7
- * or bend constraints and never a full cloth simulator. A skirt, tunic or scarf follows
8
- * its character with a slight lag; `ClothSprite` draws the mesh on the GPU path 414 ships.
9
- *
10
- * @example
11
- * ```ts
12
- * import { Cloth } from '@datamoc/mw_games/physics';
13
- *
14
- * const scarf = new Cloth({ width: 60, height: 20, segmentsX: 6, segmentsY: 2, gravity: { x: 0, y: 900 } });
15
- * for (let i = 0; i < 60; i++) scarf.update(1 / 60); // one fixed second
16
- * console.log(scarf.pointPosition(scarf.indexOf(3, 2)).y > 20); // true - the free end sags down
17
- * console.log(scarf.pointPosition(scarf.indexOf(0, 0))); // { x: 0, y: 0 } - the pinned edge never moves
18
- * ```
19
- */
1
+ /** Grid size and dynamics for `Cloth`. The top row is the pinned attachment edge. */
20
2
  export interface ClothOptions {
21
3
  /** rest width in world units; must be finite and above 0 */
22
4
  width: number;
@@ -41,6 +23,25 @@ export interface ClothOptions {
41
23
  y: number;
42
24
  };
43
25
  }
26
+ /**
27
+ * A small pinned-point cloth mesh: Verlet integration over a grid of points joined by
28
+ * structural distance constraints, the top row pinned by default. Renderer-free arithmetic
29
+ * (roadmap 423): no physics engine, no allocations per step, deterministic for a fixed
30
+ * `update(dt)` sequence, so a frame budget is exact rather than hoped for - one update
31
+ * costs O(points + links), two relaxation passes over structural links only, never shear
32
+ * or bend constraints and never a full cloth simulator. A skirt, tunic or scarf follows
33
+ * its character with a slight lag; `ClothSprite` draws the mesh on the GPU path 414 ships.
34
+ *
35
+ * @example
36
+ * ```ts
37
+ * import { Cloth } from '@datamoc/mw_games/physics';
38
+ *
39
+ * const scarf = new Cloth({ width: 60, height: 20, segmentsX: 6, segmentsY: 2, gravity: { x: 0, y: 900 } });
40
+ * for (let i = 0; i < 60; i++) scarf.update(1 / 60); // one fixed second
41
+ * console.log(scarf.pointPosition(scarf.indexOf(3, 2)).y > 20); // true - the free end sags down
42
+ * console.log(scarf.pointPosition(scarf.indexOf(0, 0))); // { x: 0, y: 0 } - the pinned edge never moves
43
+ * ```
44
+ */
44
45
  export declare class Cloth {
45
46
  readonly segmentsX: number;
46
47
  readonly segmentsY: number;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/physics/cloth/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,YAAY;IAC5B,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,iFAAiF;IACjF,SAAS,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,SAAS,EAAE,MAAM,CAAC;IAClB,yFAAyF;IACzF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+EAA+E;IAC/E,OAAO,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,+EAA+E;IAC/E,IAAI,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAChC;AAUD,qBAAa,KAAK;IACjB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,IAAI,CAA2B;IACvC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAe;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA2C;IAEjE,YAAY,OAAO,EAAE,YAAY,EAuDhC;IAED,+CAA+C;IAC/C,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,2FAA2F;IAC3F,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAc3C;IAED,OAAO,CAAC,UAAU;IAMlB,wCAAwC;IACxC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAGrD;IAED,iFAAiF;IACjF,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAG/B;IAED,uGAAuG;IACvG,UAAU,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAE7C;IAED,4CAA4C;IAC5C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAK5B;IAED,iFAAiF;IACjF,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAG9B;IAED,qFAAqF;IACrF,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAGlC;IAED,uCAAuC;IACvC,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAGrC;IAED,mEAAmE;IACnE,KAAK,IAAI,IAAI,CAGZ;IAED,mEAAmE;IACnE,UAAU,IAAI,MAAM,CAUnB;IAED;;;OAGG;IACH,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAOvC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAoBvB;IAED,OAAO,CAAC,KAAK;CAqBb"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/physics/cloth/index.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,MAAM,WAAW,YAAY;IAC5B,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,iFAAiF;IACjF,SAAS,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,SAAS,EAAE,MAAM,CAAC;IAClB,yFAAyF;IACzF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+EAA+E;IAC/E,OAAO,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,+EAA+E;IAC/E,IAAI,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAChC;AAUD;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,KAAK;IACjB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,IAAI,CAA2B;IACvC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAe;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA2C;IAEjE,YAAY,OAAO,EAAE,YAAY,EAuDhC;IAED,+CAA+C;IAC/C,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,2FAA2F;IAC3F,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAc3C;IAED,OAAO,CAAC,UAAU;IAMlB,wCAAwC;IACxC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAGrD;IAED,iFAAiF;IACjF,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAG/B;IAED,uGAAuG;IACvG,UAAU,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAE7C;IAED,4CAA4C;IAC5C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAK5B;IAED,iFAAiF;IACjF,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAG9B;IAED,qFAAqF;IACrF,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAGlC;IAED,uCAAuC;IACvC,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAGrC;IAED,mEAAmE;IACnE,KAAK,IAAI,IAAI,CAGZ;IAED,mEAAmE;IACnE,UAAU,IAAI,MAAM,CAUnB;IAED;;;OAGG;IACH,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAOvC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAoBvB;IAED,OAAO,CAAC,KAAK;CAqBb"}
@@ -5,6 +5,25 @@ function assertFinitePair(value, name) {
5
5
  }
6
6
  return { x: pair.x, y: pair.y };
7
7
  }
8
+ /**
9
+ * A small pinned-point cloth mesh: Verlet integration over a grid of points joined by
10
+ * structural distance constraints, the top row pinned by default. Renderer-free arithmetic
11
+ * (roadmap 423): no physics engine, no allocations per step, deterministic for a fixed
12
+ * `update(dt)` sequence, so a frame budget is exact rather than hoped for - one update
13
+ * costs O(points + links), two relaxation passes over structural links only, never shear
14
+ * or bend constraints and never a full cloth simulator. A skirt, tunic or scarf follows
15
+ * its character with a slight lag; `ClothSprite` draws the mesh on the GPU path 414 ships.
16
+ *
17
+ * @example
18
+ * ```ts
19
+ * import { Cloth } from '@datamoc/mw_games/physics';
20
+ *
21
+ * const scarf = new Cloth({ width: 60, height: 20, segmentsX: 6, segmentsY: 2, gravity: { x: 0, y: 900 } });
22
+ * for (let i = 0; i < 60; i++) scarf.update(1 / 60); // one fixed second
23
+ * console.log(scarf.pointPosition(scarf.indexOf(3, 2)).y > 20); // true - the free end sags down
24
+ * console.log(scarf.pointPosition(scarf.indexOf(0, 0))); // { x: 0, y: 0 } - the pinned edge never moves
25
+ * ```
26
+ */
8
27
  export class Cloth {
9
28
  constructor(options) {
10
29
  if (!Number.isFinite(options.width) || options.width <= 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/physics/cloth/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/physics/cloth/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,23 @@
1
1
  import { type MotionIntent } from '../../core/Motion.ts';
2
+ /** Tuning and starting state for `Spring`; positions are in world units. */
3
+ export interface SpringOptions {
4
+ /** pull per unit of displacement, per second squared; must be finite and above 0 */
5
+ stiffness: number;
6
+ /** velocity lost per unit of velocity, per second; must be finite and at least 0 */
7
+ damping: number;
8
+ /** where the anchor starts; default `{ x: 0, y: 0 }` */
9
+ anchor?: {
10
+ x: number;
11
+ y: number;
12
+ };
13
+ /** where the bob starts; default at the anchor, at rest */
14
+ position?: {
15
+ x: number;
16
+ y: number;
17
+ };
18
+ /** what the lag is for under reduced motion; default `decorative`, which snaps to the anchor */
19
+ intent?: MotionIntent;
20
+ }
2
21
  /**
3
22
  * A damped chase spring for secondary motion: one bob pulled toward a moving anchor,
4
23
  * the spring-damper complement to `SpriteMotion` (roadmap 424). Hair, hems, accessories
@@ -22,24 +41,6 @@ import { type MotionIntent } from '../../core/Motion.ts';
22
41
  * console.log(hair.settled(0.01)); // true - a damped spring comes to rest at its anchor
23
42
  * ```
24
43
  */
25
- export interface SpringOptions {
26
- /** pull per unit of displacement, per second squared; must be finite and above 0 */
27
- stiffness: number;
28
- /** velocity lost per unit of velocity, per second; must be finite and at least 0 */
29
- damping: number;
30
- /** where the anchor starts; default `{ x: 0, y: 0 }` */
31
- anchor?: {
32
- x: number;
33
- y: number;
34
- };
35
- /** where the bob starts; default at the anchor, at rest */
36
- position?: {
37
- x: number;
38
- y: number;
39
- };
40
- /** what the lag is for under reduced motion; default `decorative`, which snaps to the anchor */
41
- intent?: MotionIntent;
42
- }
43
44
  export declare class Spring {
44
45
  readonly stiffness: number;
45
46
  readonly damping: number;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/physics/spring/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAExE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,aAAa;IAC7B,oFAAoF;IACpF,SAAS,EAAE,MAAM,CAAC;IAClB,oFAAoF;IACpF,OAAO,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,MAAM,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,2DAA2D;IAC3D,QAAQ,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,gGAAgG;IAChG,MAAM,CAAC,EAAE,YAAY,CAAC;CACtB;AASD,qBAAa,MAAM;IAClB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;IAClD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA2B;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2B;IAEpD,YAAY,OAAO,EAAE,aAAa,EAejC;IAED,wCAAwC;IACxC,IAAI,cAAc,IAAI;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAE7C;IAED,qCAAqC;IACrC,IAAI,QAAQ,IAAI;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAEvC;IAED,uFAAuF;IACvF,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAIpC;IAED,0FAA0F;IAC1F,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAIrC;IAED,iDAAiD;IACjD,IAAI,IAAI,IAAI,CAKX;IAED,yDAAyD;IACzD,MAAM,IAAI;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAEjC;IAED,uDAAuD;IACvD,MAAM,IAAI,MAAM,CAEf;IAED,qEAAqE;IACrE,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAKlC;IAED,mFAAmF;IACnF,KAAK,CAAC,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAG5C;IAED;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAevB;CACD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/physics/spring/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAExE,4EAA4E;AAC5E,MAAM,WAAW,aAAa;IAC7B,oFAAoF;IACpF,SAAS,EAAE,MAAM,CAAC;IAClB,oFAAoF;IACpF,OAAO,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,MAAM,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,2DAA2D;IAC3D,QAAQ,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,gGAAgG;IAChG,MAAM,CAAC,EAAE,YAAY,CAAC;CACtB;AASD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,MAAM;IAClB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;IAClD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA2B;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2B;IAEpD,YAAY,OAAO,EAAE,aAAa,EAejC;IAED,wCAAwC;IACxC,IAAI,cAAc,IAAI;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAE7C;IAED,qCAAqC;IACrC,IAAI,QAAQ,IAAI;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAEvC;IAED,uFAAuF;IACvF,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAIpC;IAED,0FAA0F;IAC1F,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAIrC;IAED,iDAAiD;IACjD,IAAI,IAAI,IAAI,CAKX;IAED,yDAAyD;IACzD,MAAM,IAAI;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAEjC;IAED,uDAAuD;IACvD,MAAM,IAAI,MAAM,CAEf;IAED,qEAAqE;IACrE,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAKlC;IAED,mFAAmF;IACnF,KAAK,CAAC,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAG5C;IAED;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAevB;CACD"}
@@ -5,6 +5,29 @@ function assertPoint(value, name) {
5
5
  }
6
6
  return { x: value.x, y: value.y };
7
7
  }
8
+ /**
9
+ * A damped chase spring for secondary motion: one bob pulled toward a moving anchor,
10
+ * the spring-damper complement to `SpriteMotion` (roadmap 424). Hair, hems, accessories
11
+ * and interface panels follow their anchor with lag, overshoot on a stop and settle;
12
+ * the anchor teleports (a head bone, a pointer, a panel edge) and the dynamics supply
13
+ * the lag, so reacting to an acceleration, a stop or an impact is one `setAnchor` call.
14
+ *
15
+ * Renderer-free arithmetic: semi-implicit Euler, no randomness, no engine, deterministic
16
+ * for a fixed `update(dt)` sequence. One update is O(1), about a dozen flops, which is
17
+ * the frame budget stated rather than hoped for.
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * import { Spring } from '@datamoc/mw_games/physics';
22
+ *
23
+ * const hair = new Spring({ stiffness: 120, damping: 8 });
24
+ * hair.setAnchor(10, 0); // the head moved; the bob is still behind
25
+ * hair.update(1 / 60);
26
+ * console.log(hair.offset().x > 0); // true - the bob lags behind the anchor
27
+ * for (let i = 0; i < 240; i++) hair.update(1 / 60);
28
+ * console.log(hair.settled(0.01)); // true - a damped spring comes to rest at its anchor
29
+ * ```
30
+ */
8
31
  export class Spring {
9
32
  constructor(options) {
10
33
  if (!Number.isFinite(options.stiffness) || options.stiffness <= 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/physics/spring/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAqB,MAAM,sBAAsB,CAAC;AAsCxE,SAAS,WAAW,CAAC,KAA+B,EAAE,IAAY;IACjE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,UAAU,CAAC,YAAY,IAAI,mCAAmC,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;IACjG,CAAC;IACD,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;AACnC,CAAC;AAED,MAAM,OAAO,MAAM;IAQlB,YAAY,OAAsB;QACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,SAAS,IAAI,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,UAAU,CAAC,yCAAyC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,UAAU,CAAC,6CAA6C,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QACtF,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,YAAY,CAAC;QAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACvF,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC;QAC3F,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IAChC,CAAC;IAED,wCAAwC;IACxC,IAAI,cAAc;QACjB,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC3B,CAAC;IAED,qCAAqC;IACrC,IAAI,QAAQ;QACX,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,uFAAuF;IACvF,SAAS,CAAC,CAAS,EAAE,CAAS;QAC7B,MAAM,IAAI,GAAG,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACxB,CAAC;IAED,0FAA0F;IAC1F,QAAQ,CAAC,EAAU,EAAE,EAAU;QAC9B,MAAM,IAAI,GAAG,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC;QAC3D,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IACtB,CAAC;IAED,iDAAiD;IACjD,IAAI;QACH,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,yDAAyD;IACzD,MAAM;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;IACzE,CAAC;IAED,uDAAuD;IACvD,MAAM;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,qEAAqE;IACrE,OAAO,CAAC,SAAiB;QACxB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,UAAU,CAAC,4DAA4D,SAAS,EAAE,CAAC,CAAC;QAC/F,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,EAAE,IAAI,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;IAChG,CAAC;IAED,mFAAmF;IACnF,KAAK,CAAC,MAAgC;QACrC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACtB,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,EAAU;QAChB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,UAAU,CAAC,+CAA+C,EAAE,EAAE,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,aAAa,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YACrD,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,OAAO;QACR,CAAC;QACD,IAAI,EAAE,KAAK,CAAC;YAAE,OAAO;QACrB,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC1F,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC1F,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;QACnC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;IACpC,CAAC;CACD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/physics/spring/index.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import type { AnimationGroup } from '@babylonjs/core/Animations/animationGroup.j
2
2
  import type { AbstractMesh } from '@babylonjs/core/Meshes/abstractMesh.js';
3
3
  import { TransformNode } from '@babylonjs/core/Meshes/transformNode.js';
4
4
  import type { Scene } from '@babylonjs/core/scene.js';
5
+ /** Options for `Character3D.billboard`. `width` and `height` are world units (1 and 1.5 when omitted). */
5
6
  export interface Billboard3DOptions {
6
7
  /**
7
8
  * An asset path (resolved through `mwg/assets`) or an already-resolved `data:`/`blob:`
@@ -12,13 +13,6 @@ export interface Billboard3DOptions {
12
13
  width?: number;
13
14
  height?: number;
14
15
  }
15
- /**
16
- * Moves either a billboard sprite or imported mesh through continuous 3D world space, and -
17
- * for an imported mesh - plays back whichever animation clips came baked into it.
18
- * `loadModel3D` already loads a glTF's own `animationGroups` as part of its import result;
19
- * this is what turns one of them into something a game can actually trigger, the way a walk
20
- * cycle baked into a mesh needs to be, rather than leaving them loaded but unreachable.
21
- */
22
16
  /**
23
17
  * Clamps one frame's intended horizontal move to wherever collision actually allows - the
24
18
  * hook `mwg/3d`'s own grid collision (`resolveCapsuleAgainstGrid`) plugs into. `blocked`,
@@ -38,6 +32,13 @@ export type CollideXZ = (from: {
38
32
  z: number;
39
33
  blocked?: boolean;
40
34
  };
35
+ /**
36
+ * Moves either a billboard sprite or imported mesh through continuous 3D world space, and -
37
+ * for an imported mesh - plays back whichever animation clips came baked into it.
38
+ * `loadModel3D` already loads a glTF's own `animationGroups` as part of its import result;
39
+ * this is what turns one of them into something a game can actually trigger, the way a walk
40
+ * cycle baked into a mesh needs to be, rather than leaving them loaded but unreachable.
41
+ */
41
42
  export declare class Character3D {
42
43
  readonly node: TransformNode;
43
44
  private target;
@@ -1 +1 @@
1
- {"version":3,"file":"Character3D.d.ts","sourceRoot":"","sources":["../../src/three-d/Character3D.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAKnF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAE3E,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAItD,MAAM,WAAW,kBAAkB;IAClC;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAOD;;;;;;GAMG;AACH;;;;;;;GAOG;AACH,MAAM,MAAM,SAAS,GAAG,CACvB,IAAI,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAC9B,EAAE,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,KACxB;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEjD,qBAAa,WAAW;IACvB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAY;IAEvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;IACzD,OAAO,CAAC,WAAW,CAA+B;IAElD;;;;OAIG;IACH,YAAY,IAAI,EAAE,aAAa,EAAE,UAAU,GAAE,SAAS,cAAc,EAAO,EAAE,SAAS,CAAC,EAAE,SAAS,EAIjG;IAED,2EAA2E;IAC3E,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAElC;IAED;;;;;OAKG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,UAAO,GAAG,OAAO,CAWhD;IAED,iEAAiE;IACjE,aAAa,IAAI,IAAI,CAGpB;IAED,mEAAmE;IACnE,IAAI,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAEpC;IAED,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAI3D;IAED,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAiCpC;IAED,qFAAqF;IACrF,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,GAAE,SAAS,cAAc,EAAO,GAAG,WAAW,CAE3F;IAED,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAkB,GAAG,WAAW,CAcvE;CACD"}
1
+ {"version":3,"file":"Character3D.d.ts","sourceRoot":"","sources":["../../src/three-d/Character3D.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAKnF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAE3E,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAItD,0GAA0G;AAC1G,MAAM,WAAW,kBAAkB;IAClC;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAOD;;;;;;;GAOG;AACH,MAAM,MAAM,SAAS,GAAG,CACvB,IAAI,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAC9B,EAAE,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,KACxB;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEjD;;;;;;GAMG;AACH,qBAAa,WAAW;IACvB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAY;IAEvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;IACzD,OAAO,CAAC,WAAW,CAA+B;IAElD;;;;OAIG;IACH,YAAY,IAAI,EAAE,aAAa,EAAE,UAAU,GAAE,SAAS,cAAc,EAAO,EAAE,SAAS,CAAC,EAAE,SAAS,EAIjG;IAED,2EAA2E;IAC3E,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAElC;IAED;;;;;OAKG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,UAAO,GAAG,OAAO,CAWhD;IAED,iEAAiE;IACjE,aAAa,IAAI,IAAI,CAGpB;IAED,mEAAmE;IACnE,IAAI,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAEpC;IAED,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAI3D;IAED,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAiCpC;IAED,qFAAqF;IACrF,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,GAAE,SAAS,cAAc,EAAO,GAAG,WAAW,CAE3F;IAED,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAkB,GAAG,WAAW,CAcvE;CACD"}
@@ -9,6 +9,13 @@ import { resolve } from '../assets/paths.js';
9
9
  function resolveSource(source) {
10
10
  return /^(?:data|blob|https?):/i.test(source) ? source : resolve(source);
11
11
  }
12
+ /**
13
+ * Moves either a billboard sprite or imported mesh through continuous 3D world space, and -
14
+ * for an imported mesh - plays back whichever animation clips came baked into it.
15
+ * `loadModel3D` already loads a glTF's own `animationGroups` as part of its import result;
16
+ * this is what turns one of them into something a game can actually trigger, the way a walk
17
+ * cycle baked into a mesh needs to be, rather than leaving them loaded but unreachable.
18
+ */
12
19
  export class Character3D {
13
20
  /**
14
21
  * @param collideXZ optional, like `rpg.FreeMover` stays unopinionated about collision
@@ -1 +1 @@
1
- {"version":3,"file":"Character3D.js","sourceRoot":"","sources":["../../src/three-d/Character3D.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Character3D.js","sourceRoot":"","sources":["../../src/three-d/Character3D.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,9 @@ export declare function cellAt(shape: GridShape3D, x: number, z: number, tileSiz
28
28
  };
29
29
  /** a cell's own `height` (grid-height units, before `heightStep` scaling), or `null` for a world position with no cell at all - a hole in the grid, blocking just like a wall would */
30
30
  export declare function heightAt(index: ReadonlyMap<string, number>, shape: GridShape3D, x: number, z: number, tileSize?: number): number | null;
31
+ /**
32
+ * Inputs to `resolveCapsuleAgainstGrid`; `tileSize` (default 1) and `shape` must match the grid the heights were built from.
33
+ */
31
34
  export interface CapsuleGridMoveOptions {
32
35
  shape: GridShape3D;
33
36
  /** from `buildHeightIndex` */
@@ -38,6 +41,7 @@ export interface CapsuleGridMoveOptions {
38
41
  /** positions sampled along the (x, z) segment; higher catches a thin column at high travel speed at the cost of more lookups */
39
42
  steps?: number;
40
43
  }
44
+ /** Where the move ended: `to` when open, otherwise the last sampled position that was still allowed. */
41
45
  export interface CapsuleGridMoveResult {
42
46
  x: number;
43
47
  z: number;
@@ -1 +1 @@
1
- {"version":3,"file":"Collision3D.d.ts","sourceRoot":"","sources":["../../src/three-d/Collision3D.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEzD;;;;;;;;;;;;;;GAcG;AAEH,kHAAkH;AAClH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAIlF;AAMD;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,SAAI,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAOvG;AAED,uLAAuL;AACvL,wBAAgB,QAAQ,CACvB,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,KAAK,EAAE,WAAW,EAClB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,QAAQ,SAAI,GACV,MAAM,GAAG,IAAI,CAIf;AAED,MAAM,WAAW,sBAAsB;IACtC,KAAK,EAAE,WAAW,CAAC;IACnB,8BAA8B;IAC9B,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kKAAkK;IAClK,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gIAAgI;IAChI,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACrC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,+FAA+F;IAC/F,OAAO,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACxC,IAAI,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAC9B,EAAE,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAC5B,OAAO,EAAE,sBAAsB,GAC7B,qBAAqB,CAmBvB"}
1
+ {"version":3,"file":"Collision3D.d.ts","sourceRoot":"","sources":["../../src/three-d/Collision3D.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEzD;;;;;;;;;;;;;;GAcG;AAEH,kHAAkH;AAClH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAIlF;AAMD;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,SAAI,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAOvG;AAED,uLAAuL;AACvL,wBAAgB,QAAQ,CACvB,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,KAAK,EAAE,WAAW,EAClB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,QAAQ,SAAI,GACV,MAAM,GAAG,IAAI,CAIf;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC,KAAK,EAAE,WAAW,CAAC;IACnB,8BAA8B;IAC9B,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kKAAkK;IAClK,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gIAAgI;IAChI,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wGAAwG;AACxG,MAAM,WAAW,qBAAqB;IACrC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,+FAA+F;IAC/F,OAAO,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACxC,IAAI,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAC9B,EAAE,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAC5B,OAAO,EAAE,sBAAsB,GAC7B,qBAAqB,CAmBvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"Collision3D.js","sourceRoot":"","sources":["../../src/three-d/Collision3D.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Collision3D.js","sourceRoot":"","sources":["../../src/three-d/Collision3D.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,13 @@
1
1
  import { ArcRotateCamera } from '@babylonjs/core/Cameras/arcRotateCamera.js';
2
2
  import { Engine } from '@babylonjs/core/Engines/engine.js';
3
3
  import { Scene } from '@babylonjs/core/scene.js';
4
+ /** `clearColor` is RGBA in 0 to 1 (alpha 1 when omitted, default a dark blue); `antialias` defaults to true. */
4
5
  export interface Engine3DOptions {
5
6
  canvas: HTMLCanvasElement;
6
7
  antialias?: boolean;
7
8
  clearColor?: readonly [number, number, number, number?];
8
9
  }
10
+ /** Per-frame callback, run before the scene renders; `deltaSeconds` is the time since the previous frame. */
9
11
  export type Frame3D = (deltaSeconds: number) => void;
10
12
  /** Owns Babylon's WebGL engine, scene, default camera, lighting, and render loop. */
11
13
  export declare class Engine3D {
@@ -1 +1 @@
1
- {"version":3,"file":"Engine3D.d.ts","sourceRoot":"","sources":["../../src/three-d/Engine3D.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAI3D,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEjD,MAAM,WAAW,eAAe;IAC/B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACxD;AAED,MAAM,MAAM,OAAO,GAAG,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;AAErD,qFAAqF;AACrF,qBAAa,QAAQ;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,OAAO,CAAC,KAAK,CAAwB;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAE3D,YAAY,OAAO,EAAE,eAAe,EAYnC;IAED,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAG3B;IAED,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAG/B;IAED,IAAI,IAAI,IAAI,CAEX;IAED,OAAO,IAAI,IAAI,CAOd;CACD"}
1
+ {"version":3,"file":"Engine3D.d.ts","sourceRoot":"","sources":["../../src/three-d/Engine3D.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAI3D,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEjD,gHAAgH;AAChH,MAAM,WAAW,eAAe;IAC/B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACxD;AAED,6GAA6G;AAC7G,MAAM,MAAM,OAAO,GAAG,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;AAErD,qFAAqF;AACrF,qBAAa,QAAQ;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,OAAO,CAAC,KAAK,CAAwB;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAE3D,YAAY,OAAO,EAAE,eAAe,EAYnC;IAED,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAG3B;IAED,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAG/B;IAED,IAAI,IAAI,IAAI,CAEX;IAED,OAAO,IAAI,IAAI,CAOd;CACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"Engine3D.js","sourceRoot":"","sources":["../../src/three-d/Engine3D.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Engine3D.js","sourceRoot":"","sources":["../../src/three-d/Engine3D.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,14 @@
1
+ /** `square` cells, or flat-top `hex` cells in odd-q offset coordinates. */
1
2
  export type GridShape3D = 'square' | 'hex';
3
+ /**
4
+ * One floor cell: integer grid coordinates and an optional `height` in levels (default 0, negative sinks), scaled by `heightStep`.
5
+ */
2
6
  export interface GridCell3D {
3
7
  x: number;
4
8
  y: number;
5
9
  height?: number;
6
10
  }
11
+ /** A world-space position; `y` is up. */
7
12
  export interface Point3D {
8
13
  x: number;
9
14
  y: number;
@@ -1 +1 @@
1
- {"version":3,"file":"Grid.d.ts","sourceRoot":"","sources":["../../src/three-d/Grid.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,KAAK,CAAC;AAE3C,MAAM,WAAW,UAAU;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,OAAO;IACvB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACV;AAED,yFAAyF;AACzF,wBAAgB,WAAW,CAC1B,KAAK,EAAE,WAAW,EAClB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,QAAQ,SAAI,EACZ,MAAM,SAAI,EACV,UAAU,SAAI,GACZ,OAAO,CAQT"}
1
+ {"version":3,"file":"Grid.d.ts","sourceRoot":"","sources":["../../src/three-d/Grid.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,KAAK,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,UAAU;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,yCAAyC;AACzC,MAAM,WAAW,OAAO;IACvB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACV;AAED,yFAAyF;AACzF,wBAAgB,WAAW,CAC1B,KAAK,EAAE,WAAW,EAClB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,QAAQ,SAAI,EACZ,MAAM,SAAI,EACV,UAAU,SAAI,GACZ,OAAO,CAQT"}
@@ -1 +1 @@
1
- {"version":3,"file":"Grid.js","sourceRoot":"","sources":["../../src/three-d/Grid.ts"],"names":[],"mappings":"AAcA,yFAAyF;AACzF,MAAM,UAAU,WAAW,CAC1B,KAAkB,EAClB,CAAS,EACT,CAAS,EACT,QAAQ,GAAG,CAAC,EACZ,MAAM,GAAG,CAAC,EACV,UAAU,GAAG,CAAC;IAEd,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAC5F,IAAI,KAAK,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC;IAC5F,OAAO;QACN,CAAC,EAAE,CAAC,GAAG,QAAQ,GAAG,GAAG;QACrB,CAAC,EAAE,MAAM,GAAG,UAAU;QACtB,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ;KAChD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"Grid.js","sourceRoot":"","sources":["../../src/three-d/Grid.ts"],"names":[],"mappings":"AAmBA,yFAAyF;AACzF,MAAM,UAAU,WAAW,CAC1B,KAAkB,EAClB,CAAS,EACT,CAAS,EACT,QAAQ,GAAG,CAAC,EACZ,MAAM,GAAG,CAAC,EACV,UAAU,GAAG,CAAC;IAEd,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAC5F,IAAI,KAAK,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC;IAC5F,OAAO;QACN,CAAC,EAAE,CAAC,GAAG,QAAQ,GAAG,GAAG;QACrB,CAAC,EAAE,MAAM,GAAG,UAAU;QACtB,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ;KAChD,CAAC;AACH,CAAC"}
@@ -9,6 +9,9 @@ export interface HeightmapSource {
9
9
  width: number;
10
10
  height: number;
11
11
  }
12
+ /**
13
+ * Terrain size and relief. Pixel brightness maps linearly onto `minHeight` to `maxHeight` (0 and 1 when omitted).
14
+ */
12
15
  export interface HeightmapTerrain3DOptions {
13
16
  /** world-space size along X; defaults to 10 */
14
17
  width?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"Heightmap.d.ts","sourceRoot":"","sources":["../../src/three-d/Heightmap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEtD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,yBAAyB;IACzC,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sFAAsF;IACtF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CACvC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,eAAe,EACvB,OAAO,GAAE,yBAA8B,GACrC,UAAU,CAmBZ"}
1
+ {"version":3,"file":"Heightmap.d.ts","sourceRoot":"","sources":["../../src/three-d/Heightmap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEtD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACzC,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sFAAsF;IACtF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CACvC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,eAAe,EACvB,OAAO,GAAE,yBAA8B,GACrC,UAAU,CAmBZ"}
@@ -1 +1 @@
1
- {"version":3,"file":"Heightmap.js","sourceRoot":"","sources":["../../src/three-d/Heightmap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAyBlG;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,wBAAwB,CACvC,KAAY,EACZ,MAAuB,EACvB,OAAO,GAA8B,EAAE;IAEvC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAC/G,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACpF,CAAC;IAED,OAAO,yBAAyB,CAC/B,mBAAmB,EACnB,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EACjE;QACC,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE;QAC1B,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE;QAC3B,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC5F,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,CAAC;QACjC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,CAAC;QACjC,SAAS,EAAE,KAAK;KAChB,EACD,KAAK,CACL,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"Heightmap.js","sourceRoot":"","sources":["../../src/three-d/Heightmap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AA4BlG;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,wBAAwB,CACvC,KAAY,EACZ,MAAuB,EACvB,OAAO,GAA8B,EAAE;IAEvC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAC/G,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACpF,CAAC;IAED,OAAO,yBAAyB,CAC/B,mBAAmB,EACnB,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EACjE;QACC,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE;QAC1B,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE;QAC3B,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC5F,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,CAAC;QACjC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,CAAC;QACjC,SAAS,EAAE,KAAK;KAChB,EACD,KAAK,CACL,CAAC;AACH,CAAC"}
@@ -2,6 +2,9 @@ import '@babylonjs/core/Meshes/thinInstanceMesh.js';
2
2
  import type { Mesh } from '@babylonjs/core/Meshes/mesh.js';
3
3
  import type { Scene } from '@babylonjs/core/scene.js';
4
4
  import type { GridCell3D, GridShape3D } from './Grid.ts';
5
+ /**
6
+ * `tileSize`, `heightStep` (world units per height level) and `origin` offset default to 1, 1 and the world origin; `tileThickness` is 0.12. Colors are 24-bit RGB.
7
+ */
5
8
  export interface TileGrid3DOptions {
6
9
  shape: GridShape3D;
7
10
  tileSize?: number;
@@ -11,6 +14,9 @@ export interface TileGrid3DOptions {
11
14
  columnColor?: number;
12
15
  origin?: readonly [number, number, number];
13
16
  }
17
+ /**
18
+ * The built meshes. `columns` is null when no cell is raised or sunken. `dispose` frees the meshes and their materials.
19
+ */
14
20
  export interface TileGrid3DMeshes {
15
21
  tiles: Mesh;
16
22
  columns: Mesh | null;
@@ -1 +1 @@
1
- {"version":3,"file":"TileGrid3D.d.ts","sourceRoot":"","sources":["../../src/three-d/TileGrid3D.ts"],"names":[],"mappings":"AAKA,OAAO,4CAA4C,CAAC;AACpD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEzD,MAAM,WAAW,iBAAiB;IACjC,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,gBAAgB;IAChC,KAAK,EAAE,IAAI,CAAC;IACZ,OAAO,EAAE,IAAI,GAAG,IAAI,CAAC;IACrB,OAAO,IAAI,IAAI,CAAC;CAChB;AAED,qFAAqF;AACrF,wBAAgB,gBAAgB,CAC/B,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,SAAS,UAAU,EAAE,EAC5B,OAAO,EAAE,iBAAiB,GACxB,gBAAgB,CAyDlB"}
1
+ {"version":3,"file":"TileGrid3D.d.ts","sourceRoot":"","sources":["../../src/three-d/TileGrid3D.ts"],"names":[],"mappings":"AAKA,OAAO,4CAA4C,CAAC;AACpD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC,KAAK,EAAE,IAAI,CAAC;IACZ,OAAO,EAAE,IAAI,GAAG,IAAI,CAAC;IACrB,OAAO,IAAI,IAAI,CAAC;CAChB;AAED,qFAAqF;AACrF,wBAAgB,gBAAgB,CAC/B,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,SAAS,UAAU,EAAE,EAC5B,OAAO,EAAE,iBAAiB,GACxB,gBAAgB,CAyDlB"}
@@ -1 +1 @@
1
- {"version":3,"file":"TileGrid3D.js","sourceRoot":"","sources":["../../src/three-d/TileGrid3D.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TileGrid3D.js","sourceRoot":"","sources":["../../src/three-d/TileGrid3D.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,24 @@
1
1
  import '@babylonjs/core/Meshes/thinInstanceMesh.js';
2
2
  import { TransformNode } from '@babylonjs/core/Meshes/transformNode.js';
3
3
  import type { Scene } from '@babylonjs/core/scene.js';
4
+ /** Model extent in voxels along each axis. */
4
5
  export interface VoxSize {
5
6
  x: number;
6
7
  y: number;
7
8
  z: number;
8
9
  }
10
+ /**
11
+ * One filled cell. `color` is a 1-based index into the model palette; `z` is up in the VOX file (mapped to world Y on build).
12
+ */
9
13
  export interface Voxel {
10
14
  x: number;
11
15
  y: number;
12
16
  z: number;
13
17
  color: number;
14
18
  }
19
+ /**
20
+ * A parsed VOX model. `palette` holds 256 little-endian RGBA entries (the default grayscale ramp when the file has none).
21
+ */
15
22
  export interface VoxModel {
16
23
  size: VoxSize;
17
24
  voxels: readonly Voxel[];
@@ -1 +1 @@
1
- {"version":3,"file":"Vox.d.ts","sourceRoot":"","sources":["../../src/three-d/Vox.ts"],"names":[],"mappings":"AAIA,OAAO,4CAA4C,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEtD,MAAM,WAAW,OAAO;IACvB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACV;AACD,MAAM,WAAW,KAAK;IACrB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACd;AACD,MAAM,WAAW,QAAQ;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,SAAS,KAAK,EAAE,CAAC;IACzB,OAAO,EAAE,WAAW,CAAC;CACrB;AAED,iFAAiF;AACjF,wBAAgB,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,eAAe,GAAG,QAAQ,CAyCtE;AAED,8FAA8F;AAC9F,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,SAAI,GAAG,aAAa,CAgC5F"}
1
+ {"version":3,"file":"Vox.d.ts","sourceRoot":"","sources":["../../src/three-d/Vox.ts"],"names":[],"mappings":"AAIA,OAAO,4CAA4C,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEtD,8CAA8C;AAC9C,MAAM,WAAW,OAAO;IACvB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACV;AACD;;GAEG;AACH,MAAM,WAAW,KAAK;IACrB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACd;AACD;;GAEG;AACH,MAAM,WAAW,QAAQ;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,SAAS,KAAK,EAAE,CAAC;IACzB,OAAO,EAAE,WAAW,CAAC;CACrB;AAED,iFAAiF;AACjF,wBAAgB,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,eAAe,GAAG,QAAQ,CAyCtE;AAED,8FAA8F;AAC9F,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,SAAI,GAAG,aAAa,CAgC5F"}
@@ -1 +1 @@
1
- {"version":3,"file":"Vox.js","sourceRoot":"","sources":["../../src/three-d/Vox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Vox.js","sourceRoot":"","sources":["../../src/three-d/Vox.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,11 @@ import { Container } from 'pixi.js';
2
2
  import { Camera } from '../render/Camera.ts';
3
3
  import { WindowStack } from '../ui/WindowStack.ts';
4
4
  import type { CompiledPresentation, PresentationItem, PresentationProperties, PresentationValue } from '../../mwl/presentation.ts';
5
+ /** The game state a controller exposes each frame: a scalar per manifest value, or the rows of a collection. */
5
6
  export type PresentationState = Readonly<Record<string, PresentationValue | readonly PresentationItem[]>>;
7
+ /**
8
+ * What an adapter factory receives, and `restyle` again after a context switch: the effective theme `tokens` and the adapter node's own `properties`.
9
+ */
6
10
  export interface PresentationAdapterContext {
7
11
  readonly tokens: Readonly<Record<string, number>>;
8
12
  readonly properties: PresentationProperties;
@@ -15,6 +19,9 @@ export interface PresentationAdapter {
15
19
  restyle?(context: PresentationAdapterContext): void;
16
20
  destroy?(): void;
17
21
  }
22
+ /**
23
+ * Wiring for `MwlPresentation`. `state` is polled on every update; `actions` and `adapters` must cover every name the manifest declares or construction throws. `translate` maps message ids to display text (identity when omitted).
24
+ */
18
25
  export interface PresentationRuntimeOptions {
19
26
  readonly parent: Container;
20
27
  readonly state: () => PresentationState;