@datamoc/mw_games 0.42.0 → 0.43.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/CHANGELOG.md +59 -0
- package/README.md +62 -1
- package/REFERENCE.md +57 -5
- package/api-surface.json +672 -0
- package/data/microgm-essential.PROVENANCE.md +13 -0
- package/data/microgm-essential.sf2 +0 -0
- package/data/soundfont-catalog.json +8 -0
- package/dist/audio/AudioLoader.d.ts +28 -0
- package/dist/audio/AudioLoader.d.ts.map +1 -0
- package/dist/audio/AudioLoader.js +53 -0
- package/dist/audio/AudioLoader.js.map +1 -0
- package/dist/audio/Channels.d.ts +1 -0
- package/dist/audio/Channels.d.ts.map +1 -1
- package/dist/audio/Channels.js +2 -1
- package/dist/audio/Channels.js.map +1 -1
- package/dist/audio/MidiRender.d.ts +16 -0
- package/dist/audio/MidiRender.d.ts.map +1 -1
- package/dist/audio/MidiRender.js +21 -0
- package/dist/audio/MidiRender.js.map +1 -1
- package/dist/audio/MusicPlayer.d.ts +80 -0
- package/dist/audio/MusicPlayer.d.ts.map +1 -0
- package/dist/audio/MusicPlayer.js +147 -0
- package/dist/audio/MusicPlayer.js.map +1 -0
- package/dist/audio/SampleDecoder.d.ts +16 -2
- package/dist/audio/SampleDecoder.d.ts.map +1 -1
- package/dist/audio/SampleDecoder.js +10 -6
- package/dist/audio/SampleDecoder.js.map +1 -1
- package/dist/audio/Sound.d.ts +2 -0
- package/dist/audio/Sound.d.ts.map +1 -1
- package/dist/audio/Sound.js +3 -0
- package/dist/audio/Sound.js.map +1 -1
- package/dist/audio/SoundFont.d.ts +5 -3
- package/dist/audio/SoundFont.d.ts.map +1 -1
- package/dist/audio/SoundFont.js +10 -8
- package/dist/audio/SoundFont.js.map +1 -1
- package/dist/audio/Synth.d.ts +1 -1
- package/dist/audio/Synth.d.ts.map +1 -1
- package/dist/audio/Synth.js +4 -0
- package/dist/audio/Synth.js.map +1 -1
- package/dist/audio/index.d.ts +6 -2
- package/dist/audio/index.d.ts.map +1 -1
- package/dist/audio/index.js +3 -1
- package/dist/audio/index.js.map +1 -1
- package/dist/mw_games.global.js +22 -22
- package/dist/mwl/index.d.ts +2 -0
- package/dist/mwl/index.d.ts.map +1 -1
- package/dist/mwl/index.js +1 -0
- package/dist/mwl/index.js.map +1 -1
- package/dist/mwl/objects.d.ts +31 -0
- package/dist/mwl/objects.d.ts.map +1 -0
- package/dist/mwl/objects.js +83 -0
- package/dist/mwl/objects.js.map +1 -0
- package/dist/mwl/schema.d.ts +1 -1
- package/dist/mwl/schema.d.ts.map +1 -1
- package/dist/mwl/tables.d.ts +2 -0
- package/dist/mwl/tables.d.ts.map +1 -1
- package/dist/mwl/tables.js +13 -0
- package/dist/mwl/tables.js.map +1 -1
- package/dist/physics/XpbdWorld.d.ts +23 -5
- package/dist/physics/XpbdWorld.d.ts.map +1 -1
- package/dist/physics/XpbdWorld.js +90 -6
- package/dist/physics/XpbdWorld.js.map +1 -1
- package/dist/testing/index.d.ts +16 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +21 -0
- package/dist/testing/index.js.map +1 -1
- package/dist/three-d/Collision3D.d.ts +46 -2
- package/dist/three-d/Collision3D.d.ts.map +1 -1
- package/dist/three-d/Collision3D.js +46 -2
- package/dist/three-d/Collision3D.js.map +1 -1
- package/dist/three-d/Grid.d.ts +12 -1
- package/dist/three-d/Grid.d.ts.map +1 -1
- package/dist/three-d/Grid.js +12 -1
- package/dist/three-d/Grid.js.map +1 -1
- package/dist/three-d/Vox.d.ts +13 -1
- package/dist/three-d/Vox.d.ts.map +1 -1
- package/dist/three-d/Vox.js +13 -1
- package/dist/three-d/Vox.js.map +1 -1
- package/dist/two-d/Game.d.ts +21 -1
- package/dist/two-d/Game.d.ts.map +1 -1
- package/dist/two-d/Game.js +73 -6
- package/dist/two-d/Game.js.map +1 -1
- package/dist/two-d/Scene2D.d.ts +24 -0
- package/dist/two-d/Scene2D.d.ts.map +1 -1
- package/dist/two-d/Scene2D.js +30 -0
- package/dist/two-d/Scene2D.js.map +1 -1
- package/dist/two-d/render/SceneTransition.d.ts +272 -0
- package/dist/two-d/render/SceneTransition.d.ts.map +1 -0
- package/dist/two-d/render/SceneTransition.js +431 -0
- package/dist/two-d/render/SceneTransition.js.map +1 -0
- package/dist/two-d/render/index.d.ts +2 -0
- package/dist/two-d/render/index.d.ts.map +1 -1
- package/dist/two-d/render/index.js +1 -0
- package/dist/two-d/render/index.js.map +1 -1
- package/dist/two-d/ui/Button.d.ts +23 -0
- package/dist/two-d/ui/Button.d.ts.map +1 -1
- package/dist/two-d/ui/Button.js +37 -0
- package/dist/two-d/ui/Button.js.map +1 -1
- package/dist/two-d/ui/DropdownView.d.ts +49 -3
- package/dist/two-d/ui/DropdownView.d.ts.map +1 -1
- package/dist/two-d/ui/DropdownView.js +150 -9
- package/dist/two-d/ui/DropdownView.js.map +1 -1
- package/dist/two-d/ui/ScrollBox.d.ts +90 -0
- package/dist/two-d/ui/ScrollBox.d.ts.map +1 -1
- package/dist/two-d/ui/ScrollBox.js +206 -4
- package/dist/two-d/ui/ScrollBox.js.map +1 -1
- package/dist/two-d/ui/ScrollText.d.ts +122 -0
- package/dist/two-d/ui/ScrollText.d.ts.map +1 -0
- package/dist/two-d/ui/ScrollText.js +202 -0
- package/dist/two-d/ui/ScrollText.js.map +1 -0
- package/dist/two-d/ui/Tooltip.d.ts +70 -1
- package/dist/two-d/ui/Tooltip.d.ts.map +1 -1
- package/dist/two-d/ui/Tooltip.js +115 -3
- package/dist/two-d/ui/Tooltip.js.map +1 -1
- package/dist/two-d/ui/Window.d.ts +35 -2
- package/dist/two-d/ui/Window.d.ts.map +1 -1
- package/dist/two-d/ui/Window.js +58 -3
- package/dist/two-d/ui/Window.js.map +1 -1
- package/dist/two-d/ui/index.d.ts +7 -5
- package/dist/two-d/ui/index.d.ts.map +1 -1
- package/dist/two-d/ui/index.js +3 -2
- package/dist/two-d/ui/index.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +7 -3
- package/sbom.cdx.json +19 -260
- package/tools/browser-driver.mjs +3 -3
- package/tools/browser-smoke.mjs +19 -2
- package/tools/build-tablebases.mjs +7 -3
- package/tools/compile-openings.mjs +7 -3
- package/tools/compile-resources.d.mts +2 -0
- package/tools/compile-resources.mjs +13 -1
- package/tools/emit-page.d.mts +6 -0
- package/tools/emit-page.mjs +43 -3
- package/tools/find-chrome.mjs +4 -2
- package/tools/init.mjs +11 -3
- package/tools/play-uci.mjs +9 -5
- package/tools/vite.mjs +9 -1
- package/tools.md +1 -0
|
@@ -14,19 +14,49 @@ import type { GridCell3D, GridShape3D } from './Grid.ts';
|
|
|
14
14
|
* nothing from here; this module is specifically for the discrete, per-cell elevation grid
|
|
15
15
|
* `createTileGrid3D` builds columns from, which has no such query at all.
|
|
16
16
|
*/
|
|
17
|
-
/**
|
|
17
|
+
/**
|
|
18
|
+
* looks up a cell's height by its integer grid coordinate in O(1) rather than scanning `cells` on every query
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```ts
|
|
22
|
+
* import { buildHeightIndex, heightAt } from '@datamoc/mw_games/3d';
|
|
23
|
+
*
|
|
24
|
+
* const heights = buildHeightIndex([
|
|
25
|
+
* { x: 0, y: 0 },
|
|
26
|
+
* { x: 1, y: 0, height: 2 },
|
|
27
|
+
* ]);
|
|
28
|
+
* console.log(heightAt(heights, 'square', 1.2, 0.1)); // 2
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
18
31
|
export declare function buildHeightIndex(cells: readonly GridCell3D[]): Map<string, number>;
|
|
19
32
|
/**
|
|
20
33
|
* The integer grid cell nearest world position `(x, z)` - the inverse of `gridPoint3D`.
|
|
21
34
|
* Nearest-cell rounding, not an exact point-in-hexagon test for the hex shape: consistent
|
|
22
35
|
* with `rpg.Collision`'s own choice of simple axis sweeps over a full polygon solver, since
|
|
23
36
|
* every tile a capsule actually stands on is far larger than the rounding error near an edge.
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```ts
|
|
40
|
+
* import { cellAt } from '@datamoc/mw_games/3d';
|
|
41
|
+
*
|
|
42
|
+
* console.log(cellAt('square', 3.4, 1.6, 2)); // { x: 2, y: 1 }
|
|
43
|
+
* ```
|
|
24
44
|
*/
|
|
25
45
|
export declare function cellAt(shape: GridShape3D, x: number, z: number, tileSize?: number): {
|
|
26
46
|
x: number;
|
|
27
47
|
y: number;
|
|
28
48
|
};
|
|
29
|
-
/**
|
|
49
|
+
/**
|
|
50
|
+
* 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
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```ts
|
|
54
|
+
* import { buildHeightIndex, heightAt } from '@datamoc/mw_games/3d';
|
|
55
|
+
*
|
|
56
|
+
* const heights = buildHeightIndex([{ x: 0, y: 0, height: 1 }]);
|
|
57
|
+
* console.log(heightAt(heights, 'square', 0, 0), heightAt(heights, 'square', 5, 5)); // 1 null
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
30
60
|
export declare function heightAt(index: ReadonlyMap<string, number>, shape: GridShape3D, x: number, z: number, tileSize?: number): number | null;
|
|
31
61
|
/**
|
|
32
62
|
* Inputs to `resolveCapsuleAgainstGrid`; `tileSize` (default 1) and `shape` must match the grid the heights were built from.
|
|
@@ -56,6 +86,20 @@ export interface CapsuleGridMoveResult {
|
|
|
56
86
|
* across both `createTileGrid3D` shapes without hex-edge-specific geometry: exactly the
|
|
57
87
|
* `resolveAabbAgainstTiles`-style trade-off `rpg.Collision`'s own doc comment already makes,
|
|
58
88
|
* scaled to a grid that is not always axis-aligned.
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* ```ts
|
|
92
|
+
* import { buildHeightIndex, resolveCapsuleAgainstGrid } from '@datamoc/mw_games/3d';
|
|
93
|
+
*
|
|
94
|
+
* const heights = buildHeightIndex([
|
|
95
|
+
* { x: 0, y: 0 },
|
|
96
|
+
* { x: 1, y: 0 },
|
|
97
|
+
* { x: 2, y: 0, height: 3 },
|
|
98
|
+
* ]);
|
|
99
|
+
* //a step of 3 levels is more than the capsule can climb, so it stops on the cell before the column
|
|
100
|
+
* const moved = resolveCapsuleAgainstGrid({ x: 0, z: 0 }, { x: 2, z: 0 }, { shape: 'square', heights, maxStepUp: 1 });
|
|
101
|
+
* console.log(moved.blocked, moved.x < 1.5); // true true
|
|
102
|
+
* ```
|
|
59
103
|
*/
|
|
60
104
|
export declare function resolveCapsuleAgainstGrid(from: {
|
|
61
105
|
x: 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
|
|
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;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAIlF;AAMD;;;;;;;;;;;;GAYG;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;;;;;;;;;;GAUG;AACH,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;;;;;;;;;;;;;;;;;;;;;;GAsBG;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"}
|
|
@@ -13,7 +13,20 @@
|
|
|
13
13
|
* nothing from here; this module is specifically for the discrete, per-cell elevation grid
|
|
14
14
|
* `createTileGrid3D` builds columns from, which has no such query at all.
|
|
15
15
|
*/
|
|
16
|
-
/**
|
|
16
|
+
/**
|
|
17
|
+
* looks up a cell's height by its integer grid coordinate in O(1) rather than scanning `cells` on every query
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```ts
|
|
21
|
+
* import { buildHeightIndex, heightAt } from '@datamoc/mw_games/3d';
|
|
22
|
+
*
|
|
23
|
+
* const heights = buildHeightIndex([
|
|
24
|
+
* { x: 0, y: 0 },
|
|
25
|
+
* { x: 1, y: 0, height: 2 },
|
|
26
|
+
* ]);
|
|
27
|
+
* console.log(heightAt(heights, 'square', 1.2, 0.1)); // 2
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
17
30
|
export function buildHeightIndex(cells) {
|
|
18
31
|
const index = new Map();
|
|
19
32
|
for (const cell of cells)
|
|
@@ -28,6 +41,13 @@ function cellKey(x, y) {
|
|
|
28
41
|
* Nearest-cell rounding, not an exact point-in-hexagon test for the hex shape: consistent
|
|
29
42
|
* with `rpg.Collision`'s own choice of simple axis sweeps over a full polygon solver, since
|
|
30
43
|
* every tile a capsule actually stands on is far larger than the rounding error near an edge.
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```ts
|
|
47
|
+
* import { cellAt } from '@datamoc/mw_games/3d';
|
|
48
|
+
*
|
|
49
|
+
* console.log(cellAt('square', 3.4, 1.6, 2)); // { x: 2, y: 1 }
|
|
50
|
+
* ```
|
|
31
51
|
*/
|
|
32
52
|
export function cellAt(shape, x, z, tileSize = 1) {
|
|
33
53
|
if (!(tileSize > 0))
|
|
@@ -38,7 +58,17 @@ export function cellAt(shape, x, z, tileSize = 1) {
|
|
|
38
58
|
const cellY = Math.round(z / (Math.sqrt(3) * tileSize) - (cellX & 1) * 0.5);
|
|
39
59
|
return { x: cellX, y: cellY };
|
|
40
60
|
}
|
|
41
|
-
/**
|
|
61
|
+
/**
|
|
62
|
+
* 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
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* ```ts
|
|
66
|
+
* import { buildHeightIndex, heightAt } from '@datamoc/mw_games/3d';
|
|
67
|
+
*
|
|
68
|
+
* const heights = buildHeightIndex([{ x: 0, y: 0, height: 1 }]);
|
|
69
|
+
* console.log(heightAt(heights, 'square', 0, 0), heightAt(heights, 'square', 5, 5)); // 1 null
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
42
72
|
export function heightAt(index, shape, x, z, tileSize = 1) {
|
|
43
73
|
const cell = cellAt(shape, x, z, tileSize);
|
|
44
74
|
const key = cellKey(cell.x, cell.y);
|
|
@@ -52,6 +82,20 @@ export function heightAt(index, shape, x, z, tileSize = 1) {
|
|
|
52
82
|
* across both `createTileGrid3D` shapes without hex-edge-specific geometry: exactly the
|
|
53
83
|
* `resolveAabbAgainstTiles`-style trade-off `rpg.Collision`'s own doc comment already makes,
|
|
54
84
|
* scaled to a grid that is not always axis-aligned.
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* ```ts
|
|
88
|
+
* import { buildHeightIndex, resolveCapsuleAgainstGrid } from '@datamoc/mw_games/3d';
|
|
89
|
+
*
|
|
90
|
+
* const heights = buildHeightIndex([
|
|
91
|
+
* { x: 0, y: 0 },
|
|
92
|
+
* { x: 1, y: 0 },
|
|
93
|
+
* { x: 2, y: 0, height: 3 },
|
|
94
|
+
* ]);
|
|
95
|
+
* //a step of 3 levels is more than the capsule can climb, so it stops on the cell before the column
|
|
96
|
+
* const moved = resolveCapsuleAgainstGrid({ x: 0, z: 0 }, { x: 2, z: 0 }, { shape: 'square', heights, maxStepUp: 1 });
|
|
97
|
+
* console.log(moved.blocked, moved.x < 1.5); // true true
|
|
98
|
+
* ```
|
|
55
99
|
*/
|
|
56
100
|
export function resolveCapsuleAgainstGrid(from, to, options) {
|
|
57
101
|
const { shape, heights, tileSize = 1, maxStepUp = 0, steps = 8 } = options;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Collision3D.js","sourceRoot":"","sources":["../../src/three-d/Collision3D.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AAEH
|
|
1
|
+
{"version":3,"file":"Collision3D.js","sourceRoot":"","sources":["../../src/three-d/Collision3D.ts"],"names":[],"mappings":"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"}
|
package/dist/three-d/Grid.d.ts
CHANGED
|
@@ -14,6 +14,17 @@ export interface Point3D {
|
|
|
14
14
|
y: number;
|
|
15
15
|
z: number;
|
|
16
16
|
}
|
|
17
|
-
/**
|
|
17
|
+
/**
|
|
18
|
+
* Converts the framework's integer square or odd-q hex coordinate to 3D world space.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```ts
|
|
22
|
+
* import { gridPoint3D } from '@datamoc/mw_games/3d';
|
|
23
|
+
*
|
|
24
|
+
* //cell (3, 2), one level up, on a grid of 2-unit tiles with 0.5-unit levels
|
|
25
|
+
* const point = gridPoint3D('square', 3, 2, 2, 1, 0.5);
|
|
26
|
+
* console.log(point); // { x: 6, y: 0.5, z: 4 }
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
18
29
|
export declare function gridPoint3D(shape: GridShape3D, x: number, y: number, tileSize?: number, height?: number, heightStep?: number): Point3D;
|
|
19
30
|
//# sourceMappingURL=Grid.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
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
|
|
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;;;;;;;;;;;GAWG;AACH,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"}
|
package/dist/three-d/Grid.js
CHANGED
|
@@ -1,4 +1,15 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* Converts the framework's integer square or odd-q hex coordinate to 3D world space.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```ts
|
|
6
|
+
* import { gridPoint3D } from '@datamoc/mw_games/3d';
|
|
7
|
+
*
|
|
8
|
+
* //cell (3, 2), one level up, on a grid of 2-unit tiles with 0.5-unit levels
|
|
9
|
+
* const point = gridPoint3D('square', 3, 2, 2, 1, 0.5);
|
|
10
|
+
* console.log(point); // { x: 6, y: 0.5, z: 4 }
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
2
13
|
export function gridPoint3D(shape, x, y, tileSize = 1, height = 0, heightStep = 1) {
|
|
3
14
|
if (!(tileSize > 0) || !(heightStep > 0))
|
|
4
15
|
throw new Error('3D grid sizes must be positive');
|
package/dist/three-d/Grid.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Grid.js","sourceRoot":"","sources":["../../src/three-d/Grid.ts"],"names":[],"mappings":"AAmBA
|
|
1
|
+
{"version":3,"file":"Grid.js","sourceRoot":"","sources":["../../src/three-d/Grid.ts"],"names":[],"mappings":"AAmBA;;;;;;;;;;;GAWG;AACH,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"}
|
package/dist/three-d/Vox.d.ts
CHANGED
|
@@ -24,7 +24,19 @@ export interface VoxModel {
|
|
|
24
24
|
voxels: readonly Voxel[];
|
|
25
25
|
palette: Uint32Array;
|
|
26
26
|
}
|
|
27
|
-
/**
|
|
27
|
+
/**
|
|
28
|
+
* Reads one MagicaVoxel VOX model, including an optional RGBA palette chunk.
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```ts
|
|
32
|
+
* import { parseVox } from '@datamoc/mw_games/3d';
|
|
33
|
+
*
|
|
34
|
+
* declare const voxBytes: ArrayBuffer;
|
|
35
|
+
*
|
|
36
|
+
* const model = parseVox(voxBytes);
|
|
37
|
+
* console.log(model.size, model.voxels.length);
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
28
40
|
export declare function parseVox(data: ArrayBuffer | ArrayBufferView): VoxModel;
|
|
29
41
|
/** Turns parsed voxels into color-batched Babylon thin instances under one transform node. */
|
|
30
42
|
export declare function createVoxModel3D(scene: Scene, model: VoxModel, voxelSize?: number): TransformNode;
|
|
@@ -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,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
|
|
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;;;;;;;;;;;;GAYG;AACH,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"}
|
package/dist/three-d/Vox.js
CHANGED
|
@@ -4,7 +4,19 @@ import { Matrix } from '@babylonjs/core/Maths/math.vector.js';
|
|
|
4
4
|
import { CreateBox } from '@babylonjs/core/Meshes/Builders/boxBuilder.pure.js';
|
|
5
5
|
import '@babylonjs/core/Meshes/thinInstanceMesh.js';
|
|
6
6
|
import { TransformNode } from '@babylonjs/core/Meshes/transformNode.js';
|
|
7
|
-
/**
|
|
7
|
+
/**
|
|
8
|
+
* Reads one MagicaVoxel VOX model, including an optional RGBA palette chunk.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* import { parseVox } from '@datamoc/mw_games/3d';
|
|
13
|
+
*
|
|
14
|
+
* declare const voxBytes: ArrayBuffer;
|
|
15
|
+
*
|
|
16
|
+
* const model = parseVox(voxBytes);
|
|
17
|
+
* console.log(model.size, model.voxels.length);
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
8
20
|
export function parseVox(data) {
|
|
9
21
|
const bytes = data instanceof ArrayBuffer
|
|
10
22
|
? new Uint8Array(data)
|
package/dist/three-d/Vox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Vox.js","sourceRoot":"","sources":["../../src/three-d/Vox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACjF,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,sCAAsC,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,oDAAoD,CAAC;AAC/E,OAAO,4CAA4C,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AA2BxE
|
|
1
|
+
{"version":3,"file":"Vox.js","sourceRoot":"","sources":["../../src/three-d/Vox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACjF,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,sCAAsC,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,oDAAoD,CAAC;AAC/E,OAAO,4CAA4C,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AA2BxE;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAmC;IAC3D,MAAM,KAAK,GACV,IAAI,YAAY,WAAW;QAC1B,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC;QACtB,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAClE,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAC1F,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAC5E,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,IAAI,GAAmB,IAAI,CAAC;IAChC,IAAI,MAAM,GAAmB,IAAI,CAAC;IAClC,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IAEjC,OAAO,MAAM,GAAG,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QACrD,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,MAAM,GAAG,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,OAAO,GAAG,WAAW,CAAC;QAClC,IAAI,GAAG,GAAG,YAAY,GAAG,KAAK,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;QACpF,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;YACnB,IAAI,WAAW,GAAG,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAChE,IAAI,GAAG;gBACN,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC;gBAChC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,CAAC,EAAE,IAAI,CAAC;gBACpC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,CAAC,EAAE,IAAI,CAAC;aACpC,CAAC;QACH,CAAC;aAAM,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC5C,IAAI,WAAW,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC3E,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;gBACnD,MAAM,EAAE,GAAG,OAAO,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;gBACnC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;YACnF,CAAC,CAAC,CAAC;QACJ,CAAC;aAAM,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;YAC1B,IAAI,WAAW,GAAG,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAClE,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,EAAE;gBAAE,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QACtG,CAAC;QACD,MAAM,GAAG,GAAG,CAAC;IACd,CAAC;IACD,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAClC,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,gBAAgB,CAAC,KAAY,EAAE,KAAe,EAAE,SAAS,GAAG,CAAC;IAC5E,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACrE,MAAM,IAAI,GAAG,IAAI,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAmB,CAAC;IAC1C,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAChC,CAAC;IACD,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,SAAS,CAAC,UAAU,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,KAAK,CAAC,CAAC;QACrE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;QAClB,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,SAAS,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;QAC/D,QAAQ,CAAC,YAAY,GAAG,IAAI,MAAM,CACjC,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,EACnB,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,EAC1B,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAC3B,CAAC;QACF,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;QAC9C,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACxB,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;QACtD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YACpD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5B,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,SAAS,EAAE,KAAK,CAAC,CAAC,GAAG,SAAS,EAAE,KAAK,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,WAAW,CAC5F,QAAQ,EACR,KAAK,GAAG,EAAE,CACV,CAAC;QACH,CAAC;QACD,GAAG,CAAC,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED,SAAS,IAAI,CAAC,KAAiB,EAAE,MAAc;IAC9C,OAAO,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,cAAc;IACtB,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;IACrC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;QAC3B,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,UAAU,CAAC;IACpE,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC"}
|
package/dist/two-d/Game.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import type { Scene2D } from './Scene2D.ts';
|
|
|
3
3
|
import type { SceneClass } from '../core/Scene.ts';
|
|
4
4
|
import { Signal } from '../core/Signal.ts';
|
|
5
5
|
import { type QualityScalerOptions } from './QualityScaler.ts';
|
|
6
|
+
import { type TransitionOptions } from './render/SceneTransition.ts';
|
|
6
7
|
export interface GameOptions {
|
|
7
8
|
/** the canvas to draw into; one is created and appended if omitted */
|
|
8
9
|
canvas?: HTMLCanvasElement;
|
|
@@ -97,6 +98,7 @@ export declare class Game {
|
|
|
97
98
|
private hitStopScale;
|
|
98
99
|
private stack;
|
|
99
100
|
private pending;
|
|
101
|
+
private running;
|
|
100
102
|
private options;
|
|
101
103
|
private started;
|
|
102
104
|
private stopWatchingDpr;
|
|
@@ -108,6 +110,8 @@ export declare class Game {
|
|
|
108
110
|
/** the viewport width in css pixels, which is what scenes lay out against */
|
|
109
111
|
get width(): number;
|
|
110
112
|
get height(): number;
|
|
113
|
+
/** the running game, or null before one exists, for code that works with or without one */
|
|
114
|
+
static get active(): Game | null;
|
|
111
115
|
/** the running game, for the few places that genuinely need a global */
|
|
112
116
|
static get current(): Game;
|
|
113
117
|
start(first: SceneClass<Scene2D>): Promise<void>;
|
|
@@ -117,7 +121,16 @@ export declare class Game {
|
|
|
117
121
|
* The whole stack goes: every scene is destroyed, suspended or not, and the
|
|
118
122
|
* new one starts alone. For a scene that returns, push it instead.
|
|
119
123
|
*/
|
|
120
|
-
switchScene(next: SceneClass<Scene2D
|
|
124
|
+
switchScene(next: SceneClass<Scene2D>, options?: TransitionOptions): void;
|
|
125
|
+
/**
|
|
126
|
+
* Changes what the current scene shows under a transition: `swap` runs at the start of the next
|
|
127
|
+
* frame, once the outgoing picture has been photographed, and the transition then plays over the
|
|
128
|
+
* result. For a scene that replaces its decor, level or layout in place rather than switching scenes;
|
|
129
|
+
* `Scene2D.transitionTo` is the same call from inside the scene.
|
|
130
|
+
*/
|
|
131
|
+
transition(swap: () => void, options: TransitionOptions): void;
|
|
132
|
+
/** true while a transition is playing, for a scene that should ignore input until it ends */
|
|
133
|
+
get transitioning(): boolean;
|
|
121
134
|
/**
|
|
122
135
|
* Queues a scene on top of the current one; it starts at the next frame.
|
|
123
136
|
*
|
|
@@ -198,6 +211,13 @@ export declare class Game {
|
|
|
198
211
|
private fitResolutionToDevice;
|
|
199
212
|
private frame;
|
|
200
213
|
private switchNow;
|
|
214
|
+
/** a picture of everything on screen now, or null when there is nothing to show or motion is reduced */
|
|
215
|
+
private snapshot;
|
|
216
|
+
/** puts what is on the stage into a container the transition may move, between its two layers */
|
|
217
|
+
private beginTransition;
|
|
218
|
+
/** finishes a transition that is still playing and puts the scenes back on the stage */
|
|
219
|
+
private endTransition;
|
|
220
|
+
private applySwap;
|
|
201
221
|
/** a new scene alone: everything else is destroyed, the clocks restart */
|
|
202
222
|
private applySwitch;
|
|
203
223
|
/** a new scene over the current one, which suspends but survives underneath */
|
package/dist/two-d/Game.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Game.d.ts","sourceRoot":"","sources":["../../src/two-d/Game.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"Game.d.ts","sourceRoot":"","sources":["../../src/two-d/Game.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA4B,MAAM,SAAS,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,OAAO,EAAiB,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG9E,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAoDvF,MAAM,WAAW,WAAW;IAC3B,sEAAsE;IACtE,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAE3B,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAEhC;;;;;;;;;;;;;;;;OAgBG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;IAErC;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,2FAA2F;IAC3F,KAAK,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IAE/B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC;CAC9D;AAED,+EAA+E;AAC/E,MAAM,WAAW,eAAe;IAC/B,OAAO,IAAI,IAAI,CAAC;IAChB,MAAM,IAAI,IAAI,CAAC;CACf;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,IAAI;IAChB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAqB;IAE5C,QAAQ,CAAC,GAAG,0CAAqB;IAEjC,mEAAmE;IACnE,OAAO,SAAK;IAEZ,wDAAwD;IACxD,SAAS,SAAK;IAEd,+EAA+E;IAC/E,SAAS,SAAK;IAEd,6EAA6E;IAC7E,QAAQ,CAAC,OAAO,iBAAwB;IAExC,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,YAAY,CAAK;IAEzB,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,OAAO,CAAiE;IAChF,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,sBAAsB,CAA6B;IAC3D,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,sBAAsB,CAAK;IACnC,OAAO,CAAC,MAAM,CAA8B;IAE5C,YAAY,OAAO,GAAE,WAAgB,EA2BpC;IAED,6EAA6E;IAC7E,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,2FAA2F;IAC3F,MAAM,KAAK,MAAM,IAAI,IAAI,GAAG,IAAI,CAE/B;IAED,wEAAwE;IACxE,MAAM,KAAK,OAAO,IAAI,IAAI,CAGzB;IAEK,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAwErD;IAED;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAExE;IAED;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAE7D;IAED,6FAA6F;IAC7F,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED;;;;;;OAMG;IACH,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,IAAI,CAEzC;IAED;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAE/B;IAED,yDAAyD;IACzD,IAAI,YAAY,IAAI,OAAO,GAAG,IAAI,CAEjC;IAED;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,IAAI,CAGzC;IAED;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAGrB;IAED,+DAA+D;IAC/D,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED;;;;;;OAMG;IACH,OAAO,IAAI,IAAI,CAOd;IAED;;;OAGG;IACH,MAAM,IAAI,IAAI,CAMb;IAED;;;;;;;;;;OAUG;IACH,OAAO,CAAC,MAAM;IAMd;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,qBAAqB;IAkB7B,OAAO,CAAC,KAAK;IA2Cb,OAAO,CAAC,SAAS;IAIjB,wGAAwG;IACxG,OAAO,CAAC,QAAQ;IAKhB,iGAAiG;IACjG,OAAO,CAAC,eAAe;IAQvB,wFAAwF;IACxF,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,SAAS;IAOjB,0EAA0E;IAC1E,OAAO,CAAC,WAAW;IAgBnB,+EAA+E;IAC/E,OAAO,CAAC,SAAS;IAYjB,kEAAkE;IAClE,OAAO,CAAC,QAAQ;IAMhB,OAAO,IAAI,IAAI,CAQd;CACD"}
|
package/dist/two-d/Game.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import { Application, TextureSource } from 'pixi.js';
|
|
1
|
+
import { Application, Container, TextureSource } from 'pixi.js';
|
|
2
2
|
import { SceneStack } from '../core/SceneStack.js';
|
|
3
3
|
import { Signal } from '../core/Signal.js';
|
|
4
4
|
import { Logger } from '../core/Log.js';
|
|
5
5
|
import { fitResolution } from './ResolutionFit.js';
|
|
6
6
|
import { QualityScaler } from './QualityScaler.js';
|
|
7
7
|
import * as Input from '../core/Input.js';
|
|
8
|
+
import { reducedMotion } from '../core/Motion.js';
|
|
9
|
+
import { TransitionRunner } from './render/SceneTransition.js';
|
|
8
10
|
const PIXEL_ART_CLASS = 'mwg-pixel-art';
|
|
9
11
|
const log = new Logger('renderer');
|
|
10
12
|
/**
|
|
@@ -70,6 +72,7 @@ export class Game {
|
|
|
70
72
|
this.hitStopScale = 0;
|
|
71
73
|
this.stack = new SceneStack();
|
|
72
74
|
this.pending = [];
|
|
75
|
+
this.running = null;
|
|
73
76
|
this.started = false;
|
|
74
77
|
this.stopWatchingDpr = null;
|
|
75
78
|
this.stopWatchingVisibility = null;
|
|
@@ -108,6 +111,10 @@ export class Game {
|
|
|
108
111
|
get height() {
|
|
109
112
|
return this.app.renderer.screen.height;
|
|
110
113
|
}
|
|
114
|
+
/** the running game, or null before one exists, for code that works with or without one */
|
|
115
|
+
static get active() {
|
|
116
|
+
return Game.instance;
|
|
117
|
+
}
|
|
111
118
|
/** the running game, for the few places that genuinely need a global */
|
|
112
119
|
static get current() {
|
|
113
120
|
if (!Game.instance)
|
|
@@ -188,8 +195,21 @@ export class Game {
|
|
|
188
195
|
* The whole stack goes: every scene is destroyed, suspended or not, and the
|
|
189
196
|
* new one starts alone. For a scene that returns, push it instead.
|
|
190
197
|
*/
|
|
191
|
-
switchScene(next) {
|
|
192
|
-
this.pending.push({ kind: 'switch', next });
|
|
198
|
+
switchScene(next, options) {
|
|
199
|
+
this.pending.push({ kind: 'switch', next, transition: options });
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Changes what the current scene shows under a transition: `swap` runs at the start of the next
|
|
203
|
+
* frame, once the outgoing picture has been photographed, and the transition then plays over the
|
|
204
|
+
* result. For a scene that replaces its decor, level or layout in place rather than switching scenes;
|
|
205
|
+
* `Scene2D.transitionTo` is the same call from inside the scene.
|
|
206
|
+
*/
|
|
207
|
+
transition(swap, options) {
|
|
208
|
+
this.pending.push({ kind: 'swap', swap, transition: options });
|
|
209
|
+
}
|
|
210
|
+
/** true while a transition is playing, for a scene that should ignore input until it ends */
|
|
211
|
+
get transitioning() {
|
|
212
|
+
return this.running !== null;
|
|
193
213
|
}
|
|
194
214
|
/**
|
|
195
215
|
* Queues a scene on top of the current one; it starts at the next frame.
|
|
@@ -319,9 +339,13 @@ export class Game {
|
|
|
319
339
|
frame(deltaSeconds) {
|
|
320
340
|
//queued scene changes run first, in order, so a frame never updates a
|
|
321
341
|
//scene that was already asked to leave
|
|
342
|
+
if (this.pending.length > 0)
|
|
343
|
+
this.endTransition();
|
|
322
344
|
for (const request of this.pending) {
|
|
323
345
|
if (request.kind === 'switch')
|
|
324
|
-
this.applySwitch(request.next);
|
|
346
|
+
this.applySwitch(request.next, request.transition);
|
|
347
|
+
else if (request.kind === 'swap')
|
|
348
|
+
this.applySwap(request.swap, request.transition);
|
|
325
349
|
else if (request.kind === 'push')
|
|
326
350
|
this.applyPush(request.next);
|
|
327
351
|
else
|
|
@@ -333,7 +357,11 @@ export class Game {
|
|
|
333
357
|
this.hitStopRemaining -= deltaSeconds;
|
|
334
358
|
this.timeScale = this.hitStopRemaining > 0 ? this.hitStopScale : 1;
|
|
335
359
|
}
|
|
336
|
-
|
|
360
|
+
//a transition counts real time, and may hold the scene still while it plays
|
|
361
|
+
if (this.running && this.running.runner.update(deltaSeconds))
|
|
362
|
+
this.endTransition();
|
|
363
|
+
const frozen = this.running?.runner.pause === true;
|
|
364
|
+
this.elapsed = frozen ? 0 : Math.min(deltaSeconds, this.options.maxDelta) * this.timeScale;
|
|
337
365
|
//a parked clock reads 0, which is always inside budget - observing it would ratchet
|
|
338
366
|
//the ratio back up while hidden or hit-stopped, so only real frames count
|
|
339
367
|
const scaler = this.suspended_ || this.elapsed <= 0 ? null : this.scaler;
|
|
@@ -354,8 +382,43 @@ export class Game {
|
|
|
354
382
|
switchNow(next) {
|
|
355
383
|
this.applySwitch(next);
|
|
356
384
|
}
|
|
385
|
+
/** a picture of everything on screen now, or null when there is nothing to show or motion is reduced */
|
|
386
|
+
snapshot(options) {
|
|
387
|
+
if (!options || reducedMotion())
|
|
388
|
+
return null;
|
|
389
|
+
return this.app.renderer.generateTexture(this.app.stage);
|
|
390
|
+
}
|
|
391
|
+
/** puts what is on the stage into a container the transition may move, between its two layers */
|
|
392
|
+
beginTransition(options, snapshot) {
|
|
393
|
+
const wrapper = new Container();
|
|
394
|
+
wrapper.addChild(...this.app.stage.removeChildren());
|
|
395
|
+
const runner = new TransitionRunner(options, { width: this.width, height: this.height }, snapshot, wrapper);
|
|
396
|
+
this.app.stage.addChild(runner.under, wrapper, runner.over);
|
|
397
|
+
this.running = { runner, wrapper };
|
|
398
|
+
}
|
|
399
|
+
/** finishes a transition that is still playing and puts the scenes back on the stage */
|
|
400
|
+
endTransition() {
|
|
401
|
+
const running = this.running;
|
|
402
|
+
if (!running)
|
|
403
|
+
return;
|
|
404
|
+
this.running = null;
|
|
405
|
+
running.runner.finish();
|
|
406
|
+
const scenes = running.wrapper.removeChildren();
|
|
407
|
+
this.app.stage.removeChildren();
|
|
408
|
+
this.app.stage.addChild(...scenes);
|
|
409
|
+
running.wrapper.destroy();
|
|
410
|
+
}
|
|
411
|
+
applySwap(swap, options) {
|
|
412
|
+
const snapshot = this.snapshot(options);
|
|
413
|
+
swap();
|
|
414
|
+
if (snapshot)
|
|
415
|
+
this.beginTransition(options, snapshot);
|
|
416
|
+
else
|
|
417
|
+
options.onDone?.();
|
|
418
|
+
}
|
|
357
419
|
/** a new scene alone: everything else is destroyed, the clocks restart */
|
|
358
|
-
applySwitch(next) {
|
|
420
|
+
applySwitch(next, transition) {
|
|
421
|
+
const snapshot = this.snapshot(transition);
|
|
359
422
|
const scene = new next();
|
|
360
423
|
this.stack.replace(scene);
|
|
361
424
|
this.app.stage.removeChildren();
|
|
@@ -364,6 +427,10 @@ export class Game {
|
|
|
364
427
|
this.timeTotal = 0;
|
|
365
428
|
this.timeScale = 1;
|
|
366
429
|
scene.resize(this.width, this.height);
|
|
430
|
+
if (snapshot && transition)
|
|
431
|
+
this.beginTransition(transition, snapshot);
|
|
432
|
+
else
|
|
433
|
+
transition?.onDone?.();
|
|
367
434
|
}
|
|
368
435
|
/** a new scene over the current one, which suspends but survives underneath */
|
|
369
436
|
applyPush(next) {
|
package/dist/two-d/Game.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Game.js","sourceRoot":"","sources":["../../src/two-d/Game.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Game.js","sourceRoot":"","sources":["../../src/two-d/Game.ts"],"names":[],"mappings":"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"}
|
package/dist/two-d/Scene2D.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Scene } from '../core/Scene.ts';
|
|
2
2
|
import type { Container2D } from './render/Types2D.ts';
|
|
3
|
+
import type { TransitionOptions } from './render/SceneTransition.ts';
|
|
3
4
|
/**
|
|
4
5
|
* A scene that draws through Pixi: `core.Scene`'s lifecycle plus the container everything
|
|
5
6
|
* this screen shows hangs off.
|
|
@@ -13,6 +14,29 @@ import type { Container2D } from './render/Types2D.ts';
|
|
|
13
14
|
export declare abstract class Scene2D extends Scene {
|
|
14
15
|
/** everything this scene draws hangs off here */
|
|
15
16
|
readonly stage: Container2D;
|
|
17
|
+
/**
|
|
18
|
+
* Replaces what this scene shows under a transition: the current picture is photographed, `swap`
|
|
19
|
+
* changes the content (a new level, decor, layout), and the transition plays over the result.
|
|
20
|
+
* Without a running `Game` (a test) `swap` just runs.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```ts
|
|
24
|
+
* import { Scene2D } from '@datamoc/mw_games/two-d';
|
|
25
|
+
* import { tileShrink } from '@datamoc/mw_games/two-d/render';
|
|
26
|
+
*
|
|
27
|
+
* class Levels extends Scene2D {
|
|
28
|
+
* override create(): void {}
|
|
29
|
+
* private level = 1;
|
|
30
|
+
* next(): void {
|
|
31
|
+
* this.transitionTo(() => this.load(++this.level), { transition: tileShrink({ columns: 8, rows: 5 }), duration: 0.6 });
|
|
32
|
+
* }
|
|
33
|
+
* private load(level: number): void {
|
|
34
|
+
* console.log('loading level', level);
|
|
35
|
+
* }
|
|
36
|
+
* }
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
transitionTo(swap: () => void, options: TransitionOptions): void;
|
|
16
40
|
protected teardown(): void;
|
|
17
41
|
}
|
|
18
42
|
export type Scene2DClass = new () => Scene2D;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Scene2D.d.ts","sourceRoot":"","sources":["../../src/two-d/Scene2D.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"Scene2D.d.ts","sourceRoot":"","sources":["../../src/two-d/Scene2D.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;;;;;;;GASG;AACH,8BAAsB,OAAQ,SAAQ,KAAK;IAC1C,iDAAiD;IACjD,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAmB;IAE9C;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAI/D;IAED,UAAmB,QAAQ,IAAI,IAAI,CAElC;CACD;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,OAAO,CAAC"}
|