@vpmedia/phaser 1.115.0 → 1.117.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 (193) hide show
  1. package/dist/index.js +56 -96
  2. package/dist/index.js.map +1 -1
  3. package/dist/phaser/core/animation.d.ts.map +1 -1
  4. package/dist/phaser/core/animation_manager.d.ts +15 -14
  5. package/dist/phaser/core/animation_manager.d.ts.map +1 -1
  6. package/dist/phaser/core/animation_parser.d.ts.map +1 -1
  7. package/dist/phaser/core/array_set.d.ts.map +1 -1
  8. package/dist/phaser/core/cache.d.ts +10 -9
  9. package/dist/phaser/core/cache.d.ts.map +1 -1
  10. package/dist/phaser/core/device_util.d.ts.map +1 -1
  11. package/dist/phaser/core/dom.d.ts.map +1 -1
  12. package/dist/phaser/core/factory.d.ts.map +1 -1
  13. package/dist/phaser/core/game.d.ts.map +1 -1
  14. package/dist/phaser/core/input.d.ts +20 -20
  15. package/dist/phaser/core/input.d.ts.map +1 -1
  16. package/dist/phaser/core/input_handler.d.ts +11 -13
  17. package/dist/phaser/core/input_handler.d.ts.map +1 -1
  18. package/dist/phaser/core/input_mouse.d.ts.map +1 -1
  19. package/dist/phaser/core/input_mspointer.d.ts.map +1 -1
  20. package/dist/phaser/core/input_pointer.d.ts +19 -8
  21. package/dist/phaser/core/input_pointer.d.ts.map +1 -1
  22. package/dist/phaser/core/input_touch.d.ts.map +1 -1
  23. package/dist/phaser/core/loader.d.ts.map +1 -1
  24. package/dist/phaser/core/raf.d.ts.map +1 -1
  25. package/dist/phaser/core/scale_manager.d.ts +38 -13
  26. package/dist/phaser/core/scale_manager.d.ts.map +1 -1
  27. package/dist/phaser/core/scene.d.ts.map +1 -1
  28. package/dist/phaser/core/scene_manager.d.ts.map +1 -1
  29. package/dist/phaser/core/signal.d.ts.map +1 -1
  30. package/dist/phaser/core/signal_binding.d.ts.map +1 -1
  31. package/dist/phaser/core/sound.d.ts +2 -2
  32. package/dist/phaser/core/sound.d.ts.map +1 -1
  33. package/dist/phaser/core/sound_manager.d.ts +24 -22
  34. package/dist/phaser/core/sound_manager.d.ts.map +1 -1
  35. package/dist/phaser/core/sound_sprite.d.ts.map +1 -1
  36. package/dist/phaser/core/stage.d.ts.map +1 -1
  37. package/dist/phaser/core/time.d.ts.map +1 -1
  38. package/dist/phaser/core/timer.d.ts +1 -1
  39. package/dist/phaser/core/timer.d.ts.map +1 -1
  40. package/dist/phaser/core/tween.d.ts.map +1 -1
  41. package/dist/phaser/core/tween_data.d.ts +26 -26
  42. package/dist/phaser/core/tween_data.d.ts.map +1 -1
  43. package/dist/phaser/core/tween_manager.d.ts.map +1 -1
  44. package/dist/phaser/core/world.d.ts.map +1 -1
  45. package/dist/phaser/display/bitmap_text.d.ts.map +1 -1
  46. package/dist/phaser/display/button.d.ts.map +1 -1
  47. package/dist/phaser/display/canvas/buffer.d.ts.map +1 -1
  48. package/dist/phaser/display/canvas/graphics.d.ts.map +1 -1
  49. package/dist/phaser/display/canvas/masker.d.ts.map +1 -1
  50. package/dist/phaser/display/canvas/pool.d.ts.map +1 -1
  51. package/dist/phaser/display/canvas/renderer.d.ts.map +1 -1
  52. package/dist/phaser/display/canvas/tinter.d.ts +3 -2
  53. package/dist/phaser/display/canvas/tinter.d.ts.map +1 -1
  54. package/dist/phaser/display/canvas/util.d.ts.map +1 -1
  55. package/dist/phaser/display/display_object.d.ts.map +1 -1
  56. package/dist/phaser/display/graphics.d.ts.map +1 -1
  57. package/dist/phaser/display/graphics_data.d.ts.map +1 -1
  58. package/dist/phaser/display/graphics_data_util.d.ts.map +1 -1
  59. package/dist/phaser/display/group.d.ts.map +1 -1
  60. package/dist/phaser/display/image.d.ts +2 -2
  61. package/dist/phaser/display/image.d.ts.map +1 -1
  62. package/dist/phaser/display/sprite_util.d.ts.map +1 -1
  63. package/dist/phaser/display/text.d.ts.map +1 -1
  64. package/dist/phaser/display/webgl/abstract_filter.d.ts.map +1 -1
  65. package/dist/phaser/display/webgl/base_texture.d.ts +12 -10
  66. package/dist/phaser/display/webgl/base_texture.d.ts.map +1 -1
  67. package/dist/phaser/display/webgl/blend_manager.d.ts.map +1 -1
  68. package/dist/phaser/display/webgl/earcut.d.ts.map +1 -1
  69. package/dist/phaser/display/webgl/fast_sprite_batch.d.ts +13 -12
  70. package/dist/phaser/display/webgl/fast_sprite_batch.d.ts.map +1 -1
  71. package/dist/phaser/display/webgl/filter_manager.d.ts.map +1 -1
  72. package/dist/phaser/display/webgl/filter_texture.d.ts.map +1 -1
  73. package/dist/phaser/display/webgl/graphics.d.ts +9 -7
  74. package/dist/phaser/display/webgl/graphics.d.ts.map +1 -1
  75. package/dist/phaser/display/webgl/graphics_data.d.ts.map +1 -1
  76. package/dist/phaser/display/webgl/mask_manager.d.ts.map +1 -1
  77. package/dist/phaser/display/webgl/render_texture.d.ts.map +1 -1
  78. package/dist/phaser/display/webgl/renderer.d.ts +12 -10
  79. package/dist/phaser/display/webgl/renderer.d.ts.map +1 -1
  80. package/dist/phaser/display/webgl/shader/normal.d.ts.map +1 -1
  81. package/dist/phaser/display/webgl/shader_manager.d.ts.map +1 -1
  82. package/dist/phaser/display/webgl/sprite_batch.d.ts.map +1 -1
  83. package/dist/phaser/display/webgl/stencil_manager.d.ts.map +1 -1
  84. package/dist/phaser/display/webgl/texture.d.ts +18 -33
  85. package/dist/phaser/display/webgl/texture.d.ts.map +1 -1
  86. package/dist/phaser/display/webgl/texture_util.d.ts.map +1 -1
  87. package/dist/phaser/display/webgl/util.d.ts.map +1 -1
  88. package/dist/phaser/geom/circle.d.ts.map +1 -1
  89. package/dist/phaser/geom/ellipse.d.ts.map +1 -1
  90. package/dist/phaser/geom/line.d.ts.map +1 -1
  91. package/dist/phaser/geom/matrix.d.ts +1 -1
  92. package/dist/phaser/geom/matrix.d.ts.map +1 -1
  93. package/dist/phaser/geom/point.d.ts.map +1 -1
  94. package/dist/phaser/geom/polygon.d.ts.map +1 -1
  95. package/dist/phaser/geom/rectangle.d.ts.map +1 -1
  96. package/dist/phaser/geom/rounded_rectangle.d.ts.map +1 -1
  97. package/dist/phaser/geom/util/circle.d.ts.map +1 -1
  98. package/dist/phaser/geom/util/ellipse.d.ts.map +1 -1
  99. package/dist/phaser/geom/util/line.d.ts +5 -4
  100. package/dist/phaser/geom/util/line.d.ts.map +1 -1
  101. package/dist/phaser/geom/util/matrix.d.ts.map +1 -1
  102. package/dist/phaser/geom/util/point.d.ts.map +1 -1
  103. package/dist/phaser/geom/util/polygon.d.ts.map +1 -1
  104. package/dist/phaser/geom/util/rectangle.d.ts +10 -1
  105. package/dist/phaser/geom/util/rectangle.d.ts.map +1 -1
  106. package/dist/phaser/geom/util/rounded_rectangle.d.ts.map +1 -1
  107. package/package.json +1 -1
  108. package/src/phaser/core/animation.ts +20 -20
  109. package/src/phaser/core/animation_manager.ts +27 -24
  110. package/src/phaser/core/animation_parser.ts +2 -2
  111. package/src/phaser/core/array_set.ts +7 -7
  112. package/src/phaser/core/cache.ts +55 -51
  113. package/src/phaser/core/callback_context.test.ts +70 -0
  114. package/src/phaser/core/device_util.ts +13 -13
  115. package/src/phaser/core/dom.ts +26 -22
  116. package/src/phaser/core/factory.ts +6 -6
  117. package/src/phaser/core/game.ts +10 -10
  118. package/src/phaser/core/input.ts +37 -39
  119. package/src/phaser/core/input_handler.ts +90 -93
  120. package/src/phaser/core/input_mouse.ts +19 -19
  121. package/src/phaser/core/input_mspointer.ts +15 -15
  122. package/src/phaser/core/input_pointer.ts +37 -28
  123. package/src/phaser/core/input_touch.ts +17 -17
  124. package/src/phaser/core/loader.ts +52 -52
  125. package/src/phaser/core/loader_parser.ts +3 -3
  126. package/src/phaser/core/raf.ts +3 -3
  127. package/src/phaser/core/scale_manager.ts +86 -67
  128. package/src/phaser/core/scene.ts +7 -7
  129. package/src/phaser/core/scene_manager.ts +16 -16
  130. package/src/phaser/core/signal.ts +29 -19
  131. package/src/phaser/core/signal_binding.ts +4 -4
  132. package/src/phaser/core/sound.ts +17 -17
  133. package/src/phaser/core/sound_manager.ts +71 -72
  134. package/src/phaser/core/sound_sprite.ts +1 -1
  135. package/src/phaser/core/stage.ts +7 -7
  136. package/src/phaser/core/time.ts +16 -16
  137. package/src/phaser/core/timer.ts +36 -26
  138. package/src/phaser/core/tween.ts +23 -23
  139. package/src/phaser/core/tween_data.ts +41 -37
  140. package/src/phaser/core/tween_manager.ts +11 -11
  141. package/src/phaser/core/world.ts +1 -1
  142. package/src/phaser/display/bitmap_text.ts +13 -13
  143. package/src/phaser/display/button.ts +13 -13
  144. package/src/phaser/display/canvas/buffer.ts +3 -3
  145. package/src/phaser/display/canvas/graphics.ts +3 -3
  146. package/src/phaser/display/canvas/masker.ts +2 -2
  147. package/src/phaser/display/canvas/pool.ts +6 -6
  148. package/src/phaser/display/canvas/renderer.ts +6 -6
  149. package/src/phaser/display/canvas/tinter.ts +39 -8
  150. package/src/phaser/display/canvas/util.ts +15 -9
  151. package/src/phaser/display/display_object.ts +38 -38
  152. package/src/phaser/display/graphics.ts +30 -30
  153. package/src/phaser/display/graphics_data.ts +1 -1
  154. package/src/phaser/display/graphics_data_util.ts +1 -1
  155. package/src/phaser/display/group.ts +16 -16
  156. package/src/phaser/display/image.ts +30 -26
  157. package/src/phaser/display/sprite_util.ts +12 -4
  158. package/src/phaser/display/text.ts +55 -55
  159. package/src/phaser/display/webgl/abstract_filter.ts +1 -1
  160. package/src/phaser/display/webgl/base_texture.ts +22 -18
  161. package/src/phaser/display/webgl/blend_manager.ts +3 -3
  162. package/src/phaser/display/webgl/earcut.ts +3 -3
  163. package/src/phaser/display/webgl/fast_sprite_batch.ts +26 -24
  164. package/src/phaser/display/webgl/filter_manager.ts +7 -7
  165. package/src/phaser/display/webgl/filter_texture.ts +3 -3
  166. package/src/phaser/display/webgl/graphics.ts +43 -41
  167. package/src/phaser/display/webgl/graphics_data.ts +2 -2
  168. package/src/phaser/display/webgl/mask_manager.ts +2 -2
  169. package/src/phaser/display/webgl/render_texture.ts +6 -6
  170. package/src/phaser/display/webgl/renderer.ts +20 -25
  171. package/src/phaser/display/webgl/shader/normal.ts +3 -3
  172. package/src/phaser/display/webgl/shader_manager.ts +2 -2
  173. package/src/phaser/display/webgl/sprite_batch.ts +9 -9
  174. package/src/phaser/display/webgl/stencil_manager.ts +4 -4
  175. package/src/phaser/display/webgl/texture.ts +23 -42
  176. package/src/phaser/display/webgl/texture_util.ts +2 -2
  177. package/src/phaser/display/webgl/util.ts +11 -7
  178. package/src/phaser/geom/circle.ts +21 -21
  179. package/src/phaser/geom/ellipse.ts +7 -7
  180. package/src/phaser/geom/line.ts +29 -29
  181. package/src/phaser/geom/matrix.ts +13 -13
  182. package/src/phaser/geom/point.ts +36 -30
  183. package/src/phaser/geom/polygon.ts +6 -6
  184. package/src/phaser/geom/rectangle.ts +42 -42
  185. package/src/phaser/geom/rounded_rectangle.ts +2 -2
  186. package/src/phaser/geom/util/circle.ts +7 -7
  187. package/src/phaser/geom/util/ellipse.ts +1 -1
  188. package/src/phaser/geom/util/line.ts +13 -5
  189. package/src/phaser/geom/util/matrix.ts +3 -3
  190. package/src/phaser/geom/util/point.ts +20 -20
  191. package/src/phaser/geom/util/polygon.ts +1 -1
  192. package/src/phaser/geom/util/rectangle.ts +34 -17
  193. package/src/phaser/geom/util/rounded_rectangle.ts +1 -1
@@ -1,8 +1,8 @@
1
+ import type { Group } from '../display/group.js';
1
2
  import { Point } from '../geom/point.js';
2
3
  import { distance } from '../util/math.js';
3
4
  import { GROUP } from './const.js';
4
5
  import type { Image } from '../display/image.js';
5
- import type { DisplayObject } from '../display/display_object.js';
6
6
  import type { Pointer } from './input_pointer.js';
7
7
  import type { Rectangle } from '../geom/rectangle.js';
8
8
  import type { Game } from './game.js';
@@ -44,7 +44,7 @@ const createPointerData = (id: number): PointerData => ({
44
44
  });
45
45
 
46
46
  export class InputHandler {
47
- public sprite!: any;
47
+ public sprite!: Image;
48
48
  public game!: Game;
49
49
  public enabled!: boolean;
50
50
  public checked!: boolean;
@@ -54,8 +54,7 @@ export class InputHandler {
54
54
  public isDragged!: boolean;
55
55
  public allowHorizontalDrag!: boolean;
56
56
  public allowVerticalDrag!: boolean;
57
- public bringToTop!: boolean;
58
- public snapOffset!: any;
57
+ public snapOffset!: Point | null;
59
58
  public snapOnDrag!: boolean;
60
59
  public snapOnRelease!: boolean;
61
60
  public snapX!: number;
@@ -66,8 +65,8 @@ export class InputHandler {
66
65
  public pixelPerfectClick!: boolean;
67
66
  public pixelPerfectAlpha!: number;
68
67
  public draggable!: boolean;
69
- public boundsRect!: any;
70
- public boundsSprite!: any;
68
+ public boundsRect!: Rectangle | null;
69
+ public boundsSprite!: Image | null;
71
70
  public dragOffset!: Point;
72
71
  public dragFromCenter!: boolean;
73
72
  public dragStopBlocksInputUp!: boolean;
@@ -84,9 +83,9 @@ export class InputHandler {
84
83
  public _wasEnabled!: boolean;
85
84
  public _tempPoint!: Point;
86
85
  public _pointerData!: PointerData[];
87
- public _dx!: any;
88
- public _dy!: any;
89
- public _draggedPointerID!: any;
86
+ public _dx!: number;
87
+ public _dy!: number;
88
+ public _draggedPointerID!: number;
90
89
  /**
91
90
  * TBD.
92
91
  * @param {Image} sprite - TBD.
@@ -102,7 +101,6 @@ export class InputHandler {
102
101
  this.isDragged = false;
103
102
  this.allowHorizontalDrag = true;
104
103
  this.allowVerticalDrag = true;
105
- this.bringToTop = false;
106
104
  this.snapOffset = null;
107
105
  this.snapOnDrag = false;
108
106
  this.snapOnRelease = false;
@@ -162,7 +160,7 @@ export class InputHandler {
162
160
  /**
163
161
  * TBD.
164
162
  */
165
- public addedToGroup() {
163
+ public addedToGroup(): void {
166
164
  if (this._dragPhase) {
167
165
  return;
168
166
  }
@@ -174,7 +172,7 @@ export class InputHandler {
174
172
  /**
175
173
  * TBD.
176
174
  */
177
- public removedFromGroup() {
175
+ public removedFromGroup(): void {
178
176
  if (this._dragPhase) {
179
177
  return;
180
178
  }
@@ -189,7 +187,7 @@ export class InputHandler {
189
187
  /**
190
188
  * TBD.
191
189
  */
192
- public reset() {
190
+ public reset(): void {
193
191
  this.enabled = false;
194
192
  for (let i = 0; i < 10; i += 1) {
195
193
  this._pointerData[i] = createPointerData(i);
@@ -214,7 +212,7 @@ export class InputHandler {
214
212
  /**
215
213
  * TBD.
216
214
  */
217
- public stop() {
215
+ public stop(): void {
218
216
  if (this.enabled) {
219
217
  this.enabled = false;
220
218
  this.game.input.interactiveItems.remove(this);
@@ -224,7 +222,7 @@ export class InputHandler {
224
222
  /**
225
223
  * TBD.
226
224
  */
227
- public destroy() {
225
+ public destroy(): void {
228
226
  if (this.sprite) {
229
227
  if (this._setHandCursor) {
230
228
  this.game.canvas.style.cursor = 'default';
@@ -235,7 +233,6 @@ export class InputHandler {
235
233
  this._pointerData.length = 0;
236
234
  this.boundsRect = null;
237
235
  this.boundsSprite = null;
238
- this.sprite = null;
239
236
  }
240
237
  }
241
238
 
@@ -246,7 +243,7 @@ export class InputHandler {
246
243
  * @param {boolean} includePixelPerfect - TBD.
247
244
  * @returns {boolean} TBD.
248
245
  */
249
- public validForInput(highestID: number, highestRenderID: number, includePixelPerfect = true) {
246
+ public validForInput(highestID: number, highestRenderID: number, includePixelPerfect = true): boolean {
250
247
  if (
251
248
  !this.enabled ||
252
249
  this.sprite.scale.x === 0 ||
@@ -270,7 +267,7 @@ export class InputHandler {
270
267
  * TBD.
271
268
  * @returns {boolean} TBD.
272
269
  */
273
- public isPixelPerfect() {
270
+ public isPixelPerfect(): boolean {
274
271
  return this.pixelPerfectClick || this.pixelPerfectOver;
275
272
  }
276
273
 
@@ -279,7 +276,7 @@ export class InputHandler {
279
276
  * @param {number} pointerId - TBD.
280
277
  * @returns {number} TBD.
281
278
  */
282
- public pointerX(pointerId = 0) {
279
+ public pointerX(pointerId = 0): number {
283
280
  return this.pointerData(pointerId).x;
284
281
  }
285
282
 
@@ -288,7 +285,7 @@ export class InputHandler {
288
285
  * @param {number} pointerId - TBD.
289
286
  * @returns {number} TBD.
290
287
  */
291
- public pointerY(pointerId = 0) {
288
+ public pointerY(pointerId = 0): number {
292
289
  return this.pointerData(pointerId).y;
293
290
  }
294
291
 
@@ -297,7 +294,7 @@ export class InputHandler {
297
294
  * @param {number} pointerId - TBD.
298
295
  * @returns {boolean} TBD.
299
296
  */
300
- public pointerDown(pointerId = 0) {
297
+ public pointerDown(pointerId = 0): boolean {
301
298
  return this.pointerData(pointerId).isDown;
302
299
  }
303
300
 
@@ -306,7 +303,7 @@ export class InputHandler {
306
303
  * @param {number} pointerId - TBD.
307
304
  * @returns {boolean} TBD.
308
305
  */
309
- public pointerUp(pointerId = 0) {
306
+ public pointerUp(pointerId = 0): boolean {
310
307
  return this.pointerData(pointerId).isUp;
311
308
  }
312
309
 
@@ -315,7 +312,7 @@ export class InputHandler {
315
312
  * @param {number} pointerId - TBD.
316
313
  * @returns {number} TBD.
317
314
  */
318
- public pointerTimeDown(pointerId = 0) {
315
+ public pointerTimeDown(pointerId = 0): number {
319
316
  return this.pointerData(pointerId).timeDown;
320
317
  }
321
318
 
@@ -324,7 +321,7 @@ export class InputHandler {
324
321
  * @param {number} pointerId - TBD.
325
322
  * @returns {number} TBD.
326
323
  */
327
- public pointerTimeUp(pointerId = 0) {
324
+ public pointerTimeUp(pointerId = 0): number {
328
325
  return this.pointerData(pointerId).timeUp;
329
326
  }
330
327
 
@@ -333,7 +330,7 @@ export class InputHandler {
333
330
  * @param {number} pointerId - TBD.
334
331
  * @returns {boolean} TBD.
335
332
  */
336
- public pointerOver(pointerId: number | null = null) {
333
+ public pointerOver(pointerId: number | null = null): boolean {
337
334
  if (!this.enabled) {
338
335
  return false;
339
336
  }
@@ -353,7 +350,7 @@ export class InputHandler {
353
350
  * @param {number} pointerId - TBD.
354
351
  * @returns {boolean} TBD.
355
352
  */
356
- public pointerOut(pointerId: number | null = null) {
353
+ public pointerOut(pointerId: number | null = null): boolean {
357
354
  if (!this.enabled) {
358
355
  return false;
359
356
  }
@@ -373,7 +370,7 @@ export class InputHandler {
373
370
  * @param {number} pointerId - TBD.
374
371
  * @returns {number} TBD.
375
372
  */
376
- public pointerTimeOver(pointerId = 0) {
373
+ public pointerTimeOver(pointerId = 0): number {
377
374
  return this.pointerData(pointerId).timeOver;
378
375
  }
379
376
 
@@ -382,7 +379,7 @@ export class InputHandler {
382
379
  * @param {number} pointerId - TBD.
383
380
  * @returns {number} TBD.
384
381
  */
385
- public pointerTimeOut(pointerId = 0) {
382
+ public pointerTimeOut(pointerId = 0): number {
386
383
  return this.pointerData(pointerId).timeOut;
387
384
  }
388
385
 
@@ -391,7 +388,7 @@ export class InputHandler {
391
388
  * @param {number} pointerId - TBD.
392
389
  * @returns {boolean} TBD.
393
390
  */
394
- public pointerDragged(pointerId = 0) {
391
+ public pointerDragged(pointerId = 0): boolean {
395
392
  return this.pointerData(pointerId).isDragged;
396
393
  }
397
394
 
@@ -401,7 +398,7 @@ export class InputHandler {
401
398
  * @param {boolean} fastTest - TBD.
402
399
  * @returns {boolean} TBD.
403
400
  */
404
- public checkPointerDown(pointer: Pointer, fastTest = false) {
401
+ public checkPointerDown(pointer: Pointer, fastTest = false): boolean {
405
402
  if (
406
403
  !pointer.isDown ||
407
404
  !this.enabled ||
@@ -430,7 +427,7 @@ export class InputHandler {
430
427
  * @param {boolean} fastTest - TBD.
431
428
  * @returns {boolean} TBD.
432
429
  */
433
- public checkPointerOver(pointer: Pointer, fastTest = false) {
430
+ public checkPointerOver(pointer: Pointer, fastTest = false): boolean {
434
431
  if (
435
432
  !this.enabled ||
436
433
  !this.sprite ||
@@ -459,12 +456,12 @@ export class InputHandler {
459
456
  * @param {Pointer} pointer - TBD.
460
457
  * @returns {boolean} TBD.
461
458
  */
462
- public checkPixel(x: number | null, y: number | null, pointer?: any) {
459
+ public checkPixel(x: number | null, y: number | null, pointer?: Pointer): boolean {
463
460
  // Grab a pixel from our image into the hitCanvas and then test it
464
461
  if (this.sprite.texture.baseTexture.source) {
465
462
  if (x === null || y === null) {
466
463
  // Use the pointer parameter
467
- this.game.input.getLocalPosition(this.sprite, pointer, this._tempPoint);
464
+ this.game.input.getLocalPosition(this.sprite, pointer!, this._tempPoint);
468
465
  x = this._tempPoint.x;
469
466
  y = this._tempPoint.y;
470
467
  }
@@ -493,10 +490,10 @@ export class InputHandler {
493
490
  }
494
491
  this._dx = x;
495
492
  this._dy = y;
496
- this.game.input.hitContext.clearRect(0, 0, 1, 1);
497
- this.game.input.hitContext.drawImage(this.sprite.texture.baseTexture.source, x, y, 1, 1, 0, 0, 1, 1);
498
- const rgb = this.game.input.hitContext.getImageData(0, 0, 1, 1);
499
- if (rgb.data[3] >= this.pixelPerfectAlpha) {
493
+ this.game.input.hitContext!.clearRect(0, 0, 1, 1);
494
+ this.game.input.hitContext!.drawImage(this.sprite.texture.baseTexture.source, x, y, 1, 1, 0, 0, 1, 1);
495
+ const rgb = this.game.input.hitContext!.getImageData(0, 0, 1, 1);
496
+ if (rgb.data[3]! >= this.pixelPerfectAlpha) {
500
497
  return true;
501
498
  }
502
499
  }
@@ -508,12 +505,12 @@ export class InputHandler {
508
505
  * @param {Pointer} pointer - TBD.
509
506
  * @returns {boolean} TBD.
510
507
  */
511
- public update(pointer: Pointer) {
508
+ public update(pointer: Pointer): boolean {
512
509
  if (this.sprite === null || this.sprite.parent === undefined) {
513
510
  // Abort. We've been destroyed.
514
511
  return false;
515
512
  }
516
- if (!this.enabled || !this.sprite.visible || !this.sprite.parent.visible) {
513
+ if (!this.enabled || !this.sprite.visible || !this.sprite.parent?.visible) {
517
514
  this._pointerOutHandler(pointer);
518
515
  return false;
519
516
  }
@@ -545,7 +542,7 @@ export class InputHandler {
545
542
  * @param {Pointer} pointer - TBD.
546
543
  * @param {boolean} silent - TBD.
547
544
  */
548
- public _pointerOverHandler(pointer: Pointer, silent: boolean) {
545
+ public _pointerOverHandler(pointer: Pointer, silent: boolean): void {
549
546
  if (this.sprite === null) {
550
547
  // Abort. We've been destroyed.
551
548
  return;
@@ -566,7 +563,7 @@ export class InputHandler {
566
563
  this.sprite.events.onInputOver$dispatch(this.sprite, pointer);
567
564
  }
568
565
  if (this.sprite.parent && this.sprite.parent.type === GROUP) {
569
- this.sprite.parent.onChildInputOver.dispatch(this.sprite, pointer);
566
+ (this.sprite.parent as Group).onChildInputOver.dispatch(this.sprite, pointer);
570
567
  }
571
568
  }
572
569
  }
@@ -576,7 +573,7 @@ export class InputHandler {
576
573
  * @param {Pointer} pointer - TBD.
577
574
  * @param {boolean} silent - TBD.
578
575
  */
579
- public _pointerOutHandler(pointer: Pointer, silent = false) {
576
+ public _pointerOutHandler(pointer: Pointer, silent = false): void {
580
577
  if (this.sprite === null) {
581
578
  // Abort. We've been destroyed.
582
579
  return;
@@ -592,7 +589,7 @@ export class InputHandler {
592
589
  if (!silent && this.sprite && this.sprite.events) {
593
590
  this.sprite.events.onInputOut$dispatch(this.sprite, pointer);
594
591
  if (this.sprite && this.sprite.parent && this.sprite.parent.type === GROUP) {
595
- this.sprite.parent.onChildInputOut.dispatch(this.sprite, pointer);
592
+ (this.sprite.parent as Group).onChildInputOut.dispatch(this.sprite, pointer);
596
593
  }
597
594
  }
598
595
  }
@@ -601,7 +598,7 @@ export class InputHandler {
601
598
  * TBD.
602
599
  * @param {Pointer} pointer - TBD.
603
600
  */
604
- public _touchedHandler(pointer: Pointer) {
601
+ public _touchedHandler(pointer: Pointer): void {
605
602
  if (this.sprite === null) {
606
603
  // Abort. We've been destroyed.
607
604
  return;
@@ -621,7 +618,7 @@ export class InputHandler {
621
618
  this.sprite.events.onInputDown$dispatch(this.sprite, pointer);
622
619
  // The event above might have destroyed this sprite.
623
620
  if (this.sprite && this.sprite.parent && this.sprite.parent.type === GROUP) {
624
- this.sprite.parent.onChildInputDown.dispatch(this.sprite, pointer);
621
+ (this.sprite.parent as Group).onChildInputDown.dispatch(this.sprite, pointer);
625
622
  }
626
623
  // The events might have destroyed this sprite.
627
624
  if (this.sprite === null) {
@@ -643,9 +640,6 @@ export class InputHandler {
643
640
  }
644
641
  }
645
642
  }
646
- if (this.bringToTop) {
647
- this.sprite.bringToTop();
648
- }
649
643
  }
650
644
  }
651
645
 
@@ -653,7 +647,7 @@ export class InputHandler {
653
647
  * TBD.
654
648
  * @param {Pointer} pointer - TBD.
655
649
  */
656
- public dragTimeElapsed(pointer: Pointer) {
650
+ public dragTimeElapsed(pointer: Pointer): void {
657
651
  this._dragTimePass = true;
658
652
  if (this._pendingDrag && this.sprite) {
659
653
  if (this._dragDistancePass) {
@@ -666,7 +660,7 @@ export class InputHandler {
666
660
  * TBD.
667
661
  * @param {Pointer} pointer - TBD.
668
662
  */
669
- public _releasedHandler(pointer: Pointer) {
663
+ public _releasedHandler(pointer: Pointer): void {
670
664
  if (this.sprite === null) {
671
665
  // Abort. We've been destroyed.
672
666
  return;
@@ -688,7 +682,7 @@ export class InputHandler {
688
682
  this.sprite.events.onInputUp$dispatch(this.sprite, pointer, isOver);
689
683
  }
690
684
  if (this.sprite && this.sprite.parent && this.sprite.parent.type === GROUP) {
691
- this.sprite.parent.onChildInputUp.dispatch(this.sprite, pointer, isOver);
685
+ (this.sprite.parent as Group).onChildInputUp.dispatch(this.sprite, pointer, isOver);
692
686
  }
693
687
  // The onInputUp event may have changed the sprite so that checkPointerOver is no longer true, so update it.
694
688
  if (isOver) {
@@ -716,7 +710,7 @@ export class InputHandler {
716
710
  * @param {boolean} fromStart - TBD.
717
711
  * @returns {boolean} TBD.
718
712
  */
719
- public updateDrag(pointer: Pointer, fromStart = false) {
713
+ public updateDrag(pointer: Pointer, fromStart = false): boolean {
720
714
  if (pointer.isUp) {
721
715
  this.stopDrag(pointer);
722
716
  return false;
@@ -756,7 +750,7 @@ export class InputHandler {
756
750
  * @param {number} delay - TBD.
757
751
  * @returns {boolean} TBD.
758
752
  */
759
- public justOver(pointerId = 0, delay = 500) {
753
+ public justOver(pointerId = 0, delay = 500): boolean {
760
754
  return this.pointerData(pointerId).isOver && this.overDuration(pointerId) < delay;
761
755
  }
762
756
 
@@ -766,7 +760,7 @@ export class InputHandler {
766
760
  * @param {number} delay - TBD.
767
761
  * @returns {boolean} TBD.
768
762
  */
769
- public justOut(pointerId = 0, delay = 500) {
763
+ public justOut(pointerId = 0, delay = 500): boolean {
770
764
  return this.pointerData(pointerId).isOut && this.game.time.time - this.pointerData(pointerId).timeOut < delay;
771
765
  }
772
766
 
@@ -776,7 +770,7 @@ export class InputHandler {
776
770
  * @param {number} delay - TBD.
777
771
  * @returns {boolean} TBD.
778
772
  */
779
- public justPressed(pointerId = 0, delay = 500) {
773
+ public justPressed(pointerId = 0, delay = 500): boolean {
780
774
  return this.pointerData(pointerId).isDown && this.downDuration(pointerId) < delay;
781
775
  }
782
776
 
@@ -786,7 +780,7 @@ export class InputHandler {
786
780
  * @param {number} delay - TBD.
787
781
  * @returns {boolean} TBD.
788
782
  */
789
- public justReleased(pointerId = 0, delay = 500) {
783
+ public justReleased(pointerId = 0, delay = 500): boolean {
790
784
  return this.pointerData(pointerId).isUp && this.game.time.time - this.pointerData(pointerId).timeUp < delay;
791
785
  }
792
786
 
@@ -795,7 +789,7 @@ export class InputHandler {
795
789
  * @param {number} pointerId - TBD.
796
790
  * @returns {number} TBD.
797
791
  */
798
- public overDuration(pointerId = 0) {
792
+ public overDuration(pointerId = 0): number {
799
793
  if (this.pointerData(pointerId).isOver) {
800
794
  return this.game.time.time - this.pointerData(pointerId).timeOver;
801
795
  }
@@ -807,7 +801,7 @@ export class InputHandler {
807
801
  * @param {number} pointerId - TBD.
808
802
  * @returns {number} TBD.
809
803
  */
810
- public downDuration(pointerId = 0) {
804
+ public downDuration(pointerId = 0): number {
811
805
  if (this.pointerData(pointerId).isDown) {
812
806
  return this.game.time.time - this.pointerData(pointerId).timeDown;
813
807
  }
@@ -821,19 +815,19 @@ export class InputHandler {
821
815
  * @param {boolean} pixelPerfect - TBD.
822
816
  * @param {number} alphaThreshold - TBD.
823
817
  * @param {Rectangle | null | undefined} boundsRect - TBD.
824
- * @param {DisplayObject | null | undefined} boundsSprite - TBD.
818
+ * @param {Image | null | undefined} boundsSprite - TBD.
825
819
  */
826
820
  public enableDrag(
827
821
  lockCenter = false,
828
- bringToTop = false,
822
+ // Kept so the positional signature holds; this engine has no bringToTop to raise the sprite.
823
+ _bringToTop = false,
829
824
  pixelPerfect = false,
830
825
  alphaThreshold = 255,
831
826
  boundsRect: Rectangle | null | undefined = null,
832
- boundsSprite: DisplayObject | null | undefined = null
833
- ) {
827
+ boundsSprite: Image | null | undefined = null
828
+ ): void {
834
829
  this._dragPoint = new Point();
835
830
  this.draggable = true;
836
- this.bringToTop = bringToTop;
837
831
  this.dragOffset = new Point();
838
832
  this.dragFromCenter = lockCenter;
839
833
  this.pixelPerfectClick = pixelPerfect;
@@ -849,7 +843,7 @@ export class InputHandler {
849
843
  /**
850
844
  * TBD.
851
845
  */
852
- public disableDrag() {
846
+ public disableDrag(): void {
853
847
  if (this._pointerData) {
854
848
  for (let i = 0; i < 10; i += 1) {
855
849
  this.pointerData(i).isDragged = false;
@@ -865,7 +859,7 @@ export class InputHandler {
865
859
  * TBD.
866
860
  * @param {Pointer} pointer - TBD.
867
861
  */
868
- public startDrag(pointer: Pointer) {
862
+ public startDrag(pointer: Pointer): void {
869
863
  const { x } = this.sprite;
870
864
  const { y } = this.sprite;
871
865
  this.isDragged = true;
@@ -883,10 +877,6 @@ export class InputHandler {
883
877
  this.sprite.y - this.globalToLocalY(pointer.y)
884
878
  );
885
879
  this.updateDrag(pointer, true);
886
- if (this.bringToTop) {
887
- this._dragPhase = true;
888
- this.sprite.parent.bringToTop(this.sprite);
889
- }
890
880
  this.dragStartPoint.setTo(x, y);
891
881
  this.sprite.events.onDragStart$dispatch(this.sprite, pointer, x, y);
892
882
  this._pendingDrag = false;
@@ -897,7 +887,7 @@ export class InputHandler {
897
887
  * @param {number} x - TBD.
898
888
  * @returns {number} TBD.
899
889
  */
900
- public globalToLocalX(x: number) {
890
+ public globalToLocalX(x: number): number {
901
891
  return x;
902
892
  }
903
893
 
@@ -906,7 +896,7 @@ export class InputHandler {
906
896
  * @param {number} y - TBD.
907
897
  * @returns {number} TBD.
908
898
  */
909
- public globalToLocalY(y: number) {
899
+ public globalToLocalY(y: number): number {
910
900
  return y;
911
901
  }
912
902
 
@@ -914,7 +904,7 @@ export class InputHandler {
914
904
  * TBD.
915
905
  * @param {Pointer} pointer - TBD.
916
906
  */
917
- public stopDrag(pointer: Pointer) {
907
+ public stopDrag(pointer: Pointer): void {
918
908
  this.isDragged = false;
919
909
  this._draggedPointerID = -1;
920
910
  this.pointerData(pointer.id).isDragged = false;
@@ -939,7 +929,7 @@ export class InputHandler {
939
929
  * @param {boolean} allowHorizontal - TBD.
940
930
  * @param {boolean} allowVertical - TBD.
941
931
  */
942
- public setDragLock(allowHorizontal = true, allowVertical = true) {
932
+ public setDragLock(allowHorizontal = true, allowVertical = true): void {
943
933
  this.allowHorizontalDrag = allowHorizontal;
944
934
  this.allowVerticalDrag = allowVertical;
945
935
  }
@@ -953,7 +943,14 @@ export class InputHandler {
953
943
  * @param {number} snapOffsetX - TBD.
954
944
  * @param {number} snapOffsetY - TBD.
955
945
  */
956
- public enableSnap(snapX: number, snapY: number, onDrag = true, onRelease = false, snapOffsetX = 0, snapOffsetY = 0) {
946
+ public enableSnap(
947
+ snapX: number,
948
+ snapY: number,
949
+ onDrag = true,
950
+ onRelease = false,
951
+ snapOffsetX = 0,
952
+ snapOffsetY = 0
953
+ ): void {
957
954
  this.snapX = snapX;
958
955
  this.snapY = snapY;
959
956
  this.snapOffsetX = snapOffsetX;
@@ -965,7 +962,7 @@ export class InputHandler {
965
962
  /**
966
963
  * TBD.
967
964
  */
968
- public disableSnap() {
965
+ public disableSnap(): void {
969
966
  this.snapOnDrag = false;
970
967
  this.snapOnRelease = false;
971
968
  }
@@ -973,32 +970,32 @@ export class InputHandler {
973
970
  /**
974
971
  * TBD.
975
972
  */
976
- public checkBoundsRect() {
977
- if (this.sprite.left < this.boundsRect.left) {
978
- this.sprite.x = this.boundsRect.x + this.sprite.offsetX;
979
- } else if (this.sprite.right > this.boundsRect.right) {
980
- this.sprite.x = this.boundsRect.right - (this.sprite.width - this.sprite.offsetX);
973
+ public checkBoundsRect(): void {
974
+ if (this.sprite.left < this.boundsRect!.left) {
975
+ this.sprite.x = this.boundsRect!.x + this.sprite.offsetX;
976
+ } else if (this.sprite.right > this.boundsRect!.right) {
977
+ this.sprite.x = this.boundsRect!.right - (this.sprite.width - this.sprite.offsetX);
981
978
  }
982
- if (this.sprite.top < this.boundsRect.top) {
983
- this.sprite.y = this.boundsRect.top + this.sprite.offsetY;
984
- } else if (this.sprite.bottom > this.boundsRect.bottom) {
985
- this.sprite.y = this.boundsRect.bottom - (this.sprite.height - this.sprite.offsetY);
979
+ if (this.sprite.top < this.boundsRect!.top) {
980
+ this.sprite.y = this.boundsRect!.top + this.sprite.offsetY;
981
+ } else if (this.sprite.bottom > this.boundsRect!.bottom) {
982
+ this.sprite.y = this.boundsRect!.bottom - (this.sprite.height - this.sprite.offsetY);
986
983
  }
987
984
  }
988
985
 
989
986
  /**
990
987
  * TBD.
991
988
  */
992
- public checkBoundsSprite() {
993
- if (this.sprite.left < this.boundsSprite.left) {
994
- this.sprite.x = this.boundsSprite.left + this.sprite.offsetX;
995
- } else if (this.sprite.right > this.boundsSprite.right) {
996
- this.sprite.x = this.boundsSprite.right - (this.sprite.width - this.sprite.offsetX);
989
+ public checkBoundsSprite(): void {
990
+ if (this.sprite.left < this.boundsSprite!.left) {
991
+ this.sprite.x = this.boundsSprite!.left + this.sprite.offsetX;
992
+ } else if (this.sprite.right > this.boundsSprite!.right) {
993
+ this.sprite.x = this.boundsSprite!.right - (this.sprite.width - this.sprite.offsetX);
997
994
  }
998
- if (this.sprite.top < this.boundsSprite.top) {
999
- this.sprite.y = this.boundsSprite.top + this.sprite.offsetY;
1000
- } else if (this.sprite.bottom > this.boundsSprite.bottom) {
1001
- this.sprite.y = this.boundsSprite.bottom - (this.sprite.height - this.sprite.offsetY);
995
+ if (this.sprite.top < this.boundsSprite!.top) {
996
+ this.sprite.y = this.boundsSprite!.top + this.sprite.offsetY;
997
+ } else if (this.sprite.bottom > this.boundsSprite!.bottom) {
998
+ this.sprite.y = this.boundsSprite!.bottom - (this.sprite.height - this.sprite.offsetY);
1002
999
  }
1003
1000
  }
1004
1001
  }