@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.
Files changed (139) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/README.md +62 -1
  3. package/REFERENCE.md +57 -5
  4. package/api-surface.json +672 -0
  5. package/data/microgm-essential.PROVENANCE.md +13 -0
  6. package/data/microgm-essential.sf2 +0 -0
  7. package/data/soundfont-catalog.json +8 -0
  8. package/dist/audio/AudioLoader.d.ts +28 -0
  9. package/dist/audio/AudioLoader.d.ts.map +1 -0
  10. package/dist/audio/AudioLoader.js +53 -0
  11. package/dist/audio/AudioLoader.js.map +1 -0
  12. package/dist/audio/Channels.d.ts +1 -0
  13. package/dist/audio/Channels.d.ts.map +1 -1
  14. package/dist/audio/Channels.js +2 -1
  15. package/dist/audio/Channels.js.map +1 -1
  16. package/dist/audio/MidiRender.d.ts +16 -0
  17. package/dist/audio/MidiRender.d.ts.map +1 -1
  18. package/dist/audio/MidiRender.js +21 -0
  19. package/dist/audio/MidiRender.js.map +1 -1
  20. package/dist/audio/MusicPlayer.d.ts +80 -0
  21. package/dist/audio/MusicPlayer.d.ts.map +1 -0
  22. package/dist/audio/MusicPlayer.js +147 -0
  23. package/dist/audio/MusicPlayer.js.map +1 -0
  24. package/dist/audio/SampleDecoder.d.ts +16 -2
  25. package/dist/audio/SampleDecoder.d.ts.map +1 -1
  26. package/dist/audio/SampleDecoder.js +10 -6
  27. package/dist/audio/SampleDecoder.js.map +1 -1
  28. package/dist/audio/Sound.d.ts +2 -0
  29. package/dist/audio/Sound.d.ts.map +1 -1
  30. package/dist/audio/Sound.js +3 -0
  31. package/dist/audio/Sound.js.map +1 -1
  32. package/dist/audio/SoundFont.d.ts +5 -3
  33. package/dist/audio/SoundFont.d.ts.map +1 -1
  34. package/dist/audio/SoundFont.js +10 -8
  35. package/dist/audio/SoundFont.js.map +1 -1
  36. package/dist/audio/Synth.d.ts +1 -1
  37. package/dist/audio/Synth.d.ts.map +1 -1
  38. package/dist/audio/Synth.js +4 -0
  39. package/dist/audio/Synth.js.map +1 -1
  40. package/dist/audio/index.d.ts +6 -2
  41. package/dist/audio/index.d.ts.map +1 -1
  42. package/dist/audio/index.js +3 -1
  43. package/dist/audio/index.js.map +1 -1
  44. package/dist/mw_games.global.js +22 -22
  45. package/dist/mwl/index.d.ts +2 -0
  46. package/dist/mwl/index.d.ts.map +1 -1
  47. package/dist/mwl/index.js +1 -0
  48. package/dist/mwl/index.js.map +1 -1
  49. package/dist/mwl/objects.d.ts +31 -0
  50. package/dist/mwl/objects.d.ts.map +1 -0
  51. package/dist/mwl/objects.js +83 -0
  52. package/dist/mwl/objects.js.map +1 -0
  53. package/dist/mwl/schema.d.ts +1 -1
  54. package/dist/mwl/schema.d.ts.map +1 -1
  55. package/dist/mwl/tables.d.ts +2 -0
  56. package/dist/mwl/tables.d.ts.map +1 -1
  57. package/dist/mwl/tables.js +13 -0
  58. package/dist/mwl/tables.js.map +1 -1
  59. package/dist/physics/XpbdWorld.d.ts +23 -5
  60. package/dist/physics/XpbdWorld.d.ts.map +1 -1
  61. package/dist/physics/XpbdWorld.js +90 -6
  62. package/dist/physics/XpbdWorld.js.map +1 -1
  63. package/dist/testing/index.d.ts +16 -0
  64. package/dist/testing/index.d.ts.map +1 -1
  65. package/dist/testing/index.js +21 -0
  66. package/dist/testing/index.js.map +1 -1
  67. package/dist/three-d/Collision3D.d.ts +46 -2
  68. package/dist/three-d/Collision3D.d.ts.map +1 -1
  69. package/dist/three-d/Collision3D.js +46 -2
  70. package/dist/three-d/Collision3D.js.map +1 -1
  71. package/dist/three-d/Grid.d.ts +12 -1
  72. package/dist/three-d/Grid.d.ts.map +1 -1
  73. package/dist/three-d/Grid.js +12 -1
  74. package/dist/three-d/Grid.js.map +1 -1
  75. package/dist/three-d/Vox.d.ts +13 -1
  76. package/dist/three-d/Vox.d.ts.map +1 -1
  77. package/dist/three-d/Vox.js +13 -1
  78. package/dist/three-d/Vox.js.map +1 -1
  79. package/dist/two-d/Game.d.ts +21 -1
  80. package/dist/two-d/Game.d.ts.map +1 -1
  81. package/dist/two-d/Game.js +73 -6
  82. package/dist/two-d/Game.js.map +1 -1
  83. package/dist/two-d/Scene2D.d.ts +24 -0
  84. package/dist/two-d/Scene2D.d.ts.map +1 -1
  85. package/dist/two-d/Scene2D.js +30 -0
  86. package/dist/two-d/Scene2D.js.map +1 -1
  87. package/dist/two-d/render/SceneTransition.d.ts +272 -0
  88. package/dist/two-d/render/SceneTransition.d.ts.map +1 -0
  89. package/dist/two-d/render/SceneTransition.js +431 -0
  90. package/dist/two-d/render/SceneTransition.js.map +1 -0
  91. package/dist/two-d/render/index.d.ts +2 -0
  92. package/dist/two-d/render/index.d.ts.map +1 -1
  93. package/dist/two-d/render/index.js +1 -0
  94. package/dist/two-d/render/index.js.map +1 -1
  95. package/dist/two-d/ui/Button.d.ts +23 -0
  96. package/dist/two-d/ui/Button.d.ts.map +1 -1
  97. package/dist/two-d/ui/Button.js +37 -0
  98. package/dist/two-d/ui/Button.js.map +1 -1
  99. package/dist/two-d/ui/DropdownView.d.ts +49 -3
  100. package/dist/two-d/ui/DropdownView.d.ts.map +1 -1
  101. package/dist/two-d/ui/DropdownView.js +150 -9
  102. package/dist/two-d/ui/DropdownView.js.map +1 -1
  103. package/dist/two-d/ui/ScrollBox.d.ts +90 -0
  104. package/dist/two-d/ui/ScrollBox.d.ts.map +1 -1
  105. package/dist/two-d/ui/ScrollBox.js +206 -4
  106. package/dist/two-d/ui/ScrollBox.js.map +1 -1
  107. package/dist/two-d/ui/ScrollText.d.ts +122 -0
  108. package/dist/two-d/ui/ScrollText.d.ts.map +1 -0
  109. package/dist/two-d/ui/ScrollText.js +202 -0
  110. package/dist/two-d/ui/ScrollText.js.map +1 -0
  111. package/dist/two-d/ui/Tooltip.d.ts +70 -1
  112. package/dist/two-d/ui/Tooltip.d.ts.map +1 -1
  113. package/dist/two-d/ui/Tooltip.js +115 -3
  114. package/dist/two-d/ui/Tooltip.js.map +1 -1
  115. package/dist/two-d/ui/Window.d.ts +35 -2
  116. package/dist/two-d/ui/Window.d.ts.map +1 -1
  117. package/dist/two-d/ui/Window.js +58 -3
  118. package/dist/two-d/ui/Window.js.map +1 -1
  119. package/dist/two-d/ui/index.d.ts +7 -5
  120. package/dist/two-d/ui/index.d.ts.map +1 -1
  121. package/dist/two-d/ui/index.js +3 -2
  122. package/dist/two-d/ui/index.js.map +1 -1
  123. package/dist/version.d.ts +1 -1
  124. package/dist/version.js +1 -1
  125. package/package.json +7 -3
  126. package/sbom.cdx.json +19 -260
  127. package/tools/browser-driver.mjs +3 -3
  128. package/tools/browser-smoke.mjs +19 -2
  129. package/tools/build-tablebases.mjs +7 -3
  130. package/tools/compile-openings.mjs +7 -3
  131. package/tools/compile-resources.d.mts +2 -0
  132. package/tools/compile-resources.mjs +13 -1
  133. package/tools/emit-page.d.mts +6 -0
  134. package/tools/emit-page.mjs +43 -3
  135. package/tools/find-chrome.mjs +4 -2
  136. package/tools/init.mjs +11 -3
  137. package/tools/play-uci.mjs +9 -5
  138. package/tools/vite.mjs +9 -1
  139. package/tools.md +1 -0
@@ -0,0 +1,431 @@
1
+ import { Container, Graphics, Rectangle, Sprite, Texture } from 'pixi.js';
2
+ import { Easing } from '../../core/Tween.js';
3
+ const clamp01 = (value) => Math.min(1, Math.max(0, value));
4
+ /**
5
+ * When each tile of a `columns` by `rows` grid starts, from 0 (first) to 1 (last), in row-major order.
6
+ * `diagonal` sweeps from the top left, `spiral` from the outside in, `rows` top to bottom, and
7
+ * `random` is a fixed shuffle for a given `seed`.
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * import { tileDelays } from '@datamoc/mw_games/two-d/render';
12
+ *
13
+ * console.log(tileDelays(3, 2, 'diagonal')); // [0, 1/3, 2/3, 1/3, 2/3, 1]
14
+ * ```
15
+ */
16
+ export function tileDelays(columns, rows, order = 'diagonal', seed = 1) {
17
+ const count = columns * rows;
18
+ const keys = [];
19
+ let state = seed >>> 0 || 1;
20
+ for (let row = 0; row < rows; row++) {
21
+ for (let column = 0; column < columns; column++) {
22
+ if (order === 'diagonal')
23
+ keys.push(column + row);
24
+ else if (order === 'rows')
25
+ keys.push(row * columns + column);
26
+ else if (order === 'spiral')
27
+ keys.push(Math.min(column, row, columns - 1 - column, rows - 1 - row));
28
+ else {
29
+ state = (Math.imul(state, 1664525) + 1013904223) >>> 0;
30
+ keys.push(state / 2 ** 32);
31
+ }
32
+ }
33
+ }
34
+ const low = Math.min(...keys);
35
+ const high = Math.max(...keys);
36
+ return keys.map((key) => (count === 1 || high === low ? 0 : (key - low) / (high - low)));
37
+ }
38
+ /**
39
+ * One tile's progress when the whole transition is at `progress`: tiles start spread across the first
40
+ * `stagger` of the time, according to their `delay` from `tileDelays`, and each then takes the rest
41
+ * of it, so the last tile finishes exactly as the transition does.
42
+ *
43
+ * @example
44
+ * ```ts
45
+ * import { tileProgress } from '@datamoc/mw_games/two-d/render';
46
+ *
47
+ * console.log(tileProgress(0, 0.5, 0.5)); // 1: the first tile is already done
48
+ * console.log(tileProgress(1, 0.5, 0.5)); // 0: the last one has not started
49
+ * ```
50
+ */
51
+ export function tileProgress(delay, progress, stagger) {
52
+ const spread = clamp01(stagger);
53
+ return clamp01((progress - delay * spread) / (1 - spread || 1));
54
+ }
55
+ /**
56
+ * The scale of something that pops in: 0 growing past 1 to `overshoot`, then settling on 1.
57
+ *
58
+ * @example
59
+ * ```ts
60
+ * import { popScale } from '@datamoc/mw_games/two-d/render';
61
+ *
62
+ * console.log(popScale(0)); // 0
63
+ * console.log(popScale(0.7)); // 1.08, the peak
64
+ * console.log(popScale(1)); // 1
65
+ * ```
66
+ */
67
+ export function popScale(progress, overshoot = 1.08) {
68
+ const p = clamp01(progress);
69
+ if (p < 0.7)
70
+ return Easing.easeOutCubic(p / 0.7) * overshoot;
71
+ return overshoot + (1 - overshoot) * Easing.easeInOutQuad((p - 0.7) / 0.3);
72
+ }
73
+ /**
74
+ * the `Easing` function for a name or a function, defaulting to `easeInOutQuad`
75
+ *
76
+ * @example
77
+ * ```ts
78
+ * import { resolveEasing } from '@datamoc/mw_games/two-d/render';
79
+ *
80
+ * console.log(resolveEasing('linear')(0.25)); // 0.25
81
+ * console.log(resolveEasing((t) => t * t)(0.5)); // 0.25
82
+ * ```
83
+ */
84
+ export function resolveEasing(easing) {
85
+ if (typeof easing === 'function')
86
+ return easing;
87
+ return Easing[easing ?? 'easeInOutQuad'];
88
+ }
89
+ function pointOr(point, context) {
90
+ return point ?? { x: context.width / 2, y: context.height / 2 };
91
+ }
92
+ /** a full-screen sprite of the snapshot, or an empty container when there is none */
93
+ function snapshotSprite(context) {
94
+ if (!context.snapshot)
95
+ return null;
96
+ const sprite = new Sprite(context.snapshot);
97
+ sprite.width = context.width;
98
+ sprite.height = context.height;
99
+ return sprite;
100
+ }
101
+ function runtime(container, update, restore) {
102
+ return {
103
+ update,
104
+ destroy() {
105
+ restore?.();
106
+ container.destroy({ children: true });
107
+ },
108
+ };
109
+ }
110
+ /**
111
+ * The old picture cut into tiles that each shrink to nothing, in `order`, uncovering the new scene.
112
+ *
113
+ * @example
114
+ * ```ts
115
+ * import { tileShrink } from '@datamoc/mw_games/two-d/render';
116
+ *
117
+ * const transition = tileShrink({ columns: 8, rows: 5, order: 'diagonal' });
118
+ * // Game.current.switchScene(NextLevel, { transition, duration: 0.6 });
119
+ * console.log(transition.name); // 'tileShrink'
120
+ * ```
121
+ */
122
+ export function tileShrink(options = {}) {
123
+ const columns = Math.max(1, Math.floor(options.columns ?? 8));
124
+ const rows = Math.max(1, Math.floor(options.rows ?? 5));
125
+ const stagger = options.stagger ?? 0.5;
126
+ const rotation = options.rotation ?? 0;
127
+ return {
128
+ name: 'tileShrink',
129
+ start(context) {
130
+ const layer = new Container();
131
+ context.over.addChild(layer);
132
+ const delays = tileDelays(columns, rows, options.order ?? 'diagonal', options.seed);
133
+ const tiles = [];
134
+ const snapshot = context.snapshot;
135
+ const tileWidth = context.width / columns;
136
+ const tileHeight = context.height / rows;
137
+ if (snapshot) {
138
+ const frame = snapshot.frame;
139
+ for (let row = 0; row < rows; row++) {
140
+ for (let column = 0; column < columns; column++) {
141
+ const crop = new Rectangle(frame.x + (column * frame.width) / columns, frame.y + (row * frame.height) / rows, frame.width / columns, frame.height / rows);
142
+ const tile = new Sprite(new Texture({ source: snapshot.source, frame: crop }));
143
+ tile.anchor.set(0.5);
144
+ tile.width = tileWidth;
145
+ tile.height = tileHeight;
146
+ tile.position.set((column + 0.5) * tileWidth, (row + 0.5) * tileHeight);
147
+ tiles.push({ sprite: tile, width: tile.scale.x, height: tile.scale.y });
148
+ layer.addChild(tile);
149
+ }
150
+ }
151
+ }
152
+ return runtime(layer, (progress) => {
153
+ tiles.forEach(({ sprite, width, height }, index) => {
154
+ const left = 1 - tileProgress(delays[index], progress, stagger);
155
+ sprite.scale.set(width * left, height * left);
156
+ sprite.rotation = (1 - left) * rotation;
157
+ sprite.visible = left > 0;
158
+ });
159
+ });
160
+ },
161
+ };
162
+ }
163
+ /**
164
+ * The old picture shrinking to a point (the screen's centre unless `to` names one) over the new scene.
165
+ *
166
+ * @example
167
+ * ```ts
168
+ * import { shrink } from '@datamoc/mw_games/two-d/render';
169
+ *
170
+ * const closeToButton = shrink({ to: { x: 700, y: 40 } });
171
+ * console.log(closeToButton.name); // 'shrink'
172
+ * ```
173
+ */
174
+ export function shrink(options = {}) {
175
+ return {
176
+ name: 'shrink',
177
+ start(context) {
178
+ const layer = new Container();
179
+ context.over.addChild(layer);
180
+ const sprite = snapshotSprite(context);
181
+ if (sprite)
182
+ layer.addChild(sprite);
183
+ const to = pointOr(options.to, context);
184
+ return runtime(layer, (progress) => {
185
+ const scale = 1 - progress;
186
+ layer.scale.set(scale);
187
+ layer.position.set(to.x * (1 - scale), to.y * (1 - scale));
188
+ layer.alpha = 1 - progress * progress;
189
+ });
190
+ },
191
+ };
192
+ }
193
+ /** shared by `pop` and `grow`: the new scene scales up from a point over the old picture */
194
+ function growing(name, from, scaleAt) {
195
+ return {
196
+ name,
197
+ start(context) {
198
+ const layer = new Container();
199
+ context.under.addChild(layer);
200
+ const sprite = snapshotSprite(context);
201
+ if (sprite)
202
+ layer.addChild(sprite);
203
+ const origin = pointOr(from, context);
204
+ const target = context.incoming;
205
+ return runtime(layer, (progress) => {
206
+ const scale = scaleAt(progress);
207
+ target.scale.set(scale);
208
+ target.position.set(origin.x * (1 - scale), origin.y * (1 - scale));
209
+ target.alpha = clamp01(progress * 3);
210
+ }, () => {
211
+ target.scale.set(1);
212
+ target.position.set(0, 0);
213
+ target.alpha = 1;
214
+ });
215
+ },
216
+ };
217
+ }
218
+ /**
219
+ * The new scene springing out of a point (the centre unless `from` names one), overshooting a little
220
+ * (`overshoot`, 1.08 when omitted) before it settles.
221
+ *
222
+ * @example
223
+ * ```ts
224
+ * import { pop } from '@datamoc/mw_games/two-d/render';
225
+ *
226
+ * console.log(pop({ from: { x: 400, y: 300 } }).name); // 'pop'
227
+ * ```
228
+ */
229
+ export function pop(options = {}) {
230
+ return growing('pop', options.from, (progress) => popScale(progress, options.overshoot));
231
+ }
232
+ /**
233
+ * The new scene growing from a point (the centre unless `from` names one) without overshoot.
234
+ *
235
+ * @example
236
+ * ```ts
237
+ * import { grow } from '@datamoc/mw_games/two-d/render';
238
+ *
239
+ * console.log(grow().name); // 'grow'
240
+ * ```
241
+ */
242
+ export function grow(options = {}) {
243
+ return growing('grow', options.from, (progress) => progress);
244
+ }
245
+ /**
246
+ * Old and new pictures sliding together: the new one enters from the `direction` side while the old
247
+ * one leaves the other way.
248
+ *
249
+ * @example
250
+ * ```ts
251
+ * import { slide } from '@datamoc/mw_games/two-d/render';
252
+ *
253
+ * console.log(slide({ direction: 'left' }).name); // 'slide'
254
+ * ```
255
+ */
256
+ export function slide(options = {}) {
257
+ const direction = options.direction ?? 'left';
258
+ const dx = direction === 'left' ? -1 : direction === 'right' ? 1 : 0;
259
+ const dy = direction === 'up' ? -1 : direction === 'down' ? 1 : 0;
260
+ return {
261
+ name: 'slide',
262
+ start(context) {
263
+ const layer = new Container();
264
+ context.over.addChild(layer);
265
+ const sprite = snapshotSprite(context);
266
+ if (sprite)
267
+ layer.addChild(sprite);
268
+ const target = context.incoming;
269
+ return runtime(layer, (progress) => {
270
+ layer.position.set(dx * context.width * progress, dy * context.height * progress);
271
+ target.position.set(-dx * context.width * (1 - progress), -dy * context.height * (1 - progress));
272
+ }, () => target.position.set(0, 0));
273
+ },
274
+ };
275
+ }
276
+ /**
277
+ * A circle opening from a point (the centre unless `from` names one) that shows the new scene
278
+ * through it, the old picture around it.
279
+ *
280
+ * @example
281
+ * ```ts
282
+ * import { iris } from '@datamoc/mw_games/two-d/render';
283
+ *
284
+ * console.log(iris({ from: { x: 120, y: 80 } }).name); // 'iris'
285
+ * ```
286
+ */
287
+ export function iris(options = {}) {
288
+ return {
289
+ name: 'iris',
290
+ start(context) {
291
+ const layer = new Container();
292
+ context.under.addChild(layer);
293
+ const sprite = snapshotSprite(context);
294
+ if (sprite)
295
+ layer.addChild(sprite);
296
+ const origin = pointOr(options.from, context);
297
+ const reach = Math.hypot(Math.max(origin.x, context.width - origin.x), Math.max(origin.y, context.height - origin.y));
298
+ const mask = new Graphics();
299
+ context.incoming.addChild(mask);
300
+ context.incoming.mask = mask;
301
+ return runtime(layer, (progress) => {
302
+ mask.clear()
303
+ .circle(origin.x, origin.y, reach * progress)
304
+ .fill({ color: 0xffffff });
305
+ }, () => {
306
+ context.incoming.mask = null;
307
+ mask.destroy();
308
+ });
309
+ },
310
+ };
311
+ }
312
+ /**
313
+ * The old picture fading out over the new scene.
314
+ *
315
+ * @example
316
+ * ```ts
317
+ * import { dissolve } from '@datamoc/mw_games/two-d/render';
318
+ *
319
+ * console.log(dissolve().name); // 'dissolve'
320
+ * ```
321
+ */
322
+ export function dissolve() {
323
+ return {
324
+ name: 'dissolve',
325
+ start(context) {
326
+ const layer = new Container();
327
+ context.over.addChild(layer);
328
+ const sprite = snapshotSprite(context);
329
+ if (sprite)
330
+ layer.addChild(sprite);
331
+ return runtime(layer, (progress) => {
332
+ layer.alpha = 1 - progress;
333
+ });
334
+ },
335
+ };
336
+ }
337
+ /**
338
+ * What a window opening (or closing, run backwards) looks like at `progress`: its scale, opacity and
339
+ * how far it is still pushed down by a `slide`. Closing never overshoots.
340
+ *
341
+ * @example
342
+ * ```ts
343
+ * import { openAnimationFrame } from '@datamoc/mw_games/two-d/render';
344
+ *
345
+ * console.log(openAnimationFrame('pop', 0).scale); // 0
346
+ * console.log(openAnimationFrame('pop', 1).scale); // 1
347
+ * console.log(openAnimationFrame('slide', 0.5).offset > 0); // true: still sliding up
348
+ * ```
349
+ */
350
+ export function openAnimationFrame(kind, progress, closing = false) {
351
+ const p = clamp01(progress);
352
+ const eased = Easing.easeOutCubic(p);
353
+ if (kind === 'pop')
354
+ return { scale: closing ? eased : popScale(p), alpha: clamp01(p * 3), offset: 0 };
355
+ if (kind === 'grow')
356
+ return { scale: eased, alpha: clamp01(p * 3), offset: 0 };
357
+ if (kind === 'slide')
358
+ return { scale: 1, alpha: eased, offset: (1 - eased) * 48 };
359
+ return { scale: 1, alpha: eased, offset: 0 };
360
+ }
361
+ /**
362
+ * Plays one transition: owns the `under` and `over` layers, advances with `update(dt)` in real
363
+ * time and tells its `onDone` once. `Game` runs one of these around a scene change; it is exported so
364
+ * a game with its own compositing can run a transition the same way.
365
+ *
366
+ * @example
367
+ * ```ts
368
+ * import { Container2D as Container } from '@datamoc/mw_games/two-d/render';
369
+ * import { TransitionRunner, dissolve } from '@datamoc/mw_games/two-d/render';
370
+ *
371
+ * const incoming = new Container();
372
+ * const runner = new TransitionRunner({ transition: dissolve(), duration: 0.5 }, { width: 800, height: 600 }, null, incoming);
373
+ * // put runner.under, incoming and runner.over on the stage, in that order
374
+ * while (!runner.update(1 / 60)) continue;
375
+ * console.log(runner.done); // true
376
+ * ```
377
+ */
378
+ export class TransitionRunner {
379
+ constructor(options, size, snapshot, incoming) {
380
+ this.under = new Container();
381
+ this.over = new Container();
382
+ this.elapsed = 0;
383
+ this.finished = false;
384
+ this.snapshot = snapshot;
385
+ this.duration = Math.max(0.0001, options.duration ?? 0.5);
386
+ this.ease = resolveEasing(options.easing);
387
+ this.pause = options.pause ?? false;
388
+ this.onDone = options.onDone;
389
+ this.runtime = options.transition.start({
390
+ width: size.width,
391
+ height: size.height,
392
+ snapshot,
393
+ incoming,
394
+ under: this.under,
395
+ over: this.over,
396
+ });
397
+ this.runtime.update(0);
398
+ }
399
+ /** how far along it is, 0 to 1, before easing */
400
+ get progress() {
401
+ return this.finished ? 1 : Math.min(1, this.elapsed / this.duration);
402
+ }
403
+ get done() {
404
+ return this.finished;
405
+ }
406
+ /** @returns true on the frame it ends (and on every call after) */
407
+ update(dt) {
408
+ if (this.finished)
409
+ return true;
410
+ this.elapsed += dt;
411
+ if (this.elapsed >= this.duration) {
412
+ this.finish();
413
+ return true;
414
+ }
415
+ this.runtime.update(this.ease(this.progress));
416
+ return false;
417
+ }
418
+ /** jumps to the end: the transition's last frame is applied, its layers are emptied, `onDone` runs */
419
+ finish() {
420
+ if (this.finished)
421
+ return;
422
+ this.finished = true;
423
+ this.runtime.update(1);
424
+ this.runtime.destroy();
425
+ this.snapshot?.destroy(true);
426
+ this.under.destroy({ children: true });
427
+ this.over.destroy({ children: true });
428
+ this.onDone?.();
429
+ }
430
+ }
431
+ //# sourceMappingURL=SceneTransition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SceneTransition.js","sourceRoot":"","sources":["../../../src/two-d/render/SceneTransition.ts"],"names":[],"mappings":"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"}
@@ -76,4 +76,6 @@ export { loadTiledMap } from './TiledMap.ts';
76
76
  export type { TiledMapData, TiledTilesetData, TilesetSheet, LoadedTiledMap, TiledObject, TiledLayer, } from './TiledMap.ts';
77
77
  export { loadSvgSkeleton } from './SvgSkeleton.ts';
78
78
  export type { SvgBoneBinding, SvgSkeletonOptions, LoadedSvgSkeleton } from './SvgSkeleton.ts';
79
+ export { dissolve, grow, iris, openAnimationFrame, pop, popScale, resolveEasing, shrink, TransitionRunner, slide, tileDelays, tileProgress, tileShrink, } from './SceneTransition.ts';
80
+ export type { OpenAnimationKind, SceneTransition, TileOrder, TileShrinkOptions, TransitionContext, TransitionOptions, TransitionPoint, TransitionRuntime, } from './SceneTransition.ts';
79
81
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/two-d/render/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/two-d/render/index.ts"],"names":[],"mappings":"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"}
@@ -39,4 +39,5 @@ export { Node2D, Shape2D, Text2D, Sprite2D, TiledSprite, Gradient, createLayers
39
39
  export { paletteRangeMapping, recolorTexture, remapPixels, withTextureCanvas } from './PaletteRemap.js';
40
40
  export { loadTiledMap } from './TiledMap.js';
41
41
  export { loadSvgSkeleton } from './SvgSkeleton.js';
42
+ export { dissolve, grow, iris, openAnimationFrame, pop, popScale, resolveEasing, shrink, TransitionRunner, slide, tileDelays, tileProgress, tileShrink, } from './SceneTransition.js';
42
43
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/two-d/render/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/two-d/render/index.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,13 @@ export interface ButtonOptions {
25
25
  text?: string;
26
26
  /** drawn to one side of the text, or centred alone if `text` is omitted */
27
27
  icon?: Container2D;
28
+ /** drawn instead of `icon` while the button is selected (`setSelected`): a two-icon toggle */
29
+ iconSelected?: Container2D;
30
+ /**
31
+ * What a tooltip should say about this button, as text or a function asked each time (so it can
32
+ * name why the button is disabled). The button only holds it: a `TooltipHost` reads `tooltip`.
33
+ */
34
+ tooltip?: string | (() => string);
28
35
  /** Per-button chrome, independent of the window theme. Textures remain caller-owned. */
29
36
  skin?: ButtonSkin;
30
37
  /** Caption styling, also used when setText creates a caption later. */
@@ -47,6 +54,8 @@ export interface ButtonOptions {
47
54
  *
48
55
  * `icon` alone (no `text`) is the icon-only button a title screen commonly reaches for -
49
56
  * rankings, badges, settings - where a caption would only repeat what the icon already says.
57
+ * `setIcon` swaps the icon later, `iconSelected` gives a toggle its second icon, and `tooltip`
58
+ * carries the button's explanation for a `TooltipHost`.
50
59
  *
51
60
  * @example
52
61
  * ```ts
@@ -72,6 +81,9 @@ export declare class Button extends Container {
72
81
  private background;
73
82
  private labelText;
74
83
  private icon;
84
+ private iconSelected;
85
+ private iconPlain;
86
+ private tooltip_;
75
87
  private width_;
76
88
  private height_;
77
89
  private state;
@@ -87,6 +99,17 @@ export declare class Button extends Container {
87
99
  * for a fixed dialog; a title screen's responsive row of buttons is not) */
88
100
  resize(width: number, height: number): void;
89
101
  setText(text: string | undefined): void;
102
+ /**
103
+ * Replaces the icon (the old one is removed, not destroyed: icons are the caller's), keeping the
104
+ * layout. `null` removes it.
105
+ */
106
+ setIcon(icon: Container2D | null): void;
107
+ /** the icon a selected button shows instead, or `null` to use the one icon in both states */
108
+ setSelectedIcon(icon: Container2D | null): void;
109
+ private showIcon;
110
+ /** what a tooltip should say about this button right now, or `undefined` when it has none */
111
+ get tooltip(): string | undefined;
112
+ setTooltip(tooltip: string | (() => string) | undefined): void;
90
113
  get disabled(): boolean;
91
114
  setDisabled(disabled: boolean): void;
92
115
  get selected(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/Button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAa,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAEtD,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEnE,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;AAEpE,MAAM,WAAW,YAAY;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IAC1B,OAAO,EAAE,SAAS,CAAC;IACnB,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACnC,sDAAsD;IACtD,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,aAAa;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IAEf;uDACmD;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,2EAA2E;IAC3E,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB,wFAAwF;IACxF,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,uEAAuE;IACvE,KAAK,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACnC,sFAAsF;IACtF,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,0LAA0L;IAC1L,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,8HAA8H;IAC9H,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,MAAO,SAAQ,SAAS;IACpC,QAAQ,CAAC,OAAO,eAAsB;IACtC,QAAQ,CAAC,OAAO,eAAsB;IACtC,QAAQ,CAAC,SAAS,eAAsB;IAExC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAC1D,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,IAAI,CAAmB;IAE/B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAe;IAE7B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IAEnD,YAAY,OAAO,EAAE,aAAa,EAkDjC;IAED,wGAAwG;IACxG,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAM/B;;gFAE4E;IAC5E,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAI1C;IAED,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAWtC;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAGnC;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAInC;IAED,mFAAmF;IACnF,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAGpC;IAED,OAAO,CAAC,QAAQ;IAQhB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IA4BrB,OAAO,CAAC,IAAI;IAwCH,OAAO,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAGpE;CACD"}
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/Button.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,8 @@ import { theme, themeChanged } from './theme.js';
12
12
  *
13
13
  * `icon` alone (no `text`) is the icon-only button a title screen commonly reaches for -
14
14
  * rankings, badges, settings - where a caption would only repeat what the icon already says.
15
+ * `setIcon` swaps the icon later, `iconSelected` gives a toggle its second icon, and `tooltip`
16
+ * carries the button's explanation for a `TooltipHost`.
15
17
  *
16
18
  * @example
17
19
  * ```ts
@@ -47,6 +49,9 @@ export class Button extends Container {
47
49
  this.background = Button.createBackground(this.skin, t);
48
50
  this.addChild(this.background);
49
51
  this.icon = options.icon ?? null;
52
+ this.iconPlain = this.icon;
53
+ this.iconSelected = options.iconSelected ?? null;
54
+ this.tooltip_ = options.tooltip;
50
55
  if (this.icon)
51
56
  this.addChild(this.icon);
52
57
  this.labelText =
@@ -115,6 +120,36 @@ export class Button extends Container {
115
120
  }
116
121
  this.layoutContent();
117
122
  }
123
+ /**
124
+ * Replaces the icon (the old one is removed, not destroyed: icons are the caller's), keeping the
125
+ * layout. `null` removes it.
126
+ */
127
+ setIcon(icon) {
128
+ this.iconPlain = icon;
129
+ this.showIcon(this.selected_ && this.iconSelected ? this.iconSelected : icon);
130
+ }
131
+ /** the icon a selected button shows instead, or `null` to use the one icon in both states */
132
+ setSelectedIcon(icon) {
133
+ this.iconSelected = icon;
134
+ this.showIcon(this.selected_ && icon ? icon : this.iconPlain);
135
+ }
136
+ showIcon(icon) {
137
+ if (icon === this.icon)
138
+ return;
139
+ if (this.icon)
140
+ this.removeChild(this.icon);
141
+ this.icon = icon;
142
+ if (icon)
143
+ this.addChild(icon);
144
+ this.draw();
145
+ }
146
+ /** what a tooltip should say about this button right now, or `undefined` when it has none */
147
+ get tooltip() {
148
+ return typeof this.tooltip_ === 'function' ? this.tooltip_() : this.tooltip_;
149
+ }
150
+ setTooltip(tooltip) {
151
+ this.tooltip_ = tooltip;
152
+ }
118
153
  get disabled() {
119
154
  return this.disabled_;
120
155
  }
@@ -133,6 +168,8 @@ export class Button extends Container {
133
168
  if (this.selected_ === selected)
134
169
  return;
135
170
  this.selected_ = selected;
171
+ if (this.iconSelected)
172
+ this.showIcon(selected ? this.iconSelected : this.iconPlain);
136
173
  this.draw();
137
174
  }
138
175
  /** Replaces local palette overrides, for semantic tokens or component variants. */