melonjs 15.1.0 → 15.1.2

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 (140) hide show
  1. package/README.md +1 -1
  2. package/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +6 -2
  3. package/dist/melonjs.mjs/_virtual/earcut.js +3 -7
  4. package/dist/melonjs.mjs/_virtual/howler.js +1 -1
  5. package/dist/melonjs.mjs/_virtual/index.js +3 -7
  6. package/dist/melonjs.mjs/application/application.js +1 -1
  7. package/dist/melonjs.mjs/application/header.js +1 -1
  8. package/dist/melonjs.mjs/application/resize.js +1 -1
  9. package/dist/melonjs.mjs/application/settings.js +1 -1
  10. package/dist/melonjs.mjs/audio/audio.js +1 -1
  11. package/dist/melonjs.mjs/camera/camera2d.js +1 -1
  12. package/dist/melonjs.mjs/const.js +1 -1
  13. package/dist/melonjs.mjs/entity/entity.js +1 -1
  14. package/dist/melonjs.mjs/geometries/ellipse.js +1 -1
  15. package/dist/melonjs.mjs/geometries/line.js +1 -1
  16. package/dist/melonjs.mjs/geometries/path2d.js +3 -4
  17. package/dist/melonjs.mjs/geometries/point.js +1 -1
  18. package/dist/melonjs.mjs/geometries/poly.js +3 -4
  19. package/dist/melonjs.mjs/geometries/rectangle.js +1 -1
  20. package/dist/melonjs.mjs/geometries/roundrect.js +1 -1
  21. package/dist/melonjs.mjs/index.js +2 -2
  22. package/dist/melonjs.mjs/input/gamepad.js +1 -1
  23. package/dist/melonjs.mjs/input/input.js +1 -1
  24. package/dist/melonjs.mjs/input/keyboard.js +1 -1
  25. package/dist/melonjs.mjs/input/pointer.js +1 -1
  26. package/dist/melonjs.mjs/input/pointerevent.js +1 -1
  27. package/dist/melonjs.mjs/lang/console.js +1 -1
  28. package/dist/melonjs.mjs/lang/deprecated.js +1 -1
  29. package/dist/melonjs.mjs/level/level.js +1 -1
  30. package/dist/melonjs.mjs/level/tiled/TMXGroup.js +1 -1
  31. package/dist/melonjs.mjs/level/tiled/TMXLayer.js +1 -1
  32. package/dist/melonjs.mjs/level/tiled/TMXObject.js +1 -1
  33. package/dist/melonjs.mjs/level/tiled/TMXTile.js +1 -1
  34. package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +1 -1
  35. package/dist/melonjs.mjs/level/tiled/TMXTileset.js +1 -1
  36. package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +1 -1
  37. package/dist/melonjs.mjs/level/tiled/TMXUtils.js +1 -1
  38. package/dist/melonjs.mjs/level/tiled/constants.js +1 -1
  39. package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +1 -1
  40. package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +1 -1
  41. package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +1 -1
  42. package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +1 -1
  43. package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +1 -1
  44. package/dist/melonjs.mjs/level/tiled/renderer/autodetect.js +1 -1
  45. package/dist/melonjs.mjs/loader/cache.js +1 -1
  46. package/dist/melonjs.mjs/loader/loader.js +1 -1
  47. package/dist/melonjs.mjs/loader/loadingscreen.js +1 -1
  48. package/dist/melonjs.mjs/loader/melonjs_logo.png.js +1 -1
  49. package/dist/melonjs.mjs/loader/parser.js +1 -1
  50. package/dist/melonjs.mjs/loader/settings.js +1 -1
  51. package/dist/melonjs.mjs/math/color.js +1 -1
  52. package/dist/melonjs.mjs/math/math.js +1 -1
  53. package/dist/melonjs.mjs/math/matrix2.js +1 -1
  54. package/dist/melonjs.mjs/math/matrix3.js +1 -1
  55. package/dist/melonjs.mjs/math/observable_vector2.js +1 -1
  56. package/dist/melonjs.mjs/math/observable_vector3.js +1 -1
  57. package/dist/melonjs.mjs/math/vector2.js +1 -1
  58. package/dist/melonjs.mjs/math/vector3.js +1 -1
  59. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/arraymultimap.js +1 -1
  60. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/multimap.js +1 -1
  61. package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +9 -5
  62. package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +6 -4
  63. package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +1 -1
  64. package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +2 -4
  65. package/dist/melonjs.mjs/particles/emitter.js +1 -1
  66. package/dist/melonjs.mjs/particles/particle.js +1 -1
  67. package/dist/melonjs.mjs/particles/settings.js +1 -1
  68. package/dist/melonjs.mjs/physics/body.js +1 -1
  69. package/dist/melonjs.mjs/physics/bounds.js +1 -1
  70. package/dist/melonjs.mjs/physics/collision.js +1 -1
  71. package/dist/melonjs.mjs/physics/detector.js +1 -1
  72. package/dist/melonjs.mjs/physics/quadtree.js +1 -1
  73. package/dist/melonjs.mjs/physics/response.js +1 -1
  74. package/dist/melonjs.mjs/physics/sat.js +1 -1
  75. package/dist/melonjs.mjs/physics/world.js +1 -1
  76. package/dist/melonjs.mjs/plugin/plugin.js +3 -3
  77. package/dist/melonjs.mjs/renderable/collectable.js +1 -1
  78. package/dist/melonjs.mjs/renderable/colorlayer.js +1 -1
  79. package/dist/melonjs.mjs/renderable/container.js +33 -7
  80. package/dist/melonjs.mjs/renderable/dragndrop.js +1 -1
  81. package/dist/melonjs.mjs/renderable/imagelayer.js +1 -1
  82. package/dist/melonjs.mjs/renderable/light2d.js +1 -1
  83. package/dist/melonjs.mjs/renderable/nineslicesprite.js +1 -1
  84. package/dist/melonjs.mjs/renderable/renderable.js +1 -1
  85. package/dist/melonjs.mjs/renderable/sprite.js +1 -1
  86. package/dist/melonjs.mjs/renderable/trigger.js +1 -1
  87. package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +1 -1
  88. package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +1 -1
  89. package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +1 -1
  90. package/dist/melonjs.mjs/state/stage.js +1 -1
  91. package/dist/melonjs.mjs/state/state.js +1 -1
  92. package/dist/melonjs.mjs/system/device.js +1 -1
  93. package/dist/melonjs.mjs/system/dom.js +1 -1
  94. package/dist/melonjs.mjs/system/event.js +1 -1
  95. package/dist/melonjs.mjs/system/platform.js +1 -1
  96. package/dist/melonjs.mjs/system/pooling.js +1 -1
  97. package/dist/melonjs.mjs/system/save.js +1 -1
  98. package/dist/melonjs.mjs/system/timer.js +1 -1
  99. package/dist/melonjs.mjs/text/bitmaptext.js +1 -1
  100. package/dist/melonjs.mjs/text/bitmaptextdata.js +1 -1
  101. package/dist/melonjs.mjs/text/glyph.js +1 -1
  102. package/dist/melonjs.mjs/text/text.js +1 -1
  103. package/dist/melonjs.mjs/text/textmetrics.js +1 -1
  104. package/dist/melonjs.mjs/text/textstyle.js +1 -1
  105. package/dist/melonjs.mjs/tweens/easing.js +1 -1
  106. package/dist/melonjs.mjs/tweens/interpolation.js +1 -1
  107. package/dist/melonjs.mjs/tweens/tween.js +1 -1
  108. package/dist/melonjs.mjs/utils/agent.js +1 -1
  109. package/dist/melonjs.mjs/utils/array.js +1 -1
  110. package/dist/melonjs.mjs/utils/file.js +1 -1
  111. package/dist/melonjs.mjs/utils/function.js +1 -1
  112. package/dist/melonjs.mjs/utils/string.js +1 -1
  113. package/dist/melonjs.mjs/utils/utils.js +2 -2
  114. package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +1 -1
  115. package/dist/melonjs.mjs/video/renderer.js +1 -1
  116. package/dist/melonjs.mjs/video/texture/atlas.js +1 -1
  117. package/dist/melonjs.mjs/video/texture/cache.js +1 -1
  118. package/dist/melonjs.mjs/video/texture/canvas_texture.js +1 -1
  119. package/dist/melonjs.mjs/video/utils/autodetect.js +1 -1
  120. package/dist/melonjs.mjs/video/video.js +3 -10
  121. package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +1 -1
  122. package/dist/melonjs.mjs/video/webgl/compositors/compositor.js +1 -1
  123. package/dist/melonjs.mjs/video/webgl/compositors/primitive_compositor.js +1 -1
  124. package/dist/melonjs.mjs/video/webgl/compositors/quad_compositor.js +1 -1
  125. package/dist/melonjs.mjs/video/webgl/glshader.js +1 -1
  126. package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +1 -1
  127. package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +1 -1
  128. package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +1 -1
  129. package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +1 -1
  130. package/dist/melonjs.mjs/video/webgl/utils/attributes.js +1 -1
  131. package/dist/melonjs.mjs/video/webgl/utils/precision.js +1 -1
  132. package/dist/melonjs.mjs/video/webgl/utils/program.js +1 -1
  133. package/dist/melonjs.mjs/video/webgl/utils/string.js +1 -1
  134. package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +1 -1
  135. package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +1 -1
  136. package/dist/melonjs.module.js +248 -76
  137. package/package.json +11 -11
  138. package/src/renderable/container.js +32 -6
  139. package/src/utils/utils.js +1 -1
  140. package/src/video/video.js +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "melonjs",
3
- "version": "15.1.0",
3
+ "version": "15.1.2",
4
4
  "description": "melonJS Game Engine",
5
5
  "homepage": "http://www.melonjs.org/",
6
6
  "type": "module",
@@ -53,7 +53,7 @@
53
53
  ],
54
54
  "dependencies": {
55
55
  "@teppeis/multimaps": "^3.0.0",
56
- "core-js": "^3.30.0",
56
+ "core-js": "^3.30.1",
57
57
  "earcut": "2.2.4",
58
58
  "eventemitter3": "^5.0.0",
59
59
  "howler": "2.2.3"
@@ -61,9 +61,9 @@
61
61
  "devDependencies": {
62
62
  "@babel/eslint-parser": "^7.21.3",
63
63
  "@babel/plugin-syntax-import-assertions": "^7.20.0",
64
- "@fastify/static": "^6.10.0",
64
+ "@fastify/static": "^6.10.1",
65
65
  "@melonjs/webdoc-theme": "^1.1.1",
66
- "@rollup/plugin-commonjs": "^24.0.1",
66
+ "@rollup/plugin-commonjs": "^24.1.0",
67
67
  "@rollup/plugin-image": "^3.0.2",
68
68
  "@rollup/plugin-node-resolve": "^15.0.2",
69
69
  "@rollup/plugin-replace": "^5.0.2",
@@ -71,19 +71,19 @@
71
71
  "chromedriver": "^112.0.0",
72
72
  "cross-env": "^7.0.3",
73
73
  "del-cli": "^5.0.0",
74
- "eslint": "^8.37.0",
75
- "eslint-plugin-jsdoc": "^40.1.1",
74
+ "eslint": "^8.39.0",
75
+ "eslint-plugin-jsdoc": "^43.0.7",
76
76
  "expect": "^29.5.0",
77
- "expect-mocha-image-snapshot": "^3.0.8",
77
+ "expect-mocha-image-snapshot": "^3.0.13",
78
78
  "fastify": "^4.15.0",
79
79
  "mocha": "^10.2.0",
80
80
  "npm-self-link": "^1.1.7",
81
- "puppeteer": "^19.8.5",
82
- "rollup": "^3.20.2",
81
+ "puppeteer": "^19.10.1",
82
+ "rollup": "^3.21.0",
83
83
  "rollup-plugin-bundle-size": "^1.0.3",
84
84
  "rollup-plugin-string": "^3.0.0",
85
- "terser": "^5.16.8",
86
- "typescript": "^5.0.3"
85
+ "terser": "^5.17.1",
86
+ "typescript": "^5.0.4"
87
87
  },
88
88
  "scripts": {
89
89
  "build": "npm run lint && rollup -c --silent",
@@ -227,9 +227,22 @@ let globalFloatingCounter = 0;
227
227
  this.updateBounds();
228
228
  }
229
229
 
230
- // if a physic body is defined, add it to the game world
231
- if (child.body instanceof Body) {
232
- this.getRootAncestor().addBody(child.body);
230
+ // if a physic body(ies) to the game world
231
+ if (this.isAttachedToRoot()) {
232
+ var worldContainer = this.getRootAncestor();
233
+ if (child.body instanceof Body) {
234
+ worldContainer.addBody(child.body);
235
+ }
236
+ // if the child is a container
237
+ if (child instanceof Container) {
238
+ // add all container child bodies
239
+ // TODO: make it recursive ?
240
+ child.forEach((cchild) => {
241
+ if (cchild.body instanceof Body) {
242
+ worldContainer.addBody(cchild.body);
243
+ }
244
+ });
245
+ }
233
246
  }
234
247
 
235
248
  // triggered callback if defined
@@ -276,9 +289,22 @@ let globalFloatingCounter = 0;
276
289
  this.updateBounds();
277
290
  }
278
291
 
279
- // if a physic body is defined, add it to the game world
280
- if (child.body instanceof Body) {
281
- this.getRootAncestor().addBody(child.body);
292
+ // if a physic body(ies) to the game world
293
+ if (this.isAttachedToRoot()) {
294
+ var worldContainer = this.getRootAncestor();
295
+ if (child.body instanceof Body) {
296
+ worldContainer.addBody(child.body);
297
+ }
298
+ // if the child is a container
299
+ if (child instanceof Container) {
300
+ // add all container child bodies
301
+ // TODO: make it recursive ?
302
+ child.forEach((cchild) => {
303
+ if (cchild.body instanceof Body) {
304
+ worldContainer.addBody(cchild.body);
305
+ }
306
+ });
307
+ }
282
308
  }
283
309
 
284
310
  // triggered callback if defined
@@ -26,7 +26,7 @@ let utils = {
26
26
  * @public
27
27
  * @memberof utils
28
28
  * @name checkVersion
29
- * @param {string} first - Ffrst version string to compare
29
+ * @param {string} first - First version string to compare
30
30
  * @param {string} second - second version string to compare
31
31
  * @returns {number} comparison result <br>&lt; 0 : first &lt; second<br>
32
32
  * 0 : first == second<br>
@@ -155,7 +155,7 @@ export function createCanvas(width, height, returnOffscreenCanvas = false) {
155
155
  throw new Error("width or height was zero, Canvas could not be initialized !");
156
156
  }
157
157
 
158
- if (device.offscreenCanvas === true && returnOffscreenCanvas === true) {
158
+ if (device.hasOffscreenCanvas === true && returnOffscreenCanvas === true) {
159
159
  _canvas = new globalThis.OffscreenCanvas(0, 0);
160
160
  // stubbing style for compatibility,
161
161
  // as OffscreenCanvas is detached from the DOM