melonjs 14.0.2 → 14.1.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 (214) 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 +240 -0
  11. package/dist/melonjs.mjs/audio/audio.js +536 -0
  12. package/dist/melonjs.mjs/camera/camera2d.js +732 -0
  13. package/dist/melonjs.mjs/entity/entity.js +248 -0
  14. package/dist/melonjs.mjs/game.js +29 -0
  15. package/dist/melonjs.mjs/geometries/ellipse.js +275 -0
  16. package/dist/melonjs.mjs/geometries/line.js +116 -0
  17. package/dist/melonjs.mjs/geometries/path2d.js +319 -0
  18. package/dist/melonjs.mjs/geometries/point.js +89 -0
  19. package/dist/melonjs.mjs/geometries/poly.js +500 -0
  20. package/dist/melonjs.mjs/geometries/rectangle.js +375 -0
  21. package/dist/melonjs.mjs/geometries/roundrect.js +168 -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 +448 -0
  32. package/dist/melonjs.mjs/level/tiled/TMXObject.js +355 -0
  33. package/dist/melonjs.mjs/level/tiled/TMXTile.js +194 -0
  34. package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +639 -0
  35. package/dist/melonjs.mjs/level/tiled/TMXTileset.js +311 -0
  36. package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +83 -0
  37. package/dist/melonjs.mjs/level/tiled/TMXUtils.js +367 -0
  38. package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +506 -0
  39. package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +220 -0
  40. package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +157 -0
  41. package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +125 -0
  42. package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +109 -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 +618 -0
  47. package/dist/melonjs.mjs/math/math.js +218 -0
  48. package/dist/melonjs.mjs/math/matrix2.js +503 -0
  49. package/dist/melonjs.mjs/math/matrix3.js +681 -0
  50. package/dist/melonjs.mjs/math/observable_vector2.js +471 -0
  51. package/dist/melonjs.mjs/math/observable_vector3.js +561 -0
  52. package/dist/melonjs.mjs/math/vector2.js +528 -0
  53. package/dist/melonjs.mjs/math/vector3.js +569 -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 +267 -0
  62. package/dist/melonjs.mjs/particles/particle.js +188 -0
  63. package/dist/melonjs.mjs/particles/settings.js +319 -0
  64. package/dist/melonjs.mjs/physics/body.js +704 -0
  65. package/dist/melonjs.mjs/physics/bounds.js +460 -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 +391 -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 +221 -0
  72. package/dist/melonjs.mjs/plugin/plugin.js +141 -0
  73. package/dist/melonjs.mjs/renderable/collectable.js +62 -0
  74. package/dist/melonjs.mjs/renderable/colorlayer.js +80 -0
  75. package/dist/melonjs.mjs/renderable/container.js +1018 -0
  76. package/dist/melonjs.mjs/renderable/dragndrop.js +224 -0
  77. package/dist/melonjs.mjs/renderable/imagelayer.js +306 -0
  78. package/dist/melonjs.mjs/renderable/light2d.js +156 -0
  79. package/dist/melonjs.mjs/renderable/nineslicesprite.js +247 -0
  80. package/dist/melonjs.mjs/renderable/renderable.js +783 -0
  81. package/dist/melonjs.mjs/renderable/sprite.js +654 -0
  82. package/dist/melonjs.mjs/renderable/trigger.js +157 -0
  83. package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +213 -0
  84. package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +226 -0
  85. package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +128 -0
  86. package/dist/melonjs.mjs/state/stage.js +237 -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 +364 -0
  96. package/dist/melonjs.mjs/text/bitmaptextdata.js +199 -0
  97. package/dist/melonjs.mjs/text/glyph.js +66 -0
  98. package/dist/melonjs.mjs/text/text.js +453 -0
  99. package/dist/melonjs.mjs/text/textmetrics.js +176 -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 +480 -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 +807 -0
  111. package/dist/melonjs.mjs/video/renderer.js +411 -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 +143 -0
  117. package/dist/melonjs.mjs/video/webgl/glshader.js +168 -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 +495 -0
  128. package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +1036 -0
  129. package/dist/melonjs.module.d.ts +1163 -1163
  130. package/dist/melonjs.module.js +1903 -3274
  131. package/package.json +22 -17
  132. package/src/application/application.js +3 -3
  133. package/src/audio/audio.js +32 -32
  134. package/src/camera/camera2d.js +31 -31
  135. package/src/entity/entity.js +17 -17
  136. package/src/geometries/ellipse.js +16 -16
  137. package/src/geometries/line.js +5 -5
  138. package/src/geometries/path2d.js +32 -32
  139. package/src/geometries/poly.js +15 -15
  140. package/src/geometries/rectangle.js +18 -18
  141. package/src/geometries/roundrect.js +8 -8
  142. package/src/input/gamepad.js +15 -15
  143. package/src/input/keyboard.js +12 -12
  144. package/src/input/pointer.js +6 -6
  145. package/src/input/pointerevent.js +12 -12
  146. package/src/lang/deprecated.js +12 -12
  147. package/src/level/level.js +25 -25
  148. package/src/level/tiled/TMXLayer.js +22 -22
  149. package/src/level/tiled/TMXTile.js +5 -5
  150. package/src/level/tiled/TMXTileMap.js +6 -6
  151. package/src/level/tiled/TMXTileset.js +2 -2
  152. package/src/level/tiled/TMXUtils.js +5 -5
  153. package/src/level/tiled/renderer/TMXHexagonalRenderer.js +2 -2
  154. package/src/level/tiled/renderer/TMXIsometricRenderer.js +2 -2
  155. package/src/level/tiled/renderer/TMXOrthogonalRenderer.js +1 -1
  156. package/src/level/tiled/renderer/TMXRenderer.js +19 -19
  157. package/src/loader/loader.js +20 -20
  158. package/src/math/color.js +20 -20
  159. package/src/math/math.js +16 -16
  160. package/src/math/matrix2.js +16 -16
  161. package/src/math/matrix3.js +25 -25
  162. package/src/math/observable_vector2.js +14 -14
  163. package/src/math/observable_vector3.js +16 -16
  164. package/src/math/vector2.js +9 -9
  165. package/src/math/vector3.js +10 -10
  166. package/src/particles/emitter.js +6 -6
  167. package/src/particles/particle.js +2 -2
  168. package/src/physics/body.js +28 -28
  169. package/src/physics/bounds.js +8 -8
  170. package/src/physics/collision.js +2 -2
  171. package/src/physics/detector.js +6 -6
  172. package/src/physics/quadtree.js +11 -11
  173. package/src/physics/sat.js +31 -31
  174. package/src/physics/world.js +5 -5
  175. package/src/plugin/plugin.js +5 -5
  176. package/src/renderable/collectable.js +3 -3
  177. package/src/renderable/colorlayer.js +5 -5
  178. package/src/renderable/container.js +21 -21
  179. package/src/renderable/dragndrop.js +14 -14
  180. package/src/renderable/imagelayer.js +13 -13
  181. package/src/renderable/light2d.js +3 -3
  182. package/src/renderable/nineslicesprite.js +16 -16
  183. package/src/renderable/renderable.js +23 -23
  184. package/src/renderable/sprite.js +28 -28
  185. package/src/renderable/trigger.js +15 -15
  186. package/src/renderable/ui/uibaseelement.js +7 -7
  187. package/src/renderable/ui/uispriteelement.js +6 -6
  188. package/src/renderable/ui/uitextbutton.js +13 -13
  189. package/src/state/stage.js +7 -7
  190. package/src/state/state.js +17 -17
  191. package/src/system/device.js +11 -11
  192. package/src/system/event.js +10 -10
  193. package/src/system/pooling.js +9 -9
  194. package/src/system/save.js +2 -2
  195. package/src/system/timer.js +10 -10
  196. package/src/text/bitmaptext.js +18 -18
  197. package/src/text/bitmaptextdata.js +2 -2
  198. package/src/text/text.js +23 -23
  199. package/src/text/textmetrics.js +8 -8
  200. package/src/tweens/tween.js +19 -19
  201. package/src/utils/agent.js +5 -5
  202. package/src/utils/array.js +4 -4
  203. package/src/utils/file.js +2 -2
  204. package/src/utils/function.js +6 -6
  205. package/src/utils/string.js +5 -5
  206. package/src/utils/utils.js +4 -4
  207. package/src/video/canvas/canvas_renderer.js +70 -70
  208. package/src/video/renderer.js +26 -26
  209. package/src/video/texture/atlas.js +22 -22
  210. package/src/video/texture/canvas_texture.js +9 -9
  211. package/src/video/video.js +17 -17
  212. package/src/video/webgl/glshader.js +10 -10
  213. package/src/video/webgl/webgl_compositor.js +41 -41
  214. package/src/video/webgl/webgl_renderer.js +75 -75
@@ -0,0 +1,78 @@
1
+ /*!
2
+ * melonJS Game Engine - v14.1.0
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 { once, DOM_READY, emit } from './event.js';
9
+
10
+ // track if DOMContentLoaded was called already
11
+ let readyBound = false;
12
+
13
+ // is the DOM ready ?
14
+ let isDOMReady = false;
15
+
16
+ // check if the dom is ready
17
+ function _domReady() {
18
+
19
+ // Make sure that the DOM is not already loaded
20
+ if (!isDOMReady) {
21
+ // be sure document.body is there
22
+ if (typeof globalThis.document !== "undefined" && !globalThis.document.body) {
23
+ return setTimeout(_domReady, 13);
24
+ }
25
+
26
+ // clean up loading event
27
+ if (typeof globalThis.document !== "undefined" && typeof globalThis.document.removeEventListener === "function") {
28
+ globalThis.document.removeEventListener(
29
+ "DOMContentLoaded",
30
+ _domReady,
31
+ false
32
+ );
33
+ }
34
+
35
+ if (typeof globalThis.removeEventListener === "function") {
36
+ // remove the event on globalThis.onload (always added in `onReady`)
37
+ globalThis.removeEventListener("load", _domReady, false);
38
+ }
39
+
40
+ // execute all callbacks
41
+ emit(DOM_READY);
42
+
43
+ // Remember that the DOM is ready
44
+ isDOMReady = true;
45
+ }
46
+ }
47
+
48
+ // https://developer.mozilla.org/en-US/docs/Web/API/Window/DOMContentLoaded_event
49
+ function DOMContentLoaded(fn) {
50
+ // If the DOM is already ready
51
+ if (isDOMReady) {
52
+ // Execute the function immediately
53
+ fn.call(globalThis, []);
54
+ }
55
+ else {
56
+ // else add the function to the DOM_READY event
57
+ once(DOM_READY, fn, globalThis);
58
+ // bind dom load event if not done yet
59
+ if (!readyBound) {
60
+ // directly call domReady if document is already "ready"
61
+ if (((typeof process !== "undefined") && (process.release.name === "node")) || (typeof globalThis.document !== "undefined" && globalThis.document.readyState === "complete")) {
62
+ // defer the fn call to ensure our script is fully loaded
63
+ globalThis.setTimeout(_domReady, 0);
64
+ }
65
+ else {
66
+ if (typeof globalThis.document !== "undefined" && typeof globalThis.document.addEventListener === "function") {
67
+ // Use the handy event callback
68
+ globalThis.document.addEventListener("DOMContentLoaded", _domReady, false);
69
+ }
70
+ // A fallback to globalThis.onload, that will always work
71
+ globalThis.addEventListener("load", _domReady, false);
72
+ }
73
+ readyBound = true;
74
+ }
75
+ }
76
+ }
77
+
78
+ export { DOMContentLoaded };
@@ -0,0 +1,537 @@
1
+ /*!
2
+ * melonJS Game Engine - v14.1.0
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 EventEmitter from '../node_modules/eventemitter3/index.js';
9
+
10
+ /**
11
+ * an event system based on nodeJS EventEmitter interface
12
+ * @namespace event
13
+ */
14
+
15
+ // internal instance of the event emiter
16
+ var eventEmitter = new EventEmitter();
17
+
18
+ /**
19
+ * event when the DOM is Ready is booting
20
+ * @public
21
+ * @constant
22
+ * @type {string}
23
+ * @name DOM_READY
24
+ * @memberof event
25
+ * @see event.on
26
+ */
27
+ const DOM_READY = "dom_ready";
28
+
29
+ /**
30
+ * event when the system is booting
31
+ * @public
32
+ * @constant
33
+ * @type {string}
34
+ * @name BOOT
35
+ * @memberof event
36
+ * @see event.on
37
+ */
38
+ const BOOT = "me.boot";
39
+
40
+ /**
41
+ * event when the game is paused <br>
42
+ * Data passed : none <br>
43
+ * @public
44
+ * @constant
45
+ * @type {string}
46
+ * @name STATE_PAUSE
47
+ * @memberof event
48
+ * @see event.on
49
+ */
50
+ const STATE_PAUSE = "me.state.onPause";
51
+
52
+ /**
53
+ * event for when the game is resumed <br>
54
+ * Data passed : {number} time in ms the game was paused
55
+ * @public
56
+ * @constant
57
+ * @type {string}
58
+ * @name STATE_RESUME
59
+ * @memberof event
60
+ * @see event.on
61
+ */
62
+ const STATE_RESUME = "me.state.onResume";
63
+
64
+ /**
65
+ * event when the game is stopped <br>
66
+ * Data passed : none <br>
67
+ * @public
68
+ * @constant
69
+ * @type {string}
70
+ * @name STATE_STOP
71
+ * @memberof event
72
+ * @see event.on
73
+ */
74
+ const STATE_STOP = "me.state.onStop";
75
+
76
+ /**
77
+ * event for when the game is restarted <br>
78
+ * Data passed : {number} time in ms the game was stopped
79
+ * @public
80
+ * @constant
81
+ * @type {string}
82
+ * @name STATE_RESTART
83
+ * @memberof event
84
+ * @see event.on
85
+ */
86
+ const STATE_RESTART = "me.state.onRestart";
87
+
88
+ /**
89
+ * event for when the changing to a different stage
90
+ * @public
91
+ * @constant
92
+ * @type {string}
93
+ * @name STATE_CHANGE
94
+ * @memberof event
95
+ * @see event.on
96
+ */
97
+ const STATE_CHANGE = "me.state.onChange";
98
+
99
+ /**
100
+ * event for when the video is initialized<br>
101
+ * Data passed : none <br>
102
+ * @public
103
+ * @constant
104
+ * @type {string}
105
+ * @name VIDEO_INIT
106
+ * @memberof event
107
+ * @see video.init
108
+ * @see event.on
109
+ */
110
+ const VIDEO_INIT = "me.video.onInit";
111
+
112
+ /**
113
+ * event for when the game manager is initialized <br>
114
+ * Data passed : none <br>
115
+ * @public
116
+ * @constant
117
+ * @type {string}
118
+ * @name GAME_INIT
119
+ * @memberof event
120
+ * @see event.on
121
+ */
122
+ const GAME_INIT = "me.game.onInit";
123
+
124
+ /**
125
+ * event for when the game manager is resetted <br>
126
+ * Data passed : none <br>
127
+ * @public
128
+ * @constant
129
+ * @type {string}
130
+ * @name GAME_RESET
131
+ * @memberof event
132
+ * @see event.on
133
+ */
134
+ const GAME_RESET = "me.game.onReset";
135
+
136
+ /**
137
+ * event for when the engine is about to start a new game loop
138
+ * Data passed : {number} time the current time stamp
139
+ * @public
140
+ * @constant
141
+ * @type {string}
142
+ * @name GAME_BEFORE_UPDATE
143
+ * @memberof event
144
+ * @see event.on
145
+ */
146
+ const GAME_BEFORE_UPDATE = "me.game.beforeUpdate";
147
+
148
+ /**
149
+ * event for the end of the update loop
150
+ * Data passed : {number} time the current time stamp
151
+ * @public
152
+ * @constant
153
+ * @type {string}
154
+ * @name GAME_AFTER_UPDATE
155
+ * @memberof event
156
+ * @see event.on
157
+ */
158
+ const GAME_AFTER_UPDATE = "me.game.afterUpdate";
159
+
160
+ /**
161
+ * Event for when the game is updated (will be impacted by frame skip, frame interpolation and pause/resume state) <br>
162
+ * Data passed : {number} time the current time stamp
163
+ * @public
164
+ * @constant
165
+ * @type {string}
166
+ * @name GAME_UPDATE
167
+ * @memberof event
168
+ * @see event.on
169
+ */
170
+ const GAME_UPDATE = "me.game.onUpdate";
171
+
172
+ /**
173
+ * Event for the end of the draw loop
174
+ * Data passed : {number} time the current time stamp
175
+ * @public
176
+ * @constant
177
+ * @type {string}
178
+ * @name GAME_BEFORE_DRAW
179
+ * @memberof event
180
+ * @see event.on
181
+ */
182
+ const GAME_BEFORE_DRAW = "me.game.beforeDraw";
183
+
184
+ /**
185
+ * Event for the start of the draw loop
186
+ * Data passed : {number} time the current time stamp
187
+ * @public
188
+ * @constant
189
+ * @type {string}
190
+ * @name GAME_AFTER_DRAW
191
+ * @memberof event
192
+ * @see event.on
193
+ */
194
+ const GAME_AFTER_DRAW = "me.game.afterDraw";
195
+
196
+ /**
197
+ * Event for when a level is loaded <br>
198
+ * Data passed : {string} Level Name
199
+ * @public
200
+ * @constant
201
+ * @type {string}
202
+ * @name LEVEL_LOADED
203
+ * @memberof event
204
+ * @see event.on
205
+ */
206
+ const LEVEL_LOADED = "me.game.onLevelLoaded";
207
+
208
+ /**
209
+ * Event for when everything has loaded <br>
210
+ * Data passed : none <br>
211
+ * @public
212
+ * @constant
213
+ * @type {string}
214
+ * @name LOADER_COMPLETE
215
+ * @memberof event
216
+ * @see event.on
217
+ */
218
+ const LOADER_COMPLETE = "me.loader.onload";
219
+
220
+ /**
221
+ * Event for displaying a load progress indicator <br>
222
+ * Data passed : {number} [0 .. 1], {Resource} resource object<br>
223
+ * @public
224
+ * @constant
225
+ * @type {string}
226
+ * @name LOADER_PROGRESS
227
+ * @memberof event
228
+ * @see event.on
229
+ */
230
+ const LOADER_PROGRESS = "me.loader.onProgress";
231
+
232
+ /**
233
+ * Event for pressing a binded key <br>
234
+ * Data passed : {string} user-defined action, {number} keyCode,
235
+ * {boolean} edge state <br>
236
+ * Edge-state is for detecting "locked" key bindings. When a locked key
237
+ * is pressed and held, the first event will have the third argument
238
+ * set true. Subsequent events will continue firing with the third
239
+ * argument set false.
240
+ * @public
241
+ * @constant
242
+ * @type {string}
243
+ * @name KEYDOWN
244
+ * @memberof event
245
+ * @see event.on
246
+ * @example
247
+ * me.input.bindKey(me.input.KEY.X, "jump", true); // Edge-triggered
248
+ * me.input.bindKey(me.input.KEY.Z, "shoot"); // Level-triggered
249
+ * me.event.on(me.event.KEYDOWN, (action, keyCode, edge) => {
250
+ * // Checking bound keys
251
+ * if (action === "jump") {
252
+ * if (edge) {
253
+ * this.doJump();
254
+ * }
255
+ *
256
+ * // Make character fall slower when holding the jump key
257
+ * this.vel.y = this.body.gravity;
258
+ * }
259
+ * });
260
+ */
261
+ const KEYDOWN = "me.input.keydown";
262
+
263
+ /**
264
+ * Event for releasing a binded key <br>
265
+ * Data passed : {string} user-defined action, {number} keyCode
266
+ * @public
267
+ * @constant
268
+ * @type {string}
269
+ * @name KEYUP
270
+ * @memberof event
271
+ * @see event.on
272
+ * @example
273
+ * me.event.on(me.event.KEYUP, (action, keyCode) => {
274
+ * // Checking unbound keys
275
+ * if (keyCode == me.input.KEY.ESC) {
276
+ * if (me.state.isPaused()) {
277
+ * me.state.resume();
278
+ * }
279
+ * else {
280
+ * me.state.pause();
281
+ * }
282
+ * }
283
+ * });
284
+ */
285
+ const KEYUP = "me.input.keyup";
286
+
287
+ /**
288
+ * Event for when a gamepad is connected <br>
289
+ * Data passed : {object} gamepad object
290
+ * @public
291
+ * @constant
292
+ * @type {string}
293
+ * @name GAMEPAD_CONNECTED
294
+ * @memberof event
295
+ * @see event.on
296
+ */
297
+ const GAMEPAD_CONNECTED = "gamepad.connected";
298
+
299
+ /**
300
+ * Event for when a gamepad is disconnected <br>
301
+ * Data passed : {object} gamepad object
302
+ * @public
303
+ * @constant
304
+ * @type {string}
305
+ * @name GAMEPAD_DISCONNECTED
306
+ * @memberof event
307
+ * @see event.on
308
+ */
309
+ const GAMEPAD_DISCONNECTED = "gamepad.disconnected";
310
+
311
+ /**
312
+ * Event for when gamepad button/axis state is updated <br>
313
+ * Data passed : {number} index <br>
314
+ * Data passed : {string} type : "axes" or "buttons" <br>
315
+ * Data passed : {number} button <br>
316
+ * Data passed : {number} current.value <br>
317
+ * Data passed : {boolean} current.pressed
318
+ * @public
319
+ * @constant
320
+ * @type {string}
321
+ * @name GAMEPAD_UPDATE
322
+ * @memberof event
323
+ * @see event.on
324
+ */
325
+ const GAMEPAD_UPDATE = "gamepad.update";
326
+
327
+ /**
328
+ * Event for pointermove events on the screen area <br>
329
+ * Data passed : {me.Pointer} a Pointer object
330
+ * @public
331
+ * @constant
332
+ * @type {string}
333
+ * @name POINTERMOVE
334
+ * @memberof event
335
+ * @see event.on
336
+ */
337
+ const POINTERMOVE = "me.event.pointermove";
338
+
339
+ /**
340
+ * Event for onPointerLockChange event <br>
341
+ * Data passed : {boolean} pointer lock status (true/false)
342
+ * @public
343
+ * @constant
344
+ * @type {string}
345
+ * @name POINTERLOCKCHANGE
346
+ * @memberof event
347
+ * @see event.on
348
+ */
349
+ const POINTERLOCKCHANGE = "me.event.pointerlockChange";
350
+
351
+ /**
352
+ * Event for dragstart events on a Draggable entity <br>
353
+ * Data passed:
354
+ * {object} the drag event <br>
355
+ * {object} the Draggable entity
356
+ * @public
357
+ * @constant
358
+ * @type {string}
359
+ * @name DRAGSTART
360
+ * @memberof event
361
+ * @see event.on
362
+ */
363
+ const DRAGSTART = "me.game.dragstart";
364
+
365
+ /**
366
+ * Event for dragend events on a Draggable entity <br>
367
+ * Data passed:
368
+ * {object} the drag event <br>
369
+ * {object} the Draggable entity
370
+ * @public
371
+ * @constant
372
+ * @type {string}
373
+ * @name DRAGEND
374
+ * @memberof event
375
+ * @see event.on
376
+ */
377
+ const DRAGEND = "me.game.dragend";
378
+
379
+ /**
380
+ * Event for when the (browser) window is resized <br>
381
+ * Data passed : {Event} Event object
382
+ * @public
383
+ * @constant
384
+ * @type {string}
385
+ * @name WINDOW_ONRESIZE
386
+ * @memberof event
387
+ * @see event.on
388
+ */
389
+ const WINDOW_ONRESIZE = "globalThis.onresize";
390
+
391
+ /**
392
+ * Event for when the canvas is resized <br>
393
+ * (this usually follows a WINDOW_ONRESIZE event).<br>
394
+ * Data passed : {number} canvas width <br>
395
+ * Data passed : {number} canvas height
396
+ * @public
397
+ * @constant
398
+ * @type {string}
399
+ * @name CANVAS_ONRESIZE
400
+ * @memberof event
401
+ * @see event.on
402
+ */
403
+ const CANVAS_ONRESIZE = "canvas.onresize";
404
+
405
+ /**
406
+ * Event for when the viewport is resized <br>
407
+ * (this usually follows a WINDOW_ONRESIZE event, when using the `flex` scaling mode is used and after the viewport was updated).<br>
408
+ * Data passed : {number} viewport width <br>
409
+ * Data passed : {number} viewport height <br>
410
+ * Data passed : {Camera2d} a reference to the camera viewport being resized
411
+ * @public
412
+ * @constant
413
+ * @type {string}
414
+ * @name VIEWPORT_ONRESIZE
415
+ * @memberof event
416
+ * @see event.on
417
+ */
418
+ const VIEWPORT_ONRESIZE = "viewport.onresize";
419
+
420
+ /**
421
+ * Event for when the device is rotated <br>
422
+ * Data passed : {Event} Event object <br>
423
+ * @public
424
+ * @constant
425
+ * @type {string}
426
+ * @name WINDOW_ONORIENTATION_CHANGE
427
+ * @memberof event
428
+ * @see event.on
429
+ */
430
+ const WINDOW_ONORIENTATION_CHANGE = "globalThis.orientationchange";
431
+
432
+ /**
433
+ * Event for when the (browser) window is scrolled <br>
434
+ * Data passed : {Event} Event object
435
+ * @public
436
+ * @constant
437
+ * @type {string}
438
+ * @name WINDOW_ONSCROLL
439
+ * @memberof event
440
+ * @see event.on
441
+ */
442
+ const WINDOW_ONSCROLL = "globalThis.onscroll";
443
+
444
+ /**
445
+ * Event for when the viewport position is updated <br>
446
+ * Data passed : {me.Vector2d} viewport position vector
447
+ * @public
448
+ * @constant
449
+ * @type {string}
450
+ * @name VIEWPORT_ONCHANGE
451
+ * @memberof event
452
+ * @see event.on
453
+ */
454
+ const VIEWPORT_ONCHANGE = "viewport.onchange";
455
+
456
+ /**
457
+ * Event for when the current context is lost <br>
458
+ * Data passed : {me.Renderer} the current renderer instance
459
+ * @public
460
+ * @constant
461
+ * @type {string}
462
+ * @name WEBGL_ONCONTEXT_LOST
463
+ * @memberof event
464
+ * @see event.on
465
+ */
466
+ const ONCONTEXT_LOST = "renderer.contextlost";
467
+
468
+ /**
469
+ * Event for when the current context is restored <br>
470
+ * Data passed : {me.Renderer} the current renderer instance`
471
+ * @public
472
+ * @constant
473
+ * @type {string}
474
+ * @name ONCONTEXT_RESTORED
475
+ * @memberof event
476
+ * @see event.on
477
+ */
478
+ const ONCONTEXT_RESTORED = "renderer.contextrestored";
479
+
480
+ /**
481
+ * calls each of the listeners registered for a given event.
482
+ * @function event.emit
483
+ * @param {string|symbol} eventName - The event name.
484
+ * @param {object} [...arguments] - arguments to be passed to all listeners
485
+ * @returns {boolean} true if the event had listeners, false otherwise.
486
+ * @example
487
+ * me.event.emit("event-name", a, b, c);
488
+ */
489
+ function emit(eventName, ...args) {
490
+ return eventEmitter.emit(eventName, ...args);
491
+ }
492
+
493
+ /**
494
+ * Add a listener for a given event.
495
+ * @function event.on
496
+ * @param {string|symbol} eventName - The event name.
497
+ * @param {Function} listener - The listener function.
498
+ * @param {*} [context=this] - The context to invoke the listener with.
499
+ * @returns {EventEmitter} `this`.
500
+ * @public
501
+ * @example
502
+ * me.event.on("event-name", myFunction, this);
503
+ */
504
+ function on(eventName, listener, context) {
505
+ return eventEmitter.on(eventName, listener, context);
506
+ }
507
+
508
+ /**
509
+ * Add a one-time listener for a given event.
510
+ * @function event.once
511
+ * @param {string|symbol} eventName - The event name.
512
+ * @param {Function} listener - The listener function.
513
+ * @param {*} [context=this] - The context to invoke the listener with.
514
+ * @returns {EventEmitter} `this`.
515
+ * @public
516
+ * @example
517
+ * me.event.once("event-name", myFunction, this);
518
+ */
519
+ function once(eventName, listener, context) {
520
+ return eventEmitter.once(eventName, listener, context);
521
+ }
522
+
523
+ /**
524
+ * remove the given listener for a given event.
525
+ * @function event.off
526
+ * @param {string|symbol} eventName - The event name.
527
+ * @param {Function} listener - The listener function.
528
+ * @returns {EventEmitter} `this`.
529
+ * @public
530
+ * @example
531
+ * me.event.off("event-name", myFunction);
532
+ */
533
+ function off(eventName, listener) {
534
+ return eventEmitter.off(eventName, listener);
535
+ }
536
+
537
+ export { BOOT, CANVAS_ONRESIZE, DOM_READY, DRAGEND, DRAGSTART, GAMEPAD_CONNECTED, GAMEPAD_DISCONNECTED, GAMEPAD_UPDATE, GAME_AFTER_DRAW, GAME_AFTER_UPDATE, GAME_BEFORE_DRAW, GAME_BEFORE_UPDATE, GAME_INIT, GAME_RESET, GAME_UPDATE, KEYDOWN, KEYUP, LEVEL_LOADED, LOADER_COMPLETE, LOADER_PROGRESS, ONCONTEXT_LOST, ONCONTEXT_RESTORED, POINTERLOCKCHANGE, POINTERMOVE, STATE_CHANGE, STATE_PAUSE, STATE_RESTART, STATE_RESUME, STATE_STOP, VIDEO_INIT, VIEWPORT_ONCHANGE, VIEWPORT_ONRESIZE, WINDOW_ONORIENTATION_CHANGE, WINDOW_ONRESIZE, WINDOW_ONSCROLL, emit, off, on, once };
@@ -0,0 +1,41 @@
1
+ /*!
2
+ * melonJS Game Engine - v14.1.0
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
+ /**
9
+ * The device platform type
10
+ * @namespace platform
11
+ * @memberof device
12
+ * @property {string} ua the user agent string for the current device
13
+ * @property {boolean} iOS `true` if the device is an iOS platform
14
+ * @property {boolean} android `true` if the device is an Android platform
15
+ * @property {boolean} android2 `true` if the device is an Android 2.x platform
16
+ * @property {boolean} linux `true` if the device is a Linux platform
17
+ * @property {boolean} chromeOS `true` if the device is running on ChromeOS.
18
+ * @property {boolean} wp `true` if the device is a Windows Phone platform
19
+ * @property {boolean} BlackBerry`true` if the device is a BlackBerry platform
20
+ * @property {boolean} Kindle`true` if the device is a Kindle platform
21
+ * @property {boolean} ejecta `true` if running under Ejecta
22
+ * @property {boolean} isWeixin `true` if running under Wechat
23
+ * @property {boolean} nodeJS `true` if running under node.js
24
+ * @property {boolean} isMobile `true` if a mobile device
25
+ */
26
+
27
+ const ua = typeof globalThis.navigator !== "undefined" ? globalThis.navigator.userAgent : "";
28
+ const iOS = /iPhone|iPad|iPod/i.test(ua);
29
+ const android = /Android/i.test(ua);
30
+ const android2 = /Android 2/i.test(ua);
31
+ const linux = /Linux/i.test(ua);
32
+ const chromeOS = /CrOS/.test(ua);
33
+ const wp = /Windows Phone/i.test(ua);
34
+ const BlackBerry = /BlackBerry/i.test(ua);
35
+ const Kindle = /Kindle|Silk.*Mobile Safari/i.test(ua);
36
+ const ejecta = (typeof globalThis.ejecta !== "undefined");
37
+ const isWeixin = /MicroMessenger/i.test(ua);
38
+ const nodeJS = (typeof globalThis.process !== "undefined") && (typeof globalThis.process.release !== "undefined") && (globalThis.process.release.name === "node");
39
+ const isMobile = /Mobi/i.test(ua) || iOS || android || wp || BlackBerry || Kindle || false;
40
+
41
+ export { BlackBerry, Kindle, android, android2, chromeOS, ejecta, iOS, isMobile, isWeixin, linux, nodeJS, ua, wp };