melonjs 15.3.0 → 15.4.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 (287) hide show
  1. package/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +1 -1
  2. package/dist/melonjs.mjs/_virtual/earcut.js +1 -1
  3. package/dist/melonjs.mjs/_virtual/howler.js +1 -1
  4. package/dist/melonjs.mjs/_virtual/index.js +1 -1
  5. package/dist/melonjs.mjs/application/application.js +53 -5
  6. package/dist/melonjs.mjs/application/header.js +2 -2
  7. package/dist/melonjs.mjs/application/resize.js +4 -8
  8. package/dist/melonjs.mjs/application/settings.js +5 -5
  9. package/dist/melonjs.mjs/audio/audio.js +4 -6
  10. package/dist/melonjs.mjs/camera/camera2d.js +12 -14
  11. package/dist/melonjs.mjs/const.js +1 -1
  12. package/dist/melonjs.mjs/entity/entity.js +3 -4
  13. package/dist/melonjs.mjs/geometries/ellipse.js +26 -59
  14. package/dist/melonjs.mjs/geometries/line.js +18 -25
  15. package/dist/melonjs.mjs/geometries/path2d.js +16 -13
  16. package/dist/melonjs.mjs/geometries/point.js +8 -16
  17. package/dist/melonjs.mjs/geometries/poly.js +40 -97
  18. package/dist/melonjs.mjs/geometries/rectangle.js +37 -91
  19. package/dist/melonjs.mjs/geometries/roundrect.js +26 -35
  20. package/dist/melonjs.mjs/index.js +6 -6
  21. package/dist/melonjs.mjs/input/gamepad.js +1 -1
  22. package/dist/melonjs.mjs/input/input.js +1 -1
  23. package/dist/melonjs.mjs/input/keyboard.js +3 -3
  24. package/dist/melonjs.mjs/input/pointer.js +4 -4
  25. package/dist/melonjs.mjs/input/pointerevent.js +6 -7
  26. package/dist/melonjs.mjs/lang/console.js +1 -1
  27. package/dist/melonjs.mjs/lang/deprecated.js +2 -2
  28. package/dist/melonjs.mjs/level/level.js +1 -1
  29. package/dist/melonjs.mjs/level/tiled/TMXGroup.js +1 -1
  30. package/dist/melonjs.mjs/level/tiled/TMXLayer.js +16 -33
  31. package/dist/melonjs.mjs/level/tiled/TMXObject.js +3 -4
  32. package/dist/melonjs.mjs/level/tiled/TMXTile.js +4 -4
  33. package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +3 -3
  34. package/dist/melonjs.mjs/level/tiled/TMXTileset.js +4 -7
  35. package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +2 -2
  36. package/dist/melonjs.mjs/level/tiled/TMXUtils.js +26 -29
  37. package/dist/melonjs.mjs/level/tiled/constants.js +1 -1
  38. package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +3 -3
  39. package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +2 -2
  40. package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +2 -2
  41. package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +2 -2
  42. package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +2 -2
  43. package/dist/melonjs.mjs/level/tiled/renderer/autodetect.js +1 -1
  44. package/dist/melonjs.mjs/loader/cache.js +1 -1
  45. package/dist/melonjs.mjs/loader/loader.js +1 -1
  46. package/dist/melonjs.mjs/loader/loadingscreen.js +1 -1
  47. package/dist/melonjs.mjs/loader/melonjs_logo.png.js +1 -1
  48. package/dist/melonjs.mjs/loader/parser.js +4 -5
  49. package/dist/melonjs.mjs/loader/settings.js +1 -1
  50. package/dist/melonjs.mjs/math/color.js +2 -2
  51. package/dist/melonjs.mjs/math/math.js +1 -1
  52. package/dist/melonjs.mjs/math/matrix2.js +5 -59
  53. package/dist/melonjs.mjs/math/matrix3.js +82 -141
  54. package/dist/melonjs.mjs/math/observable_vector2.js +7 -7
  55. package/dist/melonjs.mjs/math/observable_vector3.js +5 -5
  56. package/dist/melonjs.mjs/math/vector2.js +7 -91
  57. package/dist/melonjs.mjs/math/vector3.js +6 -90
  58. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/arraymultimap.js +1 -1
  59. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/multimap.js +1 -1
  60. package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +1 -1
  61. package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +1 -1
  62. package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +1 -1
  63. package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +1 -1
  64. package/dist/melonjs.mjs/particles/emitter.js +2 -2
  65. package/dist/melonjs.mjs/particles/particle.js +2 -2
  66. package/dist/melonjs.mjs/particles/settings.js +1 -1
  67. package/dist/melonjs.mjs/physics/body.js +22 -20
  68. package/dist/melonjs.mjs/physics/bounds.js +27 -33
  69. package/dist/melonjs.mjs/physics/collision.js +5 -5
  70. package/dist/melonjs.mjs/physics/detector.js +10 -10
  71. package/dist/melonjs.mjs/physics/quadtree.js +5 -5
  72. package/dist/melonjs.mjs/physics/response.js +1 -1
  73. package/dist/melonjs.mjs/physics/sat.js +3 -4
  74. package/dist/melonjs.mjs/physics/world.js +6 -9
  75. package/dist/melonjs.mjs/plugin/plugin.js +3 -3
  76. package/dist/melonjs.mjs/renderable/collectable.js +2 -2
  77. package/dist/melonjs.mjs/renderable/colorlayer.js +4 -4
  78. package/dist/melonjs.mjs/renderable/container.js +25 -25
  79. package/dist/melonjs.mjs/renderable/draggable.js +1 -1
  80. package/dist/melonjs.mjs/renderable/dragndrop.js +1 -1
  81. package/dist/melonjs.mjs/renderable/imagelayer.js +4 -4
  82. package/dist/melonjs.mjs/renderable/light2d.js +3 -3
  83. package/dist/melonjs.mjs/renderable/nineslicesprite.js +2 -2
  84. package/dist/melonjs.mjs/renderable/renderable.js +26 -26
  85. package/dist/melonjs.mjs/renderable/sprite.js +3 -3
  86. package/dist/melonjs.mjs/renderable/text/bitmaptext.js +421 -0
  87. package/dist/melonjs.mjs/renderable/text/bitmaptextdata.js +195 -0
  88. package/dist/melonjs.mjs/renderable/text/glyph.js +65 -0
  89. package/dist/melonjs.mjs/renderable/text/text.js +422 -0
  90. package/dist/melonjs.mjs/renderable/text/textmetrics.js +175 -0
  91. package/dist/melonjs.mjs/renderable/text/textstyle.js +21 -0
  92. package/dist/melonjs.mjs/renderable/trigger.js +10 -10
  93. package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +7 -7
  94. package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +7 -7
  95. package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +3 -3
  96. package/dist/melonjs.mjs/state/stage.js +2 -2
  97. package/dist/melonjs.mjs/state/state.js +1 -38
  98. package/dist/melonjs.mjs/system/device.js +49 -10
  99. package/dist/melonjs.mjs/system/dom.js +1 -1
  100. package/dist/melonjs.mjs/system/event.js +24 -2
  101. package/dist/melonjs.mjs/system/platform.js +18 -18
  102. package/dist/melonjs.mjs/system/pooling.js +10 -10
  103. package/dist/melonjs.mjs/system/save.js +1 -1
  104. package/dist/melonjs.mjs/system/timer.js +1 -1
  105. package/dist/melonjs.mjs/text/bitmaptext.js +1 -1
  106. package/dist/melonjs.mjs/text/bitmaptextdata.js +3 -6
  107. package/dist/melonjs.mjs/text/glyph.js +1 -1
  108. package/dist/melonjs.mjs/text/text.js +1 -1
  109. package/dist/melonjs.mjs/text/textmetrics.js +1 -1
  110. package/dist/melonjs.mjs/text/textstyle.js +1 -1
  111. package/dist/melonjs.mjs/tweens/easing.js +1 -1
  112. package/dist/melonjs.mjs/tweens/interpolation.js +1 -1
  113. package/dist/melonjs.mjs/tweens/tween.js +2 -2
  114. package/dist/melonjs.mjs/utils/agent.js +1 -1
  115. package/dist/melonjs.mjs/utils/array.js +1 -1
  116. package/dist/melonjs.mjs/utils/file.js +1 -1
  117. package/dist/melonjs.mjs/utils/function.js +2 -3
  118. package/dist/melonjs.mjs/utils/string.js +1 -1
  119. package/dist/melonjs.mjs/utils/utils.js +1 -1
  120. package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +3 -7
  121. package/dist/melonjs.mjs/video/renderer.js +16 -16
  122. package/dist/melonjs.mjs/video/texture/atlas.js +13 -13
  123. package/dist/melonjs.mjs/video/texture/cache.js +1 -1
  124. package/dist/melonjs.mjs/video/texture/canvas_texture.js +15 -15
  125. package/dist/melonjs.mjs/video/utils/autodetect.js +1 -1
  126. package/dist/melonjs.mjs/video/video.js +4 -4
  127. package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +3 -3
  128. package/dist/melonjs.mjs/video/webgl/compositors/compositor.js +13 -14
  129. package/dist/melonjs.mjs/video/webgl/compositors/primitive_compositor.js +5 -5
  130. package/dist/melonjs.mjs/video/webgl/compositors/quad_compositor.js +2 -3
  131. package/dist/melonjs.mjs/video/webgl/glshader.js +2 -2
  132. package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +1 -1
  133. package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +1 -1
  134. package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +1 -1
  135. package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +1 -1
  136. package/dist/melonjs.mjs/video/webgl/utils/attributes.js +1 -1
  137. package/dist/melonjs.mjs/video/webgl/utils/precision.js +4 -4
  138. package/dist/melonjs.mjs/video/webgl/utils/program.js +1 -1
  139. package/dist/melonjs.mjs/video/webgl/utils/string.js +1 -1
  140. package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +1 -1
  141. package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +50 -52
  142. package/dist/melonjs.module.js +1137 -1576
  143. package/dist/types/application/application.d.ts +28 -4
  144. package/dist/types/application/header.d.ts +2 -2
  145. package/dist/types/application/settings.d.ts +23 -23
  146. package/dist/types/audio/audio.d.ts +4 -6
  147. package/dist/types/camera/camera2d.d.ts +13 -16
  148. package/dist/types/entity/entity.d.ts +0 -1
  149. package/dist/types/geometries/ellipse.d.ts +18 -50
  150. package/dist/types/geometries/path2d.d.ts +1 -1
  151. package/dist/types/geometries/point.d.ts +5 -13
  152. package/dist/types/geometries/poly.d.ts +26 -75
  153. package/dist/types/geometries/rectangle.d.ts +12 -58
  154. package/dist/types/geometries/roundrect.d.ts +2 -11
  155. package/dist/types/index.d.ts +3 -3
  156. package/dist/types/input/gamepad.d.ts +31 -31
  157. package/dist/types/input/keyboard.d.ts +105 -105
  158. package/dist/types/input/pointer.d.ts +21 -21
  159. package/dist/types/input/pointerevent.d.ts +6 -6
  160. package/dist/types/level/tiled/TMXLayer.d.ts +1 -1
  161. package/dist/types/math/matrix2.d.ts +9 -63
  162. package/dist/types/math/matrix3.d.ts +9 -68
  163. package/dist/types/math/observable_vector2.d.ts +2 -2
  164. package/dist/types/math/observable_vector3.d.ts +2 -2
  165. package/dist/types/math/vector2.d.ts +8 -92
  166. package/dist/types/math/vector3.d.ts +8 -92
  167. package/dist/types/particles/settings.d.ts +29 -29
  168. package/dist/types/physics/body.d.ts +10 -8
  169. package/dist/types/physics/bounds.d.ts +24 -30
  170. package/dist/types/physics/collision.d.ts +12 -12
  171. package/dist/types/physics/detector.d.ts +1 -1
  172. package/dist/types/physics/world.d.ts +4 -7
  173. package/dist/types/renderable/container.d.ts +19 -19
  174. package/dist/types/renderable/imagelayer.d.ts +6 -6
  175. package/dist/types/renderable/light2d.d.ts +7 -7
  176. package/dist/types/renderable/renderable.d.ts +9 -16
  177. package/dist/types/renderable/text/bitmaptext.d.ts +151 -0
  178. package/dist/types/renderable/text/bitmaptextdata.d.ts +35 -0
  179. package/dist/types/renderable/text/glyph.d.ts +28 -0
  180. package/dist/types/renderable/text/text.d.ts +159 -0
  181. package/dist/types/renderable/text/textmetrics.d.ts +47 -0
  182. package/dist/types/renderable/text/textstyle.d.ts +5 -0
  183. package/dist/types/renderable/ui/uibaseelement.d.ts +0 -1
  184. package/dist/types/renderable/ui/uispriteelement.d.ts +0 -1
  185. package/dist/types/renderable/ui/uitextbutton.d.ts +2 -7
  186. package/dist/types/state/state.d.ts +11 -11
  187. package/dist/types/system/device.d.ts +15 -9
  188. package/dist/types/system/event.d.ts +20 -0
  189. package/dist/types/system/platform.d.ts +17 -17
  190. package/dist/types/utils/function.d.ts +1 -2
  191. package/dist/types/video/renderer.d.ts +13 -13
  192. package/dist/types/video/texture/canvas_texture.d.ts +14 -14
  193. package/dist/types/video/video.d.ts +2 -2
  194. package/dist/types/video/webgl/buffer/vertex.d.ts +2 -2
  195. package/dist/types/video/webgl/compositors/compositor.d.ts +24 -13
  196. package/dist/types/video/webgl/compositors/primitive_compositor.d.ts +0 -1
  197. package/dist/types/video/webgl/compositors/quad_compositor.d.ts +0 -1
  198. package/dist/types/video/webgl/utils/precision.d.ts +1 -1
  199. package/dist/types/video/webgl/webgl_renderer.d.ts +47 -50
  200. package/package.json +15 -15
  201. package/src/application/application.js +51 -3
  202. package/src/application/header.js +1 -1
  203. package/src/application/resize.js +3 -7
  204. package/src/application/settings.js +4 -4
  205. package/src/audio/audio.js +3 -5
  206. package/src/camera/camera2d.js +11 -13
  207. package/src/entity/entity.js +2 -3
  208. package/src/geometries/ellipse.js +25 -58
  209. package/src/geometries/line.js +17 -24
  210. package/src/geometries/path2d.js +15 -12
  211. package/src/geometries/point.js +7 -15
  212. package/src/geometries/poly.js +39 -96
  213. package/src/geometries/rectangle.js +36 -90
  214. package/src/geometries/roundrect.js +25 -34
  215. package/src/index.js +4 -4
  216. package/src/input/keyboard.js +2 -2
  217. package/src/input/pointer.js +3 -3
  218. package/src/input/pointerevent.js +5 -6
  219. package/src/lang/deprecated.js +1 -1
  220. package/src/level/tiled/TMXLayer.js +15 -32
  221. package/src/level/tiled/TMXObject.js +2 -3
  222. package/src/level/tiled/TMXTile.js +3 -3
  223. package/src/level/tiled/TMXTileMap.js +2 -2
  224. package/src/level/tiled/TMXTileset.js +3 -6
  225. package/src/level/tiled/TMXTilesetGroup.js +1 -1
  226. package/src/level/tiled/TMXUtils.js +25 -28
  227. package/src/level/tiled/renderer/TMXHexagonalRenderer.js +2 -2
  228. package/src/level/tiled/renderer/TMXIsometricRenderer.js +1 -1
  229. package/src/level/tiled/renderer/TMXOrthogonalRenderer.js +1 -1
  230. package/src/level/tiled/renderer/TMXRenderer.js +1 -1
  231. package/src/level/tiled/renderer/TMXStaggeredRenderer.js +1 -1
  232. package/src/loader/parser.js +3 -4
  233. package/src/math/color.js +1 -1
  234. package/src/math/matrix2.js +4 -58
  235. package/src/math/matrix3.js +81 -140
  236. package/src/math/observable_vector2.js +6 -6
  237. package/src/math/observable_vector3.js +4 -4
  238. package/src/math/vector2.js +6 -90
  239. package/src/math/vector3.js +5 -89
  240. package/src/particles/emitter.js +1 -1
  241. package/src/particles/particle.js +1 -1
  242. package/src/physics/body.js +21 -19
  243. package/src/physics/bounds.js +26 -32
  244. package/src/physics/collision.js +4 -4
  245. package/src/physics/detector.js +9 -9
  246. package/src/physics/quadtree.js +4 -4
  247. package/src/physics/sat.js +2 -3
  248. package/src/physics/world.js +5 -8
  249. package/src/polyfill/roundrect.js +163 -163
  250. package/src/renderable/collectable.js +1 -1
  251. package/src/renderable/colorlayer.js +3 -3
  252. package/src/renderable/container.js +24 -24
  253. package/src/renderable/imagelayer.js +3 -3
  254. package/src/renderable/light2d.js +2 -2
  255. package/src/renderable/nineslicesprite.js +1 -1
  256. package/src/renderable/renderable.js +25 -25
  257. package/src/renderable/sprite.js +2 -2
  258. package/src/{text → renderable/text}/bitmaptext.js +8 -8
  259. package/src/{text → renderable/text}/bitmaptextdata.js +4 -7
  260. package/src/{text → renderable/text}/glyph.js +1 -1
  261. package/src/{text → renderable/text}/text.js +16 -17
  262. package/src/{text → renderable/text}/textmetrics.js +2 -2
  263. package/src/renderable/trigger.js +9 -9
  264. package/src/renderable/ui/uibaseelement.js +6 -6
  265. package/src/renderable/ui/uispriteelement.js +6 -6
  266. package/src/renderable/ui/uitextbutton.js +2 -2
  267. package/src/state/stage.js +1 -1
  268. package/src/state/state.js +0 -49
  269. package/src/system/device.js +48 -9
  270. package/src/system/event.js +22 -0
  271. package/src/system/platform.js +18 -18
  272. package/src/system/pooling.js +9 -9
  273. package/src/tweens/tween.js +1 -1
  274. package/src/utils/function.js +1 -2
  275. package/src/video/canvas/canvas_renderer.js +2 -6
  276. package/src/video/renderer.js +15 -15
  277. package/src/video/texture/atlas.js +12 -12
  278. package/src/video/texture/canvas_texture.js +14 -14
  279. package/src/video/video.js +3 -3
  280. package/src/video/webgl/buffer/vertex.js +2 -2
  281. package/src/video/webgl/compositors/compositor.js +12 -13
  282. package/src/video/webgl/compositors/primitive_compositor.js +4 -4
  283. package/src/video/webgl/compositors/quad_compositor.js +1 -2
  284. package/src/video/webgl/glshader.js +1 -1
  285. package/src/video/webgl/utils/precision.js +3 -3
  286. package/src/video/webgl/webgl_renderer.js +49 -51
  287. /package/src/{text → renderable/text}/textstyle.js +0 -0
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.3.0
2
+ * melonJS Game Engine - v15.4.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -17,7 +17,7 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
17
17
  * Use this for example if you want to display a panel that contains text, images or other UI elements.
18
18
  * @augments Container
19
19
  */
20
- class UIBaseElement extends Container {
20
+ class UIBaseElement extends Container {
21
21
  /**
22
22
  *
23
23
  * @param {number} x - The x position of the container
@@ -95,7 +95,7 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
95
95
  clicked(event) {
96
96
  // Check if left mouse button is pressed
97
97
  if (event.button === 0 && this.isClickable) {
98
- this.dirty = true;
98
+ this.isDirty = true;
99
99
  this.released = false;
100
100
  if (this.isHoldable) {
101
101
  timer.clearTimeout(this.holdTimeout);
@@ -129,7 +129,7 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
129
129
  */
130
130
  enter(event) {
131
131
  this.hover = true;
132
- this.dirty = true;
132
+ this.isDirty = true;
133
133
  if (this.isDraggable === true) {
134
134
  on(POINTERMOVE, this.pointerMove, this);
135
135
  // to memorize where we grab the object
@@ -175,7 +175,7 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
175
175
  */
176
176
  leave(event) {
177
177
  this.hover = false;
178
- this.dirty = true;
178
+ this.isDirty = true;
179
179
  if (this.isDraggable === true) {
180
180
  // unregister on the global pointermove event
181
181
  off(POINTERMOVE, this.pointerMove);
@@ -201,7 +201,7 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
201
201
  release(event) {
202
202
  if (this.released === false) {
203
203
  this.released = true;
204
- this.dirty = true;
204
+ this.isDirty = true;
205
205
  timer.clearTimeout(this.holdTimeout);
206
206
  this.holdTimeout = -1;
207
207
  return this.onRelease(event);
@@ -223,7 +223,7 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
223
223
  hold() {
224
224
  timer.clearTimeout(this.holdTimeout);
225
225
  this.holdTimeout = -1;
226
- this.dirty = true;
226
+ this.isDirty = true;
227
227
  if (!this.released) {
228
228
  this.onHold();
229
229
  }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.3.0
2
+ * melonJS Game Engine - v15.4.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -14,7 +14,7 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
14
14
  * This is a basic sprite based button which you can use in your Game UI.
15
15
  * @augments Sprite
16
16
  */
17
- class UISpriteElement extends Sprite {
17
+ class UISpriteElement extends Sprite {
18
18
  /**
19
19
  * @param {number} x - the x coordinate of the UISpriteElement Object
20
20
  * @param {number} y - the y coordinate of the UISpriteElement Object
@@ -100,7 +100,7 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
100
100
  clicked(event) {
101
101
  // Check if left mouse button is pressed
102
102
  if (event.button === 0 && this.isClickable) {
103
- this.dirty = true;
103
+ this.isDirty = true;
104
104
  this.released = false;
105
105
  if (this.isHoldable) {
106
106
  timer.clearTimeout(this.holdTimeout);
@@ -126,7 +126,7 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
126
126
  */
127
127
  enter(event) {
128
128
  this.hover = true;
129
- this.dirty = true;
129
+ this.isDirty = true;
130
130
  return this.onOver(event);
131
131
  }
132
132
 
@@ -144,7 +144,7 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
144
144
  */
145
145
  leave(event) {
146
146
  this.hover = false;
147
- this.dirty = true;
147
+ this.isDirty = true;
148
148
  this.release(event);
149
149
  return this.onOut(event);
150
150
  }
@@ -164,7 +164,7 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
164
164
  release(event) {
165
165
  if (this.released === false) {
166
166
  this.released = true;
167
- this.dirty = true;
167
+ this.isDirty = true;
168
168
  timer.clearTimeout(this.holdTimeout);
169
169
  this.holdTimeout = -1;
170
170
  return this.onRelease(event);
@@ -186,7 +186,7 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
186
186
  hold() {
187
187
  timer.clearTimeout(this.holdTimeout);
188
188
  this.holdTimeout = -1;
189
- this.dirty = true;
189
+ this.isDirty = true;
190
190
  if (!this.released) {
191
191
  this.onHold();
192
192
  }
@@ -1,11 +1,11 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.3.0
2
+ * melonJS Game Engine - v15.4.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
6
6
  * @copyright (C) 2011 - 2023 Olivier Biot (AltByte Pte Ltd)
7
7
  */
8
- import BitmapText from '../../text/bitmaptext.js';
8
+ import BitmapText from '../text/bitmaptext.js';
9
9
  import RoundRect from '../../geometries/roundrect.js';
10
10
  import UIBaseElement from './uibaseelement.js';
11
11
 
@@ -14,7 +14,7 @@ import UIBaseElement from './uibaseelement.js';
14
14
  * This is a basic base text button which you can use in your Game UI.
15
15
  * @augments UIBaseElement
16
16
  */
17
- class UITextButton extends UIBaseElement {
17
+ class UITextButton extends UIBaseElement {
18
18
  /**
19
19
  * A Bitmap Text Button with an outlined background border, filled with background color.
20
20
  * It uses a RoundRect as background and changes the background color on hovering over.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.3.0
2
+ * melonJS Game Engine - v15.4.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -25,7 +25,7 @@ let default_settings = {
25
25
  * through the state manager must inherit from this base class.
26
26
  * @see state
27
27
  */
28
- class Stage {
28
+ class Stage {
29
29
 
30
30
  /**
31
31
  * @param {object} [settings] - The stage` parameters
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.3.0
2
+ * melonJS Game Engine - v15.4.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -9,7 +9,6 @@ import { pauseTrack, resumeTrack } from '../audio/audio.js';
9
9
  import { defer } from '../utils/function.js';
10
10
  import { on, VIDEO_INIT, BOOT, emit, STATE_STOP, STATE_PAUSE, STATE_RESTART, STATE_RESUME, STATE_CHANGE, TICK } from '../system/event.js';
11
11
  import { game } from '../index.js';
12
- import { focus } from '../system/device.js';
13
12
  import Stage from './stage.js';
14
13
  import DefaultLoadingScreen from '../loader/loadingscreen.js';
15
14
 
@@ -140,42 +139,6 @@ on(BOOT, () => {
140
139
  on(VIDEO_INIT, () => {
141
140
  state.change(state.DEFAULT, true);
142
141
  });
143
-
144
- if (typeof globalThis.addEventListener === "function") {
145
- // set pause/stop action on losing focus
146
- globalThis.addEventListener("blur", () => {
147
- {
148
- state.pause(true);
149
- }
150
- }, false);
151
- // set restart/resume action on gaining focus
152
- globalThis.addEventListener("focus", () => {
153
- {
154
- state.resume(true);
155
- }
156
- // force focus if autofocus is on
157
- {
158
- focus();
159
- }
160
- }, false);
161
- }
162
-
163
- if (typeof globalThis.document !== "undefined") {
164
- if (typeof globalThis.document.addEventListener === "function") {
165
- // register on the visibilitychange event if supported
166
- globalThis.document.addEventListener("visibilitychange", () => {
167
- if (globalThis.document.visibilityState === "visible") {
168
- {
169
- state.resume(true);
170
- }
171
- } else {
172
- {
173
- state.pause(true);
174
- }
175
- }
176
- }, false );
177
- }
178
- }
179
142
  });
180
143
 
181
144
  /**
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.3.0
2
+ * melonJS Game Engine - v15.4.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -7,6 +7,7 @@
7
7
  */
8
8
  import { getParent } from '../video/video.js';
9
9
  import save from './save.js';
10
+ import { emit, BLUR, FOCUS } from './event.js';
10
11
  import { prefixed } from '../utils/agent.js';
11
12
  import { DOMContentLoaded } from './dom.js';
12
13
  import * as platform$1 from './platform.js';
@@ -356,6 +357,8 @@ let alpha = 0;
356
357
  * Specify whether to pause the game when losing focus
357
358
  * @name pauseOnBlur
358
359
  * @memberof device
360
+ * @deprecated since 15.4.0
361
+ * @see Application.pauseOnBlur
359
362
  * @type {boolean}
360
363
  * @public
361
364
  * @default true
@@ -366,6 +369,8 @@ let pauseOnBlur = true;
366
369
  * Specify whether to unpause the game when gaining focus
367
370
  * @name resumeOnFocus
368
371
  * @memberof device
372
+ * @deprecated since 15.4.0
373
+ * @see Application.resumeOnFocus
369
374
  * @type {boolean}
370
375
  * @public
371
376
  * @default true
@@ -373,25 +378,27 @@ let pauseOnBlur = true;
373
378
  let resumeOnFocus = true;
374
379
 
375
380
  /**
376
- * Specify whether to automatically bring the window to the front
377
- * @name autoFocus
381
+ * Specify whether to stop the game when losing focus or not.
382
+ * The engine restarts on focus if this is enabled.
383
+ * @name stopOnBlur
378
384
  * @memberof device
385
+ * @deprecated since 15.4.0
386
+ * @see Application.stopOnBlur
379
387
  * @type {boolean}
380
388
  * @public
381
- * @default true
389
+ * @default false
382
390
  */
383
- let autoFocus = true;
391
+ let stopOnBlur = false;
384
392
 
385
393
  /**
386
- * Specify whether to stop the game when losing focus or not.
387
- * The engine restarts on focus if this is enabled.
388
- * @name stopOnBlur
394
+ * Specify whether to automatically bring the window to the front
395
+ * @name autoFocus
389
396
  * @memberof device
390
397
  * @type {boolean}
391
398
  * @public
392
- * @default false
399
+ * @default true
393
400
  */
394
- let stopOnBlur = false;
401
+ let autoFocus = true;
395
402
 
396
403
  /**
397
404
  * specify a function to execute when the Device is fully loaded and ready
@@ -439,6 +446,38 @@ let stopOnBlur = false;
439
446
  * });
440
447
  */
441
448
  function onReady(fn) {
449
+ // register on blur/focus and visibility event handlers
450
+ if (typeof globalThis.addEventListener === "function") {
451
+ // set pause/stop action on losing focus
452
+ globalThis.addEventListener("blur", () => {
453
+ emit(BLUR);
454
+ }, false);
455
+ // set restart/resume action on gaining focus
456
+ globalThis.addEventListener("focus", () => {
457
+ emit(FOCUS);
458
+ // force focus if autofocus is on
459
+ {
460
+ focus();
461
+ }
462
+ }, false);
463
+ }
464
+ if (typeof globalThis.document !== "undefined") {
465
+ if (typeof globalThis.document.addEventListener === "function") {
466
+ // register on the visibilitychange event if supported
467
+ globalThis.document.addEventListener("visibilitychange", () => {
468
+ if (globalThis.document.visibilityState === "visible") {
469
+ emit(FOCUS);
470
+ // force focus if autofocus is on
471
+ {
472
+ focus();
473
+ }
474
+ } else {
475
+ emit(BLUR);
476
+ }
477
+ }, false );
478
+ }
479
+ }
480
+ // call the supplied function
442
481
  DOMContentLoaded(fn);
443
482
  }
444
483
 
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.3.0
2
+ * melonJS Game Engine - v15.4.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.3.0
2
+ * melonJS Game Engine - v15.4.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -48,6 +48,28 @@ const BOOT = "me.boot";
48
48
  */
49
49
  const TICK = "me.tick";
50
50
 
51
+ /**
52
+ * event generated when the main browser or window is losing focus
53
+ * @public
54
+ * @constant
55
+ * @type {string}
56
+ * @name BLUR
57
+ * @memberof event
58
+ * @see event.on
59
+ */
60
+ const BLUR = "me.blur";
61
+
62
+ /**
63
+ * event generated when the main browser or window is gaining back focus
64
+ * @public
65
+ * @constant
66
+ * @type {string}
67
+ * @name FOCUS
68
+ * @memberof event
69
+ * @see event.on
70
+ */
71
+ const FOCUS = "me.focus";
72
+
51
73
  /**
52
74
  * event when the game is paused <br>
53
75
  * Data passed : none <br>
@@ -556,4 +578,4 @@ function off(eventName, listener) {
556
578
  return eventEmitter.off(eventName, listener);
557
579
  }
558
580
 
559
- 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, STAGE_RESET, STATE_CHANGE, STATE_PAUSE, STATE_RESTART, STATE_RESUME, STATE_STOP, TICK, VIDEO_INIT, VIEWPORT_ONCHANGE, VIEWPORT_ONRESIZE, WINDOW_ONORIENTATION_CHANGE, WINDOW_ONRESIZE, WINDOW_ONSCROLL, emit, off, on, once };
581
+ export { BLUR, BOOT, CANVAS_ONRESIZE, DOM_READY, DRAGEND, DRAGSTART, FOCUS, 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, STAGE_RESET, STATE_CHANGE, STATE_PAUSE, STATE_RESTART, STATE_RESUME, STATE_STOP, TICK, VIDEO_INIT, VIEWPORT_ONCHANGE, VIEWPORT_ONRESIZE, WINDOW_ONORIENTATION_CHANGE, WINDOW_ONRESIZE, WINDOW_ONSCROLL, emit, off, on, once };
@@ -1,28 +1,28 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.3.0
2
+ * melonJS Game Engine - v15.4.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
6
6
  * @copyright (C) 2011 - 2023 Olivier Biot (AltByte Pte Ltd)
7
7
  */
8
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
- */
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
26
 
27
27
  const ua = typeof globalThis.navigator !== "undefined" ? globalThis.navigator.userAgent : "";
28
28
  const iOS = /iPhone|iPad|iPod/i.test(ua);
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.3.0
2
+ * melonJS Game Engine - v15.4.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -45,15 +45,15 @@ class ObjectPool {
45
45
  * me.pool.register("cherrysprite", Cherry, true);
46
46
  */
47
47
  register(className, classObj, recycling = false) {
48
- if (typeof (classObj) !== "undefined") {
49
- this.objectClass[className] = {
50
- "class" : classObj,
51
- "pool" : (recycling ? [] : undefined)
52
- };
53
- } else {
54
- throw new Error("Cannot register object '" + className + "', invalid class");
55
- }
56
- }
48
+ if (typeof (classObj) !== "undefined") {
49
+ this.objectClass[className] = {
50
+ "class" : classObj,
51
+ "pool" : (recycling ? [] : undefined)
52
+ };
53
+ } else {
54
+ throw new Error("Cannot register object '" + className + "', invalid class");
55
+ }
56
+ }
57
57
 
58
58
  /**
59
59
  * Pull a new instance of the requested object (if added into the object pool)
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.3.0
2
+ * melonJS Game Engine - v15.4.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.3.0
2
+ * melonJS Game Engine - v15.4.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.3.0
2
+ * melonJS Game Engine - v15.4.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.3.0
2
+ * melonJS Game Engine - v15.4.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -123,14 +123,11 @@ function createSpaceGlyph(glyphs) {
123
123
  this.lineHeight = parseFloat(getValueFromPair(lines[1], /lineHeight\=\d+/g));
124
124
 
125
125
  let baseLine = parseFloat(getValueFromPair(lines[1], /base\=\d+/g));
126
-
127
126
  let padY = this.padTop + this.padBottom;
128
-
129
127
  let glyph = null;
130
128
 
131
- let i;
132
129
 
133
- for (i = 4; i < lines.length; i++) {
130
+ for (let i = 4; i < lines.length; i++) {
134
131
  let line = lines[i];
135
132
  let characterValues = line.split(/=|\s+/);
136
133
  if (!line || /^kernings/.test(line)) {
@@ -171,7 +168,7 @@ function createSpaceGlyph(glyphs) {
171
168
  createSpaceGlyph(this.glyphs);
172
169
 
173
170
  let capGlyph = null;
174
- for (i = 0; i < capChars.length; i++) {
171
+ for (let i = 0; i < capChars.length; i++) {
175
172
  let capChar = capChars[i];
176
173
  capGlyph = this.glyphs[capChar.charCodeAt(0)];
177
174
  if (capGlyph) {
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.3.0
2
+ * melonJS Game Engine - v15.4.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.3.0
2
+ * melonJS Game Engine - v15.4.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.3.0
2
+ * melonJS Game Engine - v15.4.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.3.0
2
+ * melonJS Game Engine - v15.4.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.3.0
2
+ * melonJS Game Engine - v15.4.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.3.0
2
+ * melonJS Game Engine - v15.4.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.3.0
2
+ * melonJS Game Engine - v15.4.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -30,7 +30,7 @@ import { Interpolation } from './interpolation.js';
30
30
  * author lechecacharro<br>
31
31
  * author Josh Faul / http://jocafa.com/
32
32
  */
33
- class Tween {
33
+ class Tween {
34
34
 
35
35
  /**
36
36
  * @param {object} object - object on which to apply the tween
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.3.0
2
+ * melonJS Game Engine - v15.4.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.3.0
2
+ * melonJS Game Engine - v15.4.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.3.0
2
+ * melonJS Game Engine - v15.4.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.3.0
2
+ * melonJS Game Engine - v15.4.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -30,8 +30,7 @@ function defer(func, thisArg, ...args) {
30
30
  }
31
31
 
32
32
  /**
33
- * returns a function that, when invoked will only be triggered at most
34
- * once during a given window of time
33
+ * returns a function that, when invoked will only be triggered at most once during a given window of time
35
34
  * @public
36
35
  * @memberof utils.function
37
36
  * @name throttle
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.3.0
2
+ * melonJS Game Engine - v15.4.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.3.0
2
+ * melonJS Game Engine - v15.4.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license