@vpmedia/phaser 1.123.0 → 1.125.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/dist/index.js +635 -623
- package/dist/index.js.map +1 -1
- package/dist/phaser/core/animation.d.ts +3 -3
- package/dist/phaser/core/animation.d.ts.map +1 -1
- package/dist/phaser/core/animation_manager.d.ts.map +1 -1
- package/dist/phaser/core/animation_parser.d.ts +27 -2
- package/dist/phaser/core/animation_parser.d.ts.map +1 -1
- package/dist/phaser/core/array_set.d.ts +11 -11
- package/dist/phaser/core/array_set.d.ts.map +1 -1
- package/dist/phaser/core/cache.d.ts.map +1 -1
- package/dist/phaser/core/callback.d.ts.map +1 -1
- package/dist/phaser/core/dom.d.ts +125 -19
- package/dist/phaser/core/dom.d.ts.map +1 -1
- package/dist/phaser/core/factory.d.ts +3 -2
- package/dist/phaser/core/factory.d.ts.map +1 -1
- package/dist/phaser/core/frame_data.d.ts.map +1 -1
- package/dist/phaser/core/input.d.ts +3 -2
- package/dist/phaser/core/input.d.ts.map +1 -1
- package/dist/phaser/core/input_handler.d.ts.map +1 -1
- package/dist/phaser/core/input_mouse.d.ts +5 -1
- package/dist/phaser/core/input_mouse.d.ts.map +1 -1
- package/dist/phaser/core/input_pointer.d.ts +3 -3
- package/dist/phaser/core/input_pointer.d.ts.map +1 -1
- package/dist/phaser/core/input_touch.d.ts +8 -8
- package/dist/phaser/core/input_touch.d.ts.map +1 -1
- package/dist/phaser/core/loader.d.ts +11 -2
- package/dist/phaser/core/loader.d.ts.map +1 -1
- package/dist/phaser/core/loader_parser.d.ts +14 -1
- package/dist/phaser/core/loader_parser.d.ts.map +1 -1
- package/dist/phaser/core/raf.d.ts +1 -1
- package/dist/phaser/core/raf.d.ts.map +1 -1
- package/dist/phaser/core/scale_manager.d.ts.map +1 -1
- package/dist/phaser/core/scene_manager.d.ts.map +1 -1
- package/dist/phaser/core/signal.d.ts.map +1 -1
- package/dist/phaser/core/sound.d.ts.map +1 -1
- package/dist/phaser/core/sound_manager.d.ts +1 -1
- package/dist/phaser/core/sound_manager.d.ts.map +1 -1
- package/dist/phaser/core/stage.d.ts +16 -6
- package/dist/phaser/core/stage.d.ts.map +1 -1
- package/dist/phaser/core/time.d.ts.map +1 -1
- package/dist/phaser/core/timer.d.ts +1 -1
- package/dist/phaser/core/timer.d.ts.map +1 -1
- package/dist/phaser/core/tween.d.ts +13 -5
- package/dist/phaser/core/tween.d.ts.map +1 -1
- package/dist/phaser/core/tween_data.d.ts +9 -7
- package/dist/phaser/core/tween_data.d.ts.map +1 -1
- package/dist/phaser/core/tween_manager.d.ts.map +1 -1
- package/dist/phaser/display/button.d.ts +6 -5
- package/dist/phaser/display/button.d.ts.map +1 -1
- package/dist/phaser/display/canvas/buffer.d.ts +1 -1
- package/dist/phaser/display/canvas/buffer.d.ts.map +1 -1
- package/dist/phaser/display/canvas/masker.d.ts +1 -1
- package/dist/phaser/display/canvas/masker.d.ts.map +1 -1
- package/dist/phaser/display/canvas/pool.d.ts +2 -2
- package/dist/phaser/display/canvas/pool.d.ts.map +1 -1
- package/dist/phaser/display/canvas/renderer.d.ts +9 -8
- package/dist/phaser/display/canvas/renderer.d.ts.map +1 -1
- package/dist/phaser/display/display_object.d.ts +5 -3
- package/dist/phaser/display/display_object.d.ts.map +1 -1
- package/dist/phaser/display/graphics.d.ts +1 -1
- package/dist/phaser/display/graphics.d.ts.map +1 -1
- package/dist/phaser/display/group.d.ts +1 -1
- package/dist/phaser/display/group.d.ts.map +1 -1
- package/dist/phaser/display/image.d.ts +6 -5
- package/dist/phaser/display/image.d.ts.map +1 -1
- package/dist/phaser/display/sprite_util.d.ts +3 -2
- package/dist/phaser/display/sprite_util.d.ts.map +1 -1
- package/dist/phaser/display/text.d.ts +2 -16
- package/dist/phaser/display/text.d.ts.map +1 -1
- package/dist/phaser/display/webgl/abstract_filter.d.ts +14 -8
- package/dist/phaser/display/webgl/abstract_filter.d.ts.map +1 -1
- package/dist/phaser/display/webgl/blend_manager.d.ts +2 -3
- package/dist/phaser/display/webgl/blend_manager.d.ts.map +1 -1
- package/dist/phaser/display/webgl/earcut.d.ts.map +1 -1
- package/dist/phaser/display/webgl/fast_sprite_batch.d.ts +11 -5
- package/dist/phaser/display/webgl/fast_sprite_batch.d.ts.map +1 -1
- package/dist/phaser/display/webgl/filter_manager.d.ts +6 -4
- package/dist/phaser/display/webgl/filter_manager.d.ts.map +1 -1
- package/dist/phaser/display/webgl/filter_texture.d.ts +4 -4
- package/dist/phaser/display/webgl/filter_texture.d.ts.map +1 -1
- package/dist/phaser/display/webgl/graphics.d.ts +2 -2
- package/dist/phaser/display/webgl/graphics.d.ts.map +1 -1
- package/dist/phaser/display/webgl/mask_manager.d.ts +3 -2
- package/dist/phaser/display/webgl/mask_manager.d.ts.map +1 -1
- package/dist/phaser/display/webgl/render_texture.d.ts +11 -8
- package/dist/phaser/display/webgl/render_texture.d.ts.map +1 -1
- package/dist/phaser/display/webgl/renderer.d.ts +8 -4
- package/dist/phaser/display/webgl/renderer.d.ts.map +1 -1
- package/dist/phaser/display/webgl/shader/normal.d.ts +28 -3
- package/dist/phaser/display/webgl/shader/normal.d.ts.map +1 -1
- package/dist/phaser/display/webgl/sprite_batch.d.ts +6 -5
- package/dist/phaser/display/webgl/sprite_batch.d.ts.map +1 -1
- package/dist/phaser/display/webgl/stencil_manager.d.ts +3 -3
- package/dist/phaser/display/webgl/stencil_manager.d.ts.map +1 -1
- package/dist/phaser/display/webgl/texture.d.ts.map +1 -1
- package/dist/phaser/display/webgl/texture_util.d.ts +2 -2
- package/dist/phaser/display/webgl/texture_util.d.ts.map +1 -1
- package/dist/phaser/display/webgl/util.d.ts +1 -1
- package/dist/phaser/display/webgl/util.d.ts.map +1 -1
- package/dist/phaser/geom/circle.d.ts.map +1 -1
- package/dist/phaser/geom/line.d.ts +10 -1
- package/dist/phaser/geom/line.d.ts.map +1 -1
- package/dist/phaser/geom/rectangle.d.ts.map +1 -1
- package/dist/phaser/geom/util/circle.d.ts +2 -1
- package/dist/phaser/geom/util/circle.d.ts.map +1 -1
- package/dist/phaser/geom/util/point.d.ts +1 -1
- package/dist/phaser/geom/util/point.d.ts.map +1 -1
- package/dist/phaser/geom/util/rectangle.d.ts +1 -1
- package/dist/phaser/geom/util/rectangle.d.ts.map +1 -1
- package/dist/phaser/util/math.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/phaser/core/animation.ts +11 -11
- package/src/phaser/core/animation_manager.ts +12 -12
- package/src/phaser/core/animation_parser.ts +39 -37
- package/src/phaser/core/array_set.ts +28 -28
- package/src/phaser/core/cache.test.ts +33 -33
- package/src/phaser/core/cache.ts +7 -7
- package/src/phaser/core/callback.ts +1 -0
- package/src/phaser/core/callback_context.test.ts +8 -8
- package/src/phaser/core/device_util.ts +4 -4
- package/src/phaser/core/dom.ts +38 -24
- package/src/phaser/core/factory.ts +9 -2
- package/src/phaser/core/frame_data.test.ts +23 -23
- package/src/phaser/core/frame_data.ts +2 -5
- package/src/phaser/core/game.ts +12 -12
- package/src/phaser/core/input.ts +11 -10
- package/src/phaser/core/input_handler.test.ts +18 -18
- package/src/phaser/core/input_handler.ts +14 -14
- package/src/phaser/core/input_mouse.ts +13 -12
- package/src/phaser/core/input_pointer.test.ts +26 -26
- package/src/phaser/core/input_pointer.ts +4 -4
- package/src/phaser/core/input_touch.ts +8 -8
- package/src/phaser/core/loader.test.ts +26 -26
- package/src/phaser/core/loader.ts +63 -75
- package/src/phaser/core/loader_parser.test.ts +16 -16
- package/src/phaser/core/loader_parser.ts +16 -6
- package/src/phaser/core/raf.ts +1 -1
- package/src/phaser/core/registry.test.ts +6 -6
- package/src/phaser/core/scale_manager.ts +12 -11
- package/src/phaser/core/scene_manager.test.ts +30 -30
- package/src/phaser/core/scene_manager.ts +3 -3
- package/src/phaser/core/signal.test.ts +8 -8
- package/src/phaser/core/signal.ts +3 -3
- package/src/phaser/core/signal_dispatch.test.ts +30 -30
- package/src/phaser/core/sound.ts +45 -40
- package/src/phaser/core/sound_manager.ts +18 -22
- package/src/phaser/core/sound_sprite.ts +1 -1
- package/src/phaser/core/stage.ts +22 -12
- package/src/phaser/core/time.ts +1 -1
- package/src/phaser/core/timer.test.ts +47 -47
- package/src/phaser/core/timer.ts +2 -2
- package/src/phaser/core/tween.ts +34 -36
- package/src/phaser/core/tween_data.test.ts +119 -0
- package/src/phaser/core/tween_data.ts +54 -39
- package/src/phaser/core/tween_easing.test.ts +5 -5
- package/src/phaser/core/tween_manager.ts +2 -2
- package/src/phaser/display/bitmap_text.test.ts +30 -30
- package/src/phaser/display/bitmap_text.ts +3 -3
- package/src/phaser/display/button.ts +20 -18
- package/src/phaser/display/canvas/buffer.ts +2 -2
- package/src/phaser/display/canvas/graphics.ts +2 -2
- package/src/phaser/display/canvas/masker.ts +1 -1
- package/src/phaser/display/canvas/pool.test.ts +20 -20
- package/src/phaser/display/canvas/pool.ts +6 -6
- package/src/phaser/display/canvas/renderer.ts +18 -16
- package/src/phaser/display/canvas/tinter.ts +1 -1
- package/src/phaser/display/canvas/util.test.ts +25 -25
- package/src/phaser/display/canvas/util.ts +2 -2
- package/src/phaser/display/display_object.ts +16 -15
- package/src/phaser/display/graphics.test.ts +70 -20
- package/src/phaser/display/graphics.ts +46 -42
- package/src/phaser/display/group.ts +13 -12
- package/src/phaser/display/image.ts +35 -31
- package/src/phaser/display/sprite_util.ts +4 -3
- package/src/phaser/display/text.test.ts +28 -25
- package/src/phaser/display/text.ts +56 -62
- package/src/phaser/display/webgl/abstract_filter.ts +21 -11
- package/src/phaser/display/webgl/blend_manager.ts +4 -5
- package/src/phaser/display/webgl/earcut.test.ts +20 -20
- package/src/phaser/display/webgl/earcut.ts +46 -42
- package/src/phaser/display/webgl/fast_sprite_batch.ts +21 -16
- package/src/phaser/display/webgl/filter_manager.ts +7 -4
- package/src/phaser/display/webgl/filter_texture.ts +5 -5
- package/src/phaser/display/webgl/graphics.ts +3 -3
- package/src/phaser/display/webgl/mask_manager.ts +9 -14
- package/src/phaser/display/webgl/render_texture.ts +15 -14
- package/src/phaser/display/webgl/renderer.ts +10 -9
- package/src/phaser/display/webgl/shader/normal.ts +45 -35
- package/src/phaser/display/webgl/shader/shader.test.ts +24 -24
- package/src/phaser/display/webgl/shader_manager.test.ts +18 -18
- package/src/phaser/display/webgl/shader_manager.ts +1 -1
- package/src/phaser/display/webgl/sprite_batch.ts +10 -10
- package/src/phaser/display/webgl/stencil_manager.ts +4 -4
- package/src/phaser/display/webgl/texture.ts +2 -1
- package/src/phaser/display/webgl/texture_util.ts +2 -2
- package/src/phaser/display/webgl/util.ts +4 -4
- package/src/phaser/geom/circle.test.ts +38 -38
- package/src/phaser/geom/circle.ts +7 -7
- package/src/phaser/geom/ellipse.test.ts +12 -12
- package/src/phaser/geom/line.test.ts +15 -15
- package/src/phaser/geom/line.ts +5 -2
- package/src/phaser/geom/matrix.test.ts +31 -31
- package/src/phaser/geom/point.test.ts +31 -31
- package/src/phaser/geom/polygon.test.ts +27 -27
- package/src/phaser/geom/polygon.ts +2 -2
- package/src/phaser/geom/rectangle.test.ts +87 -87
- package/src/phaser/geom/rectangle.ts +12 -13
- package/src/phaser/geom/rounded_rectangle.test.ts +9 -9
- package/src/phaser/geom/util/circle.test.ts +5 -5
- package/src/phaser/geom/util/circle.ts +8 -11
- package/src/phaser/geom/util/ellipse.test.ts +2 -2
- package/src/phaser/geom/util/line.test.ts +2 -2
- package/src/phaser/geom/util/matrix.test.ts +4 -4
- package/src/phaser/geom/util/point.test.ts +2 -2
- package/src/phaser/geom/util/point.ts +6 -8
- package/src/phaser/geom/util/polygon.test.ts +2 -2
- package/src/phaser/geom/util/rectangle.test.ts +2 -2
- package/src/phaser/geom/util/rectangle.ts +1 -1
- package/src/phaser/geom/util/rounded_rectangle.test.ts +2 -2
- package/src/phaser/util/math.test.ts +41 -41
- package/src/phaser/util/math.ts +7 -5
|
@@ -20,74 +20,74 @@ const createGame = (isBooted = true): Game =>
|
|
|
20
20
|
const createManager = (pendingState: ConstructorParameters<typeof SceneManager>[1] = null): SceneManager =>
|
|
21
21
|
new SceneManager(createGame(), pendingState);
|
|
22
22
|
|
|
23
|
-
describe('SceneManager', () => {
|
|
24
|
-
describe('add', () => {
|
|
25
|
-
it('takes a plain hook object and links the game onto it', () => {
|
|
23
|
+
describe('SceneManager', (): void => {
|
|
24
|
+
describe('add', (): void => {
|
|
25
|
+
it('takes a plain hook object and links the game onto it', (): void => {
|
|
26
26
|
const manager = createManager();
|
|
27
27
|
const state: SceneState = { create: vi.fn<() => void>() };
|
|
28
28
|
expect(manager.add('menu', state)).toBe(state);
|
|
29
29
|
expect(state.game).toBeDefined();
|
|
30
30
|
});
|
|
31
31
|
|
|
32
|
-
it('builds a state from a constructor', () => {
|
|
32
|
+
it('builds a state from a constructor', (): void => {
|
|
33
33
|
const manager = createManager();
|
|
34
34
|
class Menu extends Scene {}
|
|
35
35
|
expect(manager.add('menu', Menu)).toBeInstanceOf(Menu);
|
|
36
36
|
});
|
|
37
37
|
|
|
38
|
-
it('takes a scene instance as-is', () => {
|
|
38
|
+
it('takes a scene instance as-is', (): void => {
|
|
39
39
|
const manager = createManager();
|
|
40
40
|
const scene = new Scene();
|
|
41
41
|
expect(manager.add('menu', scene)).toBe(scene);
|
|
42
42
|
});
|
|
43
43
|
|
|
44
|
-
it('queues the state when the game has not booted', () => {
|
|
44
|
+
it('queues the state when the game has not booted', (): void => {
|
|
45
45
|
const manager = new SceneManager(createGame(false), null);
|
|
46
46
|
manager.add('menu', { create: vi.fn<() => void>() }, true);
|
|
47
47
|
expect(manager._pendingState).toBe('menu');
|
|
48
48
|
});
|
|
49
49
|
|
|
50
|
-
it('starts the state right away once the game has booted', () => {
|
|
50
|
+
it('starts the state right away once the game has booted', (): void => {
|
|
51
51
|
const manager = createManager();
|
|
52
52
|
manager.add('menu', { create: vi.fn<() => void>() }, true);
|
|
53
53
|
expect(manager._pendingState).toBe('menu');
|
|
54
54
|
});
|
|
55
55
|
});
|
|
56
56
|
|
|
57
|
-
describe('boot', () => {
|
|
58
|
-
it('registers a state given as an object under the default key', () => {
|
|
57
|
+
describe('boot', (): void => {
|
|
58
|
+
it('registers a state given as an object under the default key', (): void => {
|
|
59
59
|
const manager = createManager({ create: vi.fn<() => void>() });
|
|
60
60
|
manager.boot();
|
|
61
61
|
expect(manager.states['default']).toBeDefined();
|
|
62
62
|
});
|
|
63
63
|
|
|
64
|
-
it('leaves a state given by key alone', () => {
|
|
64
|
+
it('leaves a state given by key alone', (): void => {
|
|
65
65
|
const manager = createManager('menu');
|
|
66
66
|
manager.boot();
|
|
67
67
|
expect(manager.states['default']).toBeUndefined();
|
|
68
68
|
});
|
|
69
69
|
});
|
|
70
70
|
|
|
71
|
-
describe('checkState', () => {
|
|
72
|
-
it('accepts a state carrying any of the lifecycle hooks', () => {
|
|
71
|
+
describe('checkState', (): void => {
|
|
72
|
+
it('accepts a state carrying any of the lifecycle hooks', (): void => {
|
|
73
73
|
const manager = createManager();
|
|
74
74
|
manager.add('menu', { update: vi.fn<() => void>() });
|
|
75
75
|
expect(manager.checkState('menu')).toBe(true);
|
|
76
76
|
});
|
|
77
77
|
|
|
78
|
-
it('rejects a state with no hooks at all', () => {
|
|
78
|
+
it('rejects a state with no hooks at all', (): void => {
|
|
79
79
|
const manager = createManager();
|
|
80
80
|
manager.add('menu', {});
|
|
81
81
|
expect(manager.checkState('menu')).toBe(false);
|
|
82
82
|
});
|
|
83
83
|
|
|
84
|
-
it('rejects a key it does not hold', () => {
|
|
84
|
+
it('rejects a key it does not hold', (): void => {
|
|
85
85
|
expect(createManager().checkState('nope')).toBe(false);
|
|
86
86
|
});
|
|
87
87
|
});
|
|
88
88
|
|
|
89
|
-
describe('setCurrentState', () => {
|
|
90
|
-
it('binds the hooks the state provides and leaves the rest null', () => {
|
|
89
|
+
describe('setCurrentState', (): void => {
|
|
90
|
+
it('binds the hooks the state provides and leaves the rest null', (): void => {
|
|
91
91
|
const manager = createManager();
|
|
92
92
|
const create = vi.fn<() => void>();
|
|
93
93
|
manager.add('menu', { create });
|
|
@@ -98,7 +98,7 @@ describe('SceneManager', () => {
|
|
|
98
98
|
expect(manager.onPreloadCallback).toBeNull();
|
|
99
99
|
});
|
|
100
100
|
|
|
101
|
-
it('falls back to a no-op for init and shutdown', () => {
|
|
101
|
+
it('falls back to a no-op for init and shutdown', (): void => {
|
|
102
102
|
const manager = createManager();
|
|
103
103
|
manager.add('menu', {});
|
|
104
104
|
manager.setCurrentState('menu');
|
|
@@ -106,7 +106,7 @@ describe('SceneManager', () => {
|
|
|
106
106
|
expect(manager.onShutDownCallback).toBe(manager.dummy);
|
|
107
107
|
});
|
|
108
108
|
|
|
109
|
-
it('calls init with the arguments start was given', () => {
|
|
109
|
+
it('calls init with the arguments start was given', (): void => {
|
|
110
110
|
const manager = createManager();
|
|
111
111
|
const init = vi.fn<() => void>();
|
|
112
112
|
manager.add('menu', { init, update: vi.fn<() => void>() });
|
|
@@ -115,7 +115,7 @@ describe('SceneManager', () => {
|
|
|
115
115
|
expect(init).toHaveBeenCalledWith('a', 1);
|
|
116
116
|
});
|
|
117
117
|
|
|
118
|
-
it('stamps the key onto the state', () => {
|
|
118
|
+
it('stamps the key onto the state', (): void => {
|
|
119
119
|
const manager = createManager();
|
|
120
120
|
const state: SceneState = { create: vi.fn<() => void>() };
|
|
121
121
|
manager.add('menu', state);
|
|
@@ -124,8 +124,8 @@ describe('SceneManager', () => {
|
|
|
124
124
|
});
|
|
125
125
|
});
|
|
126
126
|
|
|
127
|
-
describe('start', () => {
|
|
128
|
-
it('ignores a key with no lifecycle hooks', () => {
|
|
127
|
+
describe('start', (): void => {
|
|
128
|
+
it('ignores a key with no lifecycle hooks', (): void => {
|
|
129
129
|
const manager = createManager();
|
|
130
130
|
manager.add('menu', {});
|
|
131
131
|
manager.start('menu');
|
|
@@ -133,8 +133,8 @@ describe('SceneManager', () => {
|
|
|
133
133
|
});
|
|
134
134
|
});
|
|
135
135
|
|
|
136
|
-
describe('update', () => {
|
|
137
|
-
it('runs the update hook only once the scene has been created', () => {
|
|
136
|
+
describe('update', (): void => {
|
|
137
|
+
it('runs the update hook only once the scene has been created', (): void => {
|
|
138
138
|
const manager = createManager();
|
|
139
139
|
const update = vi.fn<() => void>();
|
|
140
140
|
manager.add('menu', { update });
|
|
@@ -146,7 +146,7 @@ describe('SceneManager', () => {
|
|
|
146
146
|
expect(update).toHaveBeenCalledTimes(1);
|
|
147
147
|
});
|
|
148
148
|
|
|
149
|
-
it('runs the create hook exactly once', () => {
|
|
149
|
+
it('runs the create hook exactly once', (): void => {
|
|
150
150
|
const manager = createManager();
|
|
151
151
|
const create = vi.fn<() => void>();
|
|
152
152
|
manager.add('menu', { create });
|
|
@@ -157,8 +157,8 @@ describe('SceneManager', () => {
|
|
|
157
157
|
});
|
|
158
158
|
});
|
|
159
159
|
|
|
160
|
-
describe('resize', () => {
|
|
161
|
-
it('passes the new size to the scene', () => {
|
|
160
|
+
describe('resize', (): void => {
|
|
161
|
+
it('passes the new size to the scene', (): void => {
|
|
162
162
|
const manager = createManager();
|
|
163
163
|
const resize = vi.fn<(width: number, height: number) => void>();
|
|
164
164
|
manager.add('menu', { resize });
|
|
@@ -168,8 +168,8 @@ describe('SceneManager', () => {
|
|
|
168
168
|
});
|
|
169
169
|
});
|
|
170
170
|
|
|
171
|
-
describe('remove', () => {
|
|
172
|
-
it('drops the state and unbinds its hooks when it is current', () => {
|
|
171
|
+
describe('remove', (): void => {
|
|
172
|
+
it('drops the state and unbinds its hooks when it is current', (): void => {
|
|
173
173
|
const manager = createManager();
|
|
174
174
|
manager.add('menu', { create: vi.fn<() => void>() });
|
|
175
175
|
manager.setCurrentState('menu');
|
|
@@ -179,8 +179,8 @@ describe('SceneManager', () => {
|
|
|
179
179
|
});
|
|
180
180
|
});
|
|
181
181
|
|
|
182
|
-
describe('destroy', () => {
|
|
183
|
-
it('empties the manager', () => {
|
|
182
|
+
describe('destroy', (): void => {
|
|
183
|
+
it('empties the manager', (): void => {
|
|
184
184
|
const manager = createManager();
|
|
185
185
|
manager.add('menu', { create: vi.fn<() => void>(), shutdown: vi.fn<() => void>() });
|
|
186
186
|
manager.setCurrentState('menu');
|
|
@@ -137,7 +137,7 @@ export class SceneManager {
|
|
|
137
137
|
this._pendingState = key;
|
|
138
138
|
this._clearWorld = clearWorld;
|
|
139
139
|
this._clearCache = clearCache;
|
|
140
|
-
if (args
|
|
140
|
+
if (args.length > 0) {
|
|
141
141
|
this._args = [...args];
|
|
142
142
|
}
|
|
143
143
|
}
|
|
@@ -153,7 +153,7 @@ export class SceneManager {
|
|
|
153
153
|
this._pendingState = this.current;
|
|
154
154
|
this._clearWorld = clearWorld;
|
|
155
155
|
this._clearCache = clearCache;
|
|
156
|
-
if (args
|
|
156
|
+
if (args.length > 0) {
|
|
157
157
|
this._args = [...args];
|
|
158
158
|
}
|
|
159
159
|
}
|
|
@@ -359,7 +359,7 @@ export class SceneManager {
|
|
|
359
359
|
* Get whether the scene has been created.
|
|
360
360
|
* @returns {boolean} True if the scene has been created, false otherwise.
|
|
361
361
|
*/
|
|
362
|
-
public get created() {
|
|
362
|
+
public get created(): boolean {
|
|
363
363
|
return this._created;
|
|
364
364
|
}
|
|
365
365
|
}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { expect, describe, it } from 'vitest';
|
|
2
2
|
import { Signal } from './signal.js';
|
|
3
3
|
|
|
4
|
-
describe('Signal', () => {
|
|
5
|
-
describe('core', () => {
|
|
6
|
-
it('adds, dispatches to and removes listeners', () => {
|
|
4
|
+
describe('Signal', (): void => {
|
|
5
|
+
describe('core', (): void => {
|
|
6
|
+
it('adds, dispatches to and removes listeners', (): void => {
|
|
7
7
|
const signal = new Signal();
|
|
8
|
-
const listener = (arg: number) => {
|
|
8
|
+
const listener = (arg: number): void => {
|
|
9
9
|
expect(arg).toBe(1);
|
|
10
10
|
};
|
|
11
|
-
const listenerOnce = (arg: number) => {
|
|
11
|
+
const listenerOnce = (arg: number): void => {
|
|
12
12
|
expect(arg).toBe(1);
|
|
13
13
|
};
|
|
14
14
|
signal.add(listener);
|
|
@@ -20,14 +20,14 @@ describe('Signal', () => {
|
|
|
20
20
|
signal.remove(listener);
|
|
21
21
|
expect(signal.has(listener)).toBe(false);
|
|
22
22
|
expect(signal.getNumListeners()).toBe(0);
|
|
23
|
-
expect(signal.has(() => null)).toBe(false);
|
|
23
|
+
expect(signal.has((): null => null)).toBe(false);
|
|
24
24
|
});
|
|
25
25
|
|
|
26
|
-
it('async', async () => {
|
|
26
|
+
it('async', async (): Promise<void> => {
|
|
27
27
|
const signal = new Signal();
|
|
28
28
|
const promise = signal.toPromise();
|
|
29
29
|
expect(signal.getNumListeners()).toBe(1);
|
|
30
|
-
setTimeout(() => {
|
|
30
|
+
setTimeout((): void => {
|
|
31
31
|
signal.dispatch(1);
|
|
32
32
|
}, 10);
|
|
33
33
|
const result = await promise;
|
|
@@ -185,7 +185,7 @@ export class Signal {
|
|
|
185
185
|
let n = this._bindings.length;
|
|
186
186
|
while (n) {
|
|
187
187
|
n -= 1;
|
|
188
|
-
if (context) {
|
|
188
|
+
if (context !== null) {
|
|
189
189
|
if (this._bindings[n]!.context === context) {
|
|
190
190
|
this._bindings[n]!._destroy();
|
|
191
191
|
this._bindings.splice(n, 1);
|
|
@@ -194,7 +194,7 @@ export class Signal {
|
|
|
194
194
|
this._bindings[n]!._destroy();
|
|
195
195
|
}
|
|
196
196
|
}
|
|
197
|
-
if (
|
|
197
|
+
if (context === null) {
|
|
198
198
|
this._bindings.length = 0;
|
|
199
199
|
}
|
|
200
200
|
}
|
|
@@ -275,7 +275,7 @@ export class Signal {
|
|
|
275
275
|
* Get a bound version of the dispatch function.
|
|
276
276
|
* @returns {Function} A function that will dispatch the signal with the correct context.
|
|
277
277
|
*/
|
|
278
|
-
public get boundDispatch() {
|
|
278
|
+
public get boundDispatch(): (...args: unknown[]) => void {
|
|
279
279
|
this._boundDispatch ??= (...rest: unknown[]): void => {
|
|
280
280
|
this.dispatch(...rest);
|
|
281
281
|
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { describe, expect, it, vi } from 'vitest';
|
|
2
2
|
import { Signal } from './signal.js';
|
|
3
3
|
|
|
4
|
-
describe('Signal binding management', () => {
|
|
5
|
-
describe('add', () => {
|
|
6
|
-
it('registers a listener and reports it', () => {
|
|
4
|
+
describe('Signal binding management', (): void => {
|
|
5
|
+
describe('add', (): void => {
|
|
6
|
+
it('registers a listener and reports it', (): void => {
|
|
7
7
|
const signal = new Signal();
|
|
8
8
|
const listener = vi.fn();
|
|
9
9
|
signal.add(listener);
|
|
@@ -11,7 +11,7 @@ describe('Signal binding management', () => {
|
|
|
11
11
|
expect(signal.has(listener)).toBe(true);
|
|
12
12
|
});
|
|
13
13
|
|
|
14
|
-
it('returns the existing binding when the same listener is added twice', () => {
|
|
14
|
+
it('returns the existing binding when the same listener is added twice', (): void => {
|
|
15
15
|
const signal = new Signal();
|
|
16
16
|
const listener = vi.fn();
|
|
17
17
|
const first = signal.add(listener);
|
|
@@ -20,7 +20,7 @@ describe('Signal binding management', () => {
|
|
|
20
20
|
expect(signal.getNumListeners()).toBe(1);
|
|
21
21
|
});
|
|
22
22
|
|
|
23
|
-
it('treats the same listener under a different context as a separate binding', () => {
|
|
23
|
+
it('treats the same listener under a different context as a separate binding', (): void => {
|
|
24
24
|
const signal = new Signal();
|
|
25
25
|
const listener = vi.fn();
|
|
26
26
|
signal.add(listener, { id: 1 });
|
|
@@ -28,7 +28,7 @@ describe('Signal binding management', () => {
|
|
|
28
28
|
expect(signal.getNumListeners()).toBe(2);
|
|
29
29
|
});
|
|
30
30
|
|
|
31
|
-
it('refuses to switch a listener between add and addOnce', () => {
|
|
31
|
+
it('refuses to switch a listener between add and addOnce', (): void => {
|
|
32
32
|
const signal = new Signal();
|
|
33
33
|
const listener = vi.fn();
|
|
34
34
|
signal.add(listener);
|
|
@@ -36,18 +36,18 @@ describe('Signal binding management', () => {
|
|
|
36
36
|
});
|
|
37
37
|
});
|
|
38
38
|
|
|
39
|
-
describe('dispatch', () => {
|
|
40
|
-
it('calls listeners in priority order, highest first', () => {
|
|
39
|
+
describe('dispatch', (): void => {
|
|
40
|
+
it('calls listeners in priority order, highest first', (): void => {
|
|
41
41
|
const signal = new Signal();
|
|
42
42
|
const order: string[] = [];
|
|
43
|
-
signal.add(() => order.push('low'), null, 0);
|
|
44
|
-
signal.add(() => order.push('high'), null, 10);
|
|
45
|
-
signal.add(() => order.push('mid'), null, 5);
|
|
43
|
+
signal.add((): number => order.push('low'), null, 0);
|
|
44
|
+
signal.add((): number => order.push('high'), null, 10);
|
|
45
|
+
signal.add((): number => order.push('mid'), null, 5);
|
|
46
46
|
signal.dispatch();
|
|
47
47
|
expect(order).toStrictEqual(['high', 'mid', 'low']);
|
|
48
48
|
});
|
|
49
49
|
|
|
50
|
-
it('forwards its arguments', () => {
|
|
50
|
+
it('forwards its arguments', (): void => {
|
|
51
51
|
const signal = new Signal();
|
|
52
52
|
const listener = vi.fn();
|
|
53
53
|
signal.add(listener);
|
|
@@ -55,7 +55,7 @@ describe('Signal binding management', () => {
|
|
|
55
55
|
expect(listener).toHaveBeenCalledWith(1, 'two');
|
|
56
56
|
});
|
|
57
57
|
|
|
58
|
-
it('removes an addOnce listener after it fires', () => {
|
|
58
|
+
it('removes an addOnce listener after it fires', (): void => {
|
|
59
59
|
const signal = new Signal();
|
|
60
60
|
const listener = vi.fn();
|
|
61
61
|
signal.addOnce(listener);
|
|
@@ -65,20 +65,20 @@ describe('Signal binding management', () => {
|
|
|
65
65
|
expect(signal.getNumListeners()).toBe(0);
|
|
66
66
|
});
|
|
67
67
|
|
|
68
|
-
it('stops propagating once a listener returns false', () => {
|
|
68
|
+
it('stops propagating once a listener returns false', (): void => {
|
|
69
69
|
const signal = new Signal();
|
|
70
70
|
const later = vi.fn();
|
|
71
|
-
signal.add(() => false, null, 10);
|
|
71
|
+
signal.add((): boolean => false, null, 10);
|
|
72
72
|
signal.add(later, null, 0);
|
|
73
73
|
signal.dispatch();
|
|
74
74
|
expect(later).not.toHaveBeenCalled();
|
|
75
75
|
});
|
|
76
76
|
|
|
77
|
-
it('stops propagating once halt is called', () => {
|
|
77
|
+
it('stops propagating once halt is called', (): void => {
|
|
78
78
|
const signal = new Signal();
|
|
79
79
|
const later = vi.fn();
|
|
80
80
|
signal.add(
|
|
81
|
-
() => {
|
|
81
|
+
(): void => {
|
|
82
82
|
signal.halt();
|
|
83
83
|
},
|
|
84
84
|
null,
|
|
@@ -89,25 +89,25 @@ describe('Signal binding management', () => {
|
|
|
89
89
|
expect(later).not.toHaveBeenCalled();
|
|
90
90
|
});
|
|
91
91
|
|
|
92
|
-
it('survives a listener that removes every listener mid-dispatch', () => {
|
|
92
|
+
it('survives a listener that removes every listener mid-dispatch', (): void => {
|
|
93
93
|
const signal = new Signal();
|
|
94
94
|
const later = vi.fn();
|
|
95
95
|
signal.add(
|
|
96
|
-
() => {
|
|
96
|
+
(): void => {
|
|
97
97
|
signal.removeAll();
|
|
98
98
|
},
|
|
99
99
|
null,
|
|
100
100
|
10
|
|
101
101
|
);
|
|
102
102
|
signal.add(later, null, 0);
|
|
103
|
-
expect(() => {
|
|
103
|
+
expect((): void => {
|
|
104
104
|
signal.dispatch();
|
|
105
105
|
}).not.toThrow();
|
|
106
106
|
});
|
|
107
107
|
});
|
|
108
108
|
|
|
109
|
-
describe('remove', () => {
|
|
110
|
-
it('drops the matching binding', () => {
|
|
109
|
+
describe('remove', (): void => {
|
|
110
|
+
it('drops the matching binding', (): void => {
|
|
111
111
|
const signal = new Signal();
|
|
112
112
|
const listener = vi.fn();
|
|
113
113
|
const other = vi.fn();
|
|
@@ -119,7 +119,7 @@ describe('Signal binding management', () => {
|
|
|
119
119
|
expect(signal.has(other)).toBe(true);
|
|
120
120
|
});
|
|
121
121
|
|
|
122
|
-
it('leaves the list alone for an unregistered listener', () => {
|
|
122
|
+
it('leaves the list alone for an unregistered listener', (): void => {
|
|
123
123
|
const signal = new Signal();
|
|
124
124
|
signal.add(vi.fn());
|
|
125
125
|
signal.remove(vi.fn());
|
|
@@ -127,8 +127,8 @@ describe('Signal binding management', () => {
|
|
|
127
127
|
});
|
|
128
128
|
});
|
|
129
129
|
|
|
130
|
-
describe('removeAll', () => {
|
|
131
|
-
it('clears every listener when given no context', () => {
|
|
130
|
+
describe('removeAll', (): void => {
|
|
131
|
+
it('clears every listener when given no context', (): void => {
|
|
132
132
|
const signal = new Signal();
|
|
133
133
|
signal.add(vi.fn(), { id: 1 });
|
|
134
134
|
signal.add(vi.fn(), { id: 2 });
|
|
@@ -136,7 +136,7 @@ describe('Signal binding management', () => {
|
|
|
136
136
|
expect(signal.getNumListeners()).toBe(0);
|
|
137
137
|
});
|
|
138
138
|
|
|
139
|
-
it('clears only the listeners bound to the given context', () => {
|
|
139
|
+
it('clears only the listeners bound to the given context', (): void => {
|
|
140
140
|
const signal = new Signal();
|
|
141
141
|
const context = { id: 1 };
|
|
142
142
|
signal.add(vi.fn(), context);
|
|
@@ -146,8 +146,8 @@ describe('Signal binding management', () => {
|
|
|
146
146
|
});
|
|
147
147
|
});
|
|
148
148
|
|
|
149
|
-
describe('memorize', () => {
|
|
150
|
-
it('replays the last dispatch to a listener added afterwards', () => {
|
|
149
|
+
describe('memorize', (): void => {
|
|
150
|
+
it('replays the last dispatch to a listener added afterwards', (): void => {
|
|
151
151
|
const signal = new Signal();
|
|
152
152
|
signal.memorize = true;
|
|
153
153
|
signal.add(vi.fn());
|
|
@@ -157,7 +157,7 @@ describe('Signal binding management', () => {
|
|
|
157
157
|
expect(listener).toHaveBeenCalledWith('remembered');
|
|
158
158
|
});
|
|
159
159
|
|
|
160
|
-
it('records nothing while the signal has never had a binding', () => {
|
|
160
|
+
it('records nothing while the signal has never had a binding', (): void => {
|
|
161
161
|
const signal = new Signal();
|
|
162
162
|
signal.memorize = true;
|
|
163
163
|
signal.dispatch('dropped');
|
|
@@ -166,7 +166,7 @@ describe('Signal binding management', () => {
|
|
|
166
166
|
expect(listener).not.toHaveBeenCalled();
|
|
167
167
|
});
|
|
168
168
|
|
|
169
|
-
it('stops replaying once forgotten', () => {
|
|
169
|
+
it('stops replaying once forgotten', (): void => {
|
|
170
170
|
const signal = new Signal();
|
|
171
171
|
signal.memorize = true;
|
|
172
172
|
signal.add(vi.fn());
|