melonjs 14.3.0 → 14.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 (260) hide show
  1. package/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +2 -2
  2. package/dist/melonjs.mjs/_virtual/arraymultimap.js +2 -2
  3. package/dist/melonjs.mjs/_virtual/earcut.js +2 -2
  4. package/dist/melonjs.mjs/_virtual/howler.js +2 -2
  5. package/dist/melonjs.mjs/_virtual/index.js +2 -2
  6. package/dist/melonjs.mjs/_virtual/index2.js +2 -2
  7. package/dist/melonjs.mjs/_virtual/multimap.js +2 -2
  8. package/dist/melonjs.mjs/_virtual/setmultimap.js +2 -2
  9. package/dist/melonjs.mjs/application/application.js +8 -21
  10. package/dist/melonjs.mjs/application/header.js +2 -2
  11. package/dist/melonjs.mjs/application/resize.js +4 -2
  12. package/dist/melonjs.mjs/application/settings.js +2 -2
  13. package/dist/melonjs.mjs/audio/audio.js +2 -2
  14. package/dist/melonjs.mjs/camera/camera2d.js +2 -2
  15. package/dist/melonjs.mjs/const.js +32 -0
  16. package/dist/melonjs.mjs/entity/entity.js +2 -2
  17. package/dist/melonjs.mjs/geometries/ellipse.js +2 -2
  18. package/dist/melonjs.mjs/geometries/line.js +2 -2
  19. package/dist/melonjs.mjs/geometries/path2d.js +2 -2
  20. package/dist/melonjs.mjs/geometries/point.js +2 -2
  21. package/dist/melonjs.mjs/geometries/poly.js +2 -2
  22. package/dist/melonjs.mjs/geometries/rectangle.js +2 -2
  23. package/dist/melonjs.mjs/geometries/roundrect.js +2 -2
  24. package/dist/melonjs.mjs/index.js +5 -5
  25. package/dist/melonjs.mjs/input/gamepad.js +2 -2
  26. package/dist/melonjs.mjs/input/input.js +2 -2
  27. package/dist/melonjs.mjs/input/keyboard.js +2 -2
  28. package/dist/melonjs.mjs/input/pointer.js +2 -2
  29. package/dist/melonjs.mjs/input/pointerevent.js +2 -2
  30. package/dist/melonjs.mjs/lang/console.js +44 -0
  31. package/dist/melonjs.mjs/lang/deprecated.js +4 -40
  32. package/dist/melonjs.mjs/level/level.js +2 -2
  33. package/dist/melonjs.mjs/level/tiled/TMXGroup.js +2 -23
  34. package/dist/melonjs.mjs/level/tiled/TMXLayer.js +67 -57
  35. package/dist/melonjs.mjs/level/tiled/TMXObject.js +2 -64
  36. package/dist/melonjs.mjs/level/tiled/TMXTile.js +10 -26
  37. package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +17 -83
  38. package/dist/melonjs.mjs/level/tiled/TMXTileset.js +2 -16
  39. package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +3 -10
  40. package/dist/melonjs.mjs/level/tiled/TMXUtils.js +37 -14
  41. package/dist/melonjs.mjs/level/tiled/constants.js +17 -0
  42. package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +7 -8
  43. package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +3 -6
  44. package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +2 -2
  45. package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +2 -14
  46. package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +2 -2
  47. package/dist/melonjs.mjs/level/tiled/renderer/autodetect.js +38 -0
  48. package/dist/melonjs.mjs/loader/loader.js +5 -3
  49. package/dist/melonjs.mjs/loader/loadingscreen.js +2 -2
  50. package/dist/melonjs.mjs/loader/melonjs_logo.png.js +2 -2
  51. package/dist/melonjs.mjs/math/color.js +2 -2
  52. package/dist/melonjs.mjs/math/math.js +2 -2
  53. package/dist/melonjs.mjs/math/matrix2.js +2 -2
  54. package/dist/melonjs.mjs/math/matrix3.js +2 -2
  55. package/dist/melonjs.mjs/math/observable_vector2.js +2 -2
  56. package/dist/melonjs.mjs/math/observable_vector3.js +2 -2
  57. package/dist/melonjs.mjs/math/vector2.js +2 -2
  58. package/dist/melonjs.mjs/math/vector3.js +2 -2
  59. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/arraymultimap.js +2 -2
  60. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/index.js +2 -2
  61. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/multimap.js +2 -2
  62. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/setmultimap.js +2 -2
  63. package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +2 -2
  64. package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +2 -2
  65. package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +2 -2
  66. package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +2 -2
  67. package/dist/melonjs.mjs/particles/emitter.js +2 -2
  68. package/dist/melonjs.mjs/particles/particle.js +2 -2
  69. package/dist/melonjs.mjs/particles/settings.js +2 -2
  70. package/dist/melonjs.mjs/physics/body.js +2 -2
  71. package/dist/melonjs.mjs/physics/bounds.js +2 -2
  72. package/dist/melonjs.mjs/physics/collision.js +3 -3
  73. package/dist/melonjs.mjs/physics/detector.js +2 -2
  74. package/dist/melonjs.mjs/physics/quadtree.js +2 -2
  75. package/dist/melonjs.mjs/physics/response.js +2 -2
  76. package/dist/melonjs.mjs/physics/sat.js +2 -2
  77. package/dist/melonjs.mjs/physics/world.js +2 -2
  78. package/dist/melonjs.mjs/plugin/plugin.js +4 -4
  79. package/dist/melonjs.mjs/renderable/collectable.js +2 -2
  80. package/dist/melonjs.mjs/renderable/colorlayer.js +2 -2
  81. package/dist/melonjs.mjs/renderable/container.js +2 -2
  82. package/dist/melonjs.mjs/renderable/dragndrop.js +2 -2
  83. package/dist/melonjs.mjs/renderable/imagelayer.js +2 -2
  84. package/dist/melonjs.mjs/renderable/light2d.js +2 -2
  85. package/dist/melonjs.mjs/renderable/nineslicesprite.js +2 -2
  86. package/dist/melonjs.mjs/renderable/renderable.js +2 -2
  87. package/dist/melonjs.mjs/renderable/sprite.js +2 -2
  88. package/dist/melonjs.mjs/renderable/trigger.js +2 -2
  89. package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +2 -2
  90. package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +2 -2
  91. package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +2 -2
  92. package/dist/melonjs.mjs/state/stage.js +2 -2
  93. package/dist/melonjs.mjs/state/state.js +2 -2
  94. package/dist/melonjs.mjs/system/device.js +2 -2
  95. package/dist/melonjs.mjs/system/dom.js +2 -2
  96. package/dist/melonjs.mjs/system/event.js +2 -2
  97. package/dist/melonjs.mjs/system/platform.js +2 -2
  98. package/dist/melonjs.mjs/system/pooling.js +2 -2
  99. package/dist/melonjs.mjs/system/save.js +2 -2
  100. package/dist/melonjs.mjs/system/timer.js +2 -2
  101. package/dist/melonjs.mjs/text/bitmaptext.js +2 -2
  102. package/dist/melonjs.mjs/text/bitmaptextdata.js +2 -2
  103. package/dist/melonjs.mjs/text/glyph.js +2 -2
  104. package/dist/melonjs.mjs/text/text.js +2 -2
  105. package/dist/melonjs.mjs/text/textmetrics.js +2 -2
  106. package/dist/melonjs.mjs/text/textstyle.js +2 -2
  107. package/dist/melonjs.mjs/tweens/easing.js +2 -2
  108. package/dist/melonjs.mjs/tweens/interpolation.js +2 -2
  109. package/dist/melonjs.mjs/tweens/tween.js +2 -2
  110. package/dist/melonjs.mjs/utils/agent.js +2 -2
  111. package/dist/melonjs.mjs/utils/array.js +2 -2
  112. package/dist/melonjs.mjs/utils/file.js +2 -2
  113. package/dist/melonjs.mjs/utils/function.js +2 -2
  114. package/dist/melonjs.mjs/utils/string.js +2 -2
  115. package/dist/melonjs.mjs/utils/utils.js +2 -2
  116. package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +2 -2
  117. package/dist/melonjs.mjs/video/renderer.js +2 -2
  118. package/dist/melonjs.mjs/video/texture/atlas.js +2 -2
  119. package/dist/melonjs.mjs/video/texture/cache.js +2 -2
  120. package/dist/melonjs.mjs/video/texture/canvas_texture.js +2 -2
  121. package/dist/melonjs.mjs/video/utils/autodetect.js +2 -2
  122. package/dist/melonjs.mjs/video/video.js +16 -13
  123. package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +2 -2
  124. package/dist/melonjs.mjs/video/webgl/glshader.js +2 -2
  125. package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +2 -2
  126. package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +2 -2
  127. package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +2 -2
  128. package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +2 -2
  129. package/dist/melonjs.mjs/video/webgl/utils/attributes.js +2 -2
  130. package/dist/melonjs.mjs/video/webgl/utils/precision.js +2 -2
  131. package/dist/melonjs.mjs/video/webgl/utils/program.js +2 -2
  132. package/dist/melonjs.mjs/video/webgl/utils/string.js +2 -2
  133. package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +2 -2
  134. package/dist/melonjs.mjs/video/webgl/webgl_compositor.js +2 -2
  135. package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +2 -2
  136. package/dist/melonjs.module.js +2704 -2828
  137. package/dist/types/application/application.d.ts +5 -1
  138. package/dist/types/application/resize.d.ts +1 -0
  139. package/dist/types/const.d.ts +21 -0
  140. package/dist/types/index.d.ts +1 -0
  141. package/dist/types/lang/console.d.ts +7 -0
  142. package/dist/types/lang/deprecated.d.ts +0 -8
  143. package/dist/types/level/tiled/TMXGroup.d.ts +7 -28
  144. package/dist/types/level/tiled/TMXLayer.d.ts +25 -47
  145. package/dist/types/level/tiled/TMXObject.d.ts +20 -82
  146. package/dist/types/level/tiled/TMXTile.d.ts +11 -25
  147. package/dist/types/level/tiled/TMXTileMap.d.ts +18 -56
  148. package/dist/types/level/tiled/TMXTileset.d.ts +7 -21
  149. package/dist/types/level/tiled/TMXTilesetGroup.d.ts +3 -9
  150. package/dist/types/level/tiled/constants.d.ts +5 -0
  151. package/dist/types/level/tiled/renderer/TMXHexagonalRenderer.d.ts +2 -6
  152. package/dist/types/level/tiled/renderer/TMXIsometricRenderer.d.ts +2 -6
  153. package/dist/types/level/tiled/renderer/TMXRenderer.d.ts +6 -18
  154. package/dist/types/level/tiled/renderer/autodetect.d.ts +9 -0
  155. package/dist/types/video/video.d.ts +7 -6
  156. package/package.json +6 -6
  157. package/src/application/application.js +6 -19
  158. package/src/application/resize.js +2 -0
  159. package/src/const.js +23 -0
  160. package/src/index.js +2 -0
  161. package/src/lang/console.js +36 -0
  162. package/src/lang/deprecated.js +2 -37
  163. package/src/level/tiled/TMXGroup.js +0 -21
  164. package/src/level/tiled/TMXLayer.js +65 -55
  165. package/src/level/tiled/TMXObject.js +0 -62
  166. package/src/level/tiled/TMXTile.js +8 -24
  167. package/src/level/tiled/TMXTileMap.js +15 -81
  168. package/src/level/tiled/TMXTileset.js +0 -14
  169. package/src/level/tiled/TMXTilesetGroup.js +1 -9
  170. package/src/level/tiled/TMXUtils.js +38 -15
  171. package/src/level/tiled/constants.js +8 -0
  172. package/src/level/tiled/renderer/TMXHexagonalRenderer.js +5 -6
  173. package/src/level/tiled/renderer/TMXIsometricRenderer.js +1 -4
  174. package/src/level/tiled/renderer/TMXRenderer.js +0 -12
  175. package/src/level/tiled/renderer/autodetect.js +29 -0
  176. package/src/loader/loader.js +3 -1
  177. package/src/physics/collision.js +1 -1
  178. package/src/video/video.js +14 -11
  179. package/dist/melonjs.mjs/node_modules/core-js/es/string/trim-end.js +0 -13
  180. package/dist/melonjs.mjs/node_modules/core-js/es/string/trim-start.js +0 -13
  181. package/dist/melonjs.mjs/node_modules/core-js/internals/a-callable.js +0 -22
  182. package/dist/melonjs.mjs/node_modules/core-js/internals/an-object.js +0 -21
  183. package/dist/melonjs.mjs/node_modules/core-js/internals/array-includes.js +0 -45
  184. package/dist/melonjs.mjs/node_modules/core-js/internals/classof-raw.js +0 -19
  185. package/dist/melonjs.mjs/node_modules/core-js/internals/classof.js +0 -43
  186. package/dist/melonjs.mjs/node_modules/core-js/internals/copy-constructor-properties.js +0 -32
  187. package/dist/melonjs.mjs/node_modules/core-js/internals/create-non-enumerable-property.js +0 -24
  188. package/dist/melonjs.mjs/node_modules/core-js/internals/create-property-descriptor.js +0 -17
  189. package/dist/melonjs.mjs/node_modules/core-js/internals/define-built-in.js +0 -43
  190. package/dist/melonjs.mjs/node_modules/core-js/internals/define-global-property.js +0 -23
  191. package/dist/melonjs.mjs/node_modules/core-js/internals/descriptors.js +0 -18
  192. package/dist/melonjs.mjs/node_modules/core-js/internals/document-all.js +0 -18
  193. package/dist/melonjs.mjs/node_modules/core-js/internals/document-create-element.js +0 -22
  194. package/dist/melonjs.mjs/node_modules/core-js/internals/engine-user-agent.js +0 -14
  195. package/dist/melonjs.mjs/node_modules/core-js/internals/engine-v8-version.js +0 -39
  196. package/dist/melonjs.mjs/node_modules/core-js/internals/entry-unbind.js +0 -18
  197. package/dist/melonjs.mjs/node_modules/core-js/internals/enum-bug-keys.js +0 -19
  198. package/dist/melonjs.mjs/node_modules/core-js/internals/export.js +0 -72
  199. package/dist/melonjs.mjs/node_modules/core-js/internals/fails.js +0 -16
  200. package/dist/melonjs.mjs/node_modules/core-js/internals/function-bind-native.js +0 -19
  201. package/dist/melonjs.mjs/node_modules/core-js/internals/function-call.js +0 -18
  202. package/dist/melonjs.mjs/node_modules/core-js/internals/function-name.js +0 -29
  203. package/dist/melonjs.mjs/node_modules/core-js/internals/function-uncurry-this.js +0 -22
  204. package/dist/melonjs.mjs/node_modules/core-js/internals/get-built-in.js +0 -22
  205. package/dist/melonjs.mjs/node_modules/core-js/internals/get-method.js +0 -21
  206. package/dist/melonjs.mjs/node_modules/core-js/internals/global.js +0 -25
  207. package/dist/melonjs.mjs/node_modules/core-js/internals/has-own-property.js +0 -23
  208. package/dist/melonjs.mjs/node_modules/core-js/internals/hidden-keys.js +0 -10
  209. package/dist/melonjs.mjs/node_modules/core-js/internals/ie8-dom-define.js +0 -24
  210. package/dist/melonjs.mjs/node_modules/core-js/internals/indexed-object.js +0 -28
  211. package/dist/melonjs.mjs/node_modules/core-js/internals/inspect-source.js +0 -27
  212. package/dist/melonjs.mjs/node_modules/core-js/internals/internal-state.js +0 -88
  213. package/dist/melonjs.mjs/node_modules/core-js/internals/is-callable.js +0 -22
  214. package/dist/melonjs.mjs/node_modules/core-js/internals/is-forced.js +0 -34
  215. package/dist/melonjs.mjs/node_modules/core-js/internals/is-null-or-undefined.js +0 -14
  216. package/dist/melonjs.mjs/node_modules/core-js/internals/is-object.js +0 -22
  217. package/dist/melonjs.mjs/node_modules/core-js/internals/is-symbol.js +0 -27
  218. package/dist/melonjs.mjs/node_modules/core-js/internals/length-of-array-like.js +0 -18
  219. package/dist/melonjs.mjs/node_modules/core-js/internals/make-built-in.js +0 -68
  220. package/dist/melonjs.mjs/node_modules/core-js/internals/math-trunc.js +0 -19
  221. package/dist/melonjs.mjs/node_modules/core-js/internals/object-define-property.js +0 -58
  222. package/dist/melonjs.mjs/node_modules/core-js/internals/object-get-own-property-descriptor.js +0 -41
  223. package/dist/melonjs.mjs/node_modules/core-js/internals/object-get-own-property-names.js +0 -23
  224. package/dist/melonjs.mjs/node_modules/core-js/internals/object-get-own-property-symbols.js +0 -12
  225. package/dist/melonjs.mjs/node_modules/core-js/internals/object-is-prototype-of.js +0 -14
  226. package/dist/melonjs.mjs/node_modules/core-js/internals/object-keys-internal.js +0 -35
  227. package/dist/melonjs.mjs/node_modules/core-js/internals/object-property-is-enumerable.js +0 -23
  228. package/dist/melonjs.mjs/node_modules/core-js/internals/ordinary-to-primitive.js +0 -28
  229. package/dist/melonjs.mjs/node_modules/core-js/internals/own-keys.js +0 -31
  230. package/dist/melonjs.mjs/node_modules/core-js/internals/require-object-coercible.js +0 -21
  231. package/dist/melonjs.mjs/node_modules/core-js/internals/shared-key.js +0 -21
  232. package/dist/melonjs.mjs/node_modules/core-js/internals/shared-store.js +0 -19
  233. package/dist/melonjs.mjs/node_modules/core-js/internals/shared.js +0 -24
  234. package/dist/melonjs.mjs/node_modules/core-js/internals/string-trim-end.js +0 -22
  235. package/dist/melonjs.mjs/node_modules/core-js/internals/string-trim-forced.js +0 -28
  236. package/dist/melonjs.mjs/node_modules/core-js/internals/string-trim-start.js +0 -22
  237. package/dist/melonjs.mjs/node_modules/core-js/internals/string-trim.js +0 -45
  238. package/dist/melonjs.mjs/node_modules/core-js/internals/symbol-constructor-detection.js +0 -26
  239. package/dist/melonjs.mjs/node_modules/core-js/internals/to-absolute-index.js +0 -23
  240. package/dist/melonjs.mjs/node_modules/core-js/internals/to-indexed-object.js +0 -19
  241. package/dist/melonjs.mjs/node_modules/core-js/internals/to-integer-or-infinity.js +0 -20
  242. package/dist/melonjs.mjs/node_modules/core-js/internals/to-length.js +0 -20
  243. package/dist/melonjs.mjs/node_modules/core-js/internals/to-object.js +0 -20
  244. package/dist/melonjs.mjs/node_modules/core-js/internals/to-primitive.js +0 -41
  245. package/dist/melonjs.mjs/node_modules/core-js/internals/to-property-key.js +0 -21
  246. package/dist/melonjs.mjs/node_modules/core-js/internals/to-string-tag-support.js +0 -19
  247. package/dist/melonjs.mjs/node_modules/core-js/internals/to-string.js +0 -19
  248. package/dist/melonjs.mjs/node_modules/core-js/internals/try-to-string.js +0 -18
  249. package/dist/melonjs.mjs/node_modules/core-js/internals/uid.js +0 -20
  250. package/dist/melonjs.mjs/node_modules/core-js/internals/use-symbol-as-uid.js +0 -18
  251. package/dist/melonjs.mjs/node_modules/core-js/internals/v8-prototype-define-bug.js +0 -24
  252. package/dist/melonjs.mjs/node_modules/core-js/internals/weak-map-basic-detection.js +0 -18
  253. package/dist/melonjs.mjs/node_modules/core-js/internals/well-known-symbol.js +0 -41
  254. package/dist/melonjs.mjs/node_modules/core-js/internals/whitespaces.js +0 -12
  255. package/dist/melonjs.mjs/node_modules/core-js/modules/es.global-this.js +0 -18
  256. package/dist/melonjs.mjs/node_modules/core-js/modules/es.string.trim-end.js +0 -22
  257. package/dist/melonjs.mjs/node_modules/core-js/modules/es.string.trim-left.js +0 -19
  258. package/dist/melonjs.mjs/node_modules/core-js/modules/es.string.trim-right.js +0 -19
  259. package/dist/melonjs.mjs/node_modules/core-js/modules/es.string.trim-start.js +0 -22
  260. package/dist/melonjs.mjs/node_modules/eventemitter3/index.mjs.js +0 -9
@@ -1,53 +1,25 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.3.0
2
+ * melonJS Game Engine - v14.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
- * @copyright (C) 2011 - 2022 Olivier Biot (AltByte Pte Ltd)
6
+ * @copyright (C) 2011 - 2023 Olivier Biot (AltByte Pte Ltd)
7
7
  */
8
8
  import pool from '../../system/pooling.js';
9
9
  import { off, on, VIEWPORT_ONRESIZE } from '../../system/event.js';
10
10
  import { game } from '../../index.js';
11
+ import utils from '../../utils/utils.js';
11
12
  import collision from '../../physics/collision.js';
12
13
  import Body from '../../physics/body.js';
13
- import TMXOrthogonalRenderer from './renderer/TMXOrthogonalRenderer.js';
14
- import TMXIsometricRenderer from './renderer/TMXIsometricRenderer.js';
15
- import TMXHexagonalRenderer from './renderer/TMXHexagonalRenderer.js';
16
- import TMXStaggeredRenderer from './renderer/TMXStaggeredRenderer.js';
17
14
  import TMXTileset from './TMXTileset.js';
18
15
  import TMXTilesetGroup from './TMXTilesetGroup.js';
19
16
  import TMXGroup from './TMXGroup.js';
20
17
  import TMXLayer from './TMXLayer.js';
21
18
  import { applyTMXProperties } from './TMXUtils.js';
22
19
  import Container from '../../renderable/container.js';
23
-
24
- // constant to identify the collision object layer
25
- const COLLISION_GROUP = "collision";
26
-
27
- /**
28
- * set a compatible renderer object
29
- * for the specified map
30
- * @ignore
31
- */
32
- function getNewDefaultRenderer(map) {
33
- switch (map.orientation) {
34
- case "orthogonal":
35
- return new TMXOrthogonalRenderer(map);
36
-
37
- case "isometric":
38
- return new TMXIsometricRenderer(map);
39
-
40
- case "hexagonal":
41
- return new TMXHexagonalRenderer(map);
42
-
43
- case "staggered":
44
- return new TMXStaggeredRenderer(map);
45
-
46
- // if none found, throw an exception
47
- default:
48
- throw new Error(map.orientation + " type TMX Tile Map not supported!");
49
- }
50
- }
20
+ import { COLLISION_GROUP } from './constants.js';
21
+ import { getNewTMXRenderer } from './renderer/autodetect.js';
22
+ import { warning } from '../../lang/console.js';
51
23
 
52
24
  /**
53
25
  * read the layer Data
@@ -129,96 +101,73 @@ function readObjectGroup(map, data, z) {
129
101
 
130
102
  /**
131
103
  * name of the tilemap
132
- * @public
133
104
  * @type {string}
134
- * @name TMXTileMap#name
135
105
  */
136
106
  this.name = levelId;
137
107
 
138
108
  /**
139
109
  * width of the tilemap in tiles
140
- * @public
141
110
  * @type {number}
142
- * @name TMXTileMap#cols
143
111
  */
144
112
  this.cols = +data.width;
113
+
145
114
  /**
146
115
  * height of the tilemap in tiles
147
- * @public
148
116
  * @type {number}
149
- * @name TMXTileMap#rows
150
117
  */
151
118
  this.rows = +data.height;
152
119
 
153
120
  /**
154
121
  * Tile width
155
- * @public
156
122
  * @type {number}
157
- * @name TMXTileMap#tilewidth
158
123
  */
159
124
  this.tilewidth = +data.tilewidth;
160
125
 
161
126
  /**
162
127
  * Tile height
163
- * @public
164
128
  * @type {number}
165
- * @name TMXTileMap#tileheight
166
129
  */
167
130
  this.tileheight = +data.tileheight;
168
131
 
169
132
  /**
170
133
  * is the map an infinite map
171
- * @public
172
134
  * @type {number}
173
135
  * @default 0
174
- * @name TMXTileMap#infinite
175
136
  */
176
- this.infinite = +data.infinite;
137
+ this.infinite = +data.infinite || 0;
177
138
 
178
139
  /**
179
140
  * the map orientation type. melonJS supports “orthogonal”, “isometric”, “staggered” and “hexagonal”.
180
- * @public
181
141
  * @type {string}
182
142
  * @default "orthogonal"
183
- * @name TMXTileMap#orientation
184
143
  */
185
144
  this.orientation = data.orientation;
186
145
 
187
146
  /**
188
147
  * the order in which tiles on orthogonal tile layers are rendered.
189
148
  * (valid values are "left-down", "left-up", "right-down", "right-up")
190
- * @public
191
149
  * @type {string}
192
150
  * @default "right-down"
193
- * @name TMXTileMap#renderorder
194
151
  */
195
152
  this.renderorder = data.renderorder || "right-down";
196
153
 
197
154
  /**
198
155
  * the TMX format version
199
- * @public
200
156
  * @type {string}
201
- * @name TMXTileMap#version
202
157
  */
203
- this.version = data.version;
158
+ this.version = "" + data.version;
204
159
 
205
160
  /**
206
161
  * The Tiled version used to save the file (since Tiled 1.0.1).
207
- * @public
208
162
  * @type {string}
209
- * @name TMXTileMap#tiledversion
210
163
  */
211
- this.tiledversion = data.tiledversion;
212
-
164
+ this.tiledversion = "" + data.tiledversion;
213
165
 
214
166
  /**
215
167
  * The map class.
216
- * @public
217
168
  * @type {string}
218
- * @name TMXTileMap#class
219
169
  */
220
- this.class = data.class;
221
-
170
+ this.class = data.class;
222
171
 
223
172
  // tilesets for this map
224
173
  this.tilesets = null;
@@ -235,7 +184,6 @@ function readObjectGroup(map, data, z) {
235
184
  // Check if map is from melon editor
236
185
  this.isEditor = data.editor === "melon-editor";
237
186
 
238
-
239
187
  // object id
240
188
  this.nextobjectid = +data.nextobjectid || undefined;
241
189
 
@@ -254,37 +202,31 @@ function readObjectGroup(map, data, z) {
254
202
  // background color
255
203
  this.backgroundcolor = data.backgroundcolor;
256
204
 
205
+ // deprecation warning if map tiled version is older than 1.5
206
+ if (utils.checkVersion(this.version, "1.5") < 0) {
207
+ warning("("+this.name+") Tiled Map format version 1.4 and below", "Tiled 1.5 or higher", "10.4.4");
208
+ }
209
+
257
210
  // set additional map properties (if any)
258
211
  applyTMXProperties(this, data);
259
212
 
260
213
  // internal flag
261
214
  this.initialized = false;
262
-
263
- if (this.infinite === 1) {
264
- // #956 Support for Infinite map
265
- // see as well in me.TMXUtils
266
- throw new Error("Tiled Infinite Map not supported!");
267
- }
268
215
  }
269
216
 
270
217
  /**
271
218
  * Return the map default renderer
272
- * @name getRenderer
273
- * @memberof TMXTileMap
274
- * @public
275
219
  * @returns {TMXRenderer} a TMX renderer
276
220
  */
277
221
  getRenderer() {
278
222
  if ((typeof(this.renderer) === "undefined") || (!this.renderer.canRender(this))) {
279
- this.renderer = getNewDefaultRenderer(this);
223
+ this.renderer = getNewTMXRenderer(this);
280
224
  }
281
225
  return this.renderer;
282
226
  }
283
227
 
284
228
  /**
285
229
  * return the map bounding rect
286
- * @name TMXRenderer#getBounds
287
- * @public
288
230
  * @returns {Bounds}
289
231
  */
290
232
  getBounds() {
@@ -362,8 +304,6 @@ function readObjectGroup(map, data, z) {
362
304
  /**
363
305
  * add all the map layers and objects to the given container.
364
306
  * note : this will not automatically update the camera viewport
365
- * @name TMXTileMap#addTo
366
- * @public
367
307
  * @param {Container} container - target container
368
308
  * @param {boolean} [flatten=true] - if true, flatten all objects into the given container, else a `me.Container` object will be created for each corresponding groups
369
309
  * @param {boolean} [setViewportBounds=false] - if true, set the viewport bounds to the map size, this should be set to true especially if adding a level to the game world container.
@@ -438,8 +378,6 @@ function readObjectGroup(map, data, z) {
438
378
 
439
379
  /**
440
380
  * return an Array of instantiated objects, based on the map object definition
441
- * @name TMXTileMap#getObjects
442
- * @public
443
381
  * @param {boolean} [flatten=true] - if true, flatten all objects into the returned array.
444
382
  * when false, a `me.Container` object will be created for each corresponding groups
445
383
  * @returns {Renderable[]} Array of Objects
@@ -610,8 +548,6 @@ function readObjectGroup(map, data, z) {
610
548
 
611
549
  /**
612
550
  * return all the existing layers
613
- * @name TMXTileMap#getLayers
614
- * @public
615
551
  * @returns {TMXLayer[]} Array of Layers
616
552
  */
617
553
  getLayers() {
@@ -622,8 +558,6 @@ function readObjectGroup(map, data, z) {
622
558
 
623
559
  /**
624
560
  * destroy function, clean all allocated objects
625
- * @name TMXTileMap#destroy
626
- * @public
627
561
  */
628
562
  destroy() {
629
563
  this.tilesets = undefined;
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.3.0
2
+ * melonJS Game Engine - v14.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
- * @copyright (C) 2011 - 2022 Olivier Biot (AltByte Pte Ltd)
6
+ * @copyright (C) 2011 - 2023 Olivier Biot (AltByte Pte Ltd)
7
7
  */
8
8
  import Vector2d from '../../math/vector2.js';
9
9
  import { renderer } from '../../video/video.js';
@@ -55,25 +55,19 @@ import loader from '../../loader/loader.js';
55
55
 
56
56
  /**
57
57
  * Tileset contains animated tiles
58
- * @public
59
58
  * @type {boolean}
60
- * @name TMXTileset#isAnimated
61
59
  */
62
60
  this.isAnimated = false;
63
61
 
64
62
  /**
65
63
  * true if the tileset is a "Collection of Image" Tileset
66
- * @public
67
64
  * @type {boolean}
68
- * @name TMXTileset#isCollection
69
65
  */
70
66
  this.isCollection = false;
71
67
 
72
68
  /**
73
69
  * the tileset class
74
- * @public
75
70
  * @type {boolean}
76
- * @name TMXTileset#class
77
71
  */
78
72
  this.class = tileset.class;
79
73
 
@@ -179,8 +173,6 @@ import loader from '../../loader/loader.js';
179
173
 
180
174
  /**
181
175
  * return the tile image from a "Collection of Image" tileset
182
- * @name TMXTileset#getTileImage
183
- * @public
184
176
  * @param {number} gid
185
177
  * @returns {Image} corresponding image or undefined
186
178
  */
@@ -200,8 +192,6 @@ import loader from '../../loader/loader.js';
200
192
 
201
193
  /**
202
194
  * return true if the gid belongs to the tileset
203
- * @name TMXTileset#contains
204
- * @public
205
195
  * @param {number} gid
206
196
  * @returns {boolean}
207
197
  */
@@ -211,8 +201,6 @@ import loader from '../../loader/loader.js';
211
201
 
212
202
  /**
213
203
  * Get the view (local) tile ID from a GID, with animations applied
214
- * @name TMXTileset#getViewTileId
215
- * @public
216
204
  * @param {number} gid - Global tile ID
217
205
  * @returns {number} View tile ID
218
206
  */
@@ -229,8 +217,6 @@ import loader from '../../loader/loader.js';
229
217
 
230
218
  /**
231
219
  * return the properties of the specified tile
232
- * @name TMXTileset#getTileProperties
233
- * @public
234
220
  * @param {number} tileId
235
221
  * @returns {object}
236
222
  */
@@ -1,12 +1,11 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.3.0
2
+ * melonJS Game Engine - v14.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
- * @copyright (C) 2011 - 2022 Olivier Biot (AltByte Pte Ltd)
6
+ * @copyright (C) 2011 - 2023 Olivier Biot (AltByte Pte Ltd)
7
7
  */
8
- // bitmask constants to check for flipped & rotated tiles
9
- const TMX_CLEAR_BIT_MASK = ~(0x80000000 | 0x40000000 | 0x20000000);
8
+ import { TMX_CLEAR_BIT_MASK } from './constants.js';
10
9
 
11
10
  /**
12
11
  * @classdesc
@@ -21,8 +20,6 @@ const TMX_CLEAR_BIT_MASK = ~(0x80000000 | 0x40000000 | 0x20000000);
21
20
 
22
21
  /**
23
22
  * add a tileset to the tileset group
24
- * @name TMXTilesetGroup#add
25
- * @public
26
23
  * @param {TMXTileset} tileset
27
24
  */
28
25
  add(tileset) {
@@ -32,8 +29,6 @@ const TMX_CLEAR_BIT_MASK = ~(0x80000000 | 0x40000000 | 0x20000000);
32
29
 
33
30
  /**
34
31
  * return the tileset at the specified index
35
- * @name TMXTilesetGroup#getTilesetByIndex
36
- * @public
37
32
  * @param {number} i
38
33
  * @returns {TMXTileset} corresponding tileset
39
34
  */
@@ -44,8 +39,6 @@ const TMX_CLEAR_BIT_MASK = ~(0x80000000 | 0x40000000 | 0x20000000);
44
39
  /**
45
40
  * return the tileset corresponding to the specified id <br>
46
41
  * will throw an exception if no matching tileset is found
47
- * @name TMXTilesetGroup#getTilesetByGid
48
- * @public
49
42
  * @param {number} gid
50
43
  * @returns {TMXTileset} corresponding tileset
51
44
  */
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.3.0
2
+ * melonJS Game Engine - v14.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
- * @copyright (C) 2011 - 2022 Olivier Biot (AltByte Pte Ltd)
6
+ * @copyright (C) 2011 - 2023 Olivier Biot (AltByte Pte Ltd)
7
7
  */
8
8
  import { isBoolean, isNumeric } from '../../utils/string.js';
9
9
 
@@ -195,13 +195,37 @@ function normalize(obj, item) {
195
195
  switch (nodeName) {
196
196
  case "data":
197
197
  var data = parse(item);
198
- // #956 Support for Infinite map
199
- // workaround to prevent the parsing code from crashing
200
- data.text = data.text || data.chunk.text;
201
- // When no encoding is given, the tiles are stored as individual XML tile elements.
198
+
202
199
  data.encoding = data.encoding || "xml";
203
- obj.data = decode(data.text, data.encoding, data.compression);
204
- obj.encoding = "none";
200
+
201
+ // decode chunks for infinite maps
202
+ if (typeof data.chunks !== "undefined") {
203
+ obj.chunks = obj.chunks || [];
204
+ // infinite maps containing chunk data
205
+ data.chunks.forEach((chunk) => {
206
+ obj.chunks.push({
207
+ x: +chunk.x,
208
+ y: +chunk.y,
209
+ // chunk width is in tiles
210
+ width: +chunk.width,
211
+ // chunk height is in tiles
212
+ height: +chunk.height,
213
+ data: decode(chunk.text, data.encoding, data.compression)
214
+ });
215
+ });
216
+ obj.encoding = "none";
217
+ }
218
+ // Bug on if condition: when parsing data, data.text is sometimes defined when chunks are present
219
+ if (typeof data.text !== "undefined" && typeof obj.chunks === "undefined") {
220
+ // Finite maps
221
+ obj.data = decode(data.text, data.encoding, data.compression);
222
+ obj.encoding = "none";
223
+ }
224
+ break;
225
+
226
+ case "chunk":
227
+ obj.chunks = obj.chunks || [];
228
+ obj.chunks.push(parse(item));
205
229
  break;
206
230
 
207
231
  case "imagelayer":
@@ -310,16 +334,15 @@ function parse(xml) {
310
334
 
311
335
  // do children
312
336
  if (xml.hasChildNodes()) {
313
- for (var i = 0; i < xml.childNodes.length; i++) {
314
- var item = xml.childNodes.item(i);
315
-
316
- switch (item.nodeType) {
337
+ let children = xml.childNodes;
338
+ for (const node of children) {
339
+ switch (node.nodeType) {
317
340
  case 1:
318
- normalize(obj, item);
341
+ normalize(obj, node);
319
342
  break;
320
343
 
321
344
  case 3:
322
- text += item.nodeValue.trim();
345
+ text += node.nodeValue.trim();
323
346
  break;
324
347
  }
325
348
  }
@@ -0,0 +1,17 @@
1
+ /*!
2
+ * melonJS Game Engine - v14.4.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 - 2023 Olivier Biot (AltByte Pte Ltd)
7
+ */
8
+ // bitmask constants to check for flipped & rotated tiles
9
+ const TMX_FLIP_H = 0x80000000;
10
+ const TMX_FLIP_V = 0x40000000;
11
+ const TMX_FLIP_AD = 0x20000000;
12
+ const TMX_CLEAR_BIT_MASK = ~(TMX_FLIP_H | TMX_FLIP_V | TMX_FLIP_AD);
13
+
14
+ // constant to identify the collision object layer
15
+ const COLLISION_GROUP = "collision";
16
+
17
+ export { COLLISION_GROUP, TMX_CLEAR_BIT_MASK, TMX_FLIP_AD, TMX_FLIP_H, TMX_FLIP_V };
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.3.0
2
+ * melonJS Game Engine - v14.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
- * @copyright (C) 2011 - 2022 Olivier Biot (AltByte Pte Ltd)
6
+ * @copyright (C) 2011 - 2023 Olivier Biot (AltByte Pte Ltd)
7
7
  */
8
8
  import Vector2d from '../../../math/vector2.js';
9
9
  import pool from '../../../system/pooling.js';
@@ -84,10 +84,7 @@ const offsetsStaggerY = [
84
84
 
85
85
  /**
86
86
  * return the bounding rect for this map renderer
87
- * @name TMXHexagonalRenderer#getBounds
88
- * @public
89
- * @param {TMXLayer} [layer] - calculate the bounding rect for a specific layer (will return a new bounds object)
90
- * @returns {Bounds}
87
+ * @ignore
91
88
  */
92
89
  getBounds(layer) {
93
90
  var bounds = layer instanceof TMXLayer ? pool.pull("Bounds") : this.bounds;
@@ -423,7 +420,8 @@ const offsetsStaggerY = [
423
420
 
424
421
  startPos = this.tileToPixelCoords(
425
422
  startTile.x + layer.pos.x,
426
- startTile.y + layer.pos.y
423
+ startTile.y + layer.pos.y,
424
+ startPos
427
425
  );
428
426
 
429
427
  var staggeredRow = this.doStaggerX(startTile.x + layer.pos.x);
@@ -465,7 +463,8 @@ const offsetsStaggerY = [
465
463
 
466
464
  startPos = this.tileToPixelCoords(
467
465
  startTile.x + layer.pos.x,
468
- startTile.y + layer.pos.y
466
+ startTile.y + layer.pos.y,
467
+ startPos
469
468
  );
470
469
 
471
470
  // Odd row shifting is applied in the rendering loop, so un-apply it here
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.3.0
2
+ * melonJS Game Engine - v14.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
- * @copyright (C) 2011 - 2022 Olivier Biot (AltByte Pte Ltd)
6
+ * @copyright (C) 2011 - 2023 Olivier Biot (AltByte Pte Ltd)
7
7
  */
8
8
  import Vector2d from '../../../math/vector2.js';
9
9
  import pool from '../../../system/pooling.js';
@@ -45,10 +45,7 @@ import TMXLayer from '../TMXLayer.js';
45
45
 
46
46
  /**
47
47
  * return the bounding rect for this map renderer
48
- * @name TMXIsometricRenderer#getBounds
49
- * @public
50
- * @param {TMXLayer} [layer] - calculate the bounding rect for a specific layer (will return a new bounds object)
51
- * @returns {Bounds}
48
+ * @ignore
52
49
  */
53
50
  getBounds(layer) {
54
51
  var bounds = layer instanceof TMXLayer ? pool.pull("Bounds") : this.bounds;
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.3.0
2
+ * melonJS Game Engine - v14.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
- * @copyright (C) 2011 - 2022 Olivier Biot (AltByte Pte Ltd)
6
+ * @copyright (C) 2011 - 2023 Olivier Biot (AltByte Pte Ltd)
7
7
  */
8
8
  import Vector2d from '../../../math/vector2.js';
9
9
  import pool from '../../../system/pooling.js';
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.3.0
2
+ * melonJS Game Engine - v14.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
- * @copyright (C) 2011 - 2022 Olivier Biot (AltByte Pte Ltd)
6
+ * @copyright (C) 2011 - 2023 Olivier Biot (AltByte Pte Ltd)
7
7
  */
8
8
  import pool from '../../../system/pooling.js';
9
9
  import TMXLayer from '../TMXLayer.js';
@@ -32,8 +32,6 @@ import Bounds from '../../../physics/bounds.js';
32
32
 
33
33
  /**
34
34
  * return true if the renderer can render the specified map or layer
35
- * @name TMXRenderer#canRender
36
- * @public
37
35
  * @param {TMXTileMap|TMXLayer} component - TMX Map or Layer
38
36
  * @returns {boolean}
39
37
  */
@@ -52,8 +50,6 @@ import Bounds from '../../../physics/bounds.js';
52
50
 
53
51
  /**
54
52
  * return the bounding rect for this map renderer
55
- * @name TMXRenderer#getBounds
56
- * @public
57
53
  * @param {TMXLayer} [layer] - calculate the bounding rect for a specific layer (will return a new bounds object)
58
54
  * @returns {Bounds}
59
55
  */
@@ -69,8 +65,6 @@ import Bounds from '../../../physics/bounds.js';
69
65
 
70
66
  /**
71
67
  * return the tile position corresponding to the specified pixel
72
- * @name TMXRenderer#pixelToTileCoords
73
- * @public
74
68
  * @param {number} x - X coordinate
75
69
  * @param {number} y - Y coordinate
76
70
  * @param {Vector2d} [v] - an optional vector object where to put the return values
@@ -82,8 +76,6 @@ import Bounds from '../../../physics/bounds.js';
82
76
 
83
77
  /**
84
78
  * return the pixel position corresponding of the specified tile
85
- * @name TMXRenderer#tileToPixelCoords
86
- * @public
87
79
  * @param {number} col - tile horizontal position
88
80
  * @param {number} row - tile vertical position
89
81
  * @param {Vector2d} [v] - an optional vector object where to put the return values
@@ -95,8 +87,6 @@ import Bounds from '../../../physics/bounds.js';
95
87
 
96
88
  /**
97
89
  * draw the given tile at the specified layer
98
- * @name TMXRenderer#drawTile
99
- * @public
100
90
  * @param {CanvasRenderer|WebGLRenderer} renderer - a renderer object
101
91
  * @param {number} x - X coordinate where to draw the tile
102
92
  * @param {number} y - Y coordinate where to draw the tile
@@ -107,8 +97,6 @@ import Bounds from '../../../physics/bounds.js';
107
97
 
108
98
  /**
109
99
  * draw the given TMX Layer for the given area
110
- * @name TMXRenderer#drawTileLayer
111
- * @public
112
100
  * @param {CanvasRenderer|WebGLRenderer} renderer - a renderer object
113
101
  * @param {TMXLayer} layer - a TMX Layer object
114
102
  * @param {Rect} rect - the area of the layer to draw
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.3.0
2
+ * melonJS Game Engine - v14.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
- * @copyright (C) 2011 - 2022 Olivier Biot (AltByte Pte Ltd)
6
+ * @copyright (C) 2011 - 2023 Olivier Biot (AltByte Pte Ltd)
7
7
  */
8
8
  import Vector2d from '../../../math/vector2.js';
9
9
  import pool from '../../../system/pooling.js';
@@ -0,0 +1,38 @@
1
+ /*!
2
+ * melonJS Game Engine - v14.4.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 - 2023 Olivier Biot (AltByte Pte Ltd)
7
+ */
8
+ import TMXOrthogonalRenderer from './TMXOrthogonalRenderer.js';
9
+ import TMXIsometricRenderer from './TMXIsometricRenderer.js';
10
+ import TMXHexagonalRenderer from './TMXHexagonalRenderer.js';
11
+ import TMXStaggeredRenderer from './TMXStaggeredRenderer.js';
12
+
13
+ /**
14
+ * return a compatible renderer object for the given map
15
+ * @param {TMXTileMap} map
16
+ * @ignore
17
+ */
18
+ function getNewTMXRenderer(map) {
19
+ switch (map.orientation) {
20
+ case "orthogonal":
21
+ return new TMXOrthogonalRenderer(map);
22
+
23
+ case "isometric":
24
+ return new TMXIsometricRenderer(map);
25
+
26
+ case "hexagonal":
27
+ return new TMXHexagonalRenderer(map);
28
+
29
+ case "staggered":
30
+ return new TMXStaggeredRenderer(map);
31
+
32
+ // if none found, throw an exception
33
+ default:
34
+ throw new Error(map.orientation + " type TMX Tile Map not supported!");
35
+ }
36
+ }
37
+
38
+ export { getNewTMXRenderer };
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.3.0
2
+ * melonJS Game Engine - v14.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
- * @copyright (C) 2011 - 2022 Olivier Biot (AltByte Pte Ltd)
6
+ * @copyright (C) 2011 - 2023 Olivier Biot (AltByte Pte Ltd)
7
7
  */
8
8
  import { getBasename, getExtension } from '../utils/file.js';
9
9
  import { emit, LOADER_PROGRESS, LOADER_COMPLETE } from '../system/event.js';
@@ -205,11 +205,13 @@ function preloadTMX(tmxData, onload, onerror) {
205
205
  break;
206
206
 
207
207
  case "json":
208
+ case "tmj":
209
+ case "tsj":
208
210
  result = JSON.parse(xmlhttp.responseText);
209
211
  break;
210
212
 
211
213
  default:
212
- throw new Error("TMX file format " + format + "not supported !");
214
+ throw new Error("TMX file format " + format + " not supported !");
213
215
  }
214
216
 
215
217
  //set the TMX content