@energy8platform/game-engine 0.2.0 → 0.3.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 (59) hide show
  1. package/README.md +318 -49
  2. package/dist/animation.cjs.js +191 -1
  3. package/dist/animation.cjs.js.map +1 -1
  4. package/dist/animation.d.ts +117 -1
  5. package/dist/animation.esm.js +192 -3
  6. package/dist/animation.esm.js.map +1 -1
  7. package/dist/audio.cjs.js +66 -16
  8. package/dist/audio.cjs.js.map +1 -1
  9. package/dist/audio.d.ts +4 -0
  10. package/dist/audio.esm.js +66 -16
  11. package/dist/audio.esm.js.map +1 -1
  12. package/dist/core.cjs.js +310 -84
  13. package/dist/core.cjs.js.map +1 -1
  14. package/dist/core.d.ts +60 -1
  15. package/dist/core.esm.js +311 -85
  16. package/dist/core.esm.js.map +1 -1
  17. package/dist/debug.cjs.js +36 -68
  18. package/dist/debug.cjs.js.map +1 -1
  19. package/dist/debug.d.ts +4 -6
  20. package/dist/debug.esm.js +36 -68
  21. package/dist/debug.esm.js.map +1 -1
  22. package/dist/index.cjs.js +1250 -251
  23. package/dist/index.cjs.js.map +1 -1
  24. package/dist/index.d.ts +386 -41
  25. package/dist/index.esm.js +1250 -254
  26. package/dist/index.esm.js.map +1 -1
  27. package/dist/ui.cjs.js +757 -1
  28. package/dist/ui.cjs.js.map +1 -1
  29. package/dist/ui.d.ts +208 -2
  30. package/dist/ui.esm.js +756 -2
  31. package/dist/ui.esm.js.map +1 -1
  32. package/dist/vite.cjs.js +65 -68
  33. package/dist/vite.cjs.js.map +1 -1
  34. package/dist/vite.d.ts +17 -23
  35. package/dist/vite.esm.js +66 -68
  36. package/dist/vite.esm.js.map +1 -1
  37. package/package.json +4 -5
  38. package/src/animation/SpriteAnimation.ts +210 -0
  39. package/src/animation/Tween.ts +27 -1
  40. package/src/animation/index.ts +2 -0
  41. package/src/audio/AudioManager.ts +64 -15
  42. package/src/core/EventEmitter.ts +7 -1
  43. package/src/core/GameApplication.ts +25 -7
  44. package/src/core/SceneManager.ts +3 -1
  45. package/src/debug/DevBridge.ts +49 -80
  46. package/src/index.ts +6 -0
  47. package/src/input/InputManager.ts +26 -0
  48. package/src/loading/CSSPreloader.ts +7 -33
  49. package/src/loading/LoadingScene.ts +17 -41
  50. package/src/loading/index.ts +1 -0
  51. package/src/loading/logo.ts +95 -0
  52. package/src/types.ts +4 -0
  53. package/src/ui/BalanceDisplay.ts +14 -0
  54. package/src/ui/Button.ts +1 -1
  55. package/src/ui/Layout.ts +364 -0
  56. package/src/ui/ScrollContainer.ts +557 -0
  57. package/src/ui/index.ts +4 -0
  58. package/src/viewport/ViewportManager.ts +2 -0
  59. package/src/vite/index.ts +83 -83
@@ -156,9 +156,20 @@ class Tween {
156
156
  }
157
157
  /**
158
158
  * Wait for a given duration (useful in timelines).
159
+ * Uses PixiJS Ticker for consistent timing with other tweens.
159
160
  */
160
161
  static delay(ms) {
161
- return new Promise((resolve) => setTimeout(resolve, ms));
162
+ return new Promise((resolve) => {
163
+ let elapsed = 0;
164
+ const onTick = (ticker) => {
165
+ elapsed += ticker.deltaMS;
166
+ if (elapsed >= ms) {
167
+ pixi_js.Ticker.shared.remove(onTick);
168
+ resolve();
169
+ }
170
+ };
171
+ pixi_js.Ticker.shared.add(onTick);
172
+ });
162
173
  }
163
174
  /**
164
175
  * Kill all tweens on a target.
@@ -185,6 +196,20 @@ class Tween {
185
196
  static get activeTweens() {
186
197
  return Tween._tweens.length;
187
198
  }
199
+ /**
200
+ * Reset the tween system — kill all tweens and remove the ticker.
201
+ * Useful for cleanup between game instances, tests, or hot-reload.
202
+ */
203
+ static reset() {
204
+ for (const tw of Tween._tweens) {
205
+ tw.resolve();
206
+ }
207
+ Tween._tweens.length = 0;
208
+ if (Tween._tickerAdded) {
209
+ pixi_js.Ticker.shared.remove(Tween.tick);
210
+ Tween._tickerAdded = false;
211
+ }
212
+ }
188
213
  // ─── Internal ──────────────────────────────────────────
189
214
  static ensureTicker() {
190
215
  if (Tween._tickerAdded)
@@ -498,8 +523,173 @@ class SpineHelper {
498
523
  }
499
524
  }
500
525
 
526
+ /**
527
+ * Helper for creating frame-based animations from spritesheets.
528
+ *
529
+ * Wraps PixiJS `AnimatedSprite` with a convenient API for
530
+ * common iGaming effects: coin showers, symbol animations,
531
+ * sparkle trails, win celebrations.
532
+ *
533
+ * Cheaper than Spine for simple frame sequences.
534
+ *
535
+ * @example
536
+ * ```ts
537
+ * // From an array of textures
538
+ * const coinAnim = SpriteAnimation.create(coinTextures, {
539
+ * fps: 30,
540
+ * loop: true,
541
+ * });
542
+ * scene.addChild(coinAnim);
543
+ *
544
+ * // From a spritesheet with a naming pattern
545
+ * const sheet = Assets.get('effects');
546
+ * const sparkle = SpriteAnimation.fromSpritesheet(sheet, 'sparkle_');
547
+ * sparkle.play();
548
+ *
549
+ * // From a numbered range
550
+ * const explosion = SpriteAnimation.fromRange(sheet, 'explosion_{i}', 0, 24, {
551
+ * fps: 60,
552
+ * loop: false,
553
+ * onComplete: () => explosion.destroy(),
554
+ * });
555
+ * ```
556
+ */
557
+ class SpriteAnimation {
558
+ /**
559
+ * Create an animated sprite from an array of textures.
560
+ *
561
+ * @param textures - Array of PixiJS Textures
562
+ * @param config - Animation options
563
+ * @returns Configured AnimatedSprite
564
+ */
565
+ static create(textures, config = {}) {
566
+ const sprite = new pixi_js.AnimatedSprite(textures);
567
+ // Configure
568
+ sprite.animationSpeed = (config.fps ?? 24) / 60; // PixiJS uses speed relative to 60fps ticker
569
+ sprite.loop = config.loop ?? true;
570
+ // Anchor
571
+ if (config.anchor !== undefined) {
572
+ if (typeof config.anchor === 'number') {
573
+ sprite.anchor.set(config.anchor);
574
+ }
575
+ else {
576
+ sprite.anchor.set(config.anchor.x, config.anchor.y);
577
+ }
578
+ }
579
+ else {
580
+ sprite.anchor.set(0.5);
581
+ }
582
+ // Complete callback
583
+ if (config.onComplete) {
584
+ sprite.onComplete = config.onComplete;
585
+ }
586
+ // Auto-play
587
+ if (config.autoPlay !== false) {
588
+ sprite.play();
589
+ }
590
+ return sprite;
591
+ }
592
+ /**
593
+ * Create an animated sprite from a spritesheet using a name prefix.
594
+ *
595
+ * Collects all textures whose keys start with `prefix`, sorted alphabetically.
596
+ *
597
+ * @param sheet - PixiJS Spritesheet instance
598
+ * @param prefix - Texture name prefix (e.g., 'coin_')
599
+ * @param config - Animation options
600
+ * @returns Configured AnimatedSprite
601
+ */
602
+ static fromSpritesheet(sheet, prefix, config = {}) {
603
+ const textures = SpriteAnimation.getTexturesByPrefix(sheet, prefix);
604
+ if (textures.length === 0) {
605
+ console.warn(`[SpriteAnimation] No textures found with prefix "${prefix}"`);
606
+ }
607
+ return SpriteAnimation.create(textures, config);
608
+ }
609
+ /**
610
+ * Create an animated sprite from a numbered range of frames.
611
+ *
612
+ * The `pattern` string should contain `{i}` as a placeholder for the frame number.
613
+ * Numbers are zero-padded to match the length of `start`.
614
+ *
615
+ * @param sheet - PixiJS Spritesheet instance
616
+ * @param pattern - Frame name pattern, e.g. 'explosion_{i}'
617
+ * @param start - Start frame index (inclusive)
618
+ * @param end - End frame index (inclusive)
619
+ * @param config - Animation options
620
+ * @returns Configured AnimatedSprite
621
+ */
622
+ static fromRange(sheet, pattern, start, end, config = {}) {
623
+ const textures = [];
624
+ const padLength = String(end).length;
625
+ for (let i = start; i <= end; i++) {
626
+ const name = pattern.replace('{i}', String(i).padStart(padLength, '0'));
627
+ const texture = sheet.textures[name];
628
+ if (texture) {
629
+ textures.push(texture);
630
+ }
631
+ else {
632
+ console.warn(`[SpriteAnimation] Missing frame: "${name}"`);
633
+ }
634
+ }
635
+ if (textures.length === 0) {
636
+ console.warn(`[SpriteAnimation] No textures found for pattern "${pattern}" [${start}..${end}]`);
637
+ }
638
+ return SpriteAnimation.create(textures, config);
639
+ }
640
+ /**
641
+ * Create an AnimatedSprite from texture aliases (loaded via AssetManager).
642
+ *
643
+ * @param aliases - Array of texture aliases
644
+ * @param config - Animation options
645
+ * @returns Configured AnimatedSprite
646
+ */
647
+ static fromAliases(aliases, config = {}) {
648
+ const textures = aliases.map((alias) => {
649
+ const tex = pixi_js.Texture.from(alias);
650
+ return tex;
651
+ });
652
+ return SpriteAnimation.create(textures, config);
653
+ }
654
+ /**
655
+ * Play a one-shot animation and auto-destroy when complete.
656
+ * Useful for fire-and-forget effects like coin bursts.
657
+ *
658
+ * @param textures - Array of textures
659
+ * @param config - Animation options (loop will be forced to false)
660
+ * @returns Promise that resolves when animation completes
661
+ */
662
+ static playOnce(textures, config = {}) {
663
+ const finished = new Promise((resolve) => {
664
+ config = {
665
+ ...config,
666
+ loop: false,
667
+ onComplete: () => {
668
+ config.onComplete?.();
669
+ sprite.destroy();
670
+ resolve();
671
+ },
672
+ };
673
+ });
674
+ const sprite = SpriteAnimation.create(textures, config);
675
+ return { sprite, finished };
676
+ }
677
+ // ─── Utility ───────────────────────────────────────────
678
+ /**
679
+ * Get all textures from a spritesheet that start with a given prefix.
680
+ * Results are sorted alphabetically by key.
681
+ */
682
+ static getTexturesByPrefix(sheet, prefix) {
683
+ const keys = Object.keys(sheet.textures)
684
+ .filter((k) => k.startsWith(prefix))
685
+ .sort();
686
+ return keys.map((k) => sheet.textures[k]);
687
+ }
688
+ }
689
+
501
690
  exports.Easing = Easing;
502
691
  exports.SpineHelper = SpineHelper;
692
+ exports.SpriteAnimation = SpriteAnimation;
503
693
  exports.Timeline = Timeline;
504
694
  exports.Tween = Tween;
505
695
  //# sourceMappingURL=animation.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"animation.cjs.js","sources":["../src/animation/Easing.ts","../src/animation/Tween.ts","../src/animation/Timeline.ts","../src/animation/SpineHelper.ts"],"sourcesContent":[null,null,null,null],"names":["Ticker"],"mappings":"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"}
1
+ {"version":3,"file":"animation.cjs.js","sources":["../src/animation/Easing.ts","../src/animation/Tween.ts","../src/animation/Timeline.ts","../src/animation/SpineHelper.ts","../src/animation/SpriteAnimation.ts"],"sourcesContent":[null,null,null,null,null],"names":["Ticker","AnimatedSprite","Texture"],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import { Texture, AnimatedSprite, Spritesheet } from 'pixi.js';
2
+
1
3
  type EasingFunction = (t: number) => number;
2
4
 
3
5
  /**
@@ -41,6 +43,7 @@ declare class Tween {
41
43
  static fromTo(target: any, fromProps: Record<string, number>, toProps: Record<string, number>, duration: number, easing?: EasingFunction, onUpdate?: (progress: number) => void): Promise<void>;
42
44
  /**
43
45
  * Wait for a given duration (useful in timelines).
46
+ * Uses PixiJS Ticker for consistent timing with other tweens.
44
47
  */
45
48
  static delay(ms: number): Promise<void>;
46
49
  /**
@@ -53,6 +56,11 @@ declare class Tween {
53
56
  static killAll(): void;
54
57
  /** Number of active tweens */
55
58
  static get activeTweens(): number;
59
+ /**
60
+ * Reset the tween system — kill all tweens and remove the ticker.
61
+ * Useful for cleanup between game instances, tests, or hot-reload.
62
+ */
63
+ static reset(): void;
56
64
  private static ensureTicker;
57
65
  private static tick;
58
66
  /**
@@ -232,4 +240,112 @@ declare class SpineHelper {
232
240
  static setSkin(spine: any, skinName: string): void;
233
241
  }
234
242
 
235
- export { Easing, SpineHelper, Timeline, Tween };
243
+ interface SpriteAnimationConfig {
244
+ /** Frames per second (default: 24) */
245
+ fps?: number;
246
+ /** Whether to loop (default: true) */
247
+ loop?: boolean;
248
+ /** Start playing immediately (default: true) */
249
+ autoPlay?: boolean;
250
+ /** Callback when animation completes (non-looping) */
251
+ onComplete?: () => void;
252
+ /** Anchor point (default: 0.5 = center) */
253
+ anchor?: number | {
254
+ x: number;
255
+ y: number;
256
+ };
257
+ }
258
+ /**
259
+ * Helper for creating frame-based animations from spritesheets.
260
+ *
261
+ * Wraps PixiJS `AnimatedSprite` with a convenient API for
262
+ * common iGaming effects: coin showers, symbol animations,
263
+ * sparkle trails, win celebrations.
264
+ *
265
+ * Cheaper than Spine for simple frame sequences.
266
+ *
267
+ * @example
268
+ * ```ts
269
+ * // From an array of textures
270
+ * const coinAnim = SpriteAnimation.create(coinTextures, {
271
+ * fps: 30,
272
+ * loop: true,
273
+ * });
274
+ * scene.addChild(coinAnim);
275
+ *
276
+ * // From a spritesheet with a naming pattern
277
+ * const sheet = Assets.get('effects');
278
+ * const sparkle = SpriteAnimation.fromSpritesheet(sheet, 'sparkle_');
279
+ * sparkle.play();
280
+ *
281
+ * // From a numbered range
282
+ * const explosion = SpriteAnimation.fromRange(sheet, 'explosion_{i}', 0, 24, {
283
+ * fps: 60,
284
+ * loop: false,
285
+ * onComplete: () => explosion.destroy(),
286
+ * });
287
+ * ```
288
+ */
289
+ declare class SpriteAnimation {
290
+ /**
291
+ * Create an animated sprite from an array of textures.
292
+ *
293
+ * @param textures - Array of PixiJS Textures
294
+ * @param config - Animation options
295
+ * @returns Configured AnimatedSprite
296
+ */
297
+ static create(textures: Texture[], config?: SpriteAnimationConfig): AnimatedSprite;
298
+ /**
299
+ * Create an animated sprite from a spritesheet using a name prefix.
300
+ *
301
+ * Collects all textures whose keys start with `prefix`, sorted alphabetically.
302
+ *
303
+ * @param sheet - PixiJS Spritesheet instance
304
+ * @param prefix - Texture name prefix (e.g., 'coin_')
305
+ * @param config - Animation options
306
+ * @returns Configured AnimatedSprite
307
+ */
308
+ static fromSpritesheet(sheet: Spritesheet, prefix: string, config?: SpriteAnimationConfig): AnimatedSprite;
309
+ /**
310
+ * Create an animated sprite from a numbered range of frames.
311
+ *
312
+ * The `pattern` string should contain `{i}` as a placeholder for the frame number.
313
+ * Numbers are zero-padded to match the length of `start`.
314
+ *
315
+ * @param sheet - PixiJS Spritesheet instance
316
+ * @param pattern - Frame name pattern, e.g. 'explosion_{i}'
317
+ * @param start - Start frame index (inclusive)
318
+ * @param end - End frame index (inclusive)
319
+ * @param config - Animation options
320
+ * @returns Configured AnimatedSprite
321
+ */
322
+ static fromRange(sheet: Spritesheet, pattern: string, start: number, end: number, config?: SpriteAnimationConfig): AnimatedSprite;
323
+ /**
324
+ * Create an AnimatedSprite from texture aliases (loaded via AssetManager).
325
+ *
326
+ * @param aliases - Array of texture aliases
327
+ * @param config - Animation options
328
+ * @returns Configured AnimatedSprite
329
+ */
330
+ static fromAliases(aliases: string[], config?: SpriteAnimationConfig): AnimatedSprite;
331
+ /**
332
+ * Play a one-shot animation and auto-destroy when complete.
333
+ * Useful for fire-and-forget effects like coin bursts.
334
+ *
335
+ * @param textures - Array of textures
336
+ * @param config - Animation options (loop will be forced to false)
337
+ * @returns Promise that resolves when animation completes
338
+ */
339
+ static playOnce(textures: Texture[], config?: SpriteAnimationConfig): {
340
+ sprite: AnimatedSprite;
341
+ finished: Promise<void>;
342
+ };
343
+ /**
344
+ * Get all textures from a spritesheet that start with a given prefix.
345
+ * Results are sorted alphabetically by key.
346
+ */
347
+ static getTexturesByPrefix(sheet: Spritesheet, prefix: string): Texture[];
348
+ }
349
+
350
+ export { Easing, SpineHelper, SpriteAnimation, Timeline, Tween };
351
+ export type { SpriteAnimationConfig };
@@ -1,4 +1,4 @@
1
- import { Ticker } from 'pixi.js';
1
+ import { Ticker, AnimatedSprite, Texture } from 'pixi.js';
2
2
 
3
3
  /**
4
4
  * Collection of easing functions for use with Tween and Timeline.
@@ -154,9 +154,20 @@ class Tween {
154
154
  }
155
155
  /**
156
156
  * Wait for a given duration (useful in timelines).
157
+ * Uses PixiJS Ticker for consistent timing with other tweens.
157
158
  */
158
159
  static delay(ms) {
159
- return new Promise((resolve) => setTimeout(resolve, ms));
160
+ return new Promise((resolve) => {
161
+ let elapsed = 0;
162
+ const onTick = (ticker) => {
163
+ elapsed += ticker.deltaMS;
164
+ if (elapsed >= ms) {
165
+ Ticker.shared.remove(onTick);
166
+ resolve();
167
+ }
168
+ };
169
+ Ticker.shared.add(onTick);
170
+ });
160
171
  }
161
172
  /**
162
173
  * Kill all tweens on a target.
@@ -183,6 +194,20 @@ class Tween {
183
194
  static get activeTweens() {
184
195
  return Tween._tweens.length;
185
196
  }
197
+ /**
198
+ * Reset the tween system — kill all tweens and remove the ticker.
199
+ * Useful for cleanup between game instances, tests, or hot-reload.
200
+ */
201
+ static reset() {
202
+ for (const tw of Tween._tweens) {
203
+ tw.resolve();
204
+ }
205
+ Tween._tweens.length = 0;
206
+ if (Tween._tickerAdded) {
207
+ Ticker.shared.remove(Tween.tick);
208
+ Tween._tickerAdded = false;
209
+ }
210
+ }
186
211
  // ─── Internal ──────────────────────────────────────────
187
212
  static ensureTicker() {
188
213
  if (Tween._tickerAdded)
@@ -496,5 +521,169 @@ class SpineHelper {
496
521
  }
497
522
  }
498
523
 
499
- export { Easing, SpineHelper, Timeline, Tween };
524
+ /**
525
+ * Helper for creating frame-based animations from spritesheets.
526
+ *
527
+ * Wraps PixiJS `AnimatedSprite` with a convenient API for
528
+ * common iGaming effects: coin showers, symbol animations,
529
+ * sparkle trails, win celebrations.
530
+ *
531
+ * Cheaper than Spine for simple frame sequences.
532
+ *
533
+ * @example
534
+ * ```ts
535
+ * // From an array of textures
536
+ * const coinAnim = SpriteAnimation.create(coinTextures, {
537
+ * fps: 30,
538
+ * loop: true,
539
+ * });
540
+ * scene.addChild(coinAnim);
541
+ *
542
+ * // From a spritesheet with a naming pattern
543
+ * const sheet = Assets.get('effects');
544
+ * const sparkle = SpriteAnimation.fromSpritesheet(sheet, 'sparkle_');
545
+ * sparkle.play();
546
+ *
547
+ * // From a numbered range
548
+ * const explosion = SpriteAnimation.fromRange(sheet, 'explosion_{i}', 0, 24, {
549
+ * fps: 60,
550
+ * loop: false,
551
+ * onComplete: () => explosion.destroy(),
552
+ * });
553
+ * ```
554
+ */
555
+ class SpriteAnimation {
556
+ /**
557
+ * Create an animated sprite from an array of textures.
558
+ *
559
+ * @param textures - Array of PixiJS Textures
560
+ * @param config - Animation options
561
+ * @returns Configured AnimatedSprite
562
+ */
563
+ static create(textures, config = {}) {
564
+ const sprite = new AnimatedSprite(textures);
565
+ // Configure
566
+ sprite.animationSpeed = (config.fps ?? 24) / 60; // PixiJS uses speed relative to 60fps ticker
567
+ sprite.loop = config.loop ?? true;
568
+ // Anchor
569
+ if (config.anchor !== undefined) {
570
+ if (typeof config.anchor === 'number') {
571
+ sprite.anchor.set(config.anchor);
572
+ }
573
+ else {
574
+ sprite.anchor.set(config.anchor.x, config.anchor.y);
575
+ }
576
+ }
577
+ else {
578
+ sprite.anchor.set(0.5);
579
+ }
580
+ // Complete callback
581
+ if (config.onComplete) {
582
+ sprite.onComplete = config.onComplete;
583
+ }
584
+ // Auto-play
585
+ if (config.autoPlay !== false) {
586
+ sprite.play();
587
+ }
588
+ return sprite;
589
+ }
590
+ /**
591
+ * Create an animated sprite from a spritesheet using a name prefix.
592
+ *
593
+ * Collects all textures whose keys start with `prefix`, sorted alphabetically.
594
+ *
595
+ * @param sheet - PixiJS Spritesheet instance
596
+ * @param prefix - Texture name prefix (e.g., 'coin_')
597
+ * @param config - Animation options
598
+ * @returns Configured AnimatedSprite
599
+ */
600
+ static fromSpritesheet(sheet, prefix, config = {}) {
601
+ const textures = SpriteAnimation.getTexturesByPrefix(sheet, prefix);
602
+ if (textures.length === 0) {
603
+ console.warn(`[SpriteAnimation] No textures found with prefix "${prefix}"`);
604
+ }
605
+ return SpriteAnimation.create(textures, config);
606
+ }
607
+ /**
608
+ * Create an animated sprite from a numbered range of frames.
609
+ *
610
+ * The `pattern` string should contain `{i}` as a placeholder for the frame number.
611
+ * Numbers are zero-padded to match the length of `start`.
612
+ *
613
+ * @param sheet - PixiJS Spritesheet instance
614
+ * @param pattern - Frame name pattern, e.g. 'explosion_{i}'
615
+ * @param start - Start frame index (inclusive)
616
+ * @param end - End frame index (inclusive)
617
+ * @param config - Animation options
618
+ * @returns Configured AnimatedSprite
619
+ */
620
+ static fromRange(sheet, pattern, start, end, config = {}) {
621
+ const textures = [];
622
+ const padLength = String(end).length;
623
+ for (let i = start; i <= end; i++) {
624
+ const name = pattern.replace('{i}', String(i).padStart(padLength, '0'));
625
+ const texture = sheet.textures[name];
626
+ if (texture) {
627
+ textures.push(texture);
628
+ }
629
+ else {
630
+ console.warn(`[SpriteAnimation] Missing frame: "${name}"`);
631
+ }
632
+ }
633
+ if (textures.length === 0) {
634
+ console.warn(`[SpriteAnimation] No textures found for pattern "${pattern}" [${start}..${end}]`);
635
+ }
636
+ return SpriteAnimation.create(textures, config);
637
+ }
638
+ /**
639
+ * Create an AnimatedSprite from texture aliases (loaded via AssetManager).
640
+ *
641
+ * @param aliases - Array of texture aliases
642
+ * @param config - Animation options
643
+ * @returns Configured AnimatedSprite
644
+ */
645
+ static fromAliases(aliases, config = {}) {
646
+ const textures = aliases.map((alias) => {
647
+ const tex = Texture.from(alias);
648
+ return tex;
649
+ });
650
+ return SpriteAnimation.create(textures, config);
651
+ }
652
+ /**
653
+ * Play a one-shot animation and auto-destroy when complete.
654
+ * Useful for fire-and-forget effects like coin bursts.
655
+ *
656
+ * @param textures - Array of textures
657
+ * @param config - Animation options (loop will be forced to false)
658
+ * @returns Promise that resolves when animation completes
659
+ */
660
+ static playOnce(textures, config = {}) {
661
+ const finished = new Promise((resolve) => {
662
+ config = {
663
+ ...config,
664
+ loop: false,
665
+ onComplete: () => {
666
+ config.onComplete?.();
667
+ sprite.destroy();
668
+ resolve();
669
+ },
670
+ };
671
+ });
672
+ const sprite = SpriteAnimation.create(textures, config);
673
+ return { sprite, finished };
674
+ }
675
+ // ─── Utility ───────────────────────────────────────────
676
+ /**
677
+ * Get all textures from a spritesheet that start with a given prefix.
678
+ * Results are sorted alphabetically by key.
679
+ */
680
+ static getTexturesByPrefix(sheet, prefix) {
681
+ const keys = Object.keys(sheet.textures)
682
+ .filter((k) => k.startsWith(prefix))
683
+ .sort();
684
+ return keys.map((k) => sheet.textures[k]);
685
+ }
686
+ }
687
+
688
+ export { Easing, SpineHelper, SpriteAnimation, Timeline, Tween };
500
689
  //# sourceMappingURL=animation.esm.js.map