@vpmedia/phaser 1.117.0 → 1.119.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 (48) hide show
  1. package/dist/index.js +163 -158
  2. package/dist/index.js.map +1 -1
  3. package/dist/phaser/core/animation_manager.d.ts +1 -1
  4. package/dist/phaser/core/animation_manager.d.ts.map +1 -1
  5. package/dist/phaser/core/cache.d.ts +70 -42
  6. package/dist/phaser/core/cache.d.ts.map +1 -1
  7. package/dist/phaser/core/game.d.ts +34 -8
  8. package/dist/phaser/core/game.d.ts.map +1 -1
  9. package/dist/phaser/core/input.d.ts +1 -1
  10. package/dist/phaser/core/input.d.ts.map +1 -1
  11. package/dist/phaser/core/input_mspointer.d.ts +8 -7
  12. package/dist/phaser/core/input_mspointer.d.ts.map +1 -1
  13. package/dist/phaser/core/loader.d.ts +30 -1
  14. package/dist/phaser/core/loader.d.ts.map +1 -1
  15. package/dist/phaser/core/loader_parser.d.ts +24 -4
  16. package/dist/phaser/core/loader_parser.d.ts.map +1 -1
  17. package/dist/phaser/core/scene.d.ts +3 -2
  18. package/dist/phaser/core/scene.d.ts.map +1 -1
  19. package/dist/phaser/core/scene_manager.d.ts +28 -17
  20. package/dist/phaser/core/scene_manager.d.ts.map +1 -1
  21. package/dist/phaser/core/sound.d.ts +13 -3
  22. package/dist/phaser/core/sound.d.ts.map +1 -1
  23. package/dist/phaser/core/tween.d.ts +3 -3
  24. package/dist/phaser/core/tween.d.ts.map +1 -1
  25. package/dist/phaser/core/tween_manager.d.ts +8 -6
  26. package/dist/phaser/core/tween_manager.d.ts.map +1 -1
  27. package/dist/phaser/display/bitmap_text.d.ts +13 -8
  28. package/dist/phaser/display/bitmap_text.d.ts.map +1 -1
  29. package/package.json +1 -1
  30. package/src/phaser/core/animation_manager.ts +1 -1
  31. package/src/phaser/core/cache.test.ts +201 -0
  32. package/src/phaser/core/cache.ts +126 -86
  33. package/src/phaser/core/game.ts +45 -22
  34. package/src/phaser/core/input.ts +1 -1
  35. package/src/phaser/core/input_mspointer.ts +10 -13
  36. package/src/phaser/core/loader.ts +82 -42
  37. package/src/phaser/core/loader_parser.test.ts +115 -0
  38. package/src/phaser/core/loader_parser.ts +64 -36
  39. package/src/phaser/core/scene.ts +4 -2
  40. package/src/phaser/core/scene_manager.test.ts +193 -0
  41. package/src/phaser/core/scene_manager.ts +51 -36
  42. package/src/phaser/core/sound.ts +29 -17
  43. package/src/phaser/core/sound_manager.ts +1 -1
  44. package/src/phaser/core/tween.ts +6 -6
  45. package/src/phaser/core/tween_manager.ts +42 -35
  46. package/src/phaser/display/bitmap_text.test.ts +212 -0
  47. package/src/phaser/display/bitmap_text.ts +39 -24
  48. package/src/phaser/display/webgl/renderer.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"loader_parser.d.ts","sourceRoot":"","sources":["../../../src/phaser/core/loader_parser.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAEpE;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,gBAAiB,WAAW,kBAAkB,GAAG,QAM/E,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,QAAS,GAAG,eAAe,WAAW,YAAY,MAAM,YAAY,MAAM,QA8BnG,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,QAAS,GAAG,eAAe,WAAW,YAAY,MAAM,YAAY,MAAM,QAC5C,CAAC;AAEtD;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,SAAU,GAAG,eAAe,WAAW,YAAY,MAAM,YAAY,MAAM,QAkCrG,CAAC"}
1
+ {"version":3,"file":"loader_parser.d.ts","sourceRoot":"","sources":["../../../src/phaser/core/loader_parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAEtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAEpE,sEAAsE;AACtE,MAAM,MAAM,cAAc,GAAG;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,oEAAoE;AACpE,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CACvC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,gBAAiB,WAAW,kBAAkB,cAAc,KAAG,cAK7F,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,QACnB,WAAW,eACH,WAAW,YACd,MAAM,YACN,MAAM,KACf,cA6BF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,QAChB,WAAW,eACH,WAAW,YACd,MAAM,YACN,MAAM,KACf,cAAqE,CAAC;AAEzE;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,SACnB,GAAG,eACI,WAAW,YACd,MAAM,YACN,MAAM,KACf,cA6BF,CAAC"}
@@ -1,6 +1,7 @@
1
+ import type { Game } from './game.js';
1
2
  export declare class Scene {
2
- game: any;
3
- key: any;
3
+ game: Game | null;
4
+ key: string;
4
5
  /**
5
6
  * Creates a new Scene instance.
6
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../../src/phaser/core/scene.ts"],"names":[],"mappings":"AAAA,qBAAa,KAAK;IACT,IAAI,EAAE,GAAG,CAAQ;IACjB,GAAG,EAAE,GAAG,CAAM;IACrB;;OAEG;IAEH;;;OAGG;IACI,IAAI,IAAI,IAAI,CAElB;IAED;;;OAGG;IACI,OAAO,IAAI,IAAI,CAErB;IAED;;;OAGG;IACI,MAAM,IAAI,IAAI,CAEpB;IAED;;;OAGG;IACI,MAAM,IAAI,IAAI,CAEpB;IAED;;;;OAIG;IACI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAEnD;IAED;;;OAGG;IACI,WAAW,IAAI,IAAI,CAEzB;IAED;;;OAGG;IACI,QAAQ,IAAI,IAAI,CAEtB;CACF"}
1
+ {"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../../src/phaser/core/scene.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,qBAAa,KAAK;IACT,IAAI,EAAE,IAAI,GAAG,IAAI,CAAQ;IACzB,GAAG,SAAM;IAChB;;OAEG;IAEH;;;OAGG;IACI,IAAI,IAAI,IAAI,CAElB;IAED;;;OAGG;IACI,OAAO,IAAI,IAAI,CAErB;IAED;;;OAGG;IACI,MAAM,IAAI,IAAI,CAEpB;IAED;;;OAGG;IACI,MAAM,IAAI,IAAI,CAEpB;IAED;;;;OAIG;IACI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAEnD;IAED;;;OAGG;IACI,WAAW,IAAI,IAAI,CAEzB;IAED;;;OAGG;IACI,QAAQ,IAAI,IAAI,CAEtB;CACF"}
@@ -6,33 +6,43 @@ export type SceneHooks = {
6
6
  preload?: () => void;
7
7
  create?: () => void;
8
8
  update?: () => void;
9
+ render?: () => void;
9
10
  resize?: (width: number, height: number) => void;
10
11
  pauseUpdate?: () => void;
11
12
  shutdown?: () => void;
12
13
  };
14
+ /** A scene once the manager holds it: its hooks plus the wiring the manager adds. */
15
+ export type SceneState = SceneHooks & {
16
+ game?: Game | null;
17
+ key?: string;
18
+ };
19
+ /** What the manager accepts as a scene: an instance, a plain hook object, or a class to build one. */
20
+ export type SceneDefinition = SceneState | (new (game: Game) => SceneState);
21
+ /** A hook invoked with the scene as its receiver and the game as its argument. */
22
+ type SceneCallback = (game: Game) => void;
13
23
  export declare class SceneManager {
14
24
  game: Game;
15
- states: any;
16
- _pendingState: any;
17
- _clearWorld: any;
18
- _clearCache: any;
19
- _created: any;
20
- _args: any;
25
+ states: Record<string, SceneState>;
26
+ _pendingState: SceneDefinition | string | null;
27
+ _clearWorld: boolean;
28
+ _clearCache: boolean;
29
+ _created: boolean;
30
+ _args: unknown[];
21
31
  current: string;
22
- onInitCallback: any;
23
- onPreloadCallback: any;
24
- onCreateCallback: any;
25
- onUpdateCallback: any;
26
- onResizeCallback: any;
27
- onPauseUpdateCallback: any;
28
- onShutDownCallback: any;
29
- callbackContext: SceneHooks;
32
+ onInitCallback: ((...args: unknown[]) => void) | null;
33
+ onPreloadCallback: SceneCallback | null;
34
+ onCreateCallback: SceneCallback | null;
35
+ onUpdateCallback: SceneCallback | null;
36
+ onResizeCallback: ((width: number, height: number) => void) | null;
37
+ onPauseUpdateCallback: SceneCallback | null;
38
+ onShutDownCallback: SceneCallback | null;
39
+ callbackContext: SceneState;
30
40
  /**
31
41
  * Creates a new SceneManager instance.
32
42
  * @param {Game} game - The game instance this manager belongs to.
33
43
  * @param {string} pendingState - The state to load when the game boots.
34
44
  */
35
- constructor(game: Game, pendingState: string);
45
+ constructor(game: Game, pendingState: SceneDefinition | string | null);
36
46
  /**
37
47
  * Initialize the scene manager.
38
48
  * This method is called when the game boots and sets up the initial state.
@@ -45,7 +55,7 @@ export declare class SceneManager {
45
55
  * @param {boolean} autoStart - Whether to start this state immediately.
46
56
  * @returns {Scene|object} The created scene or state object.
47
57
  */
48
- add(key: string, state: any, autoStart?: boolean): any;
58
+ add(key: string, state: SceneDefinition, autoStart?: boolean): SceneState;
49
59
  /**
50
60
  * Remove a scene state from the manager.
51
61
  * @param {string} key - The unique key for the state to remove.
@@ -138,6 +148,7 @@ export declare class SceneManager {
138
148
  * Get whether the scene has been created.
139
149
  * @returns {boolean} True if the scene has been created, false otherwise.
140
150
  */
141
- get created(): any;
151
+ get created(): boolean;
142
152
  }
153
+ export {};
143
154
  //# sourceMappingURL=scene_manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scene_manager.d.ts","sourceRoot":"","sources":["../../../src/phaser/core/scene_manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scene_manager.d.ts","sourceRoot":"","sources":["../../../src/phaser/core/scene_manager.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,23 @@
1
1
  import { Signal } from './signal.js';
2
2
  import type { Game } from './game.js';
3
3
  import type { Tween } from './tween.js';
4
+ /** A named span within a sound file. */
5
+ export type SoundMarker = {
6
+ name: string;
7
+ start: number;
8
+ stop: number;
9
+ volume: number;
10
+ duration: number;
11
+ durationMS: number;
12
+ loop: boolean;
13
+ };
4
14
  export declare class Sound {
5
- _paused: any;
15
+ _paused: boolean;
6
16
  game: Game;
7
17
  name: string;
8
18
  key: string;
9
19
  loop: boolean;
10
- markers: any;
20
+ markers: Record<string, SoundMarker>;
11
21
  context: AudioContext | null;
12
22
  autoplay: boolean;
13
23
  totalDuration: number;
@@ -100,7 +110,7 @@ export declare class Sound {
100
110
  * @param {boolean} forceRestart - Whether to force restarting the sound even if it's already playing.
101
111
  * @returns {Sound} This Sound instance for chaining.
102
112
  */
103
- play(marker?: any, position?: any, volume?: any, loop?: any, forceRestart?: boolean): this;
113
+ play(marker?: string | false | null, position?: number, volume?: number, loop?: boolean, forceRestart?: boolean): this;
104
114
  /**
105
115
  * Restarts the sound, optionally using a marker.
106
116
  * @param {string} marker - The name of the marker to play, or empty string to play the entire sound.
@@ -1 +1 @@
1
- {"version":3,"file":"sound.d.ts","sourceRoot":"","sources":["../../../src/phaser/core/sound.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sound.d.ts","sourceRoot":"","sources":["../../../src/phaser/core/sound.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
+ import type { TweenTarget } from './tween_manager.js';
1
2
  import { Signal } from './signal.js';
2
3
  import { TweenData } from './tween_data.js';
3
4
  import type { Game } from './game.js';
4
- import type { DisplayObject } from '../display/display_object.js';
5
5
  import type { TweenManager } from './tween_manager.js';
6
6
  export declare class Tween {
7
7
  game: Game;
8
- target: DisplayObject;
8
+ target: TweenTarget;
9
9
  manager: TweenManager;
10
10
  timeline: TweenData[];
11
11
  reverse: boolean;
@@ -33,7 +33,7 @@ export declare class Tween {
33
33
  * @param {Game} game - Reference to the Phaser Game instance.
34
34
  * @param {TweenManager} manager - Reference to the Tween Manager.
35
35
  */
36
- constructor(target: DisplayObject, game: Game, manager: TweenManager);
36
+ constructor(target: TweenTarget, game: Game, manager: TweenManager);
37
37
  /**
38
38
  * Adds a tween to the timeline that animates properties to their target values.
39
39
  * @param {object} properties - The properties to tween and their target values.
@@ -1 +1 @@
1
- {"version":3,"file":"tween.d.ts","sourceRoot":"","sources":["../../../src/phaser/core/tween.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,qBAAa,KAAK;IACT,IAAI,EAAG,IAAI,CAAC;IACZ,MAAM,EAAG,aAAa,CAAC;IACvB,OAAO,EAAG,YAAY,CAAC;IACvB,QAAQ,EAAG,SAAS,EAAE,CAAC;IACvB,OAAO,EAAG,OAAO,CAAC;IAClB,SAAS,EAAG,MAAM,CAAC;IACnB,aAAa,EAAG,MAAM,CAAC;IACvB,aAAa,EAAG,OAAO,CAAC;IACxB,OAAO,EAAG,MAAM,CAAC;IACjB,MAAM,EAAG,MAAM,CAAC;IAChB,QAAQ,EAAG,MAAM,CAAC;IAClB,eAAe,EAAG,MAAM,CAAC;IACzB,UAAU,EAAG,MAAM,CAAC;IACpB,SAAS,EAAG,OAAO,CAAC;IACpB,OAAO,EAAG,MAAM,CAAC;IACjB,UAAU,EAAG,GAAG,CAAC;IACjB,YAAY,EAAG,KAAK,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAG,OAAO,CAAC;IACnB,iBAAiB,EAAG,QAAQ,GAAG,IAAI,CAAC;IACpC,wBAAwB,EAAG,OAAO,CAAC;IACnC,WAAW,EAAG,MAAM,CAAC;IACrB,WAAW,EAAG,OAAO,CAAC;IACtB,WAAW,EAAG,OAAO,CAAC;IAC7B;;;;;OAKG;IACH,YAAmB,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAyC1E;IAED;;;;;;;;;;OAUG;IACI,EAAE,CACP,UAAU,EAAE,GAAG,EACf,QAAQ,SAAO,EACf,IAAI,GAAE,MAAM,GAAG,QAAmB,EAClC,SAAS,UAAQ,EACjB,KAAK,SAAI,EACT,MAAM,SAAI,EACV,IAAI,UAAQ,GACX,IAAI,CAYN;IAED;;;;;;;;;;OAUG;IACI,IAAI,CACT,UAAU,EAAE,GAAG,EACf,QAAQ,SAAO,EACf,IAAI,GAAE,MAAM,GAAG,QAAmB,EAClC,SAAS,UAAQ,EACjB,KAAK,SAAI,EACT,MAAM,SAAI,EACV,IAAI,UAAQ,GACX,IAAI,CAaN;IAED;;;;OAIG;IACI,KAAK,CAAC,KAAK,SAAI,GAAG,IAAI,CA4B5B;IAED;;;;OAIG;IACI,IAAI,CAAC,QAAQ,UAAQ,GAAG,IAAI,CAalC;IAED;;;;;;OAMG;IACI,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,SAAI,GAAG,IAAI,CAYpE;IAED;;;;;OAKG;IACI,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAElD;IAED;;;;;;OAMG;IACI,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,SAAI,EAAE,KAAK,SAAI,GAAG,IAAI,CAG7D;IAED;;;;;OAKG;IACI,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAExD;IAED;;;;;;OAMG;IACI,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,SAAI,EAAE,KAAK,SAAI,GAAG,IAAI,CAG3D;IAED;;;;;OAKG;IACI,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAEtD;IAED;;;;;OAKG;IACI,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAK1D;IAED;;;;;;OAMG;IACI,aAAa,CAAC,aAAa,EAAE,QAAQ,EAAE,OAAO,GAAE,OAAmB,EAAE,KAAK,SAAI,GAAG,IAAI,CAG3F;IAED;;;;OAIG;IACI,SAAS,CAAC,KAAK,SAAI,GAAG,IAAI,CAGhC;IAED;;;;OAIG;IACI,KAAK,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAWnC;IAED;;;;OAIG;IACI,IAAI,CAAC,KAAK,UAAO,GAAG,IAAI,CAG9B;IAED;;;;;OAKG;IACI,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,GAAG,IAAI,CAI1E;IAED;;OAEG;IACI,KAAK,IAAI,IAAI,CAInB;IAED;;OAEG;IACI,MAAM,IAAI,IAAI,CAKpB;IAED;;OAEG;IACI,MAAM,IAAI,IAAI,CAUpB;IAED;;OAEG;IACI,OAAO,IAAI,IAAI,CAIrB;IAED;;;;OAIG;IACI,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CA4EnC;IAED;;;;;OAKG;IACI,YAAY,CAAC,SAAS,SAAK,EAAE,IAAI,GAAE,GAAG,EAAO,gBAwBnD;IAED;;;OAGG;IACH,IAAW,aAAa,IAAI,MAAM,CAMjC;CACF"}
1
+ {"version":3,"file":"tween.d.ts","sourceRoot":"","sources":["../../../src/phaser/core/tween.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
1
  import type { Game } from './game.js';
2
2
  import { Tween } from './tween.js';
3
+ /** What a tween can be attached to: any object, or a list of them. */
4
+ export type TweenTarget = object | object[];
3
5
  export declare class TweenManager {
4
6
  game: Game;
5
- _tweens: any;
6
- _add: any;
7
- easeMap: any;
7
+ _tweens: Tween[];
8
+ _add: Tween[];
9
+ easeMap: Record<string, (k: number) => number>;
8
10
  /**
9
11
  * Creates a new TweenManager instance.
10
12
  * @param {Game} game - The game instance this manager belongs to.
@@ -14,7 +16,7 @@ export declare class TweenManager {
14
16
  * Get all tweens managed by this manager.
15
17
  * @returns {Tween[]} An array of all active tweens.
16
18
  */
17
- getAll(): any;
19
+ getAll(): Tween[];
18
20
  /**
19
21
  * Remove all tweens from the manager.
20
22
  * This method removes all active and pending tweens.
@@ -25,7 +27,7 @@ export declare class TweenManager {
25
27
  * @param {object} obj - The object to remove tweens from.
26
28
  * @param {object[]} children - Optional array of child objects to remove tweens from.
27
29
  */
28
- removeFrom(obj: any, children?: any[] | null): void;
30
+ removeFrom(obj: TweenTarget, children?: object[] | null): void;
29
31
  /**
30
32
  * Add a tween to the manager.
31
33
  * @param {Tween} tween - The tween to add.
@@ -36,7 +38,7 @@ export declare class TweenManager {
36
38
  * @param {object} object - The object to create a tween for.
37
39
  * @returns {Tween} The created Tween object.
38
40
  */
39
- create(object: any): Tween;
41
+ create(object: TweenTarget): Tween;
40
42
  /**
41
43
  * Remove a tween from the manager.
42
44
  * @param {Tween | null | undefined} tween - The tween to remove.
@@ -1 +1 @@
1
- {"version":3,"file":"tween_manager.d.ts","sourceRoot":"","sources":["../../../src/phaser/core/tween_manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAmCnC,qBAAa,YAAY;IAChB,IAAI,EAAG,IAAI,CAAC;IACZ,OAAO,EAAG,GAAG,CAAC;IACd,IAAI,EAAG,GAAG,CAAC;IACX,OAAO,EAAG,GAAG,CAAC;IACrB;;;OAGG;IACH,YAAmB,IAAI,EAAE,IAAI,EAqD5B;IAED;;;OAGG;IACI,MAAM,QAEZ;IAED;;;OAGG;IACI,SAAS,IAAI,IAAI,CAKvB;IAED;;;;OAIG;IACI,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,GAAE,GAAG,EAAE,GAAG,IAAW,GAAG,IAAI,CAuB/D;IAED;;;OAGG;IACI,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAG7B;IAED;;;;OAIG;IACI,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,KAAK,CAEhC;IAED;;;OAGG;IACI,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAUnD;IAED;;;OAGG;IACI,MAAM,IAAI,OAAO,CAqBvB;IAED;;;;OAIG;IACI,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAE1C;IAED;;;OAGG;IACI,SAAS,IAAI,IAAI,CAIvB;IAED;;;OAGG;IACI,UAAU,IAAI,IAAI,CAIxB;IAED;;;OAGG;IACI,QAAQ,IAAI,IAAI,CAItB;IAED;;;OAGG;IACI,SAAS,IAAI,IAAI,CAIvB;CACF"}
1
+ {"version":3,"file":"tween_manager.d.ts","sourceRoot":"","sources":["../../../src/phaser/core/tween_manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAmCnC,sEAAsE;AACtE,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;AAE5C,qBAAa,YAAY;IAChB,IAAI,EAAG,IAAI,CAAC;IACZ,OAAO,EAAG,KAAK,EAAE,CAAC;IAClB,IAAI,EAAG,KAAK,EAAE,CAAC;IACf,OAAO,EAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IACvD;;;OAGG;IACH,YAAmB,IAAI,EAAE,IAAI,EAqD5B;IAED;;;OAGG;IACI,MAAM,YAEZ;IAED;;;OAGG;IACI,SAAS,IAAI,IAAI,CAKvB;IAED;;;;OAIG;IACI,UAAU,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,GAAE,MAAM,EAAE,GAAG,IAAW,GAAG,IAAI,CAwB1E;IAED;;;OAGG;IACI,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAG7B;IAED;;;;OAIG;IACI,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,KAAK,CAExC;IAED;;;OAGG;IACI,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAanD;IAED;;;OAGG;IACI,MAAM,IAAI,OAAO,CAqBvB;IAED;;;;OAIG;IACI,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAE1C;IAED;;;OAGG;IACI,SAAS,IAAI,IAAI,CAIvB;IAED;;;OAGG;IACI,UAAU,IAAI,IAAI,CAIxB;IAED;;;OAGG;IACI,QAAQ,IAAI,IAAI,CAItB;IAED;;;OAGG;IACI,SAAS,IAAI,IAAI,CAIvB;CACF"}
@@ -1,7 +1,17 @@
1
1
  import { Point } from '../geom/point.js';
2
2
  import { DisplayObject } from './display_object.js';
3
3
  import { Image } from './image.js';
4
+ import type { BitmapFontCacheEntry } from '../core/cache.js';
4
5
  import type { Game } from '../core/game.js';
6
+ import type { BitmapFontData } from '../core/loader_parser.js';
7
+ /** One measured line of bitmap text: its width, its content and where each glyph starts. */
8
+ export type BitmapTextLine = {
9
+ width: number;
10
+ text: string;
11
+ end: boolean;
12
+ chars: number[];
13
+ y: number;
14
+ };
5
15
  export declare class BitmapText extends DisplayObject {
6
16
  type: number;
7
17
  pendingDestroy: boolean;
@@ -12,7 +22,7 @@ export declare class BitmapText extends DisplayObject {
12
22
  _glyphs: Image[];
13
23
  _maxWidth: number;
14
24
  _text: string;
15
- _data: any;
25
+ _data: BitmapFontCacheEntry | null;
16
26
  _font: string;
17
27
  _fontSize: number;
18
28
  _align: string;
@@ -49,12 +59,7 @@ export declare class BitmapText extends DisplayObject {
49
59
  * @param {string} text - The text to scan.
50
60
  * @returns {{width: number, text: string, end: boolean, chars: number[]}} An object containing the width, processed text, end status, and character positions.
51
61
  */
52
- scanLine(data: any, scale: number, text: string): {
53
- width: number;
54
- text: string;
55
- end: boolean;
56
- chars: number[];
57
- };
62
+ scanLine(data: BitmapFontData, scale: number, text: string): Omit<BitmapTextLine, 'y'>;
58
63
  /**
59
64
  * Cleans the provided text by removing invalid characters and replacing them with a specified character.
60
65
  * @param {string} text - The text to clean.
@@ -131,7 +136,7 @@ export declare class BitmapText extends DisplayObject {
131
136
  * Sets the font size of this bitmap text.
132
137
  * @param {number} value - The new font size to use.
133
138
  */
134
- set fontSize(value: any);
139
+ set fontSize(value: number | string);
135
140
  /**
136
141
  * Gets the text content of this bitmap text.
137
142
  * @returns {string} The current text content.
@@ -1 +1 @@
1
- {"version":3,"file":"bitmap_text.d.ts","sourceRoot":"","sources":["../../../src/phaser/display/bitmap_text.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bitmap_text.d.ts","sourceRoot":"","sources":["../../../src/phaser/display/bitmap_text.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vpmedia/phaser",
3
- "version": "1.117.0",
3
+ "version": "1.119.0",
4
4
  "description": "@vpmedia/phaser is the modern ECMAScript port of the popular Phaser game engine v2.6.2",
5
5
  "author": "Andras Csizmadia <andras@vpmedia.hu> (www.vpmedia.hu)",
6
6
  "license": "MIT",
@@ -53,7 +53,7 @@ export class AnimationManager {
53
53
  * @param {string|number} frame - The frame index or name to set as current.
54
54
  * @returns {boolean} True if the frame data was loaded successfully, false otherwise.
55
55
  */
56
- public loadFrameData(frameData: FrameData, frame: string | number): boolean {
56
+ public loadFrameData(frameData: FrameData | null, frame: string | number): boolean {
57
57
  if (!frameData) {
58
58
  return false;
59
59
  }
@@ -0,0 +1,201 @@
1
+ import { beforeEach, describe, expect, it } from 'vitest';
2
+ import { SCALE_LINEAR } from './const.js';
3
+ import { BITMAPFONT, Cache, IMAGE, SOUND } from './cache.js';
4
+ import { getRegistry } from './registry.js';
5
+ import type { Game } from './game.js';
6
+
7
+ const createGame = (): Game =>
8
+ ({
9
+ logger: { warn: (): void => undefined },
10
+ load: { baseURL: '' },
11
+ sound: { isLocked: false },
12
+ }) as unknown as Game;
13
+
14
+ const createImage = (width = 4, height = 4): HTMLImageElement => {
15
+ const img = new Image();
16
+ Object.defineProperty(img, 'width', { value: width });
17
+ Object.defineProperty(img, 'height', { value: height });
18
+ return img;
19
+ };
20
+
21
+ const FONT_XML = `<?xml version="1.0"?>
22
+ <font>
23
+ <info face="Arial" size="32" />
24
+ <common lineHeight="40" />
25
+ <chars>
26
+ <char id="65" x="0" y="0" width="20" height="30" xoffset="1" yoffset="2" xadvance="21" />
27
+ </chars>
28
+ </font>`;
29
+
30
+ describe('Cache', () => {
31
+ let cache: Cache;
32
+
33
+ beforeEach(() => {
34
+ getRegistry().TEXTURE_SCALE_MODE = SCALE_LINEAR;
35
+ cache = new Cache(createGame());
36
+ });
37
+
38
+ describe('images', () => {
39
+ it('seeds the default and missing images', () => {
40
+ expect(cache.checkImageKey('__default')).toBe(true);
41
+ expect(cache.checkImageKey('__missing')).toBe(true);
42
+ });
43
+
44
+ it('keeps the default image out of the reported keys', () => {
45
+ expect(cache.getKeys(IMAGE)).toStrictEqual([]);
46
+ });
47
+
48
+ it('returns the source bitmap by default and the whole entry when asked', () => {
49
+ const source = createImage();
50
+ cache.addImage('logo', 'logo.png', source);
51
+ expect(cache.getImage('logo')).toBe(source);
52
+ expect(cache.getImage('logo', true).key).toBe('logo');
53
+ });
54
+
55
+ it('falls back to the missing image for an unknown key', () => {
56
+ expect(cache.getImage('nope', true).key).toBe('__missing');
57
+ });
58
+
59
+ it('gives an image one frame covering the whole bitmap', () => {
60
+ cache.addImage('logo', 'logo.png', createImage(64, 32));
61
+ const frame = cache.getFrameByIndex('logo', 0);
62
+ expect(frame?.width).toBe(64);
63
+ expect(frame?.height).toBe(32);
64
+ expect(cache.getFrameCount('logo')).toBe(1);
65
+ });
66
+
67
+ it('reports no frames for a key it does not hold', () => {
68
+ expect(cache.getFrameData('nope')).toBeNull();
69
+ expect(cache.getFrameCount('nope')).toBe(0);
70
+ expect(cache.hasFrameData('nope')).toBe(false);
71
+ });
72
+
73
+ it('drops an image when it is removed', () => {
74
+ cache.addImage('logo', 'logo.png', createImage());
75
+ cache.removeImage('logo');
76
+ expect(cache.checkImageKey('logo')).toBe(false);
77
+ });
78
+
79
+ it('replaces an image registered twice under the same key', () => {
80
+ cache.addImage('logo', 'a.png', createImage(4, 4));
81
+ const second = createImage(8, 8);
82
+ cache.addImage('logo', 'b.png', second);
83
+ expect(cache.getImage('logo')).toBe(second);
84
+ });
85
+
86
+ it('clears the GL textures of every cached image', () => {
87
+ cache.addImage('logo', 'logo.png', createImage());
88
+ const entry = cache.getImage('logo', true);
89
+ entry.base._glTextures = [null];
90
+ cache.clearGLTextures();
91
+ expect(entry.base._glTextures).toStrictEqual([]);
92
+ });
93
+ });
94
+
95
+ describe('sounds', () => {
96
+ it('stores a sound as undecoded', () => {
97
+ cache.addSound('shot', 'shot.ogg', new ArrayBuffer(8));
98
+ expect(cache.isSoundDecoded('shot')).toBe(false);
99
+ expect(cache.isSoundReady('shot')).toBe(false);
100
+ });
101
+
102
+ it('reports an unknown sound as neither decoded nor ready', () => {
103
+ expect(cache.isSoundDecoded('nope')).toBeNull();
104
+ expect(cache.isSoundReady('nope')).toBe(false);
105
+ });
106
+
107
+ it('updates a single property of a cached sound', () => {
108
+ cache.addSound('shot', 'shot.ogg', new ArrayBuffer(8));
109
+ cache.updateSound('shot', 'isDecoding', true);
110
+ expect(cache.getSound('shot')?.isDecoding).toBe(true);
111
+ });
112
+
113
+ it('swaps in the decoded buffer and marks the sound ready', () => {
114
+ cache.addSound('shot', 'shot.ogg', new ArrayBuffer(8));
115
+ const buffer = { duration: 1.5 } as AudioBuffer;
116
+ cache.decodedSound('shot', buffer);
117
+ expect(cache.getSoundData('shot')).toBe(buffer);
118
+ expect(cache.isSoundDecoded('shot')).toBe(true);
119
+ expect(cache.isSoundReady('shot')).toBe(true);
120
+ });
121
+
122
+ it('ignores a decode result for a sound it never held', () => {
123
+ expect(() => {
124
+ cache.decodedSound('nope', {} as AudioBuffer);
125
+ }).not.toThrow();
126
+ });
127
+
128
+ it('drops a sound when it is removed', () => {
129
+ cache.addSound('shot', 'shot.ogg', new ArrayBuffer(8));
130
+ cache.removeSound('shot');
131
+ expect(cache.getSound('shot')).toBeNull();
132
+ });
133
+ });
134
+
135
+ describe('data', () => {
136
+ it('round-trips text', () => {
137
+ cache.addText('note', 'note.txt', 'hello');
138
+ expect(cache.getText('note')).toBe('hello');
139
+ cache.removeText('note');
140
+ expect(cache.getText('note')).toBeNull();
141
+ });
142
+
143
+ it('round-trips JSON', () => {
144
+ cache.addJSON('config', 'config.json', { a: 1 });
145
+ expect(cache.getJSON('config')).toStrictEqual({ a: 1 });
146
+ });
147
+
148
+ it('hands back a detached copy when a clone is asked for', () => {
149
+ const data = { a: 1 };
150
+ cache.addJSON('config', 'config.json', data);
151
+ const clone = cache.getJSON<{ a: number }>('config', true);
152
+ expect(clone).toStrictEqual(data);
153
+ expect(clone).not.toBe(data);
154
+ });
155
+
156
+ it('round-trips XML', () => {
157
+ const xml = new DOMParser().parseFromString('<root/>', 'text/xml');
158
+ cache.addXML('doc', 'doc.xml', xml);
159
+ expect(cache.getXML('doc')).toBe(xml);
160
+ });
161
+ });
162
+
163
+ describe('bitmap fonts', () => {
164
+ it('parses the descriptor and keeps it beside the atlas', () => {
165
+ const xml = new DOMParser().parseFromString(FONT_XML, 'text/xml');
166
+ cache.addBitmapFont('arial', 'arial.png', createImage(256, 256), xml, 'xml');
167
+ const entry = cache.getBitmapFont('arial');
168
+ expect(entry?.font.font).toBe('Arial');
169
+ expect(entry?.font.chars[65]?.xAdvance).toBe(21);
170
+ expect(entry?.base).toBeDefined();
171
+ });
172
+
173
+ it('reports a font it does not hold as absent', () => {
174
+ expect(cache.checkBitmapFontKey('nope')).toBe(false);
175
+ expect(cache.getBitmapFont('nope')).toBeNull();
176
+ });
177
+ });
178
+
179
+ describe('getItem', () => {
180
+ it('returns the whole entry when no property is named', () => {
181
+ cache.addText('note', 'note.txt', 'hello');
182
+ expect(cache.getItem('note', 4, 'test')).toStrictEqual({ url: 'note.txt', data: 'hello' });
183
+ });
184
+
185
+ it('returns null for a key the bucket does not hold', () => {
186
+ expect(cache.getItem('nope', SOUND, 'test')).toBeNull();
187
+ expect(cache.getItem('nope', BITMAPFONT, 'test', 'font')).toBeNull();
188
+ });
189
+ });
190
+
191
+ describe('destroy', () => {
192
+ it('empties every bucket but the built-in images', () => {
193
+ cache.addText('note', 'note.txt', 'hello');
194
+ cache.addSound('shot', 'shot.ogg', new ArrayBuffer(8));
195
+ cache.destroy();
196
+ expect(cache.getText('note')).toBeNull();
197
+ expect(cache.getSound('shot')).toBeNull();
198
+ expect(cache.checkImageKey('__default')).toBe(true);
199
+ });
200
+ });
201
+ });