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