melonjs 16.1.3 → 17.0.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 (230) hide show
  1. package/README.md +2 -2
  2. package/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +1 -1
  3. package/dist/melonjs.mjs/_virtual/earcut.js +1 -1
  4. package/dist/melonjs.mjs/_virtual/howler.js +1 -1
  5. package/dist/melonjs.mjs/_virtual/index.js +1 -1
  6. package/dist/melonjs.mjs/_virtual/re.js +1 -1
  7. package/dist/melonjs.mjs/application/application.js +1 -1
  8. package/dist/melonjs.mjs/application/header.js +1 -1
  9. package/dist/melonjs.mjs/application/resize.js +1 -1
  10. package/dist/melonjs.mjs/application/settings.js +1 -1
  11. package/dist/melonjs.mjs/audio/audio.js +5 -5
  12. package/dist/melonjs.mjs/camera/camera2d.js +1 -1
  13. package/dist/melonjs.mjs/const.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 +1 -1
  17. package/dist/melonjs.mjs/geometries/point.js +1 -1
  18. package/dist/melonjs.mjs/geometries/poly.js +1 -1
  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/geometries/toarccanvas.js +1 -1
  22. package/dist/melonjs.mjs/index.js +3 -3
  23. package/dist/melonjs.mjs/input/gamepad.js +1 -1
  24. package/dist/melonjs.mjs/input/input.js +1 -1
  25. package/dist/melonjs.mjs/input/keyboard.js +1 -1
  26. package/dist/melonjs.mjs/input/pointer.js +1 -1
  27. package/dist/melonjs.mjs/input/pointerevent.js +1 -1
  28. package/dist/melonjs.mjs/lang/console.js +1 -1
  29. package/dist/melonjs.mjs/lang/deprecated.js +1 -1
  30. package/dist/melonjs.mjs/level/level.js +1 -1
  31. package/dist/melonjs.mjs/level/tiled/TMXGroup.js +1 -1
  32. package/dist/melonjs.mjs/level/tiled/TMXLayer.js +1 -1
  33. package/dist/melonjs.mjs/level/tiled/TMXObject.js +1 -1
  34. package/dist/melonjs.mjs/level/tiled/TMXTile.js +1 -1
  35. package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +1 -1
  36. package/dist/melonjs.mjs/level/tiled/TMXTileset.js +1 -1
  37. package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +1 -1
  38. package/dist/melonjs.mjs/level/tiled/TMXUtils.js +1 -1
  39. package/dist/melonjs.mjs/level/tiled/constants.js +1 -1
  40. package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +1 -1
  41. package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +1 -1
  42. package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +1 -1
  43. package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +1 -1
  44. package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +1 -1
  45. package/dist/melonjs.mjs/level/tiled/renderer/autodetect.js +1 -1
  46. package/dist/melonjs.mjs/loader/cache.js +1 -1
  47. package/dist/melonjs.mjs/loader/loader.js +127 -5
  48. package/dist/melonjs.mjs/loader/loadingscreen.js +1 -1
  49. package/dist/melonjs.mjs/loader/melonjs_logo.png.js +1 -1
  50. package/dist/melonjs.mjs/loader/parsers/binary.js +4 -3
  51. package/dist/melonjs.mjs/loader/parsers/fetchdata.js +7 -7
  52. package/dist/melonjs.mjs/loader/parsers/fontface.js +1 -1
  53. package/dist/melonjs.mjs/loader/parsers/image.js +5 -4
  54. package/dist/melonjs.mjs/loader/parsers/json.js +5 -4
  55. package/dist/melonjs.mjs/loader/parsers/script.js +7 -3
  56. package/dist/melonjs.mjs/loader/parsers/tmx.js +5 -4
  57. package/dist/melonjs.mjs/loader/parsers/video.js +7 -7
  58. package/dist/melonjs.mjs/math/color.js +1 -1
  59. package/dist/melonjs.mjs/math/math.js +2 -31
  60. package/dist/melonjs.mjs/math/matrix2.js +1 -1
  61. package/dist/melonjs.mjs/math/matrix3.js +1 -1
  62. package/dist/melonjs.mjs/math/observable_vector2.js +1 -1
  63. package/dist/melonjs.mjs/math/observable_vector3.js +1 -1
  64. package/dist/melonjs.mjs/math/vector2.js +1 -1
  65. package/dist/melonjs.mjs/math/vector3.js +1 -1
  66. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/arraymultimap.js +1 -1
  67. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/multimap.js +1 -1
  68. package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +1 -1
  69. package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +1 -1
  70. package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +1 -1
  71. package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +1 -1
  72. package/dist/melonjs.mjs/node_modules/semver/classes/comparator.js +1 -1
  73. package/dist/melonjs.mjs/node_modules/semver/classes/range.js +1 -1
  74. package/dist/melonjs.mjs/node_modules/semver/classes/semver.js +1 -1
  75. package/dist/melonjs.mjs/node_modules/semver/functions/clean.js +1 -1
  76. package/dist/melonjs.mjs/node_modules/semver/functions/cmp.js +1 -1
  77. package/dist/melonjs.mjs/node_modules/semver/functions/coerce.js +1 -1
  78. package/dist/melonjs.mjs/node_modules/semver/functions/compare-build.js +1 -1
  79. package/dist/melonjs.mjs/node_modules/semver/functions/compare-loose.js +1 -1
  80. package/dist/melonjs.mjs/node_modules/semver/functions/compare.js +1 -1
  81. package/dist/melonjs.mjs/node_modules/semver/functions/diff.js +1 -1
  82. package/dist/melonjs.mjs/node_modules/semver/functions/eq.js +1 -1
  83. package/dist/melonjs.mjs/node_modules/semver/functions/gt.js +1 -1
  84. package/dist/melonjs.mjs/node_modules/semver/functions/gte.js +1 -1
  85. package/dist/melonjs.mjs/node_modules/semver/functions/inc.js +1 -1
  86. package/dist/melonjs.mjs/node_modules/semver/functions/lt.js +1 -1
  87. package/dist/melonjs.mjs/node_modules/semver/functions/lte.js +1 -1
  88. package/dist/melonjs.mjs/node_modules/semver/functions/major.js +1 -1
  89. package/dist/melonjs.mjs/node_modules/semver/functions/minor.js +1 -1
  90. package/dist/melonjs.mjs/node_modules/semver/functions/neq.js +1 -1
  91. package/dist/melonjs.mjs/node_modules/semver/functions/parse.js +1 -1
  92. package/dist/melonjs.mjs/node_modules/semver/functions/patch.js +1 -1
  93. package/dist/melonjs.mjs/node_modules/semver/functions/prerelease.js +1 -1
  94. package/dist/melonjs.mjs/node_modules/semver/functions/rcompare.js +1 -1
  95. package/dist/melonjs.mjs/node_modules/semver/functions/rsort.js +1 -1
  96. package/dist/melonjs.mjs/node_modules/semver/functions/satisfies.js +1 -1
  97. package/dist/melonjs.mjs/node_modules/semver/functions/sort.js +1 -1
  98. package/dist/melonjs.mjs/node_modules/semver/functions/valid.js +1 -1
  99. package/dist/melonjs.mjs/node_modules/semver/index.js +1 -1
  100. package/dist/melonjs.mjs/node_modules/semver/internal/constants.js +1 -1
  101. package/dist/melonjs.mjs/node_modules/semver/internal/debug.js +1 -1
  102. package/dist/melonjs.mjs/node_modules/semver/internal/identifiers.js +1 -1
  103. package/dist/melonjs.mjs/node_modules/semver/internal/parse-options.js +1 -1
  104. package/dist/melonjs.mjs/node_modules/semver/internal/re.js +1 -1
  105. package/dist/melonjs.mjs/node_modules/semver/node_modules/lru-cache/index.js +1 -1
  106. package/dist/melonjs.mjs/node_modules/semver/node_modules/yallist/iterator.js +1 -1
  107. package/dist/melonjs.mjs/node_modules/semver/node_modules/yallist/yallist.js +1 -1
  108. package/dist/melonjs.mjs/node_modules/semver/ranges/gtr.js +1 -1
  109. package/dist/melonjs.mjs/node_modules/semver/ranges/intersects.js +1 -1
  110. package/dist/melonjs.mjs/node_modules/semver/ranges/ltr.js +1 -1
  111. package/dist/melonjs.mjs/node_modules/semver/ranges/max-satisfying.js +1 -1
  112. package/dist/melonjs.mjs/node_modules/semver/ranges/min-satisfying.js +1 -1
  113. package/dist/melonjs.mjs/node_modules/semver/ranges/min-version.js +1 -1
  114. package/dist/melonjs.mjs/node_modules/semver/ranges/outside.js +1 -1
  115. package/dist/melonjs.mjs/node_modules/semver/ranges/simplify.js +1 -1
  116. package/dist/melonjs.mjs/node_modules/semver/ranges/subset.js +1 -1
  117. package/dist/melonjs.mjs/node_modules/semver/ranges/to-comparators.js +1 -1
  118. package/dist/melonjs.mjs/node_modules/semver/ranges/valid.js +1 -1
  119. package/dist/melonjs.mjs/particles/emitter.js +1 -1
  120. package/dist/melonjs.mjs/particles/particle.js +1 -1
  121. package/dist/melonjs.mjs/particles/settings.js +1 -1
  122. package/dist/melonjs.mjs/physics/body.js +1 -1
  123. package/dist/melonjs.mjs/physics/bounds.js +1 -1
  124. package/dist/melonjs.mjs/physics/collision.js +1 -1
  125. package/dist/melonjs.mjs/physics/detector.js +1 -1
  126. package/dist/melonjs.mjs/physics/quadtree.js +1 -1
  127. package/dist/melonjs.mjs/physics/response.js +1 -1
  128. package/dist/melonjs.mjs/physics/sat.js +1 -1
  129. package/dist/melonjs.mjs/physics/world.js +1 -1
  130. package/dist/melonjs.mjs/plugin/plugin.js +3 -3
  131. package/dist/melonjs.mjs/renderable/collectable.js +1 -1
  132. package/dist/melonjs.mjs/renderable/colorlayer.js +1 -1
  133. package/dist/melonjs.mjs/renderable/container.js +1 -1
  134. package/dist/melonjs.mjs/renderable/draggable.js +1 -1
  135. package/dist/melonjs.mjs/renderable/dragndrop.js +1 -1
  136. package/dist/melonjs.mjs/renderable/entity/entity.js +1 -1
  137. package/dist/melonjs.mjs/renderable/imagelayer.js +1 -1
  138. package/dist/melonjs.mjs/renderable/light2d.js +1 -1
  139. package/dist/melonjs.mjs/renderable/nineslicesprite.js +1 -1
  140. package/dist/melonjs.mjs/renderable/renderable.js +1 -1
  141. package/dist/melonjs.mjs/renderable/sprite.js +8 -1
  142. package/dist/melonjs.mjs/renderable/text/bitmaptext.js +1 -1
  143. package/dist/melonjs.mjs/renderable/text/bitmaptextdata.js +1 -1
  144. package/dist/melonjs.mjs/renderable/text/glyph.js +1 -1
  145. package/dist/melonjs.mjs/renderable/text/text.js +1 -1
  146. package/dist/melonjs.mjs/renderable/text/textmetrics.js +1 -1
  147. package/dist/melonjs.mjs/renderable/text/textstyle.js +1 -1
  148. package/dist/melonjs.mjs/renderable/trigger.js +1 -1
  149. package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +1 -1
  150. package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +1 -1
  151. package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +1 -1
  152. package/dist/melonjs.mjs/state/stage.js +1 -1
  153. package/dist/melonjs.mjs/state/state.js +1 -1
  154. package/dist/melonjs.mjs/system/device.js +3 -109
  155. package/dist/melonjs.mjs/system/dom.js +1 -1
  156. package/dist/melonjs.mjs/system/event.js +1 -1
  157. package/dist/melonjs.mjs/system/platform.js +1 -1
  158. package/dist/melonjs.mjs/system/pooling.js +1 -1
  159. package/dist/melonjs.mjs/system/save.js +1 -1
  160. package/dist/melonjs.mjs/system/timer.js +1 -1
  161. package/dist/melonjs.mjs/tweens/easing.js +1 -1
  162. package/dist/melonjs.mjs/tweens/interpolation.js +1 -1
  163. package/dist/melonjs.mjs/tweens/tween.js +1 -1
  164. package/dist/melonjs.mjs/utils/agent.js +1 -1
  165. package/dist/melonjs.mjs/utils/array.js +1 -1
  166. package/dist/melonjs.mjs/utils/file.js +1 -1
  167. package/dist/melonjs.mjs/utils/function.js +1 -1
  168. package/dist/melonjs.mjs/utils/string.js +1 -1
  169. package/dist/melonjs.mjs/utils/utils.js +1 -1
  170. package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +1 -1
  171. package/dist/melonjs.mjs/video/renderer.js +1 -1
  172. package/dist/melonjs.mjs/video/texture/atlas.js +83 -160
  173. package/dist/melonjs.mjs/video/texture/cache.js +1 -1
  174. package/dist/melonjs.mjs/video/texture/canvas_texture.js +1 -1
  175. package/dist/melonjs.mjs/video/texture/parser/aseprite.js +78 -0
  176. package/dist/melonjs.mjs/video/texture/parser/spritesheet.js +77 -0
  177. package/dist/melonjs.mjs/video/texture/parser/texturepacker.js +64 -0
  178. package/dist/melonjs.mjs/video/utils/autodetect.js +1 -1
  179. package/dist/melonjs.mjs/video/video.js +1 -1
  180. package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +1 -1
  181. package/dist/melonjs.mjs/video/webgl/compositors/compositor.js +1 -1
  182. package/dist/melonjs.mjs/video/webgl/compositors/primitive_compositor.js +1 -1
  183. package/dist/melonjs.mjs/video/webgl/compositors/quad_compositor.js +1 -1
  184. package/dist/melonjs.mjs/video/webgl/glshader.js +1 -1
  185. package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +1 -1
  186. package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +1 -1
  187. package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +1 -1
  188. package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +1 -1
  189. package/dist/melonjs.mjs/video/webgl/utils/attributes.js +1 -1
  190. package/dist/melonjs.mjs/video/webgl/utils/precision.js +1 -1
  191. package/dist/melonjs.mjs/video/webgl/utils/program.js +1 -1
  192. package/dist/melonjs.mjs/video/webgl/utils/string.js +1 -1
  193. package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +1 -1
  194. package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +1 -1
  195. package/dist/melonjs.module.js +486 -456
  196. package/dist/types/audio/audio.d.ts +2 -1
  197. package/dist/types/loader/loader.d.ts +85 -1
  198. package/dist/types/loader/parsers/binary.d.ts +2 -1
  199. package/dist/types/loader/parsers/fetchdata.d.ts +3 -1
  200. package/dist/types/loader/parsers/image.d.ts +2 -1
  201. package/dist/types/loader/parsers/json.d.ts +3 -2
  202. package/dist/types/loader/parsers/script.d.ts +3 -2
  203. package/dist/types/loader/parsers/tmx.d.ts +3 -2
  204. package/dist/types/loader/parsers/video.d.ts +3 -2
  205. package/dist/types/math/math.d.ts +1 -30
  206. package/dist/types/system/device.d.ts +1 -107
  207. package/dist/types/video/texture/atlas.d.ts +9 -13
  208. package/dist/types/video/texture/parser/aseprite.d.ts +8 -0
  209. package/dist/types/video/texture/parser/spritesheet.d.ts +8 -0
  210. package/dist/types/video/texture/parser/texturepacker.d.ts +8 -0
  211. package/package.json +14 -13
  212. package/src/audio/audio.js +4 -4
  213. package/src/loader/loader.js +119 -5
  214. package/src/loader/parsers/binary.js +3 -2
  215. package/src/loader/parsers/fetchdata.js +6 -6
  216. package/src/loader/parsers/image.js +4 -3
  217. package/src/loader/parsers/json.js +4 -3
  218. package/src/loader/parsers/script.js +4 -5
  219. package/src/loader/parsers/tmx.js +4 -3
  220. package/src/loader/parsers/video.js +6 -6
  221. package/src/math/math.js +1 -30
  222. package/src/renderable/sprite.js +7 -0
  223. package/src/system/device.js +2 -108
  224. package/src/video/texture/atlas.js +81 -158
  225. package/src/video/texture/parser/aseprite.js +69 -0
  226. package/src/video/texture/parser/spritesheet.js +68 -0
  227. package/src/video/texture/parser/texturepacker.js +55 -0
  228. package/dist/melonjs.mjs/loader/settings.js +0 -92
  229. package/dist/types/loader/settings.d.ts +0 -57
  230. package/src/loader/settings.js +0 -86
package/README.md CHANGED
@@ -87,11 +87,11 @@ melonJS is supporting the below tools and frameworks natively or through our off
87
87
  [![ShoeBox](https://user-images.githubusercontent.com/4033090/136762705-92027d94-d87c-4a95-b051-26647410248d.png "ShoeBox")](https://renderhjs.net/shoebox/)
88
88
  [![Tiled](https://user-images.githubusercontent.com/4033090/136762999-5a7f377b-4136-4205-9fe0-83728c90cb9b.png "Tiled")](https://www.mapeditor.org)
89
89
  [![Cordova](https://user-images.githubusercontent.com/4033090/136763147-6d157ce6-6921-437e-bb8f-0287b86109da.png "Cordova")](https://cordova.apache.org)
90
- [![Spine](https://github.com/melonjs/melonJS/assets/4033090/7a8d81b8-bc80-47bd-80dc-d9a054c78c96 "Spine")](http://esotericsoftware.com)
90
+ [![Spine](https://github.com/melonjs/melonJS/assets/4033090/7a8d81b8-bc80-47bd-80dc-d9a054c78c96 "Spine")](http://esotericsoftware.com)
91
+ [![aseprite](https://github.com/melonjs/melonJS/assets/4033090/65d19fef-2eba-461a-b925-cc2ad3bb270c "aseprite")](https://www.aseprite.org)
91
92
 
92
93
  Tools integration and usage with melonJS is documented in our [Wiki](https://github.com/melonjs/melonJS/wiki#third-party-tools-usage).
93
94
 
94
-
95
95
  # Using melonJS
96
96
 
97
97
  ### For your first time using melonJS, this is where you start
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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,7 +7,6 @@
7
7
  */
8
8
  import '../node_modules/howler/dist/howler.js';
9
9
  import { clamp } from '../math/math.js';
10
- import { nocache, withCredentials } from '../loader/settings.js';
11
10
  import { isDataUrl } from '../utils/string.js';
12
11
  import { __exports as howler } from '../_virtual/howler.js';
13
12
 
@@ -140,9 +139,10 @@ function disable() {
140
139
  * @param {loader.Asset} sound
141
140
  * @param {Function} [onloadcb] - function to be called when the resource is loaded
142
141
  * @param {Function} [onerrorcb] - function to be called in case of error
142
+ * @param {Object} [settings] - custom settings to apply to the request (@link https://developer.mozilla.org/en-US/docs/Web/API/fetch#options)
143
143
  * @returns {number} the amount of asset loaded (always 1 if successfull)
144
144
  */
145
- function load(sound, onloadcb, onerrorcb) {
145
+ function load(sound, onloadcb, onerrorcb, settings = {}) {
146
146
  let urls = [];
147
147
  if (audioExts.length === 0) {
148
148
  throw new Error("target audio extension(s) should be set through me.audio.init() before calling the preloader.");
@@ -151,7 +151,7 @@ function load(sound, onloadcb, onerrorcb) {
151
151
  urls.push(sound.src);
152
152
  } else {
153
153
  for (let i = 0; i < audioExts.length; i++) {
154
- urls.push(sound.src + sound.name + "." + audioExts[i] + nocache);
154
+ urls.push(sound.src + sound.name + "." + audioExts[i] + settings.nocache);
155
155
  }
156
156
  }
157
157
 
@@ -161,7 +161,7 @@ function load(sound, onloadcb, onerrorcb) {
161
161
  autoplay : sound.autoplay === true,
162
162
  loop : sound.loop = true,
163
163
  html5 : sound.stream === true || sound.html5 === true,
164
- xhrWithCredentials : withCredentials,
164
+ xhrWithCredentials : settings.withCredentials,
165
165
  onloaderror() {
166
166
  soundLoadError.call(this, sound.name, onerrorcb);
167
167
  },
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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
@@ -78,6 +78,7 @@ export { event };
78
78
  import { onReady } from './system/device.js';
79
79
  import * as device from './system/device.js';
80
80
  export { device };
81
+ import { setNocache } from './loader/loader.js';
81
82
  import * as loader from './loader/loader.js';
82
83
  export { loader };
83
84
  import * as math from './math/math.js';
@@ -99,7 +100,6 @@ export { default as state } from './state/state.js';
99
100
  export { default as level } from './level/level.js';
100
101
  export { DraggableEntity, DroptargetEntity, GUI_Object } from './lang/deprecated.js';
101
102
  export { AUTO, CANVAS, WEBGL } from './const.js';
102
- import { setNocache } from './loader/settings.js';
103
103
  import { initKeyboardEvent } from './input/keyboard.js';
104
104
 
105
105
  // ES5/ES6 polyfills
@@ -112,7 +112,7 @@ import { initKeyboardEvent } from './input/keyboard.js';
112
112
  * @name version
113
113
  * @type {string}
114
114
  */
115
- const version = "16.1.3";
115
+ const version = "17.0.0";
116
116
 
117
117
  /**
118
118
  * a flag indicating that melonJS is fully initialized
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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,10 +17,128 @@ import { preloadJSON } from './parsers/json.js';
17
17
  import { preloadBinary } from './parsers/binary.js';
18
18
  import { preloadJavascript } from './parsers/script.js';
19
19
  import { preloadVideo } from './parsers/video.js';
20
- import { baseURL } from './settings.js';
21
- export { crossOrigin, nocache, setBaseURL, setNocache, withCredentials } from './settings.js';
22
20
  import { warning } from '../lang/console.js';
23
21
 
22
+ /**
23
+ * a small class to manage loading of stuff and manage resources
24
+ * @namespace loader
25
+ */
26
+
27
+
28
+ // to enable/disable caching
29
+ let nocache = "";
30
+
31
+ // baseURL
32
+ let baseURL = {};
33
+
34
+ /**
35
+ * crossOrigin attribute to configure the CORS requests for Image and Video data element.
36
+ * By default (that is, when the attribute is not specified), CORS is not used at all.
37
+ * The "anonymous" keyword means that there will be no exchange of user credentials via cookies,
38
+ * client-side SSL certificates or HTTP authentication as described in the Terminology section of the CORS specification.<br>
39
+ * @type {string}
40
+ * @name crossOrigin
41
+ * @default undefined
42
+ * @see loader.setOptions
43
+ * @memberof loader
44
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes
45
+ * @example
46
+ * // allow for cross-origin texture loading
47
+ * me.loader.crossOrigin = "anonymous";
48
+ *
49
+ * // set all ressources to be loaded
50
+ * me.loader.preload(game.resources, () => this.loaded());
51
+ */
52
+ let crossOrigin;
53
+
54
+ /**
55
+ * indicates whether or not cross-site Access-Control requests should be made using credentials such as cookies,
56
+ * authorization headers or TLS client certificates. Setting withCredentials has no effect on same-site requests.
57
+ * @public
58
+ * @type {boolean}
59
+ * @name withCredentials
60
+ * @see loader.setOptions
61
+ * @default false
62
+ * @memberof loader
63
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/withCredentials
64
+ * @example
65
+ * // enable withCredentials
66
+ * me.loader.withCredentials = true;
67
+ *
68
+ * // set all ressources to be loaded
69
+ * me.loader.preload(game.resources, () => this.loaded());
70
+ */
71
+ let withCredentials = false;
72
+
73
+ /**
74
+ * enable the nocache mechanism
75
+ * @ignore
76
+ */
77
+ function setNocache(enable = false) {
78
+ nocache = enable ? "?" + ~~(Math.random() * 10000000) : "";
79
+ }
80
+
81
+ /**
82
+ * Sets the options for the loader.
83
+ * @memberof loader
84
+ * @param {Object} options - The options to set.
85
+ * @param {string} [options.crossOrigin] - The crossOrigin attribute to configure the CORS requests for Image and Video data element.
86
+ * @param {boolean} [options.nocache] - Enable or disable the nocache mechanism.
87
+ * @param {boolean} [options.withCredentials] - Indicates whether or not cross-site Access-Control requests should be made using credentials.
88
+ * @example
89
+ * // Set the crossOrigin attribute to "anonymous"
90
+ * me.loader.setOptions({ crossOrigin: "anonymous" });
91
+ *
92
+ * // Enable the nocache mechanism
93
+ * me.loader.setOptions({ nocache: true });
94
+ *
95
+ * // Enable withCredentials
96
+ * me.loader.setOptions({ withCredentials: true });
97
+ */
98
+ function setOptions(options) {
99
+ if (options.crossOrigin !== undefined) {
100
+ crossOrigin = options.crossOrigin;
101
+ }
102
+ if (options.nocache !== undefined) {
103
+ setNocache(options.nocache);
104
+ }
105
+ if (options.withCredentials !== undefined) {
106
+ withCredentials = options.withCredentials;
107
+ }
108
+ }
109
+
110
+ /**
111
+ * change the default baseURL for the given asset type.<br>
112
+ * (this will prepend the asset URL and must finish with a '/')
113
+ * @name setBaseURL
114
+ * @memberof loader
115
+ * @public
116
+ * @param {string} type - "*", "audio", "video", "binary", "image", "json", "js", "tmx", "tsx"
117
+ * @param {string} [url="./"] - default base URL
118
+ * @example
119
+ * // change the base URL relative address for audio assets
120
+ * me.loader.setBaseURL("audio", "data/audio/");
121
+ * // change the base URL absolute address for all object types
122
+ * me.loader.setBaseURL("*", "http://myurl.com/")
123
+ */
124
+ function setBaseURL(type, url) {
125
+ if (type !== "*") {
126
+ baseURL[type] = url;
127
+ } else {
128
+ // "wildcards"
129
+ baseURL["audio"] = url;
130
+ baseURL["video"] = url;
131
+ baseURL["binary"] = url;
132
+ baseURL["image"] = url;
133
+ baseURL["json"] = url;
134
+ baseURL["js"] = url;
135
+ baseURL["tmx"] = url;
136
+ baseURL["tsx"] = url;
137
+ // XXX ?
138
+ //baseURL["fontface"] = url;
139
+ }
140
+ }
141
+
24
142
  /**
25
143
  * onload callback
26
144
  * @default undefined
@@ -368,7 +486,11 @@ function load(asset, onload, onerror) {
368
486
  }
369
487
 
370
488
  // parser returns the amount of asset to be loaded (usually 1 unless an asset is splitted into several ones)
371
- return parser.call(this, asset, onload, onerror);
489
+ return parser.call(this, asset, onload, onerror, {
490
+ nocache: nocache,
491
+ crossOrigin: crossOrigin,
492
+ withCredentials: withCredentials
493
+ });
372
494
  }
373
495
 
374
496
  /**
@@ -574,4 +696,4 @@ function getVideo(elt) {
574
696
  return null;
575
697
  }
576
698
 
577
- export { baseURL, getBinary, getImage, getJSON, getTMX, getVideo, load, onError, onProgress, onload, preload, reload, setParser, unload, unloadAll };
699
+ export { baseURL, crossOrigin, getBinary, getImage, getJSON, getTMX, getVideo, load, nocache, onError, onProgress, onload, preload, reload, setBaseURL, setNocache, setOptions, setParser, unload, unloadAll, withCredentials };
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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 - v16.1.3
2
+ * melonJS Game Engine - v17.0.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
@@ -13,12 +13,13 @@ import { fetchData } from './fetchdata.js';
13
13
  * @param {loader.Asset} data - asset data
14
14
  * @param {Function} [onload] - function to be called when the asset is loaded
15
15
  * @param {Function} [onerror] - function to be called in case of error
16
+ * @param {Object} [settings] - Additional settings to be passed when loading the asset
16
17
  * @returns {number} the amount of corresponding resource parsed/preloaded
17
18
  * @ignore
18
19
  */
19
- function preloadBinary(data, onload, onerror) {
20
+ function preloadBinary(data, onload, onerror, settings) {
20
21
 
21
- fetchData(data.src, "arrayBuffer")
22
+ fetchData(data.src, "arrayBuffer", settings)
22
23
  .then(response => {
23
24
  // this method is native and might be slightly more efficient
24
25
  const decoder = new TextDecoder(); // the default for this is 'utf-8'