@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.
Files changed (296) hide show
  1. package/dist/index.js +1300 -1334
  2. package/dist/index.js.map +1 -1
  3. package/dist/phaser/core/animation.d.ts +14 -10
  4. package/dist/phaser/core/animation.d.ts.map +1 -1
  5. package/dist/phaser/core/animation_manager.d.ts +10 -8
  6. package/dist/phaser/core/animation_manager.d.ts.map +1 -1
  7. package/dist/phaser/core/animation_parser.d.ts +5 -4
  8. package/dist/phaser/core/animation_parser.d.ts.map +1 -1
  9. package/dist/phaser/core/array_set.d.ts.map +1 -1
  10. package/dist/phaser/core/cache.d.ts +4 -3
  11. package/dist/phaser/core/cache.d.ts.map +1 -1
  12. package/dist/phaser/core/const.d.ts.map +1 -1
  13. package/dist/phaser/core/device.d.ts.map +1 -1
  14. package/dist/phaser/core/device_util.d.ts.map +1 -1
  15. package/dist/phaser/core/dom.d.ts +3 -2
  16. package/dist/phaser/core/dom.d.ts.map +1 -1
  17. package/dist/phaser/core/event_manager.d.ts.map +1 -1
  18. package/dist/phaser/core/factory.d.ts +1 -1
  19. package/dist/phaser/core/factory.d.ts.map +1 -1
  20. package/dist/phaser/core/frame.d.ts.map +1 -1
  21. package/dist/phaser/core/frame_data.d.ts.map +1 -1
  22. package/dist/phaser/core/game.d.ts +1 -1
  23. package/dist/phaser/core/game.d.ts.map +1 -1
  24. package/dist/phaser/core/input.d.ts +8 -6
  25. package/dist/phaser/core/input.d.ts.map +1 -1
  26. package/dist/phaser/core/input_handler.d.ts +40 -30
  27. package/dist/phaser/core/input_handler.d.ts.map +1 -1
  28. package/dist/phaser/core/input_mouse.d.ts +3 -2
  29. package/dist/phaser/core/input_mouse.d.ts.map +1 -1
  30. package/dist/phaser/core/input_mspointer.d.ts +3 -2
  31. package/dist/phaser/core/input_mspointer.d.ts.map +1 -1
  32. package/dist/phaser/core/input_pointer.d.ts +6 -4
  33. package/dist/phaser/core/input_pointer.d.ts.map +1 -1
  34. package/dist/phaser/core/input_touch.d.ts +3 -2
  35. package/dist/phaser/core/input_touch.d.ts.map +1 -1
  36. package/dist/phaser/core/loader.d.ts +4 -3
  37. package/dist/phaser/core/loader.d.ts.map +1 -1
  38. package/dist/phaser/core/loader_parser.d.ts +9 -8
  39. package/dist/phaser/core/loader_parser.d.ts.map +1 -1
  40. package/dist/phaser/core/raf.d.ts +3 -2
  41. package/dist/phaser/core/raf.d.ts.map +1 -1
  42. package/dist/phaser/core/registry.d.ts +7 -0
  43. package/dist/phaser/core/registry.d.ts.map +1 -0
  44. package/dist/phaser/core/scale_manager.d.ts +1 -1
  45. package/dist/phaser/core/scale_manager.d.ts.map +1 -1
  46. package/dist/phaser/core/scene.d.ts +0 -1
  47. package/dist/phaser/core/scene.d.ts.map +1 -1
  48. package/dist/phaser/core/scene_manager.d.ts +1 -1
  49. package/dist/phaser/core/scene_manager.d.ts.map +1 -1
  50. package/dist/phaser/core/signal.d.ts +0 -1
  51. package/dist/phaser/core/signal.d.ts.map +1 -1
  52. package/dist/phaser/core/signal_binding.d.ts +4 -3
  53. package/dist/phaser/core/signal_binding.d.ts.map +1 -1
  54. package/dist/phaser/core/sound.d.ts +6 -4
  55. package/dist/phaser/core/sound.d.ts.map +1 -1
  56. package/dist/phaser/core/sound_manager.d.ts +3 -2
  57. package/dist/phaser/core/sound_manager.d.ts.map +1 -1
  58. package/dist/phaser/core/sound_sprite.d.ts +5 -4
  59. package/dist/phaser/core/sound_sprite.d.ts.map +1 -1
  60. package/dist/phaser/core/stage.d.ts +3 -2
  61. package/dist/phaser/core/stage.d.ts.map +1 -1
  62. package/dist/phaser/core/time.d.ts +1 -1
  63. package/dist/phaser/core/time.d.ts.map +1 -1
  64. package/dist/phaser/core/timer.d.ts +1 -1
  65. package/dist/phaser/core/timer.d.ts.map +1 -1
  66. package/dist/phaser/core/timer_event.d.ts.map +1 -1
  67. package/dist/phaser/core/tween.d.ts +10 -7
  68. package/dist/phaser/core/tween.d.ts.map +1 -1
  69. package/dist/phaser/core/tween_data.d.ts +3 -2
  70. package/dist/phaser/core/tween_data.d.ts.map +1 -1
  71. package/dist/phaser/core/tween_easing.d.ts.map +1 -1
  72. package/dist/phaser/core/tween_manager.d.ts +3 -2
  73. package/dist/phaser/core/tween_manager.d.ts.map +1 -1
  74. package/dist/phaser/core/world.d.ts +3 -2
  75. package/dist/phaser/core/world.d.ts.map +1 -1
  76. package/dist/phaser/display/bitmap_text.d.ts +3 -2
  77. package/dist/phaser/display/bitmap_text.d.ts.map +1 -1
  78. package/dist/phaser/display/button.d.ts +3 -2
  79. package/dist/phaser/display/button.d.ts.map +1 -1
  80. package/dist/phaser/display/canvas/buffer.d.ts.map +1 -1
  81. package/dist/phaser/display/canvas/graphics.d.ts +7 -6
  82. package/dist/phaser/display/canvas/graphics.d.ts.map +1 -1
  83. package/dist/phaser/display/canvas/pool.d.ts +2 -2
  84. package/dist/phaser/display/canvas/pool.d.ts.map +1 -1
  85. package/dist/phaser/display/canvas/renderer.d.ts +10 -8
  86. package/dist/phaser/display/canvas/renderer.d.ts.map +1 -1
  87. package/dist/phaser/display/canvas/tinter.d.ts +3 -2
  88. package/dist/phaser/display/canvas/tinter.d.ts.map +1 -1
  89. package/dist/phaser/display/canvas/util.d.ts +2 -2
  90. package/dist/phaser/display/canvas/util.d.ts.map +1 -1
  91. package/dist/phaser/display/display_object.d.ts +14 -12
  92. package/dist/phaser/display/display_object.d.ts.map +1 -1
  93. package/dist/phaser/display/graphics.d.ts +8 -5
  94. package/dist/phaser/display/graphics.d.ts.map +1 -1
  95. package/dist/phaser/display/graphics_data.d.ts.map +1 -1
  96. package/dist/phaser/display/graphics_data_util.d.ts.map +1 -1
  97. package/dist/phaser/display/group.d.ts +4 -3
  98. package/dist/phaser/display/group.d.ts.map +1 -1
  99. package/dist/phaser/display/image.d.ts +13 -10
  100. package/dist/phaser/display/image.d.ts.map +1 -1
  101. package/dist/phaser/display/sprite_batch.d.ts +3 -2
  102. package/dist/phaser/display/sprite_batch.d.ts.map +1 -1
  103. package/dist/phaser/display/sprite_util.d.ts +18 -15
  104. package/dist/phaser/display/sprite_util.d.ts.map +1 -1
  105. package/dist/phaser/display/text.d.ts +11 -9
  106. package/dist/phaser/display/text.d.ts.map +1 -1
  107. package/dist/phaser/display/webgl/abstract_filter.d.ts.map +1 -1
  108. package/dist/phaser/display/webgl/base_texture.d.ts.map +1 -1
  109. package/dist/phaser/display/webgl/blend_manager.d.ts +0 -1
  110. package/dist/phaser/display/webgl/blend_manager.d.ts.map +1 -1
  111. package/dist/phaser/display/webgl/earcut.d.ts +1 -1
  112. package/dist/phaser/display/webgl/earcut.d.ts.map +1 -1
  113. package/dist/phaser/display/webgl/earcut_node.d.ts.map +1 -1
  114. package/dist/phaser/display/webgl/fast_sprite_batch.d.ts +4 -3
  115. package/dist/phaser/display/webgl/fast_sprite_batch.d.ts.map +1 -1
  116. package/dist/phaser/display/webgl/filter_manager.d.ts +2 -1
  117. package/dist/phaser/display/webgl/filter_manager.d.ts.map +1 -1
  118. package/dist/phaser/display/webgl/filter_texture.d.ts +2 -1
  119. package/dist/phaser/display/webgl/filter_texture.d.ts.map +1 -1
  120. package/dist/phaser/display/webgl/graphics.d.ts +7 -6
  121. package/dist/phaser/display/webgl/graphics.d.ts.map +1 -1
  122. package/dist/phaser/display/webgl/graphics_data.d.ts +2 -1
  123. package/dist/phaser/display/webgl/graphics_data.d.ts.map +1 -1
  124. package/dist/phaser/display/webgl/render_texture.d.ts +4 -2
  125. package/dist/phaser/display/webgl/render_texture.d.ts.map +1 -1
  126. package/dist/phaser/display/webgl/renderer.d.ts +16 -11
  127. package/dist/phaser/display/webgl/renderer.d.ts.map +1 -1
  128. package/dist/phaser/display/webgl/shader/complex.d.ts +16 -6
  129. package/dist/phaser/display/webgl/shader/complex.d.ts.map +1 -1
  130. package/dist/phaser/display/webgl/shader/fast.d.ts +19 -7
  131. package/dist/phaser/display/webgl/shader/fast.d.ts.map +1 -1
  132. package/dist/phaser/display/webgl/shader/normal.d.ts +33 -12
  133. package/dist/phaser/display/webgl/shader/normal.d.ts.map +1 -1
  134. package/dist/phaser/display/webgl/shader/primitive.d.ts +15 -6
  135. package/dist/phaser/display/webgl/shader/primitive.d.ts.map +1 -1
  136. package/dist/phaser/display/webgl/shader/strip.d.ts +15 -6
  137. package/dist/phaser/display/webgl/shader/strip.d.ts.map +1 -1
  138. package/dist/phaser/display/webgl/shader_manager.d.ts +16 -11
  139. package/dist/phaser/display/webgl/shader_manager.d.ts.map +1 -1
  140. package/dist/phaser/display/webgl/sprite_batch.d.ts +29 -20
  141. package/dist/phaser/display/webgl/sprite_batch.d.ts.map +1 -1
  142. package/dist/phaser/display/webgl/stencil_manager.d.ts +12 -10
  143. package/dist/phaser/display/webgl/stencil_manager.d.ts.map +1 -1
  144. package/dist/phaser/display/webgl/texture.d.ts +3 -2
  145. package/dist/phaser/display/webgl/texture.d.ts.map +1 -1
  146. package/dist/phaser/display/webgl/texture_util.d.ts.map +1 -1
  147. package/dist/phaser/display/webgl/util.d.ts.map +1 -1
  148. package/dist/phaser/geom/circle.d.ts +4 -1
  149. package/dist/phaser/geom/circle.d.ts.map +1 -1
  150. package/dist/phaser/geom/ellipse.d.ts.map +1 -1
  151. package/dist/phaser/geom/line.d.ts +1 -1
  152. package/dist/phaser/geom/line.d.ts.map +1 -1
  153. package/dist/phaser/geom/matrix.d.ts.map +1 -1
  154. package/dist/phaser/geom/point.d.ts.map +1 -1
  155. package/dist/phaser/geom/polygon.d.ts.map +1 -1
  156. package/dist/phaser/geom/rectangle.d.ts.map +1 -1
  157. package/dist/phaser/geom/rounded_rectangle.d.ts.map +1 -1
  158. package/dist/phaser/geom/util/circle.d.ts.map +1 -1
  159. package/dist/phaser/geom/util/ellipse.d.ts +3 -2
  160. package/dist/phaser/geom/util/ellipse.d.ts.map +1 -1
  161. package/dist/phaser/geom/util/line.d.ts.map +1 -1
  162. package/dist/phaser/geom/util/matrix.d.ts +2 -2
  163. package/dist/phaser/geom/util/matrix.d.ts.map +1 -1
  164. package/dist/phaser/geom/util/point.d.ts.map +1 -1
  165. package/dist/phaser/geom/util/rectangle.d.ts +1 -1
  166. package/dist/phaser/geom/util/rectangle.d.ts.map +1 -1
  167. package/dist/phaser/util/math.d.ts.map +1 -1
  168. package/package.json +5 -4
  169. package/src/phaser/core/animation.ts +64 -60
  170. package/src/phaser/core/animation_manager.ts +54 -55
  171. package/src/phaser/core/animation_parser.ts +9 -9
  172. package/src/phaser/core/array_set.ts +16 -17
  173. package/src/phaser/core/cache.ts +92 -93
  174. package/src/phaser/core/const.ts +1 -1
  175. package/src/phaser/core/device.ts +24 -29
  176. package/src/phaser/core/device_util.ts +28 -32
  177. package/src/phaser/core/dom.ts +54 -65
  178. package/src/phaser/core/event_manager.ts +64 -94
  179. package/src/phaser/core/factory.ts +14 -14
  180. package/src/phaser/core/frame.ts +28 -28
  181. package/src/phaser/core/frame_data.test.ts +100 -0
  182. package/src/phaser/core/frame_data.ts +24 -24
  183. package/src/phaser/core/frame_util.ts +2 -2
  184. package/src/phaser/core/game.ts +50 -51
  185. package/src/phaser/core/input.ts +104 -110
  186. package/src/phaser/core/input_handler.test.ts +113 -0
  187. package/src/phaser/core/input_handler.ts +199 -218
  188. package/src/phaser/core/input_mouse.ts +71 -54
  189. package/src/phaser/core/input_mspointer.ts +52 -39
  190. package/src/phaser/core/input_pointer.ts +81 -80
  191. package/src/phaser/core/input_touch.ts +49 -36
  192. package/src/phaser/core/loader.ts +175 -154
  193. package/src/phaser/core/loader_parser.ts +39 -57
  194. package/src/phaser/core/raf.ts +8 -7
  195. package/src/phaser/core/registry.test.ts +31 -0
  196. package/src/phaser/core/registry.ts +9 -0
  197. package/src/phaser/core/scale_manager.ts +156 -152
  198. package/src/phaser/core/scene.ts +9 -13
  199. package/src/phaser/core/scene_manager.ts +47 -47
  200. package/src/phaser/core/signal.test.ts +4 -4
  201. package/src/phaser/core/signal.ts +41 -52
  202. package/src/phaser/core/signal_binding.ts +26 -25
  203. package/src/phaser/core/signal_dispatch.test.ts +180 -0
  204. package/src/phaser/core/sound.ts +75 -83
  205. package/src/phaser/core/sound_manager.ts +58 -56
  206. package/src/phaser/core/sound_sprite.ts +17 -16
  207. package/src/phaser/core/stage.ts +25 -24
  208. package/src/phaser/core/time.ts +52 -52
  209. package/src/phaser/core/timer.test.ts +187 -0
  210. package/src/phaser/core/timer.ts +82 -69
  211. package/src/phaser/core/timer_event.ts +10 -10
  212. package/src/phaser/core/tween.ts +90 -93
  213. package/src/phaser/core/tween_data.ts +45 -51
  214. package/src/phaser/core/tween_easing.test.ts +106 -0
  215. package/src/phaser/core/tween_easing.ts +151 -123
  216. package/src/phaser/core/tween_manager.ts +19 -18
  217. package/src/phaser/core/world.ts +4 -3
  218. package/src/phaser/display/bitmap_text.ts +56 -64
  219. package/src/phaser/display/button.ts +33 -32
  220. package/src/phaser/display/canvas/buffer.ts +8 -8
  221. package/src/phaser/display/canvas/graphics.ts +36 -37
  222. package/src/phaser/display/canvas/masker.ts +2 -2
  223. package/src/phaser/display/canvas/pool.test.ts +106 -0
  224. package/src/phaser/display/canvas/pool.ts +25 -27
  225. package/src/phaser/display/canvas/renderer.ts +32 -31
  226. package/src/phaser/display/canvas/tinter.ts +27 -27
  227. package/src/phaser/display/canvas/util.ts +7 -10
  228. package/src/phaser/display/display_object.ts +114 -118
  229. package/src/phaser/display/graphics.ts +121 -119
  230. package/src/phaser/display/graphics_data.ts +12 -12
  231. package/src/phaser/display/graphics_data_util.ts +2 -3
  232. package/src/phaser/display/group.ts +50 -57
  233. package/src/phaser/display/image.ts +55 -52
  234. package/src/phaser/display/sprite_batch.ts +3 -2
  235. package/src/phaser/display/sprite_util.ts +48 -54
  236. package/src/phaser/display/text.ts +199 -204
  237. package/src/phaser/display/webgl/abstract_filter.ts +9 -9
  238. package/src/phaser/display/webgl/base_texture.ts +21 -24
  239. package/src/phaser/display/webgl/blend_manager.ts +6 -10
  240. package/src/phaser/display/webgl/earcut.ts +73 -37
  241. package/src/phaser/display/webgl/earcut_node.ts +10 -10
  242. package/src/phaser/display/webgl/fast_sprite_batch.ts +34 -34
  243. package/src/phaser/display/webgl/filter_manager.ts +13 -12
  244. package/src/phaser/display/webgl/filter_texture.ts +14 -13
  245. package/src/phaser/display/webgl/graphics.ts +51 -57
  246. package/src/phaser/display/webgl/graphics_data.ts +15 -14
  247. package/src/phaser/display/webgl/mask_manager.ts +2 -2
  248. package/src/phaser/display/webgl/render_texture.ts +26 -25
  249. package/src/phaser/display/webgl/renderer.ts +57 -62
  250. package/src/phaser/display/webgl/shader/complex.ts +28 -12
  251. package/src/phaser/display/webgl/shader/fast.ts +30 -12
  252. package/src/phaser/display/webgl/shader/normal.ts +70 -57
  253. package/src/phaser/display/webgl/shader/primitive.ts +26 -11
  254. package/src/phaser/display/webgl/shader/shader.test.ts +148 -0
  255. package/src/phaser/display/webgl/shader/strip.ts +27 -12
  256. package/src/phaser/display/webgl/shader_manager.test.ts +124 -0
  257. package/src/phaser/display/webgl/shader_manager.ts +26 -34
  258. package/src/phaser/display/webgl/sprite_batch.ts +67 -61
  259. package/src/phaser/display/webgl/stencil_manager.ts +23 -34
  260. package/src/phaser/display/webgl/texture.ts +43 -50
  261. package/src/phaser/display/webgl/texture_util.ts +2 -3
  262. package/src/phaser/display/webgl/util.ts +26 -25
  263. package/src/phaser/geom/circle.test.ts +2 -3
  264. package/src/phaser/geom/circle.ts +36 -36
  265. package/src/phaser/geom/ellipse.test.ts +73 -71
  266. package/src/phaser/geom/ellipse.ts +14 -14
  267. package/src/phaser/geom/line.test.ts +5 -5
  268. package/src/phaser/geom/line.ts +35 -35
  269. package/src/phaser/geom/matrix.test.ts +1 -1
  270. package/src/phaser/geom/matrix.ts +27 -27
  271. package/src/phaser/geom/point.test.ts +1 -2
  272. package/src/phaser/geom/point.ts +35 -35
  273. package/src/phaser/geom/polygon.test.ts +82 -0
  274. package/src/phaser/geom/polygon.ts +16 -16
  275. package/src/phaser/geom/rectangle.test.ts +14 -14
  276. package/src/phaser/geom/rectangle.ts +83 -75
  277. package/src/phaser/geom/rounded_rectangle.test.ts +1 -7
  278. package/src/phaser/geom/rounded_rectangle.ts +9 -9
  279. package/src/phaser/geom/util/circle.test.ts +25 -23
  280. package/src/phaser/geom/util/circle.ts +9 -18
  281. package/src/phaser/geom/util/ellipse.test.ts +7 -5
  282. package/src/phaser/geom/util/ellipse.ts +3 -2
  283. package/src/phaser/geom/util/line.test.ts +10 -8
  284. package/src/phaser/geom/util/line.ts +6 -16
  285. package/src/phaser/geom/util/matrix.test.ts +20 -18
  286. package/src/phaser/geom/util/matrix.ts +8 -15
  287. package/src/phaser/geom/util/point.test.ts +8 -6
  288. package/src/phaser/geom/util/point.ts +24 -28
  289. package/src/phaser/geom/util/polygon.test.ts +12 -10
  290. package/src/phaser/geom/util/polygon.ts +2 -2
  291. package/src/phaser/geom/util/rectangle.test.ts +10 -8
  292. package/src/phaser/geom/util/rectangle.ts +18 -37
  293. package/src/phaser/geom/util/rounded_rectangle.test.ts +11 -9
  294. package/src/phaser/geom/util/rounded_rectangle.ts +1 -1
  295. package/src/phaser/util/math.test.ts +11 -11
  296. package/src/phaser/util/math.ts +29 -46
@@ -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 {import('./game.js').Game} game - The game instance.
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: boolean = false) {
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(delay: number, repeatCount: number, callback: Function, callbackContext: any | null = null, ...args: any[]) {
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: number = 0) {
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 (let i = 0; i < this.events.length; i += 1) {
149
- this.events[i].tick = this.events[i].delay + this._started;
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: boolean = true) {
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 (let i = 0; i < this.events.length; i += 1) {
171
- if (this.events[i] === event) {
172
- this.events[i].pendingDelete = true;
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
- this.nextTick = this.events[0].tick;
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].pendingDelete) {
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
- if (this._now >= this.events[this._i].tick && !this.events[this._i].pendingDelete) {
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 + this.events[this._i].delay - (this._now - this.events[this._i].tick);
258
+ this._newTick = this._now + event.delay - (this._now - event.tick);
246
259
  if (this._newTick < 0) {
247
- this._newTick = this._now + this.events[this._i].delay;
260
+ this._newTick = this._now + event.delay;
248
261
  }
249
- if (this.events[this._i].loop === true) {
250
- this.events[this._i].tick = this._newTick;
251
- this.events[this._i].callback.apply(this.events[this._i].callbackContext, this.events[this._i].args);
252
- } else if (this.events[this._i].repeatCount > 0) {
253
- this.events[this._i].repeatCount -= 1;
254
- this.events[this._i].tick = this._newTick;
255
- this.events[this._i].callback.apply(this.events[this._i].callbackContext, this.events[this._i].args);
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
- this.events[this._i].pendingDelete = true;
259
- this.events[this._i].callback.apply(this.events[this._i].callbackContext, this.events[this._i].args);
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 (let i = 0; i < this.events.length; i += 1) {
312
- if (!this.events[i].pendingDelete) {
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 = this.events[i].tick - baseTime;
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
- this.events[i].tick = this._now + t;
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,