melonjs 14.0.2 → 14.1.1

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 (219) hide show
  1. package/README.md +2 -0
  2. package/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +10 -0
  3. package/dist/melonjs.mjs/_virtual/arraymultimap.js +10 -0
  4. package/dist/melonjs.mjs/_virtual/earcut.js +10 -0
  5. package/dist/melonjs.mjs/_virtual/howler.js +10 -0
  6. package/dist/melonjs.mjs/_virtual/index.js +10 -0
  7. package/dist/melonjs.mjs/_virtual/index2.js +10 -0
  8. package/dist/melonjs.mjs/_virtual/multimap.js +10 -0
  9. package/dist/melonjs.mjs/_virtual/setmultimap.js +10 -0
  10. package/dist/melonjs.mjs/application/application.js +238 -0
  11. package/dist/melonjs.mjs/audio/audio.js +536 -0
  12. package/dist/melonjs.mjs/camera/camera2d.js +731 -0
  13. package/dist/melonjs.mjs/entity/entity.js +247 -0
  14. package/dist/melonjs.mjs/game.js +29 -0
  15. package/dist/melonjs.mjs/geometries/ellipse.js +274 -0
  16. package/dist/melonjs.mjs/geometries/line.js +115 -0
  17. package/dist/melonjs.mjs/geometries/path2d.js +318 -0
  18. package/dist/melonjs.mjs/geometries/point.js +88 -0
  19. package/dist/melonjs.mjs/geometries/poly.js +498 -0
  20. package/dist/melonjs.mjs/geometries/rectangle.js +374 -0
  21. package/dist/melonjs.mjs/geometries/roundrect.js +167 -0
  22. package/dist/melonjs.mjs/index.js +248 -0
  23. package/dist/melonjs.mjs/input/gamepad.js +501 -0
  24. package/dist/melonjs.mjs/input/input.js +26 -0
  25. package/dist/melonjs.mjs/input/keyboard.js +470 -0
  26. package/dist/melonjs.mjs/input/pointer.js +393 -0
  27. package/dist/melonjs.mjs/input/pointerevent.js +818 -0
  28. package/dist/melonjs.mjs/lang/deprecated.js +157 -0
  29. package/dist/melonjs.mjs/level/level.js +297 -0
  30. package/dist/melonjs.mjs/level/tiled/TMXGroup.js +141 -0
  31. package/dist/melonjs.mjs/level/tiled/TMXLayer.js +446 -0
  32. package/dist/melonjs.mjs/level/tiled/TMXObject.js +355 -0
  33. package/dist/melonjs.mjs/level/tiled/TMXTile.js +193 -0
  34. package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +636 -0
  35. package/dist/melonjs.mjs/level/tiled/TMXTileset.js +309 -0
  36. package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +81 -0
  37. package/dist/melonjs.mjs/level/tiled/TMXUtils.js +367 -0
  38. package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +504 -0
  39. package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +218 -0
  40. package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +155 -0
  41. package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +124 -0
  42. package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +107 -0
  43. package/dist/melonjs.mjs/loader/loader.js +801 -0
  44. package/dist/melonjs.mjs/loader/loadingscreen.js +120 -0
  45. package/dist/melonjs.mjs/loader/melonjs_logo.png.js +11 -0
  46. package/dist/melonjs.mjs/math/color.js +616 -0
  47. package/dist/melonjs.mjs/math/math.js +218 -0
  48. package/dist/melonjs.mjs/math/matrix2.js +501 -0
  49. package/dist/melonjs.mjs/math/matrix3.js +679 -0
  50. package/dist/melonjs.mjs/math/observable_vector2.js +469 -0
  51. package/dist/melonjs.mjs/math/observable_vector3.js +559 -0
  52. package/dist/melonjs.mjs/math/vector2.js +526 -0
  53. package/dist/melonjs.mjs/math/vector3.js +567 -0
  54. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/arraymultimap.js +73 -0
  55. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/index.js +21 -0
  56. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/multimap.js +324 -0
  57. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/setmultimap.js +69 -0
  58. package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +691 -0
  59. package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +350 -0
  60. package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +3241 -0
  61. package/dist/melonjs.mjs/particles/emitter.js +265 -0
  62. package/dist/melonjs.mjs/particles/particle.js +186 -0
  63. package/dist/melonjs.mjs/particles/settings.js +319 -0
  64. package/dist/melonjs.mjs/physics/body.js +702 -0
  65. package/dist/melonjs.mjs/physics/bounds.js +459 -0
  66. package/dist/melonjs.mjs/physics/collision.js +132 -0
  67. package/dist/melonjs.mjs/physics/detector.js +194 -0
  68. package/dist/melonjs.mjs/physics/quadtree.js +394 -0
  69. package/dist/melonjs.mjs/physics/response.js +57 -0
  70. package/dist/melonjs.mjs/physics/sat.js +483 -0
  71. package/dist/melonjs.mjs/physics/world.js +219 -0
  72. package/dist/melonjs.mjs/plugin/plugin.js +141 -0
  73. package/dist/melonjs.mjs/renderable/collectable.js +60 -0
  74. package/dist/melonjs.mjs/renderable/colorlayer.js +78 -0
  75. package/dist/melonjs.mjs/renderable/container.js +1016 -0
  76. package/dist/melonjs.mjs/renderable/dragndrop.js +224 -0
  77. package/dist/melonjs.mjs/renderable/imagelayer.js +305 -0
  78. package/dist/melonjs.mjs/renderable/light2d.js +155 -0
  79. package/dist/melonjs.mjs/renderable/nineslicesprite.js +246 -0
  80. package/dist/melonjs.mjs/renderable/renderable.js +781 -0
  81. package/dist/melonjs.mjs/renderable/sprite.js +653 -0
  82. package/dist/melonjs.mjs/renderable/trigger.js +156 -0
  83. package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +212 -0
  84. package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +225 -0
  85. package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +127 -0
  86. package/dist/melonjs.mjs/state/stage.js +236 -0
  87. package/dist/melonjs.mjs/state/state.js +596 -0
  88. package/dist/melonjs.mjs/system/device.js +909 -0
  89. package/dist/melonjs.mjs/system/dom.js +78 -0
  90. package/dist/melonjs.mjs/system/event.js +537 -0
  91. package/dist/melonjs.mjs/system/platform.js +41 -0
  92. package/dist/melonjs.mjs/system/pooling.js +209 -0
  93. package/dist/melonjs.mjs/system/save.js +157 -0
  94. package/dist/melonjs.mjs/system/timer.js +286 -0
  95. package/dist/melonjs.mjs/text/bitmaptext.js +363 -0
  96. package/dist/melonjs.mjs/text/bitmaptextdata.js +198 -0
  97. package/dist/melonjs.mjs/text/glyph.js +65 -0
  98. package/dist/melonjs.mjs/text/text.js +452 -0
  99. package/dist/melonjs.mjs/text/textmetrics.js +175 -0
  100. package/dist/melonjs.mjs/text/textstyle.js +23 -0
  101. package/dist/melonjs.mjs/tweens/easing.js +336 -0
  102. package/dist/melonjs.mjs/tweens/interpolation.js +112 -0
  103. package/dist/melonjs.mjs/tweens/tween.js +479 -0
  104. package/dist/melonjs.mjs/utils/agent.js +76 -0
  105. package/dist/melonjs.mjs/utils/array.js +63 -0
  106. package/dist/melonjs.mjs/utils/file.js +42 -0
  107. package/dist/melonjs.mjs/utils/function.js +70 -0
  108. package/dist/melonjs.mjs/utils/string.js +82 -0
  109. package/dist/melonjs.mjs/utils/utils.js +173 -0
  110. package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +806 -0
  111. package/dist/melonjs.mjs/video/renderer.js +410 -0
  112. package/dist/melonjs.mjs/video/texture/atlas.js +519 -0
  113. package/dist/melonjs.mjs/video/texture/cache.js +143 -0
  114. package/dist/melonjs.mjs/video/texture/canvas_texture.js +144 -0
  115. package/dist/melonjs.mjs/video/video.js +462 -0
  116. package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +142 -0
  117. package/dist/melonjs.mjs/video/webgl/glshader.js +167 -0
  118. package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +10 -0
  119. package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +10 -0
  120. package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +10 -0
  121. package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +10 -0
  122. package/dist/melonjs.mjs/video/webgl/utils/attributes.js +25 -0
  123. package/dist/melonjs.mjs/video/webgl/utils/precision.js +20 -0
  124. package/dist/melonjs.mjs/video/webgl/utils/program.js +67 -0
  125. package/dist/melonjs.mjs/video/webgl/utils/string.js +25 -0
  126. package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +92 -0
  127. package/dist/melonjs.mjs/video/webgl/webgl_compositor.js +494 -0
  128. package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +1035 -0
  129. package/dist/melonjs.module.d.ts +1298 -1359
  130. package/dist/melonjs.module.js +2072 -3520
  131. package/package.json +21 -16
  132. package/src/application/application.js +4 -5
  133. package/src/audio/audio.js +32 -32
  134. package/src/camera/camera2d.js +32 -33
  135. package/src/entity/entity.js +18 -19
  136. package/src/geometries/ellipse.js +17 -18
  137. package/src/geometries/line.js +6 -7
  138. package/src/geometries/path2d.js +33 -34
  139. package/src/geometries/point.js +1 -2
  140. package/src/geometries/poly.js +16 -18
  141. package/src/geometries/rectangle.js +19 -20
  142. package/src/geometries/roundrect.js +9 -10
  143. package/src/input/gamepad.js +15 -15
  144. package/src/input/keyboard.js +12 -12
  145. package/src/input/pointer.js +6 -6
  146. package/src/input/pointerevent.js +12 -12
  147. package/src/lang/deprecated.js +12 -12
  148. package/src/level/level.js +25 -25
  149. package/src/level/tiled/TMXLayer.js +23 -24
  150. package/src/level/tiled/TMXTile.js +6 -7
  151. package/src/level/tiled/TMXTileMap.js +8 -10
  152. package/src/level/tiled/TMXTileset.js +3 -4
  153. package/src/level/tiled/TMXTilesetGroup.js +1 -2
  154. package/src/level/tiled/TMXUtils.js +5 -5
  155. package/src/level/tiled/renderer/TMXHexagonalRenderer.js +3 -4
  156. package/src/level/tiled/renderer/TMXIsometricRenderer.js +3 -4
  157. package/src/level/tiled/renderer/TMXOrthogonalRenderer.js +2 -3
  158. package/src/level/tiled/renderer/TMXRenderer.js +20 -21
  159. package/src/level/tiled/renderer/TMXStaggeredRenderer.js +1 -2
  160. package/src/loader/loader.js +20 -20
  161. package/src/math/color.js +21 -22
  162. package/src/math/math.js +16 -16
  163. package/src/math/matrix2.js +17 -18
  164. package/src/math/matrix3.js +26 -27
  165. package/src/math/observable_vector2.js +15 -16
  166. package/src/math/observable_vector3.js +17 -18
  167. package/src/math/vector2.js +10 -11
  168. package/src/math/vector3.js +11 -12
  169. package/src/particles/emitter.js +7 -8
  170. package/src/particles/particle.js +3 -4
  171. package/src/physics/body.js +29 -30
  172. package/src/physics/bounds.js +10 -10
  173. package/src/physics/collision.js +2 -2
  174. package/src/physics/detector.js +6 -6
  175. package/src/physics/quadtree.js +18 -23
  176. package/src/physics/sat.js +31 -31
  177. package/src/physics/world.js +6 -7
  178. package/src/plugin/plugin.js +5 -5
  179. package/src/renderable/collectable.js +4 -6
  180. package/src/renderable/colorlayer.js +6 -8
  181. package/src/renderable/container.js +25 -27
  182. package/src/renderable/dragndrop.js +14 -14
  183. package/src/renderable/imagelayer.js +14 -15
  184. package/src/renderable/light2d.js +4 -5
  185. package/src/renderable/nineslicesprite.js +17 -18
  186. package/src/renderable/renderable.js +26 -28
  187. package/src/renderable/sprite.js +29 -30
  188. package/src/renderable/trigger.js +16 -17
  189. package/src/renderable/ui/uibaseelement.js +8 -9
  190. package/src/renderable/ui/uispriteelement.js +8 -8
  191. package/src/renderable/ui/uitextbutton.js +15 -15
  192. package/src/state/stage.js +8 -9
  193. package/src/state/state.js +17 -17
  194. package/src/system/device.js +11 -11
  195. package/src/system/event.js +10 -10
  196. package/src/system/pooling.js +9 -9
  197. package/src/system/save.js +2 -2
  198. package/src/system/timer.js +10 -10
  199. package/src/text/bitmaptext.js +19 -20
  200. package/src/text/bitmaptextdata.js +3 -4
  201. package/src/text/glyph.js +1 -2
  202. package/src/text/text.js +24 -25
  203. package/src/text/textmetrics.js +9 -10
  204. package/src/tweens/tween.js +20 -21
  205. package/src/utils/agent.js +5 -5
  206. package/src/utils/array.js +4 -4
  207. package/src/utils/file.js +2 -2
  208. package/src/utils/function.js +6 -6
  209. package/src/utils/string.js +5 -5
  210. package/src/utils/utils.js +4 -4
  211. package/src/video/canvas/canvas_renderer.js +72 -73
  212. package/src/video/renderer.js +27 -28
  213. package/src/video/texture/atlas.js +22 -22
  214. package/src/video/texture/canvas_texture.js +9 -9
  215. package/src/video/video.js +17 -17
  216. package/src/video/webgl/buffer/vertex.js +1 -2
  217. package/src/video/webgl/glshader.js +12 -12
  218. package/src/video/webgl/webgl_compositor.js +42 -43
  219. package/src/video/webgl/webgl_renderer.js +76 -77
@@ -0,0 +1,393 @@
1
+ /*!
2
+ * melonJS Game Engine - v14.1.1
3
+ * http://www.melonjs.org
4
+ * melonjs is licensed under the MIT License.
5
+ * http://www.opensource.org/licenses/mit-license
6
+ * @copyright (C) 2011 - 2022 Olivier Biot (AltByte Pte Ltd)
7
+ */
8
+ import Vector2d from '../math/vector2.js';
9
+ import Bounds from '../physics/bounds.js';
10
+ import game from '../game.js';
11
+ import { globalToLocal, locked } from './pointerevent.js';
12
+
13
+ /**
14
+ * a temporary vector object
15
+ * @ignore
16
+ */
17
+ var tmpVec = new Vector2d();
18
+
19
+ /**
20
+ * @classdesc
21
+ * a pointer object, representing a single finger on a touch enabled device.
22
+ * @class Pointer
23
+ * @augments Bounds
24
+ */
25
+ class Pointer extends Bounds {
26
+
27
+ /**
28
+ * @ignore
29
+ */
30
+ constructor(x = 0, y = 0, w = 1, h = 1) {
31
+
32
+ // parent constructor
33
+ super();
34
+
35
+ // initial coordinates/size
36
+ this.setMinMax(x, y, x + w, y + h);
37
+
38
+ /**
39
+ * constant for left button
40
+ * @public
41
+ * @type {number}
42
+ * @name LEFT
43
+ * @memberof Pointer
44
+ */
45
+ this.LEFT = 0;
46
+
47
+ /**
48
+ * constant for middle button
49
+ * @public
50
+ * @type {number}
51
+ * @name MIDDLE
52
+ * @memberof Pointer
53
+ */
54
+ this.MIDDLE = 1;
55
+
56
+ /**
57
+ * constant for right button
58
+ * @public
59
+ * @type {number}
60
+ * @name RIGHT
61
+ * @memberof Pointer
62
+ */
63
+ this.RIGHT = 2;
64
+
65
+ /**
66
+ * the originating Event Object
67
+ * @public
68
+ * @type {PointerEvent|TouchEvent|MouseEvent}
69
+ * @name event
70
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent
71
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent
72
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent
73
+ * @memberof Pointer
74
+ */
75
+ this.event = undefined;
76
+
77
+ /**
78
+ * a string containing the event's type.
79
+ * @public
80
+ * @type {string}
81
+ * @name type
82
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/Event/type
83
+ * @memberof Pointer
84
+ */
85
+ this.type = undefined;
86
+
87
+
88
+ /**
89
+ * the button property indicates which button was pressed on the mouse to trigger the event.
90
+ * @public
91
+ * @type {number}
92
+ * @name button
93
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button
94
+ * @memberof Pointer
95
+ */
96
+ this.button = 0;
97
+
98
+ /**
99
+ * indicates whether or not the pointer device that created the event is the primary pointer.
100
+ * @public
101
+ * @type {boolean}
102
+ * @name isPrimary
103
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent/isPrimary
104
+ * @memberof Pointer
105
+ */
106
+ this.isPrimary = false;
107
+
108
+ /**
109
+ * the horizontal coordinate at which the event occurred, relative to the left edge of the entire document.
110
+ * @public
111
+ * @type {number}
112
+ * @name pageX
113
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/pageX
114
+ * @memberof Pointer
115
+ */
116
+ this.pageX = 0;
117
+
118
+ /**
119
+ * the vertical coordinate at which the event occurred, relative to the left edge of the entire document.
120
+ * @public
121
+ * @type {number}
122
+ * @name pageY
123
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/pageY
124
+ * @memberof Pointer
125
+ */
126
+ this.pageY = 0;
127
+
128
+ /**
129
+ * the horizontal coordinate within the application's client area at which the event occurred
130
+ * @public
131
+ * @type {number}
132
+ * @name clientX
133
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/clientX
134
+ * @memberof Pointer
135
+ */
136
+ this.clientX = 0;
137
+
138
+ /**
139
+ * the vertical coordinate within the application's client area at which the event occurred
140
+ * @public
141
+ * @type {number}
142
+ * @name clientY
143
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/clientY
144
+ * @memberof Pointer
145
+ */
146
+ this.clientY = 0;
147
+
148
+ /**
149
+ * the difference in the X coordinate of the pointer since the previous move event
150
+ * @public
151
+ * @type {number}
152
+ * @name movementX
153
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/movementX
154
+ * @memberof Pointer
155
+ */
156
+ this.movementX = 0;
157
+
158
+ /**
159
+ * the difference in the Y coordinate of the pointer since the previous move event
160
+ * @public
161
+ * @type {number}
162
+ * @name movementY
163
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/movementY
164
+ * @memberof Pointer
165
+ */
166
+ this.movementY = 0;
167
+
168
+ /**
169
+ * an unsigned long representing the unit of the delta values scroll amount
170
+ * @public
171
+ * @type {number}
172
+ * @name deltaMode
173
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent/deltaMode
174
+ * @memberof Pointer
175
+ */
176
+ this.deltaMode = 0;
177
+
178
+ /**
179
+ * a double representing the horizontal scroll amount in the Wheel Event deltaMode unit.
180
+ * @public
181
+ * @type {number}
182
+ * @name deltaX
183
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent/deltaX
184
+ * @memberof Pointer
185
+ */
186
+ this.deltaX = 0;
187
+
188
+ /**
189
+ * a double representing the vertical scroll amount in the Wheel Event deltaMode unit.
190
+ * @public
191
+ * @type {number}
192
+ * @name deltaY
193
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent/deltaY
194
+ * @memberof Pointer
195
+ */
196
+ this.deltaY = 0;
197
+
198
+ /**
199
+ * a double representing the scroll amount in the z-axis, in the Wheel Event deltaMode unit.
200
+ * @public
201
+ * @type {number}
202
+ * @name deltaZ
203
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent/deltaZ
204
+ * @memberof Pointer
205
+ */
206
+ this.deltaZ = 0;
207
+
208
+ /**
209
+ * Event normalized X coordinate within the game canvas itself<br>
210
+ * <img src="images/event_coord.png"/>
211
+ * @public
212
+ * @type {number}
213
+ * @name gameX
214
+ * @memberof Pointer
215
+ */
216
+ this.gameX = 0;
217
+
218
+ /**
219
+ * Event normalized Y coordinate within the game canvas itself<br>
220
+ * <img src="images/event_coord.png"/>
221
+ * @public
222
+ * @type {number}
223
+ * @name gameY
224
+ * @memberof Pointer
225
+ */
226
+ this.gameY = 0;
227
+
228
+ /**
229
+ * Event X coordinate relative to the viewport
230
+ * @public
231
+ * @type {number}
232
+ * @name gameScreenX
233
+ * @memberof Pointer
234
+ */
235
+ this.gameScreenX = 0;
236
+
237
+ /**
238
+ * Event Y coordinate relative to the viewport
239
+ * @public
240
+ * @type {number}
241
+ * @name gameScreenY
242
+ * @memberof Pointer
243
+ */
244
+ this.gameScreenY = 0;
245
+
246
+ /**
247
+ * Event X coordinate relative to the map
248
+ * @public
249
+ * @type {number}
250
+ * @name gameWorldX
251
+ * @memberof Pointer
252
+ */
253
+ this.gameWorldX = 0;
254
+
255
+ /**
256
+ * Event Y coordinate relative to the map
257
+ * @public
258
+ * @type {number}
259
+ * @name gameWorldY
260
+ * @memberof Pointer
261
+ */
262
+ this.gameWorldY = 0;
263
+
264
+ /**
265
+ * Event X coordinate relative to the holding container
266
+ * @public
267
+ * @type {number}
268
+ * @name gameLocalX
269
+ * @memberof Pointer
270
+ */
271
+ this.gameLocalX = 0;
272
+
273
+ /**
274
+ * Event Y coordinate relative to the holding container
275
+ * @public
276
+ * @type {number}
277
+ * @name gameLocalY
278
+ * @memberof Pointer
279
+ */
280
+ this.gameLocalY = 0;
281
+
282
+ /**
283
+ * The unique identifier of the contact for a touch, mouse or pen
284
+ * @public
285
+ * @type {number}
286
+ * @name pointerId
287
+ * @memberof Pointer
288
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent/pointerId
289
+ */
290
+ this.pointerId = undefined;
291
+
292
+ /**
293
+ * true if not originally a pointer event
294
+ * @public
295
+ * @type {boolean}
296
+ * @name isNormalized
297
+ * @memberof Pointer
298
+ */
299
+ this.isNormalized = false;
300
+
301
+ /**
302
+ * true if the pointer is currently locked
303
+ * @public
304
+ * @type {boolean}
305
+ * @name locked
306
+ * @memberof Pointer
307
+ */
308
+ this.locked = false;
309
+
310
+ // bind list for mouse buttons
311
+ this.bind = [ 0, 0, 0 ];
312
+ }
313
+
314
+ /**
315
+ * initialize the Pointer object using the given Event Object
316
+ * @name Pointer#set
317
+ * @private
318
+ * @param {Event} event - the original Event object
319
+ * @param {number} [pageX=0] - the horizontal coordinate at which the event occurred, relative to the left edge of the entire document
320
+ * @param {number} [pageY=0] - the vertical coordinate at which the event occurred, relative to the left edge of the entire document
321
+ * @param {number} [clientX=0] - the horizontal coordinate within the application's client area at which the event occurred
322
+ * @param {number} [clientY=0] - the vertical coordinate within the application's client area at which the event occurred
323
+ * @param {number} [pointerId=1] - the Pointer, Touch or Mouse event Id (1)
324
+ */
325
+ setEvent(event, pageX = 0, pageY = 0, clientX = 0, clientY = 0, pointerId = 1) {
326
+ // the original event object
327
+ this.event = event;
328
+
329
+ this.pageX = pageX;
330
+ this.pageY = pageY;
331
+ this.clientX = clientX;
332
+ this.clientY = clientY;
333
+
334
+ // translate to local coordinates
335
+ globalToLocal(this.pageX, this.pageY, tmpVec);
336
+ this.gameScreenX = this.x = tmpVec.x;
337
+ this.gameScreenY = this.y = tmpVec.y;
338
+
339
+ // true if not originally a pointer event
340
+ this.isNormalized = (typeof globalThis.PointerEvent !== "undefined" && !(event instanceof globalThis.PointerEvent));
341
+
342
+ this.locked = locked;
343
+ this.movementX = event.movementX || 0;
344
+ this.movementY = event.movementY || 0;
345
+
346
+ if (event.type === "wheel") {
347
+ this.deltaMode = event.deltaMode || 0;
348
+ this.deltaX = event.deltaX || 0;
349
+ this.deltaY = event.deltaY || 0;
350
+ this.deltaZ = event.deltaZ || 0;
351
+ } else {
352
+ this.deltaMode = 0;
353
+ this.deltaX = 0;
354
+ this.deltaY = 0;
355
+ this.deltaZ = 0;
356
+ }
357
+
358
+ this.pointerId = pointerId;
359
+
360
+ this.isPrimary = (typeof event.isPrimary !== "undefined") ? event.isPrimary : true;
361
+
362
+ // in case of touch events, button is not defined
363
+ this.button = event.button || 0;
364
+
365
+ this.type = event.type;
366
+
367
+ // get the current screen to game world offset
368
+ if (typeof game.viewport !== "undefined") {
369
+ game.viewport.localToWorld(this.gameScreenX, this.gameScreenY, tmpVec);
370
+ }
371
+
372
+ /* Initialize the two coordinate space properties. */
373
+ this.gameWorldX = tmpVec.x;
374
+ this.gameWorldY = tmpVec.y;
375
+
376
+ // get the pointer size
377
+ if (this.isNormalized === false) {
378
+ // native PointerEvent
379
+ this.width = event.width || 1;
380
+ this.height = event.height || 1;
381
+ } else if (typeof(event.radiusX) === "number") {
382
+ // TouchEvent
383
+ this.width = (event.radiusX * 2) || 1;
384
+ this.height = (event.radiusY * 2) || 1;
385
+ } else {
386
+ this.width = this.height = 1;
387
+ }
388
+ }
389
+ }
390
+
391
+ var Pointer$1 = Pointer;
392
+
393
+ export { Pointer$1 as default };