@vpmedia/phaser 1.106.0 → 1.108.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 (217) hide show
  1. package/dist/index.js +225 -226
  2. package/dist/index.js.map +1 -1
  3. package/dist/phaser/core/animation.d.ts +2 -2
  4. package/dist/phaser/core/animation.d.ts.map +1 -1
  5. package/dist/phaser/core/animation_manager.d.ts +2 -2
  6. package/dist/phaser/core/animation_manager.d.ts.map +1 -1
  7. package/dist/phaser/core/animation_parser.d.ts +2 -2
  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 +6 -6
  11. package/dist/phaser/core/cache.d.ts.map +1 -1
  12. package/dist/phaser/core/device.d.ts.map +1 -1
  13. package/dist/phaser/core/device_util.d.ts.map +1 -1
  14. package/dist/phaser/core/dom.d.ts +2 -2
  15. package/dist/phaser/core/dom.d.ts.map +1 -1
  16. package/dist/phaser/core/event_manager.d.ts.map +1 -1
  17. package/dist/phaser/core/factory.d.ts +1 -1
  18. package/dist/phaser/core/factory.d.ts.map +1 -1
  19. package/dist/phaser/core/frame.d.ts.map +1 -1
  20. package/dist/phaser/core/frame_data.d.ts.map +1 -1
  21. package/dist/phaser/core/frame_util.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 +3 -3
  25. package/dist/phaser/core/input.d.ts.map +1 -1
  26. package/dist/phaser/core/input_handler.d.ts +8 -8
  27. package/dist/phaser/core/input_handler.d.ts.map +1 -1
  28. package/dist/phaser/core/input_mouse.d.ts +8 -8
  29. package/dist/phaser/core/input_mouse.d.ts.map +1 -1
  30. package/dist/phaser/core/input_mspointer.d.ts +6 -6
  31. package/dist/phaser/core/input_mspointer.d.ts.map +1 -1
  32. package/dist/phaser/core/input_pointer.d.ts +3 -3
  33. package/dist/phaser/core/input_pointer.d.ts.map +1 -1
  34. package/dist/phaser/core/input_touch.d.ts +7 -7
  35. package/dist/phaser/core/input_touch.d.ts.map +1 -1
  36. package/dist/phaser/core/loader.d.ts +6 -6
  37. package/dist/phaser/core/loader.d.ts.map +1 -1
  38. package/dist/phaser/core/loader_parser.d.ts +4 -4
  39. package/dist/phaser/core/loader_parser.d.ts.map +1 -1
  40. package/dist/phaser/core/raf.d.ts.map +1 -1
  41. package/dist/phaser/core/scale_manager.d.ts +5 -5
  42. package/dist/phaser/core/scale_manager.d.ts.map +1 -1
  43. package/dist/phaser/core/scene.d.ts +3 -3
  44. package/dist/phaser/core/scene.d.ts.map +1 -1
  45. package/dist/phaser/core/scene_manager.d.ts.map +1 -1
  46. package/dist/phaser/core/signal.d.ts +7 -7
  47. package/dist/phaser/core/signal.d.ts.map +1 -1
  48. package/dist/phaser/core/signal_binding.d.ts +1 -1
  49. package/dist/phaser/core/signal_binding.d.ts.map +1 -1
  50. package/dist/phaser/core/sound.d.ts +3 -3
  51. package/dist/phaser/core/sound.d.ts.map +1 -1
  52. package/dist/phaser/core/sound_manager.d.ts +1 -1
  53. package/dist/phaser/core/sound_manager.d.ts.map +1 -1
  54. package/dist/phaser/core/sound_sprite.d.ts.map +1 -1
  55. package/dist/phaser/core/stage.d.ts.map +1 -1
  56. package/dist/phaser/core/time.d.ts.map +1 -1
  57. package/dist/phaser/core/timer.d.ts +5 -5
  58. package/dist/phaser/core/timer.d.ts.map +1 -1
  59. package/dist/phaser/core/timer_event.d.ts.map +1 -1
  60. package/dist/phaser/core/tween.d.ts +1 -1
  61. package/dist/phaser/core/tween.d.ts.map +1 -1
  62. package/dist/phaser/core/tween_data.d.ts +1 -1
  63. package/dist/phaser/core/tween_data.d.ts.map +1 -1
  64. package/dist/phaser/core/tween_easing.d.ts.map +1 -1
  65. package/dist/phaser/core/tween_manager.d.ts +1 -1
  66. package/dist/phaser/core/tween_manager.d.ts.map +1 -1
  67. package/dist/phaser/core/world.d.ts.map +1 -1
  68. package/dist/phaser/display/bitmap_text.d.ts +3 -3
  69. package/dist/phaser/display/bitmap_text.d.ts.map +1 -1
  70. package/dist/phaser/display/button.d.ts +12 -11
  71. package/dist/phaser/display/button.d.ts.map +1 -1
  72. package/dist/phaser/display/canvas/buffer.d.ts.map +1 -1
  73. package/dist/phaser/display/canvas/graphics.d.ts +3 -3
  74. package/dist/phaser/display/canvas/graphics.d.ts.map +1 -1
  75. package/dist/phaser/display/canvas/masker.d.ts.map +1 -1
  76. package/dist/phaser/display/canvas/pool.d.ts.map +1 -1
  77. package/dist/phaser/display/canvas/renderer.d.ts +2 -2
  78. package/dist/phaser/display/canvas/renderer.d.ts.map +1 -1
  79. package/dist/phaser/display/canvas/tinter.d.ts +1 -1
  80. package/dist/phaser/display/canvas/tinter.d.ts.map +1 -1
  81. package/dist/phaser/display/canvas/util.d.ts +1 -1
  82. package/dist/phaser/display/canvas/util.d.ts.map +1 -1
  83. package/dist/phaser/display/display_object.d.ts +12 -21
  84. package/dist/phaser/display/display_object.d.ts.map +1 -1
  85. package/dist/phaser/display/graphics.d.ts +1 -1
  86. package/dist/phaser/display/graphics.d.ts.map +1 -1
  87. package/dist/phaser/display/graphics_data.d.ts.map +1 -1
  88. package/dist/phaser/display/graphics_data_util.d.ts.map +1 -1
  89. package/dist/phaser/display/group.d.ts +3 -3
  90. package/dist/phaser/display/group.d.ts.map +1 -1
  91. package/dist/phaser/display/image.d.ts +8 -8
  92. package/dist/phaser/display/image.d.ts.map +1 -1
  93. package/dist/phaser/display/sprite_batch.d.ts.map +1 -1
  94. package/dist/phaser/display/sprite_util.d.ts +5 -5
  95. package/dist/phaser/display/sprite_util.d.ts.map +1 -1
  96. package/dist/phaser/display/text.d.ts +8 -7
  97. package/dist/phaser/display/text.d.ts.map +1 -1
  98. package/dist/phaser/display/webgl/abstract_filter.d.ts.map +1 -1
  99. package/dist/phaser/display/webgl/base_texture.d.ts.map +1 -1
  100. package/dist/phaser/display/webgl/blend_manager.d.ts.map +1 -1
  101. package/dist/phaser/display/webgl/earcut.d.ts +5 -5
  102. package/dist/phaser/display/webgl/earcut.d.ts.map +1 -1
  103. package/dist/phaser/display/webgl/earcut_node.d.ts.map +1 -1
  104. package/dist/phaser/display/webgl/fast_sprite_batch.d.ts +3 -2
  105. package/dist/phaser/display/webgl/fast_sprite_batch.d.ts.map +1 -1
  106. package/dist/phaser/display/webgl/filter_manager.d.ts.map +1 -1
  107. package/dist/phaser/display/webgl/filter_texture.d.ts.map +1 -1
  108. package/dist/phaser/display/webgl/graphics.d.ts +4 -3
  109. package/dist/phaser/display/webgl/graphics.d.ts.map +1 -1
  110. package/dist/phaser/display/webgl/graphics_data.d.ts.map +1 -1
  111. package/dist/phaser/display/webgl/mask_manager.d.ts.map +1 -1
  112. package/dist/phaser/display/webgl/render_texture.d.ts +2 -2
  113. package/dist/phaser/display/webgl/render_texture.d.ts.map +1 -1
  114. package/dist/phaser/display/webgl/renderer.d.ts.map +1 -1
  115. package/dist/phaser/display/webgl/shader/complex.d.ts.map +1 -1
  116. package/dist/phaser/display/webgl/shader/fast.d.ts.map +1 -1
  117. package/dist/phaser/display/webgl/shader/normal.d.ts +1 -1
  118. package/dist/phaser/display/webgl/shader/normal.d.ts.map +1 -1
  119. package/dist/phaser/display/webgl/shader/primitive.d.ts.map +1 -1
  120. package/dist/phaser/display/webgl/shader/strip.d.ts.map +1 -1
  121. package/dist/phaser/display/webgl/shader_manager.d.ts +2 -1
  122. package/dist/phaser/display/webgl/shader_manager.d.ts.map +1 -1
  123. package/dist/phaser/display/webgl/sprite_batch.d.ts +2 -1
  124. package/dist/phaser/display/webgl/sprite_batch.d.ts.map +1 -1
  125. package/dist/phaser/display/webgl/stencil_manager.d.ts.map +1 -1
  126. package/dist/phaser/display/webgl/texture.d.ts.map +1 -1
  127. package/dist/phaser/display/webgl/texture_util.d.ts.map +1 -1
  128. package/dist/phaser/display/webgl/util.d.ts +8 -4
  129. package/dist/phaser/display/webgl/util.d.ts.map +1 -1
  130. package/dist/phaser/geom/circle.d.ts +1 -1
  131. package/dist/phaser/geom/circle.d.ts.map +1 -1
  132. package/dist/phaser/geom/ellipse.d.ts +1 -1
  133. package/dist/phaser/geom/ellipse.d.ts.map +1 -1
  134. package/dist/phaser/geom/line.d.ts +3 -3
  135. package/dist/phaser/geom/line.d.ts.map +1 -1
  136. package/dist/phaser/geom/matrix.d.ts +3 -3
  137. package/dist/phaser/geom/matrix.d.ts.map +1 -1
  138. package/dist/phaser/geom/point.d.ts.map +1 -1
  139. package/dist/phaser/geom/polygon.d.ts +1 -1
  140. package/dist/phaser/geom/polygon.d.ts.map +1 -1
  141. package/dist/phaser/geom/rectangle.d.ts +2 -2
  142. package/dist/phaser/geom/rectangle.d.ts.map +1 -1
  143. package/dist/phaser/geom/rounded_rectangle.d.ts.map +1 -1
  144. package/dist/phaser/geom/util/circle.d.ts +3 -3
  145. package/dist/phaser/geom/util/circle.d.ts.map +1 -1
  146. package/dist/phaser/geom/util/ellipse.d.ts +1 -1
  147. package/dist/phaser/geom/util/ellipse.d.ts.map +1 -1
  148. package/dist/phaser/geom/util/line.d.ts +3 -3
  149. package/dist/phaser/geom/util/line.d.ts.map +1 -1
  150. package/dist/phaser/geom/util/matrix.d.ts +1 -1
  151. package/dist/phaser/geom/util/matrix.d.ts.map +1 -1
  152. package/dist/phaser/geom/util/point.d.ts +15 -15
  153. package/dist/phaser/geom/util/point.d.ts.map +1 -1
  154. package/dist/phaser/geom/util/polygon.d.ts +1 -1
  155. package/dist/phaser/geom/util/polygon.d.ts.map +1 -1
  156. package/dist/phaser/geom/util/rectangle.d.ts +5 -5
  157. package/dist/phaser/geom/util/rectangle.d.ts.map +1 -1
  158. package/dist/phaser/geom/util/rounded_rectangle.d.ts +1 -1
  159. package/dist/phaser/geom/util/rounded_rectangle.d.ts.map +1 -1
  160. package/dist/phaser/util/math.d.ts.map +1 -1
  161. package/package.json +13 -13
  162. package/src/phaser/core/animation.ts +6 -6
  163. package/src/phaser/core/animation_manager.ts +2 -2
  164. package/src/phaser/core/cache.ts +9 -8
  165. package/src/phaser/core/device_util.ts +4 -2
  166. package/src/phaser/core/dom.ts +2 -2
  167. package/src/phaser/core/factory.ts +3 -5
  168. package/src/phaser/core/game.ts +21 -34
  169. package/src/phaser/core/input.ts +2 -2
  170. package/src/phaser/core/input_handler.ts +6 -5
  171. package/src/phaser/core/input_mouse.ts +8 -84
  172. package/src/phaser/core/input_mspointer.ts +12 -8
  173. package/src/phaser/core/input_touch.ts +7 -7
  174. package/src/phaser/core/loader.ts +35 -31
  175. package/src/phaser/core/loader_parser.ts +12 -4
  176. package/src/phaser/core/scale_manager.ts +5 -5
  177. package/src/phaser/core/scene.ts +3 -3
  178. package/src/phaser/core/signal.ts +9 -9
  179. package/src/phaser/core/signal_binding.ts +1 -1
  180. package/src/phaser/core/sound.ts +12 -21
  181. package/src/phaser/core/sound_manager.ts +3 -3
  182. package/src/phaser/core/stage.ts +6 -6
  183. package/src/phaser/core/timer.ts +4 -4
  184. package/src/phaser/core/tween.ts +7 -5
  185. package/src/phaser/core/tween_data.ts +2 -2
  186. package/src/phaser/core/tween_manager.ts +2 -2
  187. package/src/phaser/display/bitmap_text.ts +6 -6
  188. package/src/phaser/display/button.ts +33 -26
  189. package/src/phaser/display/canvas/renderer.ts +2 -2
  190. package/src/phaser/display/canvas/util.ts +12 -12
  191. package/src/phaser/display/display_object.ts +17 -31
  192. package/src/phaser/display/graphics.ts +9 -9
  193. package/src/phaser/display/group.ts +8 -8
  194. package/src/phaser/display/image.ts +21 -21
  195. package/src/phaser/display/sprite_util.ts +1 -1
  196. package/src/phaser/display/text.ts +9 -9
  197. package/src/phaser/display/webgl/earcut.ts +12 -4
  198. package/src/phaser/display/webgl/fast_sprite_batch.ts +4 -2
  199. package/src/phaser/display/webgl/graphics.ts +3 -2
  200. package/src/phaser/display/webgl/render_texture.ts +2 -2
  201. package/src/phaser/display/webgl/shader/normal.ts +1 -1
  202. package/src/phaser/display/webgl/shader_manager.ts +2 -1
  203. package/src/phaser/display/webgl/sprite_batch.ts +2 -1
  204. package/src/phaser/display/webgl/util.ts +9 -0
  205. package/src/phaser/geom/circle.ts +1 -1
  206. package/src/phaser/geom/ellipse.ts +1 -1
  207. package/src/phaser/geom/line.ts +2 -2
  208. package/src/phaser/geom/matrix.ts +3 -3
  209. package/src/phaser/geom/polygon.ts +1 -1
  210. package/src/phaser/geom/rectangle.ts +2 -2
  211. package/src/phaser/geom/util/circle.ts +8 -3
  212. package/src/phaser/geom/util/line.ts +9 -2
  213. package/src/phaser/geom/util/matrix.ts +1 -1
  214. package/src/phaser/geom/util/point.ts +15 -15
  215. package/src/phaser/geom/util/polygon.ts +1 -1
  216. package/src/phaser/geom/util/rectangle.ts +5 -5
  217. package/src/phaser/geom/util/rounded_rectangle.ts +1 -1
@@ -220,7 +220,7 @@ export class Input {
220
220
  const id = this.pointers.length + 1;
221
221
  const pointer = new Pointer(this.game, id, POINTER_CONTACT);
222
222
  this.pointers.push(pointer);
223
- this[`pointer${id}`] = pointer;
223
+ (this as unknown as Record<string, Pointer>)[`pointer${id}`] = pointer;
224
224
  return pointer;
225
225
  }
226
226
 
@@ -420,7 +420,7 @@ export class Input {
420
420
  getLocalPosition(
421
421
  displayObject: import('../display/display_object.js').DisplayObject,
422
422
  pointer: Pointer,
423
- output: Point = null
423
+ output: Point | null = null
424
424
  ) {
425
425
  const result = output || new Point();
426
426
  const wt = displayObject.worldTransform;
@@ -42,7 +42,7 @@ export class InputHandler {
42
42
  _dragTimePass!: any;
43
43
  _dragDistancePass!: any;
44
44
  _wasEnabled!: any;
45
- _tempPoint!: any;
45
+ _tempPoint!: import('../geom/point.js').Point;
46
46
  _pointerData!: any;
47
47
  _dx!: any;
48
48
  _dy!: any;
@@ -324,7 +324,7 @@ export class InputHandler {
324
324
  * @param {number} pointerId - TBD.
325
325
  * @returns {boolean} TBD.
326
326
  */
327
- pointerOver(pointerId: number = null) {
327
+ pointerOver(pointerId: number | null = null) {
328
328
  if (!this.enabled) {
329
329
  return false;
330
330
  }
@@ -344,7 +344,7 @@ export class InputHandler {
344
344
  * @param {number} pointerId - TBD.
345
345
  * @returns {boolean} TBD.
346
346
  */
347
- pointerOut(pointerId: number = null) {
347
+ pointerOut(pointerId: number | null = null) {
348
348
  if (!this.enabled) {
349
349
  return false;
350
350
  }
@@ -354,6 +354,7 @@ export class InputHandler {
354
354
  return true;
355
355
  }
356
356
  }
357
+ return false;
357
358
  }
358
359
  return this._pointerData[pointerId].isOut;
359
360
  }
@@ -449,10 +450,10 @@ export class InputHandler {
449
450
  * @param {import('./input_pointer.js').Pointer} pointer - TBD.
450
451
  * @returns {boolean} TBD.
451
452
  */
452
- checkPixel(x: number, y: number, pointer?: any) {
453
+ checkPixel(x: number | null, y: number | null, pointer?: any) {
453
454
  // Grab a pixel from our image into the hitCanvas and then test it
454
455
  if (this.sprite.texture.baseTexture.source) {
455
- if (x === null && y === null) {
456
+ if (x === null || y === null) {
456
457
  // Use the pointer parameter
457
458
  this.game.input.getLocalPosition(this.sprite, pointer, this._tempPoint);
458
459
  x = this._tempPoint.x;
@@ -1,79 +1,3 @@
1
- /* const NO_BUTTON = -1;
2
- const LEFT_BUTTON = 0;
3
- const MIDDLE_BUTTON = 1;
4
- const RIGHT_BUTTON = 2;
5
- const BACK_BUTTON = 3;
6
- const FORWARD_BUTTON = 4;
7
- const WHEEL_UP = 1;
8
- const WHEEL_DOWN = -1; */
9
-
10
- class WheelEventProxy {
11
- _scaleFactor!: any;
12
- _deltaMode!: any;
13
- originalEvent!: any;
14
- type!: any;
15
- deltaZ!: any;
16
- /**
17
- * TBD.
18
- * @param {number} scaleFactor - TBD.
19
- * @param {number} deltaMode - TBD.
20
- */
21
- constructor(scaleFactor: number, deltaMode: number) {
22
- this._scaleFactor = scaleFactor;
23
- this._deltaMode = deltaMode;
24
- this.originalEvent = null;
25
- this.type = 'wheel';
26
- this.deltaZ = { value: 0 };
27
- }
28
-
29
- /**
30
- * TBD.
31
- * @param {WheelEvent} event - TBD.
32
- * @returns {WheelEventProxy} TBD.
33
- */
34
- bindEvent(event: any) {
35
- // TODO
36
- console.warn('input_mouse.bindEvent() is not implemented');
37
- /*
38
- if (!window.PhaserRegistry.isMouseWheelEventBinded && event) {
39
- const makeBinder = (name) => {
40
- return () => {
41
- const v = this.originalEvent[name];
42
- return typeof v !== 'function' ? v : v.bind(this.originalEvent);
43
- };
44
- };
45
- window.PhaserRegistry.isMouseWheelEventBinded = true;
46
- }
47
- */
48
- this.originalEvent = event;
49
- return this;
50
- }
51
-
52
- /**
53
- * TBD.
54
- * @returns {number} TBD.
55
- */
56
- get deltaMode() {
57
- return this._deltaMode;
58
- }
59
-
60
- /**
61
- * TBD.
62
- * @returns {number} TBD.
63
- */
64
- get deltaY() {
65
- return this._scaleFactor * (this.originalEvent.wheelDelta || this.originalEvent.detail) || 0;
66
- }
67
-
68
- /**
69
- * TBD.
70
- * @returns {number} TBD.
71
- */
72
- get deltaX() {
73
- return this._scaleFactor * this.originalEvent.wheelDeltaX || 0;
74
- }
75
- }
76
-
77
1
  export class Mouse {
78
2
  game!: any;
79
3
  input!: any;
@@ -91,14 +15,14 @@ export class Mouse {
91
15
  locked!: any;
92
16
  stopOnGameOut!: any;
93
17
  event!: any;
94
- _onMouseDown!: any;
95
- _onMouseMove!: any;
96
- _onMouseUp!: any;
97
- _onMouseOut!: any;
98
- _onMouseOver!: any;
99
- _onMouseWheel!: any;
100
- _onMouseUpGlobal!: any;
101
- _onMouseOutGlobal!: any;
18
+ _onMouseDown!: ((event: MouseEvent) => void) | null;
19
+ _onMouseMove!: ((event: MouseEvent) => void) | null;
20
+ _onMouseUp!: ((event: MouseEvent) => void) | null;
21
+ _onMouseOut!: ((event: MouseEvent) => void) | null;
22
+ _onMouseOver!: ((event: MouseEvent) => void) | null;
23
+ _onMouseWheel!: ((event: WheelEvent) => void) | null;
24
+ _onMouseUpGlobal!: (event: MouseEvent) => void;
25
+ _onMouseOutGlobal!: (event: MouseEvent) => void;
102
26
  _wheelEvent!: any;
103
27
  /**
104
28
  * TBD.
@@ -9,12 +9,12 @@ export class MSPointer {
9
9
  button!: any;
10
10
  event!: any;
11
11
  enabled!: any;
12
- _onMSPointerDown!: any;
13
- _onMSPointerMove!: any;
14
- _onMSPointerUp!: any;
15
- _onMSPointerUpGlobal!: any;
16
- _onMSPointerOut!: any;
17
- _onMSPointerOver!: any;
12
+ _onMSPointerDown!: ((event: PointerEvent) => void) | null;
13
+ _onMSPointerMove!: ((event: PointerEvent) => void) | null;
14
+ _onMSPointerUp!: ((event: PointerEvent) => void) | null;
15
+ _onMSPointerUpGlobal!: ((event: Event) => void) | null;
16
+ _onMSPointerOut!: ((event: PointerEvent) => void) | null;
17
+ _onMSPointerOver!: ((event: PointerEvent) => void) | null;
18
18
  /**
19
19
  * TBD.
20
20
  * @param {import('./game.js').Game} game - TBD.
@@ -86,11 +86,15 @@ export class MSPointer {
86
86
  canvas.removeEventListener('pointerdown', this._onMSPointerDown, false);
87
87
  canvas.removeEventListener('pointermove', this._onMSPointerMove, false);
88
88
  canvas.removeEventListener('pointerup', this._onMSPointerUp, false);
89
- window.removeEventListener('MSPointerUp', this._onMSPointerUpGlobal, true);
89
+ if (this._onMSPointerUpGlobal) {
90
+ window.removeEventListener('MSPointerUp', this._onMSPointerUpGlobal, true);
91
+ }
90
92
  canvas.removeEventListener('MSPointerOver', this._onMSPointerOver, true);
91
93
  canvas.removeEventListener('MSPointerOut', this._onMSPointerOut, true);
92
94
  // IE11+ uses non-prefix events
93
- window.removeEventListener('pointerup', this._onMSPointerUpGlobal, true);
95
+ if (this._onMSPointerUpGlobal) {
96
+ window.removeEventListener('pointerup', this._onMSPointerUpGlobal, true);
97
+ }
94
98
  canvas.removeEventListener('pointerover', this._onMSPointerOver, true);
95
99
  canvas.removeEventListener('pointerout', this._onMSPointerOut, true);
96
100
  }
@@ -10,13 +10,13 @@ export class Touch {
10
10
  touchCancelCallback!: any;
11
11
  preventDefault!: any;
12
12
  event!: any;
13
- _onTouchStart!: any;
14
- _onTouchMove!: any;
15
- _onTouchEnd!: any;
16
- _onTouchEnter!: any;
17
- _onTouchLeave!: any;
18
- _onTouchCancel!: any;
19
- _documentTouchMove!: any;
13
+ _onTouchStart!: ((event: TouchEvent) => void) | null;
14
+ _onTouchMove!: ((event: TouchEvent) => void) | null;
15
+ _onTouchEnd!: ((event: TouchEvent) => void) | null;
16
+ _onTouchEnter!: ((event: TouchEvent) => void) | null;
17
+ _onTouchLeave!: ((event: TouchEvent) => void) | null;
18
+ _onTouchCancel!: ((event: TouchEvent) => void) | null;
19
+ _documentTouchMove!: (event: TouchEvent) => void;
20
20
  /**
21
21
  * TBD.
22
22
  * @param {import('./game.js').Game} game - TBD.
@@ -204,10 +204,10 @@ export class Loader {
204
204
  addToFileList(
205
205
  type: string,
206
206
  key: string = '',
207
- url: string = null,
208
- properties: any = null,
207
+ url: string | null = null,
208
+ properties: any | null = null,
209
209
  overwrite: boolean = false,
210
- extension: string = null
210
+ extension: string | null = null
211
211
  ) {
212
212
  if (key === undefined || key === '') {
213
213
  this.game.logger.warn(`Loader: Invalid or no key given of type ${type}`);
@@ -221,7 +221,7 @@ export class Loader {
221
221
  return this;
222
222
  }
223
223
  }
224
- const file = {
224
+ const file: Record<string, unknown> = {
225
225
  type,
226
226
  key,
227
227
  path: this.path,
@@ -233,10 +233,9 @@ export class Loader {
233
233
  error: false,
234
234
  };
235
235
  if (properties) {
236
- const keys = Object.keys(properties);
237
- for (let i = 0; i < keys.length; i += 1) {
238
- const prop = keys[i];
239
- file[prop] = properties[prop];
236
+ const extraProperties = properties as Record<string, unknown>;
237
+ for (const prop of Object.keys(extraProperties)) {
238
+ file[prop] = extraProperties[prop];
240
239
  }
241
240
  }
242
241
  const fileIndex = this.getAssetIndex(type, key);
@@ -282,7 +281,7 @@ export class Loader {
282
281
  url: url,
283
282
  path: this.path,
284
283
  syncPoint: true,
285
- data: null,
284
+ data: null as unknown,
286
285
  loading: false,
287
286
  loaded: false,
288
287
  error: false,
@@ -454,9 +453,9 @@ export class Loader {
454
453
  */
455
454
  bitmapFont(
456
455
  key: string,
457
- textureURL: string = null,
458
- atlasURL: string = null,
459
- atlasData: any = null,
456
+ textureURL: string | null = null,
457
+ atlasURL: string | null = null,
458
+ atlasData: any | null = null,
460
459
  xSpacing: number = 0,
461
460
  ySpacing: number = 0
462
461
  ) {
@@ -504,8 +503,8 @@ export class Loader {
504
503
  atlas(
505
504
  key: string,
506
505
  textureURL: string,
507
- atlasURL: string = null,
508
- atlasData: any = null,
506
+ atlasURL: string | null = null,
507
+ atlasData: any | null = null,
509
508
  format: number = TEXTURE_ATLAS_JSON_HASH
510
509
  ) {
511
510
  if (textureURL === undefined || textureURL === null) {
@@ -888,7 +887,7 @@ export class Loader {
888
887
  * @param {Function} onload - The function to call when the file loads successfully.
889
888
  * @param {Function} onerror - The function to call if the file fails to load.
890
889
  */
891
- xhrLoad(file: any, url: any, type: any, onload: Function, onerror: Function = null) {
890
+ xhrLoad(file: any, url: any, type: any, onload: Function, onerror: Function | null = null) {
892
891
  this.log('xhrLoad', file);
893
892
  const scope = this;
894
893
  const xhr = new XMLHttpRequest();
@@ -1007,7 +1006,7 @@ export class Loader {
1007
1006
  * @param {XMLHttpRequest} xhr - The XMLHttpRequest object that failed.
1008
1007
  * @param {number | string} reason - The error code or message explaining the failure.
1009
1008
  */
1010
- fileError(file: any, xhr: any = null, reason: any = 0) {
1009
+ fileError(file: any, xhr: any | null = null, reason: any = 0) {
1011
1010
  // const url = file.requestUrl || this.transformUrl(file.url, file);
1012
1011
  if (!reason && xhr) {
1013
1012
  reason = xhr.status;
@@ -1070,22 +1069,27 @@ export class Loader {
1070
1069
  } else {
1071
1070
  // Load the XML before carrying on with the next file
1072
1071
  loadNext = false;
1073
- this.xhrLoad(file, this.transformUrl(file.atlasURL, file), 'text', (bitmapFontFile, bitmapFontXhr) => {
1074
- let json;
1075
- try {
1076
- // Try to parse as JSON, if it fails, then it's hopefully XML
1077
- json = JSON.parse(bitmapFontXhr.responseText);
1078
- } catch (error) {
1079
- // pass
1072
+ this.xhrLoad(
1073
+ file,
1074
+ this.transformUrl(file.atlasURL, file),
1075
+ 'text',
1076
+ (bitmapFontFile: Record<string, unknown>, bitmapFontXhr: XMLHttpRequest) => {
1077
+ let json;
1078
+ try {
1079
+ // Try to parse as JSON, if it fails, then it's hopefully XML
1080
+ json = JSON.parse(bitmapFontXhr.responseText);
1081
+ } catch (error) {
1082
+ // pass
1083
+ }
1084
+ if (json) {
1085
+ bitmapFontFile.atlasType = 'json';
1086
+ this.jsonLoadComplete(bitmapFontFile, bitmapFontXhr);
1087
+ } else {
1088
+ bitmapFontFile.atlasType = 'xml';
1089
+ this.xmlLoadComplete(bitmapFontFile, bitmapFontXhr);
1090
+ }
1080
1091
  }
1081
- if (json) {
1082
- bitmapFontFile.atlasType = 'json';
1083
- this.jsonLoadComplete(bitmapFontFile, bitmapFontXhr);
1084
- } else {
1085
- bitmapFontFile.atlasType = 'xml';
1086
- this.xmlLoadComplete(bitmapFontFile, bitmapFontXhr);
1087
- }
1088
- });
1092
+ );
1089
1093
  }
1090
1094
  break;
1091
1095
  case 'audio':
@@ -94,13 +94,18 @@ export const jsonBitmapFont = (
94
94
  xSpacing: number,
95
95
  ySpacing: number
96
96
  ) => {
97
- const data = {
97
+ const data: {
98
+ font: string;
99
+ size: number;
100
+ lineHeight: number;
101
+ chars: Record<number, { kerning: Record<number, number>; [key: string]: unknown }>;
102
+ } = {
98
103
  font: json.font.info._face,
99
104
  size: Number.parseInt(json.font.info._size, 10),
100
105
  lineHeight: Number.parseInt(json.font.common._lineHeight, 10) + ySpacing,
101
106
  chars: {},
102
107
  };
103
- json.font.chars.char.forEach((letter) => {
108
+ json.font.chars.char.forEach((letter: Record<string, string>) => {
104
109
  const charCode = Number.parseInt(letter._id, 10);
105
110
  data.chars[charCode] = {
106
111
  x: Number.parseInt(letter._x, 10),
@@ -114,8 +119,11 @@ export const jsonBitmapFont = (
114
119
  };
115
120
  });
116
121
  if (json.font.kernings && json.font.kernings.kerning) {
117
- json.font.kernings.kerning.forEach((kerning) => {
118
- data.chars[kerning._second].kerning[kerning._first] = Number.parseInt(kerning._amount, 10);
122
+ json.font.kernings.kerning.forEach((kerning: Record<string, string>) => {
123
+ const char = data.chars[Number.parseInt(kerning._second, 10)];
124
+ if (char) {
125
+ char.kerning[Number.parseInt(kerning._first, 10)] = Number.parseInt(kerning._amount, 10);
126
+ }
119
127
  });
120
128
  }
121
129
  return finalizeBitmapFont(baseTexture, data);
@@ -60,10 +60,10 @@ export class ScaleManager {
60
60
  _lastReportedCanvasSize!: any;
61
61
  _lastReportedGameSize!: any;
62
62
  _booted!: any;
63
- _orientationChange!: any;
64
- _windowResize!: any;
65
- _fullScreenChange!: any;
66
- _fullScreenError!: any;
63
+ _orientationChange!: (event: Event) => void;
64
+ _windowResize!: (event: UIEvent) => void;
65
+ _fullScreenChange!: (event: Event) => void;
66
+ _fullScreenError!: (event: Event) => void;
67
67
  /**
68
68
  * TBD.
69
69
  * @param {import('./game.js').Game} game - TBD.
@@ -826,7 +826,7 @@ export class ScaleManager {
826
826
  return false;
827
827
  }
828
828
  this.hasPhaserSetFullScreen = false;
829
- document[this.game.device.cancelFullscreen]();
829
+ (document as unknown as Record<string, () => void>)[this.game.device.cancelFullscreen]();
830
830
  return true;
831
831
  }
832
832
 
@@ -43,10 +43,10 @@ export class Scene {
43
43
 
44
44
  /**
45
45
  * Handle scene resize.
46
- * @param {number} width - The new width of the scene.
47
- * @param {number} height - The new height of the scene.
46
+ * @param {number} _width - The new width of the scene.
47
+ * @param {number} _height - The new height of the scene.
48
48
  */
49
- resize(width: number, height: number) {
49
+ resize(_width: number, _height: number) {
50
50
  // inherit
51
51
  }
52
52
 
@@ -48,7 +48,7 @@ export class Signal {
48
48
  _registerListener(
49
49
  listener: Function,
50
50
  isOnce: boolean = false,
51
- listenerContext: any = null,
51
+ listenerContext: any | null = null,
52
52
  priority: number = 0,
53
53
  args: any = null
54
54
  ) {
@@ -95,7 +95,7 @@ export class Signal {
95
95
  * @param {object} context - The context of the listener.
96
96
  * @returns {number} The index of the listener in the bindings array, or -1 if not found.
97
97
  */
98
- _indexOfListener(listener: Function, context: any = null) {
98
+ _indexOfListener(listener: Function, context: any | null = null) {
99
99
  if (!this._bindings) {
100
100
  return -1;
101
101
  }
@@ -117,7 +117,7 @@ export class Signal {
117
117
  * @param {object} context - The context of the listener.
118
118
  * @returns {boolean} True if the listener is registered, false otherwise.
119
119
  */
120
- has(listener: Function, context: any = null) {
120
+ has(listener: Function, context: any | null = null) {
121
121
  return this._indexOfListener(listener, context) !== -1;
122
122
  }
123
123
 
@@ -129,7 +129,7 @@ export class Signal {
129
129
  * @param {...any} args - Additional arguments to pass to the listener.
130
130
  * @returns {SignalBinding} The binding for this listener.
131
131
  */
132
- add(listener: Function, listenerContext: any = null, priority: number = 0, ...args: any[]) {
132
+ add(listener: Function, listenerContext: any | null = null, priority: number = 0, ...args: any[]) {
133
133
  this.validateListener(listener, 'add');
134
134
  return this._registerListener(listener, false, listenerContext, priority, args);
135
135
  }
@@ -142,7 +142,7 @@ export class Signal {
142
142
  * @param {...any} args - Additional arguments to pass to the listener.
143
143
  * @returns {SignalBinding} The binding for this listener.
144
144
  */
145
- addOnce(listener: Function, listenerContext: any = null, priority: number = 0, ...args: any[]) {
145
+ addOnce(listener: Function, listenerContext: any | null = null, priority: number = 0, ...args: any[]) {
146
146
  this.validateListener(listener, 'addOnce');
147
147
  return this._registerListener(listener, true, listenerContext, priority, args);
148
148
  }
@@ -153,7 +153,7 @@ export class Signal {
153
153
  * @param {object} context - The context of the listener.
154
154
  * @returns {Function} The removed listener function.
155
155
  */
156
- remove(listener: Function, context: any = null) {
156
+ remove(listener: Function, context: any | null = null) {
157
157
  this.validateListener(listener, 'remove');
158
158
  const i = this._indexOfListener(listener, context);
159
159
  if (i !== -1) {
@@ -168,7 +168,7 @@ export class Signal {
168
168
  * Remove all listeners from the signal, or only those in a specific context.
169
169
  * @param {object} context - The context to filter listeners by, or null to remove all.
170
170
  */
171
- removeAll(context: any = null) {
171
+ removeAll(context: any | null = null) {
172
172
  if (!this._bindings) {
173
173
  return;
174
174
  }
@@ -268,7 +268,7 @@ export class Signal {
268
268
  get boundDispatch() {
269
269
  const _this = this;
270
270
  if (!this._boundDispatch) {
271
- this._boundDispatch = (...rest) => _this.dispatch(...rest);
271
+ this._boundDispatch = (...rest: unknown[]) => _this.dispatch(...rest);
272
272
  }
273
273
  return this._boundDispatch;
274
274
  }
@@ -279,7 +279,7 @@ export class Signal {
279
279
  */
280
280
  toPromise() {
281
281
  return new Promise((resolve) => {
282
- this.addOnce((...args) => {
282
+ this.addOnce((...args: unknown[]) => {
283
283
  resolve(args.length <= 1 ? args[0] : args);
284
284
  }, this);
285
285
  });
@@ -22,7 +22,7 @@ export class SignalBinding {
22
22
  signal: import('./signal.js').Signal,
23
23
  listener: Function,
24
24
  isOnce: boolean = false,
25
- listenerContext: any = null,
25
+ listenerContext: any | null = null,
26
26
  priority: number = 0,
27
27
  args: any = null
28
28
  ) {
@@ -27,8 +27,8 @@ export class Sound {
27
27
  allowMultiple!: boolean;
28
28
  externalNode!: AudioNode | null;
29
29
  masterGainNode!: GainNode | null;
30
- gainNode!: GainNode | null;
31
- _sound!: AudioBufferSourceNode | null;
30
+ gainNode!: GainNode;
31
+ _sound!: AudioBufferSourceNode;
32
32
  _markedToDelete!: boolean;
33
33
  _removeFromSoundManager!: boolean;
34
34
  onPlay!: Signal;
@@ -61,7 +61,7 @@ export class Sound {
61
61
  key: string,
62
62
  volume: number = 1,
63
63
  loop: boolean = false,
64
- connect: boolean = null
64
+ connect: boolean | null = null
65
65
  ) {
66
66
  // TODO
67
67
  // https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API/Migrating_from_webkitAudioContext
@@ -73,7 +73,6 @@ export class Sound {
73
73
  this.key = key;
74
74
  this.loop = loop;
75
75
  this.markers = {};
76
- this.context = null;
77
76
  this.autoplay = false;
78
77
  this.totalDuration = 0;
79
78
  this.startTime = 0;
@@ -93,24 +92,16 @@ export class Sound {
93
92
  this.allowMultiple = false;
94
93
  /** @type {GainNode} */
95
94
  this.externalNode = null;
96
- /** @type {GainNode} */
97
- this.masterGainNode = null;
98
- /** @type {GainNode} */
99
- this.gainNode = null;
100
- /** @type {AudioBufferSourceNode} */
101
- this._sound = null;
102
95
  this._markedToDelete = false;
103
96
  this._removeFromSoundManager = false;
104
97
  this.context = this.game.sound.context;
105
98
  this.masterGainNode = this.game.sound.masterGain;
106
- if (this.context.createGain === undefined) {
107
- this.gainNode = (this.context as any).createGainNode();
108
- } else {
109
- this.gainNode = this.context.createGain();
110
- }
111
- this.gainNode.gain.value = volume * this.game.sound.volume;
112
- if (connect) {
113
- this.gainNode.connect(this.masterGainNode);
99
+ const gainNode: GainNode =
100
+ this.context.createGain === undefined ? (this.context as any).createGainNode() : this.context.createGain();
101
+ this.gainNode = gainNode;
102
+ gainNode.gain.value = volume * this.game.sound.volume;
103
+ if (connect && this.masterGainNode) {
104
+ gainNode.connect(this.masterGainNode);
114
105
  }
115
106
  this.onPlay = new Signal();
116
107
  this.onPause = new Signal();
@@ -192,7 +183,7 @@ export class Sound {
192
183
  this.game.sound.remove(this);
193
184
  } else {
194
185
  this.markers = {};
195
- this.context = null;
186
+ this.context = null!;
196
187
  this._buffer = null;
197
188
  this.externalNode = null;
198
189
  this.onPlay.dispose();
@@ -348,7 +339,7 @@ export class Sound {
348
339
  if (!this.loop && marker === '') {
349
340
  this._sound.onended = this.onEndedHandler.bind(this);
350
341
  }
351
- this.totalDuration = this._sound.buffer.duration;
342
+ this.totalDuration = this._sound.buffer?.duration ?? 0;
352
343
  if (this.duration === 0) {
353
344
  this.duration = this.totalDuration;
354
345
  this.durationMS = Math.ceil(this.totalDuration * 1000);
@@ -520,7 +511,7 @@ export class Sound {
520
511
  this.game.sound.remove(this);
521
512
  } else {
522
513
  this.markers = {};
523
- this.context = null;
514
+ this.context = null!;
524
515
  this._buffer = null;
525
516
  this.externalNode = null;
526
517
  this.onPlay.dispose();
@@ -209,7 +209,7 @@ export class SoundManager {
209
209
  });
210
210
  this.removeUnlockHandlers();
211
211
  })
212
- .catch((error) => {
212
+ .catch((error: unknown) => {
213
213
  this.game.logger.info('onContextResumeReject', {
214
214
  initialState,
215
215
  state: this.context.state,
@@ -280,10 +280,10 @@ export class SoundManager {
280
280
  this.game.cache.updateSound(key, 'isDecoding', true);
281
281
  this.context
282
282
  .decodeAudioData(soundData)
283
- .then((buffer) => {
283
+ .then((buffer: AudioBuffer) => {
284
284
  this.game.cache.decodedSound(key, buffer);
285
285
  })
286
- .catch((error) => {
286
+ .catch((error: unknown) => {
287
287
  const typedError = error instanceof Error ? error : new Error(String(error));
288
288
  this.game.logger.exception('SoundManager', typedError, { tags: { 'asset.key': key } });
289
289
  if (typedError.name === 'InvalidStateError') {
@@ -62,7 +62,7 @@ export class Stage extends DisplayObject {
62
62
  /**
63
63
  * Pre-updates the stage and its children.
64
64
  */
65
- preUpdate() {
65
+ override preUpdate() {
66
66
  this.currentRenderOrderID = 0;
67
67
  // This can't loop in reverse, we need the renderOrderID to be in sequence
68
68
  for (let i = 0; i < this.children.length; i += 1) {
@@ -73,7 +73,7 @@ export class Stage extends DisplayObject {
73
73
  /**
74
74
  * Updates the stage and its children.
75
75
  */
76
- update() {
76
+ override update() {
77
77
  let i = this.children.length;
78
78
  while (i) {
79
79
  i -= 1;
@@ -84,7 +84,7 @@ export class Stage extends DisplayObject {
84
84
  /**
85
85
  * Post-updates the stage and its children.
86
86
  */
87
- postUpdate() {
87
+ override postUpdate() {
88
88
  for (let i = 0; i < this.children.length; i += 1) {
89
89
  this.children[i].postUpdate();
90
90
  }
@@ -94,7 +94,7 @@ export class Stage extends DisplayObject {
94
94
  /**
95
95
  * Updates the stage's transformation matrix.
96
96
  */
97
- updateTransform(): this {
97
+ override updateTransform(): this {
98
98
  this.worldAlpha = 1;
99
99
  for (let i = 0; i < this.children.length; i += 1) {
100
100
  this.children[i].updateTransform();
@@ -105,9 +105,9 @@ export class Stage extends DisplayObject {
105
105
  /**
106
106
  * Destroys the stage and cleans up resources.
107
107
  */
108
- destroy() {
108
+ override destroy() {
109
109
  this.exists = false;
110
- this.game = null;
110
+ this.game = null!;
111
111
  this.worldTransform = null;
112
112
  this._bgColor = null;
113
113
  }