@vpmedia/phaser 1.111.0 → 1.113.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 +1300 -1334
- package/dist/index.js.map +1 -1
- package/dist/phaser/core/animation.d.ts +14 -10
- package/dist/phaser/core/animation.d.ts.map +1 -1
- package/dist/phaser/core/animation_manager.d.ts +10 -8
- package/dist/phaser/core/animation_manager.d.ts.map +1 -1
- package/dist/phaser/core/animation_parser.d.ts +5 -4
- package/dist/phaser/core/animation_parser.d.ts.map +1 -1
- package/dist/phaser/core/array_set.d.ts.map +1 -1
- package/dist/phaser/core/cache.d.ts +4 -3
- package/dist/phaser/core/cache.d.ts.map +1 -1
- package/dist/phaser/core/const.d.ts.map +1 -1
- package/dist/phaser/core/device.d.ts.map +1 -1
- package/dist/phaser/core/device_util.d.ts.map +1 -1
- package/dist/phaser/core/dom.d.ts +3 -2
- package/dist/phaser/core/dom.d.ts.map +1 -1
- package/dist/phaser/core/event_manager.d.ts.map +1 -1
- package/dist/phaser/core/factory.d.ts +1 -1
- package/dist/phaser/core/factory.d.ts.map +1 -1
- package/dist/phaser/core/frame.d.ts.map +1 -1
- package/dist/phaser/core/frame_data.d.ts.map +1 -1
- package/dist/phaser/core/game.d.ts +1 -1
- package/dist/phaser/core/game.d.ts.map +1 -1
- package/dist/phaser/core/input.d.ts +8 -6
- package/dist/phaser/core/input.d.ts.map +1 -1
- package/dist/phaser/core/input_handler.d.ts +40 -30
- package/dist/phaser/core/input_handler.d.ts.map +1 -1
- package/dist/phaser/core/input_mouse.d.ts +3 -2
- package/dist/phaser/core/input_mouse.d.ts.map +1 -1
- package/dist/phaser/core/input_mspointer.d.ts +3 -2
- package/dist/phaser/core/input_mspointer.d.ts.map +1 -1
- package/dist/phaser/core/input_pointer.d.ts +6 -4
- package/dist/phaser/core/input_pointer.d.ts.map +1 -1
- package/dist/phaser/core/input_touch.d.ts +3 -2
- package/dist/phaser/core/input_touch.d.ts.map +1 -1
- package/dist/phaser/core/loader.d.ts +4 -3
- package/dist/phaser/core/loader.d.ts.map +1 -1
- package/dist/phaser/core/loader_parser.d.ts +9 -8
- package/dist/phaser/core/loader_parser.d.ts.map +1 -1
- package/dist/phaser/core/raf.d.ts +3 -2
- package/dist/phaser/core/raf.d.ts.map +1 -1
- package/dist/phaser/core/registry.d.ts +7 -0
- package/dist/phaser/core/registry.d.ts.map +1 -0
- package/dist/phaser/core/scale_manager.d.ts +1 -1
- package/dist/phaser/core/scale_manager.d.ts.map +1 -1
- package/dist/phaser/core/scene.d.ts +0 -1
- package/dist/phaser/core/scene.d.ts.map +1 -1
- package/dist/phaser/core/scene_manager.d.ts +1 -1
- package/dist/phaser/core/scene_manager.d.ts.map +1 -1
- package/dist/phaser/core/signal.d.ts +0 -1
- package/dist/phaser/core/signal.d.ts.map +1 -1
- package/dist/phaser/core/signal_binding.d.ts +4 -3
- package/dist/phaser/core/signal_binding.d.ts.map +1 -1
- package/dist/phaser/core/sound.d.ts +6 -4
- package/dist/phaser/core/sound.d.ts.map +1 -1
- package/dist/phaser/core/sound_manager.d.ts +3 -2
- package/dist/phaser/core/sound_manager.d.ts.map +1 -1
- package/dist/phaser/core/sound_sprite.d.ts +5 -4
- package/dist/phaser/core/sound_sprite.d.ts.map +1 -1
- package/dist/phaser/core/stage.d.ts +3 -2
- package/dist/phaser/core/stage.d.ts.map +1 -1
- package/dist/phaser/core/time.d.ts +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/timer_event.d.ts.map +1 -1
- package/dist/phaser/core/tween.d.ts +10 -7
- package/dist/phaser/core/tween.d.ts.map +1 -1
- package/dist/phaser/core/tween_data.d.ts +3 -2
- package/dist/phaser/core/tween_data.d.ts.map +1 -1
- package/dist/phaser/core/tween_easing.d.ts.map +1 -1
- package/dist/phaser/core/tween_manager.d.ts +3 -2
- package/dist/phaser/core/tween_manager.d.ts.map +1 -1
- package/dist/phaser/core/world.d.ts +3 -2
- package/dist/phaser/core/world.d.ts.map +1 -1
- package/dist/phaser/display/bitmap_text.d.ts +3 -2
- package/dist/phaser/display/bitmap_text.d.ts.map +1 -1
- package/dist/phaser/display/button.d.ts +3 -2
- package/dist/phaser/display/button.d.ts.map +1 -1
- package/dist/phaser/display/canvas/buffer.d.ts.map +1 -1
- package/dist/phaser/display/canvas/graphics.d.ts +7 -6
- package/dist/phaser/display/canvas/graphics.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 +10 -8
- package/dist/phaser/display/canvas/renderer.d.ts.map +1 -1
- package/dist/phaser/display/canvas/tinter.d.ts +3 -2
- package/dist/phaser/display/canvas/tinter.d.ts.map +1 -1
- package/dist/phaser/display/canvas/util.d.ts +2 -2
- package/dist/phaser/display/canvas/util.d.ts.map +1 -1
- package/dist/phaser/display/display_object.d.ts +14 -12
- package/dist/phaser/display/display_object.d.ts.map +1 -1
- package/dist/phaser/display/graphics.d.ts +8 -5
- package/dist/phaser/display/graphics.d.ts.map +1 -1
- package/dist/phaser/display/graphics_data.d.ts.map +1 -1
- package/dist/phaser/display/graphics_data_util.d.ts.map +1 -1
- package/dist/phaser/display/group.d.ts +4 -3
- package/dist/phaser/display/group.d.ts.map +1 -1
- package/dist/phaser/display/image.d.ts +13 -10
- package/dist/phaser/display/image.d.ts.map +1 -1
- package/dist/phaser/display/sprite_batch.d.ts +3 -2
- package/dist/phaser/display/sprite_batch.d.ts.map +1 -1
- package/dist/phaser/display/sprite_util.d.ts +18 -15
- package/dist/phaser/display/sprite_util.d.ts.map +1 -1
- package/dist/phaser/display/text.d.ts +11 -9
- package/dist/phaser/display/text.d.ts.map +1 -1
- package/dist/phaser/display/webgl/abstract_filter.d.ts.map +1 -1
- package/dist/phaser/display/webgl/base_texture.d.ts.map +1 -1
- package/dist/phaser/display/webgl/blend_manager.d.ts +0 -1
- package/dist/phaser/display/webgl/blend_manager.d.ts.map +1 -1
- package/dist/phaser/display/webgl/earcut.d.ts +1 -1
- package/dist/phaser/display/webgl/earcut.d.ts.map +1 -1
- package/dist/phaser/display/webgl/earcut_node.d.ts.map +1 -1
- package/dist/phaser/display/webgl/fast_sprite_batch.d.ts +4 -3
- package/dist/phaser/display/webgl/fast_sprite_batch.d.ts.map +1 -1
- package/dist/phaser/display/webgl/filter_manager.d.ts +2 -1
- package/dist/phaser/display/webgl/filter_manager.d.ts.map +1 -1
- package/dist/phaser/display/webgl/filter_texture.d.ts +2 -1
- package/dist/phaser/display/webgl/filter_texture.d.ts.map +1 -1
- package/dist/phaser/display/webgl/graphics.d.ts +7 -6
- package/dist/phaser/display/webgl/graphics.d.ts.map +1 -1
- package/dist/phaser/display/webgl/graphics_data.d.ts +2 -1
- package/dist/phaser/display/webgl/graphics_data.d.ts.map +1 -1
- package/dist/phaser/display/webgl/render_texture.d.ts +4 -2
- package/dist/phaser/display/webgl/render_texture.d.ts.map +1 -1
- package/dist/phaser/display/webgl/renderer.d.ts +16 -11
- package/dist/phaser/display/webgl/renderer.d.ts.map +1 -1
- package/dist/phaser/display/webgl/shader/complex.d.ts +16 -6
- package/dist/phaser/display/webgl/shader/complex.d.ts.map +1 -1
- package/dist/phaser/display/webgl/shader/fast.d.ts +19 -7
- package/dist/phaser/display/webgl/shader/fast.d.ts.map +1 -1
- package/dist/phaser/display/webgl/shader/normal.d.ts +33 -12
- package/dist/phaser/display/webgl/shader/normal.d.ts.map +1 -1
- package/dist/phaser/display/webgl/shader/primitive.d.ts +15 -6
- package/dist/phaser/display/webgl/shader/primitive.d.ts.map +1 -1
- package/dist/phaser/display/webgl/shader/strip.d.ts +15 -6
- package/dist/phaser/display/webgl/shader/strip.d.ts.map +1 -1
- package/dist/phaser/display/webgl/shader_manager.d.ts +16 -11
- package/dist/phaser/display/webgl/shader_manager.d.ts.map +1 -1
- package/dist/phaser/display/webgl/sprite_batch.d.ts +29 -20
- package/dist/phaser/display/webgl/sprite_batch.d.ts.map +1 -1
- package/dist/phaser/display/webgl/stencil_manager.d.ts +12 -10
- package/dist/phaser/display/webgl/stencil_manager.d.ts.map +1 -1
- package/dist/phaser/display/webgl/texture.d.ts +3 -2
- package/dist/phaser/display/webgl/texture.d.ts.map +1 -1
- package/dist/phaser/display/webgl/texture_util.d.ts.map +1 -1
- package/dist/phaser/display/webgl/util.d.ts.map +1 -1
- package/dist/phaser/geom/circle.d.ts +4 -1
- package/dist/phaser/geom/circle.d.ts.map +1 -1
- package/dist/phaser/geom/ellipse.d.ts.map +1 -1
- package/dist/phaser/geom/line.d.ts +1 -1
- package/dist/phaser/geom/line.d.ts.map +1 -1
- package/dist/phaser/geom/matrix.d.ts.map +1 -1
- package/dist/phaser/geom/point.d.ts.map +1 -1
- package/dist/phaser/geom/polygon.d.ts.map +1 -1
- package/dist/phaser/geom/rectangle.d.ts.map +1 -1
- package/dist/phaser/geom/rounded_rectangle.d.ts.map +1 -1
- package/dist/phaser/geom/util/circle.d.ts.map +1 -1
- package/dist/phaser/geom/util/ellipse.d.ts +3 -2
- package/dist/phaser/geom/util/ellipse.d.ts.map +1 -1
- package/dist/phaser/geom/util/line.d.ts.map +1 -1
- package/dist/phaser/geom/util/matrix.d.ts +2 -2
- package/dist/phaser/geom/util/matrix.d.ts.map +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 +5 -4
- package/src/phaser/core/animation.ts +64 -60
- package/src/phaser/core/animation_manager.ts +54 -55
- package/src/phaser/core/animation_parser.ts +9 -9
- package/src/phaser/core/array_set.ts +16 -17
- package/src/phaser/core/cache.ts +92 -93
- package/src/phaser/core/const.ts +1 -1
- package/src/phaser/core/device.ts +24 -29
- package/src/phaser/core/device_util.ts +28 -32
- package/src/phaser/core/dom.ts +54 -65
- package/src/phaser/core/event_manager.ts +64 -94
- package/src/phaser/core/factory.ts +14 -14
- package/src/phaser/core/frame.ts +28 -28
- package/src/phaser/core/frame_data.test.ts +100 -0
- package/src/phaser/core/frame_data.ts +24 -24
- package/src/phaser/core/frame_util.ts +2 -2
- package/src/phaser/core/game.ts +50 -51
- package/src/phaser/core/input.ts +104 -110
- package/src/phaser/core/input_handler.test.ts +113 -0
- package/src/phaser/core/input_handler.ts +199 -218
- package/src/phaser/core/input_mouse.ts +71 -54
- package/src/phaser/core/input_mspointer.ts +52 -39
- package/src/phaser/core/input_pointer.ts +81 -80
- package/src/phaser/core/input_touch.ts +49 -36
- package/src/phaser/core/loader.ts +175 -154
- package/src/phaser/core/loader_parser.ts +39 -57
- package/src/phaser/core/raf.ts +8 -7
- package/src/phaser/core/registry.test.ts +31 -0
- package/src/phaser/core/registry.ts +9 -0
- package/src/phaser/core/scale_manager.ts +156 -152
- package/src/phaser/core/scene.ts +9 -13
- package/src/phaser/core/scene_manager.ts +47 -47
- package/src/phaser/core/signal.test.ts +4 -4
- package/src/phaser/core/signal.ts +41 -52
- package/src/phaser/core/signal_binding.ts +26 -25
- package/src/phaser/core/signal_dispatch.test.ts +180 -0
- package/src/phaser/core/sound.ts +75 -83
- package/src/phaser/core/sound_manager.ts +58 -56
- package/src/phaser/core/sound_sprite.ts +17 -16
- package/src/phaser/core/stage.ts +25 -24
- package/src/phaser/core/time.ts +52 -52
- package/src/phaser/core/timer.test.ts +187 -0
- package/src/phaser/core/timer.ts +82 -69
- package/src/phaser/core/timer_event.ts +10 -10
- package/src/phaser/core/tween.ts +90 -93
- package/src/phaser/core/tween_data.ts +45 -51
- package/src/phaser/core/tween_easing.test.ts +106 -0
- package/src/phaser/core/tween_easing.ts +151 -123
- package/src/phaser/core/tween_manager.ts +19 -18
- package/src/phaser/core/world.ts +4 -3
- package/src/phaser/display/bitmap_text.ts +56 -64
- package/src/phaser/display/button.ts +33 -32
- package/src/phaser/display/canvas/buffer.ts +8 -8
- package/src/phaser/display/canvas/graphics.ts +36 -37
- package/src/phaser/display/canvas/masker.ts +2 -2
- package/src/phaser/display/canvas/pool.test.ts +106 -0
- package/src/phaser/display/canvas/pool.ts +25 -27
- package/src/phaser/display/canvas/renderer.ts +32 -31
- package/src/phaser/display/canvas/tinter.ts +27 -27
- package/src/phaser/display/canvas/util.ts +7 -10
- package/src/phaser/display/display_object.ts +114 -118
- package/src/phaser/display/graphics.ts +121 -119
- package/src/phaser/display/graphics_data.ts +12 -12
- package/src/phaser/display/graphics_data_util.ts +2 -3
- package/src/phaser/display/group.ts +50 -57
- package/src/phaser/display/image.ts +55 -52
- package/src/phaser/display/sprite_batch.ts +3 -2
- package/src/phaser/display/sprite_util.ts +48 -54
- package/src/phaser/display/text.ts +199 -204
- package/src/phaser/display/webgl/abstract_filter.ts +9 -9
- package/src/phaser/display/webgl/base_texture.ts +21 -24
- package/src/phaser/display/webgl/blend_manager.ts +6 -10
- package/src/phaser/display/webgl/earcut.ts +73 -37
- package/src/phaser/display/webgl/earcut_node.ts +10 -10
- package/src/phaser/display/webgl/fast_sprite_batch.ts +34 -34
- package/src/phaser/display/webgl/filter_manager.ts +13 -12
- package/src/phaser/display/webgl/filter_texture.ts +14 -13
- package/src/phaser/display/webgl/graphics.ts +51 -57
- package/src/phaser/display/webgl/graphics_data.ts +15 -14
- package/src/phaser/display/webgl/mask_manager.ts +2 -2
- package/src/phaser/display/webgl/render_texture.ts +26 -25
- package/src/phaser/display/webgl/renderer.ts +57 -62
- package/src/phaser/display/webgl/shader/complex.ts +28 -12
- package/src/phaser/display/webgl/shader/fast.ts +30 -12
- package/src/phaser/display/webgl/shader/normal.ts +70 -57
- package/src/phaser/display/webgl/shader/primitive.ts +26 -11
- package/src/phaser/display/webgl/shader/shader.test.ts +148 -0
- package/src/phaser/display/webgl/shader/strip.ts +27 -12
- package/src/phaser/display/webgl/shader_manager.test.ts +124 -0
- package/src/phaser/display/webgl/shader_manager.ts +26 -34
- package/src/phaser/display/webgl/sprite_batch.ts +67 -61
- package/src/phaser/display/webgl/stencil_manager.ts +23 -34
- package/src/phaser/display/webgl/texture.ts +43 -50
- package/src/phaser/display/webgl/texture_util.ts +2 -3
- package/src/phaser/display/webgl/util.ts +26 -25
- package/src/phaser/geom/circle.test.ts +2 -3
- package/src/phaser/geom/circle.ts +36 -36
- package/src/phaser/geom/ellipse.test.ts +73 -71
- package/src/phaser/geom/ellipse.ts +14 -14
- package/src/phaser/geom/line.test.ts +5 -5
- package/src/phaser/geom/line.ts +35 -35
- package/src/phaser/geom/matrix.test.ts +1 -1
- package/src/phaser/geom/matrix.ts +27 -27
- package/src/phaser/geom/point.test.ts +1 -2
- package/src/phaser/geom/point.ts +35 -35
- package/src/phaser/geom/polygon.test.ts +82 -0
- package/src/phaser/geom/polygon.ts +16 -16
- package/src/phaser/geom/rectangle.test.ts +14 -14
- package/src/phaser/geom/rectangle.ts +83 -75
- package/src/phaser/geom/rounded_rectangle.test.ts +1 -7
- package/src/phaser/geom/rounded_rectangle.ts +9 -9
- package/src/phaser/geom/util/circle.test.ts +25 -23
- package/src/phaser/geom/util/circle.ts +9 -18
- package/src/phaser/geom/util/ellipse.test.ts +7 -5
- package/src/phaser/geom/util/ellipse.ts +3 -2
- package/src/phaser/geom/util/line.test.ts +10 -8
- package/src/phaser/geom/util/line.ts +6 -16
- package/src/phaser/geom/util/matrix.test.ts +20 -18
- package/src/phaser/geom/util/matrix.ts +8 -15
- package/src/phaser/geom/util/point.test.ts +8 -6
- package/src/phaser/geom/util/point.ts +24 -28
- package/src/phaser/geom/util/polygon.test.ts +12 -10
- package/src/phaser/geom/util/polygon.ts +2 -2
- package/src/phaser/geom/util/rectangle.test.ts +10 -8
- package/src/phaser/geom/util/rectangle.ts +18 -37
- package/src/phaser/geom/util/rounded_rectangle.test.ts +11 -9
- package/src/phaser/geom/util/rounded_rectangle.ts +1 -1
- package/src/phaser/util/math.test.ts +11 -11
- package/src/phaser/util/math.ts +29 -46
package/src/phaser/core/timer.ts
CHANGED
|
@@ -3,32 +3,32 @@ import { Signal } from './signal.js';
|
|
|
3
3
|
import { TimerEvent } from './timer_event.js';
|
|
4
4
|
|
|
5
5
|
export class Timer {
|
|
6
|
-
game!: Game;
|
|
7
|
-
running!: boolean;
|
|
8
|
-
autoDestroy!: boolean;
|
|
9
|
-
expired!: boolean;
|
|
10
|
-
elapsed!: number;
|
|
11
|
-
events!: TimerEvent[];
|
|
12
|
-
onComplete!: Signal;
|
|
13
|
-
nextTick!: number;
|
|
14
|
-
timeCap!: number;
|
|
15
|
-
paused!: boolean;
|
|
16
|
-
_codePaused!: boolean;
|
|
17
|
-
_started!: number;
|
|
18
|
-
_pauseStarted!: number;
|
|
19
|
-
_pauseTotal!: number;
|
|
20
|
-
_now!: number;
|
|
21
|
-
_len!: number;
|
|
22
|
-
_marked!: number;
|
|
23
|
-
_i!: number;
|
|
24
|
-
_diff!: number;
|
|
25
|
-
_newTick!: number;
|
|
6
|
+
public game!: Game;
|
|
7
|
+
public running!: boolean;
|
|
8
|
+
public autoDestroy!: boolean;
|
|
9
|
+
public expired!: boolean;
|
|
10
|
+
public elapsed!: number;
|
|
11
|
+
public events!: TimerEvent[];
|
|
12
|
+
public onComplete!: Signal;
|
|
13
|
+
public nextTick!: number;
|
|
14
|
+
public timeCap!: number;
|
|
15
|
+
public paused!: boolean;
|
|
16
|
+
public _codePaused!: boolean;
|
|
17
|
+
public _started!: number;
|
|
18
|
+
public _pauseStarted!: number;
|
|
19
|
+
public _pauseTotal!: number;
|
|
20
|
+
public _now!: number;
|
|
21
|
+
public _len!: number;
|
|
22
|
+
public _marked!: number;
|
|
23
|
+
public _i!: number;
|
|
24
|
+
public _diff!: number;
|
|
25
|
+
public _newTick!: number;
|
|
26
26
|
/**
|
|
27
27
|
* Creates a new Timer instance.
|
|
28
|
-
* @param {
|
|
28
|
+
* @param {Game} game - The game instance.
|
|
29
29
|
* @param {boolean} autoDestroy - Whether to automatically destroy the timer when it completes.
|
|
30
30
|
*/
|
|
31
|
-
constructor(game: Game, autoDestroy
|
|
31
|
+
public constructor(game: Game, autoDestroy = false) {
|
|
32
32
|
this.game = game;
|
|
33
33
|
this.running = false;
|
|
34
34
|
this.autoDestroy = autoDestroy;
|
|
@@ -61,7 +61,7 @@ export class Timer {
|
|
|
61
61
|
* @param {...any} args - Arguments to pass to the callback function.
|
|
62
62
|
* @returns {TimerEvent} The created TimerEvent.
|
|
63
63
|
*/
|
|
64
|
-
create(
|
|
64
|
+
public create(
|
|
65
65
|
delay: number,
|
|
66
66
|
loop: boolean,
|
|
67
67
|
repeatCount: number,
|
|
@@ -91,7 +91,7 @@ export class Timer {
|
|
|
91
91
|
* @param {...any} args - Arguments to pass to the callback function.
|
|
92
92
|
* @returns {TimerEvent} The created TimerEvent.
|
|
93
93
|
*/
|
|
94
|
-
add(delay: number, callback: Function, callbackContext: any | null = null, ...args: any[]) {
|
|
94
|
+
public add(delay: number, callback: Function, callbackContext: any | null = null, ...args: any[]) {
|
|
95
95
|
return this.create(delay, false, 0, callback, callbackContext, args);
|
|
96
96
|
}
|
|
97
97
|
|
|
@@ -102,7 +102,7 @@ export class Timer {
|
|
|
102
102
|
* @param {...T} args - Arguments to pass to the resolve function.
|
|
103
103
|
* @returns {Promise<T | T[]>} The created Promise.
|
|
104
104
|
*/
|
|
105
|
-
wait(delay: number, ...args: any[]) {
|
|
105
|
+
public wait(delay: number, ...args: any[]) {
|
|
106
106
|
return new Promise((resolve) => {
|
|
107
107
|
this.create(delay, false, 0, () => {
|
|
108
108
|
resolve(args.length <= 1 ? args[0] : args);
|
|
@@ -119,7 +119,13 @@ export class Timer {
|
|
|
119
119
|
* @param {...any} args - Arguments to pass to the callback function.
|
|
120
120
|
* @returns {TimerEvent} The created TimerEvent.
|
|
121
121
|
*/
|
|
122
|
-
repeat(
|
|
122
|
+
public repeat(
|
|
123
|
+
delay: number,
|
|
124
|
+
repeatCount: number,
|
|
125
|
+
callback: Function,
|
|
126
|
+
callbackContext: any | null = null,
|
|
127
|
+
...args: any[]
|
|
128
|
+
) {
|
|
123
129
|
return this.create(delay, false, repeatCount, callback, callbackContext, args);
|
|
124
130
|
}
|
|
125
131
|
|
|
@@ -131,7 +137,7 @@ export class Timer {
|
|
|
131
137
|
* @param {...any} args - Arguments to pass to the callback function.
|
|
132
138
|
* @returns {TimerEvent} The created TimerEvent.
|
|
133
139
|
*/
|
|
134
|
-
loop(delay: number, callback: Function, callbackContext: any | null = null, ...args: any[]) {
|
|
140
|
+
public loop(delay: number, callback: Function, callbackContext: any | null = null, ...args: any[]) {
|
|
135
141
|
return this.create(delay, true, 0, callback, callbackContext, args);
|
|
136
142
|
}
|
|
137
143
|
|
|
@@ -139,14 +145,14 @@ export class Timer {
|
|
|
139
145
|
* Starts the timer.
|
|
140
146
|
* @param {number} delay - The delay in milliseconds before starting (optional).
|
|
141
147
|
*/
|
|
142
|
-
start(delay
|
|
148
|
+
public start(delay = 0) {
|
|
143
149
|
if (this.running) {
|
|
144
150
|
return;
|
|
145
151
|
}
|
|
146
152
|
this._started = this.game.time.time + (delay || 0);
|
|
147
153
|
this.running = true;
|
|
148
|
-
for (
|
|
149
|
-
|
|
154
|
+
for (const event of this.events) {
|
|
155
|
+
event.tick = event.delay + this._started;
|
|
150
156
|
}
|
|
151
157
|
}
|
|
152
158
|
|
|
@@ -154,7 +160,7 @@ export class Timer {
|
|
|
154
160
|
* Stops the timer.
|
|
155
161
|
* @param {boolean} clearEvents - Whether to clear all events (default: true).
|
|
156
162
|
*/
|
|
157
|
-
stop(clearEvents
|
|
163
|
+
public stop(clearEvents = true) {
|
|
158
164
|
this.running = false;
|
|
159
165
|
if (clearEvents) {
|
|
160
166
|
this.events.length = 0;
|
|
@@ -166,10 +172,10 @@ export class Timer {
|
|
|
166
172
|
* @param {TimerEvent | null | undefined} event - The TimerEvent to remove.
|
|
167
173
|
* @returns {boolean} True if the event was removed, false otherwise.
|
|
168
174
|
*/
|
|
169
|
-
remove(event: TimerEvent | null | undefined) {
|
|
170
|
-
for (
|
|
171
|
-
if (
|
|
172
|
-
|
|
175
|
+
public remove(event: TimerEvent | null | undefined) {
|
|
176
|
+
for (const candidate of this.events) {
|
|
177
|
+
if (candidate === event) {
|
|
178
|
+
candidate.pendingDelete = true;
|
|
173
179
|
return true;
|
|
174
180
|
}
|
|
175
181
|
}
|
|
@@ -179,11 +185,14 @@ export class Timer {
|
|
|
179
185
|
/**
|
|
180
186
|
* Orders the timer events by their next tick time.
|
|
181
187
|
*/
|
|
182
|
-
order() {
|
|
188
|
+
public order() {
|
|
183
189
|
if (this.events.length > 0) {
|
|
184
190
|
// Sort the events so the one with the lowest tick is first
|
|
185
191
|
this.events.sort(this.sortHandler);
|
|
186
|
-
|
|
192
|
+
const first = this.events[0];
|
|
193
|
+
if (first) {
|
|
194
|
+
this.nextTick = first.tick;
|
|
195
|
+
}
|
|
187
196
|
}
|
|
188
197
|
}
|
|
189
198
|
|
|
@@ -193,7 +202,7 @@ export class Timer {
|
|
|
193
202
|
* @param {TimerEvent} b - Second TimerEvent to compare.
|
|
194
203
|
* @returns {number} Comparison result (-1, 0, or 1).
|
|
195
204
|
*/
|
|
196
|
-
sortHandler(a: TimerEvent, b: TimerEvent) {
|
|
205
|
+
public sortHandler(a: TimerEvent, b: TimerEvent) {
|
|
197
206
|
if (a.tick < b.tick) {
|
|
198
207
|
return -1;
|
|
199
208
|
} else if (a.tick > b.tick) {
|
|
@@ -205,11 +214,11 @@ export class Timer {
|
|
|
205
214
|
/**
|
|
206
215
|
* Clears pending events from the timer.
|
|
207
216
|
*/
|
|
208
|
-
clearPendingEvents() {
|
|
217
|
+
public clearPendingEvents() {
|
|
209
218
|
this._i = this.events.length;
|
|
210
219
|
while (this._i) {
|
|
211
220
|
this._i -= 1;
|
|
212
|
-
if (this.events[this._i]
|
|
221
|
+
if (this.events[this._i]?.pendingDelete) {
|
|
213
222
|
this.events.splice(this._i, 1);
|
|
214
223
|
}
|
|
215
224
|
}
|
|
@@ -222,7 +231,7 @@ export class Timer {
|
|
|
222
231
|
* @param {number} time - The current time in milliseconds.
|
|
223
232
|
* @returns {boolean} True if the timer should continue running, false if it should be destroyed.
|
|
224
233
|
*/
|
|
225
|
-
update(time: number) {
|
|
234
|
+
public update(time: number) {
|
|
226
235
|
if (this.paused) {
|
|
227
236
|
return true;
|
|
228
237
|
}
|
|
@@ -240,23 +249,27 @@ export class Timer {
|
|
|
240
249
|
this.clearPendingEvents();
|
|
241
250
|
if (this.running && this._now >= this.nextTick && this._len > 0) {
|
|
242
251
|
while (this._i < this._len && this.running) {
|
|
243
|
-
|
|
252
|
+
const event = this.events[this._i];
|
|
253
|
+
if (!event) {
|
|
254
|
+
break;
|
|
255
|
+
}
|
|
256
|
+
if (this._now >= event.tick && !event.pendingDelete) {
|
|
244
257
|
// (now + delay) - (time difference from last tick to now)
|
|
245
|
-
this._newTick = this._now +
|
|
258
|
+
this._newTick = this._now + event.delay - (this._now - event.tick);
|
|
246
259
|
if (this._newTick < 0) {
|
|
247
|
-
this._newTick = this._now +
|
|
260
|
+
this._newTick = this._now + event.delay;
|
|
248
261
|
}
|
|
249
|
-
if (
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
} else if (
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
262
|
+
if (event.loop) {
|
|
263
|
+
event.tick = this._newTick;
|
|
264
|
+
event.callback.apply(event.callbackContext, event.args);
|
|
265
|
+
} else if (event.repeatCount > 0) {
|
|
266
|
+
event.repeatCount -= 1;
|
|
267
|
+
event.tick = this._newTick;
|
|
268
|
+
event.callback.apply(event.callbackContext, event.args);
|
|
256
269
|
} else {
|
|
257
270
|
this._marked += 1;
|
|
258
|
-
|
|
259
|
-
|
|
271
|
+
event.pendingDelete = true;
|
|
272
|
+
event.callback.apply(event.callbackContext, event.args);
|
|
260
273
|
}
|
|
261
274
|
this._i += 1;
|
|
262
275
|
} else {
|
|
@@ -280,7 +293,7 @@ export class Timer {
|
|
|
280
293
|
/**
|
|
281
294
|
* Pauses the timer.
|
|
282
295
|
*/
|
|
283
|
-
pause() {
|
|
296
|
+
public pause() {
|
|
284
297
|
if (!this.running) {
|
|
285
298
|
return;
|
|
286
299
|
}
|
|
@@ -295,7 +308,7 @@ export class Timer {
|
|
|
295
308
|
/**
|
|
296
309
|
* Internal pause method for the timer.
|
|
297
310
|
*/
|
|
298
|
-
_pause() {
|
|
311
|
+
public _pause() {
|
|
299
312
|
if (this.paused || !this.running) {
|
|
300
313
|
return;
|
|
301
314
|
}
|
|
@@ -307,16 +320,16 @@ export class Timer {
|
|
|
307
320
|
* Adjusts timer events when time has jumped (e.g., when tab is switched).
|
|
308
321
|
* @param {number} baseTime - The time to adjust from.
|
|
309
322
|
*/
|
|
310
|
-
adjustEvents(baseTime: number) {
|
|
311
|
-
for (
|
|
312
|
-
if (!
|
|
323
|
+
public adjustEvents(baseTime: number) {
|
|
324
|
+
for (const event of this.events) {
|
|
325
|
+
if (!event.pendingDelete) {
|
|
313
326
|
// Work out how long there would have been from when the game paused until the events next tick
|
|
314
|
-
let t =
|
|
327
|
+
let t = event.tick - baseTime;
|
|
315
328
|
if (t < 0) {
|
|
316
329
|
t = 0;
|
|
317
330
|
}
|
|
318
331
|
// Add the difference on to the time now
|
|
319
|
-
|
|
332
|
+
event.tick = this._now + t;
|
|
320
333
|
}
|
|
321
334
|
}
|
|
322
335
|
const d = this.nextTick - baseTime;
|
|
@@ -330,7 +343,7 @@ export class Timer {
|
|
|
330
343
|
/**
|
|
331
344
|
* Resumes the timer.
|
|
332
345
|
*/
|
|
333
|
-
resume() {
|
|
346
|
+
public resume() {
|
|
334
347
|
if (!this.paused) {
|
|
335
348
|
return;
|
|
336
349
|
}
|
|
@@ -345,7 +358,7 @@ export class Timer {
|
|
|
345
358
|
/**
|
|
346
359
|
* Internal resume method for the timer.
|
|
347
360
|
*/
|
|
348
|
-
_resume() {
|
|
361
|
+
public _resume() {
|
|
349
362
|
if (this._codePaused) {
|
|
350
363
|
return;
|
|
351
364
|
}
|
|
@@ -355,7 +368,7 @@ export class Timer {
|
|
|
355
368
|
/**
|
|
356
369
|
* Removes all events from the timer.
|
|
357
370
|
*/
|
|
358
|
-
removeAll() {
|
|
371
|
+
public removeAll() {
|
|
359
372
|
this.onComplete.removeAll();
|
|
360
373
|
this.events.length = 0;
|
|
361
374
|
this._len = 0;
|
|
@@ -365,7 +378,7 @@ export class Timer {
|
|
|
365
378
|
/**
|
|
366
379
|
* Destroys the timer and cleans up resources.
|
|
367
380
|
*/
|
|
368
|
-
destroy() {
|
|
381
|
+
public destroy() {
|
|
369
382
|
this.onComplete.removeAll();
|
|
370
383
|
this.running = false;
|
|
371
384
|
this.events = [];
|
|
@@ -377,7 +390,7 @@ export class Timer {
|
|
|
377
390
|
* Gets the next tick time for the timer.
|
|
378
391
|
* @returns {number} The next tick time in milliseconds.
|
|
379
392
|
*/
|
|
380
|
-
get next() {
|
|
393
|
+
public get next() {
|
|
381
394
|
return this.nextTick;
|
|
382
395
|
}
|
|
383
396
|
|
|
@@ -385,7 +398,7 @@ export class Timer {
|
|
|
385
398
|
* Gets the duration until the next event.
|
|
386
399
|
* @returns {number} The duration in milliseconds.
|
|
387
400
|
*/
|
|
388
|
-
get duration() {
|
|
401
|
+
public get duration() {
|
|
389
402
|
if (this.running && this.nextTick > this._now) {
|
|
390
403
|
return this.nextTick - this._now;
|
|
391
404
|
}
|
|
@@ -396,7 +409,7 @@ export class Timer {
|
|
|
396
409
|
* Gets the number of active events in the timer.
|
|
397
410
|
* @returns {number} The number of events.
|
|
398
411
|
*/
|
|
399
|
-
get length() {
|
|
412
|
+
public get length() {
|
|
400
413
|
return this.events.length;
|
|
401
414
|
}
|
|
402
415
|
|
|
@@ -404,7 +417,7 @@ export class Timer {
|
|
|
404
417
|
* Gets the elapsed time since the timer started.
|
|
405
418
|
* @returns {number} The elapsed time in milliseconds.
|
|
406
419
|
*/
|
|
407
|
-
get ms() {
|
|
420
|
+
public get ms() {
|
|
408
421
|
if (this.running) {
|
|
409
422
|
return this._now - this._started - this._pauseTotal;
|
|
410
423
|
}
|
|
@@ -415,7 +428,7 @@ export class Timer {
|
|
|
415
428
|
* Gets the elapsed time in seconds since the timer started.
|
|
416
429
|
* @returns {number} The elapsed time in seconds.
|
|
417
430
|
*/
|
|
418
|
-
get seconds() {
|
|
431
|
+
public get seconds() {
|
|
419
432
|
if (this.running) {
|
|
420
433
|
return this.ms * 0.001;
|
|
421
434
|
}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import type { Timer } from './timer.js';
|
|
2
2
|
|
|
3
3
|
export class TimerEvent {
|
|
4
|
-
timer: Timer;
|
|
5
|
-
delay: number;
|
|
6
|
-
tick: number;
|
|
7
|
-
repeatCount: number;
|
|
8
|
-
loop: boolean;
|
|
9
|
-
callback: Function;
|
|
10
|
-
callbackContext: object;
|
|
11
|
-
args: unknown[];
|
|
12
|
-
pendingDelete: boolean;
|
|
4
|
+
public timer: Timer;
|
|
5
|
+
public delay: number;
|
|
6
|
+
public tick: number;
|
|
7
|
+
public repeatCount: number;
|
|
8
|
+
public loop: boolean;
|
|
9
|
+
public callback: Function;
|
|
10
|
+
public callbackContext: object;
|
|
11
|
+
public args: unknown[];
|
|
12
|
+
public pendingDelete: boolean;
|
|
13
13
|
|
|
14
|
-
constructor(
|
|
14
|
+
public constructor(
|
|
15
15
|
timer: Timer,
|
|
16
16
|
delay: number,
|
|
17
17
|
tick: number,
|