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.
- package/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +2 -2
- package/dist/melonjs.mjs/_virtual/arraymultimap.js +2 -2
- package/dist/melonjs.mjs/_virtual/earcut.js +2 -2
- package/dist/melonjs.mjs/_virtual/howler.js +2 -2
- package/dist/melonjs.mjs/_virtual/index.js +2 -2
- package/dist/melonjs.mjs/_virtual/index2.js +2 -2
- package/dist/melonjs.mjs/_virtual/multimap.js +2 -2
- package/dist/melonjs.mjs/_virtual/setmultimap.js +2 -2
- package/dist/melonjs.mjs/application/application.js +8 -21
- package/dist/melonjs.mjs/application/header.js +2 -2
- package/dist/melonjs.mjs/application/resize.js +4 -2
- package/dist/melonjs.mjs/application/settings.js +2 -2
- package/dist/melonjs.mjs/audio/audio.js +2 -2
- package/dist/melonjs.mjs/camera/camera2d.js +2 -2
- package/dist/melonjs.mjs/const.js +32 -0
- package/dist/melonjs.mjs/entity/entity.js +2 -2
- package/dist/melonjs.mjs/geometries/ellipse.js +2 -2
- package/dist/melonjs.mjs/geometries/line.js +2 -2
- package/dist/melonjs.mjs/geometries/path2d.js +2 -2
- package/dist/melonjs.mjs/geometries/point.js +2 -2
- package/dist/melonjs.mjs/geometries/poly.js +2 -2
- package/dist/melonjs.mjs/geometries/rectangle.js +2 -2
- package/dist/melonjs.mjs/geometries/roundrect.js +2 -2
- package/dist/melonjs.mjs/index.js +5 -5
- package/dist/melonjs.mjs/input/gamepad.js +2 -2
- package/dist/melonjs.mjs/input/input.js +2 -2
- package/dist/melonjs.mjs/input/keyboard.js +2 -2
- package/dist/melonjs.mjs/input/pointer.js +2 -2
- package/dist/melonjs.mjs/input/pointerevent.js +2 -2
- package/dist/melonjs.mjs/lang/console.js +44 -0
- package/dist/melonjs.mjs/lang/deprecated.js +4 -40
- package/dist/melonjs.mjs/level/level.js +2 -2
- package/dist/melonjs.mjs/level/tiled/TMXGroup.js +2 -23
- package/dist/melonjs.mjs/level/tiled/TMXLayer.js +67 -57
- package/dist/melonjs.mjs/level/tiled/TMXObject.js +2 -64
- package/dist/melonjs.mjs/level/tiled/TMXTile.js +10 -26
- package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +17 -83
- package/dist/melonjs.mjs/level/tiled/TMXTileset.js +2 -16
- package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +3 -10
- package/dist/melonjs.mjs/level/tiled/TMXUtils.js +37 -14
- package/dist/melonjs.mjs/level/tiled/constants.js +17 -0
- package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +7 -8
- package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +3 -6
- package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +2 -2
- package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +2 -14
- package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +2 -2
- package/dist/melonjs.mjs/level/tiled/renderer/autodetect.js +38 -0
- package/dist/melonjs.mjs/loader/loader.js +5 -3
- package/dist/melonjs.mjs/loader/loadingscreen.js +2 -2
- package/dist/melonjs.mjs/loader/melonjs_logo.png.js +2 -2
- package/dist/melonjs.mjs/math/color.js +2 -2
- package/dist/melonjs.mjs/math/math.js +2 -2
- package/dist/melonjs.mjs/math/matrix2.js +2 -2
- package/dist/melonjs.mjs/math/matrix3.js +2 -2
- package/dist/melonjs.mjs/math/observable_vector2.js +2 -2
- package/dist/melonjs.mjs/math/observable_vector3.js +2 -2
- package/dist/melonjs.mjs/math/vector2.js +2 -2
- package/dist/melonjs.mjs/math/vector3.js +2 -2
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/arraymultimap.js +2 -2
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/index.js +2 -2
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/multimap.js +2 -2
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/setmultimap.js +2 -2
- package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +2 -2
- package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +2 -2
- package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +2 -2
- package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +2 -2
- package/dist/melonjs.mjs/particles/emitter.js +2 -2
- package/dist/melonjs.mjs/particles/particle.js +2 -2
- package/dist/melonjs.mjs/particles/settings.js +2 -2
- package/dist/melonjs.mjs/physics/body.js +2 -2
- package/dist/melonjs.mjs/physics/bounds.js +2 -2
- package/dist/melonjs.mjs/physics/collision.js +3 -3
- package/dist/melonjs.mjs/physics/detector.js +2 -2
- package/dist/melonjs.mjs/physics/quadtree.js +2 -2
- package/dist/melonjs.mjs/physics/response.js +2 -2
- package/dist/melonjs.mjs/physics/sat.js +2 -2
- package/dist/melonjs.mjs/physics/world.js +2 -2
- package/dist/melonjs.mjs/plugin/plugin.js +4 -4
- package/dist/melonjs.mjs/renderable/collectable.js +2 -2
- package/dist/melonjs.mjs/renderable/colorlayer.js +2 -2
- package/dist/melonjs.mjs/renderable/container.js +2 -2
- package/dist/melonjs.mjs/renderable/dragndrop.js +2 -2
- package/dist/melonjs.mjs/renderable/imagelayer.js +2 -2
- package/dist/melonjs.mjs/renderable/light2d.js +2 -2
- package/dist/melonjs.mjs/renderable/nineslicesprite.js +2 -2
- package/dist/melonjs.mjs/renderable/renderable.js +2 -2
- package/dist/melonjs.mjs/renderable/sprite.js +2 -2
- package/dist/melonjs.mjs/renderable/trigger.js +2 -2
- package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +2 -2
- package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +2 -2
- package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +2 -2
- package/dist/melonjs.mjs/state/stage.js +2 -2
- package/dist/melonjs.mjs/state/state.js +2 -2
- package/dist/melonjs.mjs/system/device.js +2 -2
- package/dist/melonjs.mjs/system/dom.js +2 -2
- package/dist/melonjs.mjs/system/event.js +2 -2
- package/dist/melonjs.mjs/system/platform.js +2 -2
- package/dist/melonjs.mjs/system/pooling.js +2 -2
- package/dist/melonjs.mjs/system/save.js +2 -2
- package/dist/melonjs.mjs/system/timer.js +2 -2
- package/dist/melonjs.mjs/text/bitmaptext.js +2 -2
- package/dist/melonjs.mjs/text/bitmaptextdata.js +2 -2
- package/dist/melonjs.mjs/text/glyph.js +2 -2
- package/dist/melonjs.mjs/text/text.js +2 -2
- package/dist/melonjs.mjs/text/textmetrics.js +2 -2
- package/dist/melonjs.mjs/text/textstyle.js +2 -2
- package/dist/melonjs.mjs/tweens/easing.js +2 -2
- package/dist/melonjs.mjs/tweens/interpolation.js +2 -2
- package/dist/melonjs.mjs/tweens/tween.js +2 -2
- package/dist/melonjs.mjs/utils/agent.js +2 -2
- package/dist/melonjs.mjs/utils/array.js +2 -2
- package/dist/melonjs.mjs/utils/file.js +2 -2
- package/dist/melonjs.mjs/utils/function.js +2 -2
- package/dist/melonjs.mjs/utils/string.js +2 -2
- package/dist/melonjs.mjs/utils/utils.js +2 -2
- package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +2 -2
- package/dist/melonjs.mjs/video/renderer.js +2 -2
- package/dist/melonjs.mjs/video/texture/atlas.js +2 -2
- package/dist/melonjs.mjs/video/texture/cache.js +2 -2
- package/dist/melonjs.mjs/video/texture/canvas_texture.js +2 -2
- package/dist/melonjs.mjs/video/utils/autodetect.js +2 -2
- package/dist/melonjs.mjs/video/video.js +16 -13
- package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +2 -2
- package/dist/melonjs.mjs/video/webgl/glshader.js +2 -2
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +2 -2
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +2 -2
- package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +2 -2
- package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +2 -2
- package/dist/melonjs.mjs/video/webgl/utils/attributes.js +2 -2
- package/dist/melonjs.mjs/video/webgl/utils/precision.js +2 -2
- package/dist/melonjs.mjs/video/webgl/utils/program.js +2 -2
- package/dist/melonjs.mjs/video/webgl/utils/string.js +2 -2
- package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +2 -2
- package/dist/melonjs.mjs/video/webgl/webgl_compositor.js +2 -2
- package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +2 -2
- package/dist/melonjs.module.js +2704 -2828
- package/dist/types/application/application.d.ts +5 -1
- package/dist/types/application/resize.d.ts +1 -0
- package/dist/types/const.d.ts +21 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/lang/console.d.ts +7 -0
- package/dist/types/lang/deprecated.d.ts +0 -8
- package/dist/types/level/tiled/TMXGroup.d.ts +7 -28
- package/dist/types/level/tiled/TMXLayer.d.ts +25 -47
- package/dist/types/level/tiled/TMXObject.d.ts +20 -82
- package/dist/types/level/tiled/TMXTile.d.ts +11 -25
- package/dist/types/level/tiled/TMXTileMap.d.ts +18 -56
- package/dist/types/level/tiled/TMXTileset.d.ts +7 -21
- package/dist/types/level/tiled/TMXTilesetGroup.d.ts +3 -9
- package/dist/types/level/tiled/constants.d.ts +5 -0
- package/dist/types/level/tiled/renderer/TMXHexagonalRenderer.d.ts +2 -6
- package/dist/types/level/tiled/renderer/TMXIsometricRenderer.d.ts +2 -6
- package/dist/types/level/tiled/renderer/TMXRenderer.d.ts +6 -18
- package/dist/types/level/tiled/renderer/autodetect.d.ts +9 -0
- package/dist/types/video/video.d.ts +7 -6
- package/package.json +6 -6
- package/src/application/application.js +6 -19
- package/src/application/resize.js +2 -0
- package/src/const.js +23 -0
- package/src/index.js +2 -0
- package/src/lang/console.js +36 -0
- package/src/lang/deprecated.js +2 -37
- package/src/level/tiled/TMXGroup.js +0 -21
- package/src/level/tiled/TMXLayer.js +65 -55
- package/src/level/tiled/TMXObject.js +0 -62
- package/src/level/tiled/TMXTile.js +8 -24
- package/src/level/tiled/TMXTileMap.js +15 -81
- package/src/level/tiled/TMXTileset.js +0 -14
- package/src/level/tiled/TMXTilesetGroup.js +1 -9
- package/src/level/tiled/TMXUtils.js +38 -15
- package/src/level/tiled/constants.js +8 -0
- package/src/level/tiled/renderer/TMXHexagonalRenderer.js +5 -6
- package/src/level/tiled/renderer/TMXIsometricRenderer.js +1 -4
- package/src/level/tiled/renderer/TMXRenderer.js +0 -12
- package/src/level/tiled/renderer/autodetect.js +29 -0
- package/src/loader/loader.js +3 -1
- package/src/physics/collision.js +1 -1
- package/src/video/video.js +14 -11
- package/dist/melonjs.mjs/node_modules/core-js/es/string/trim-end.js +0 -13
- package/dist/melonjs.mjs/node_modules/core-js/es/string/trim-start.js +0 -13
- package/dist/melonjs.mjs/node_modules/core-js/internals/a-callable.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/internals/an-object.js +0 -21
- package/dist/melonjs.mjs/node_modules/core-js/internals/array-includes.js +0 -45
- package/dist/melonjs.mjs/node_modules/core-js/internals/classof-raw.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/internals/classof.js +0 -43
- package/dist/melonjs.mjs/node_modules/core-js/internals/copy-constructor-properties.js +0 -32
- package/dist/melonjs.mjs/node_modules/core-js/internals/create-non-enumerable-property.js +0 -24
- package/dist/melonjs.mjs/node_modules/core-js/internals/create-property-descriptor.js +0 -17
- package/dist/melonjs.mjs/node_modules/core-js/internals/define-built-in.js +0 -43
- package/dist/melonjs.mjs/node_modules/core-js/internals/define-global-property.js +0 -23
- package/dist/melonjs.mjs/node_modules/core-js/internals/descriptors.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/internals/document-all.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/internals/document-create-element.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/internals/engine-user-agent.js +0 -14
- package/dist/melonjs.mjs/node_modules/core-js/internals/engine-v8-version.js +0 -39
- package/dist/melonjs.mjs/node_modules/core-js/internals/entry-unbind.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/internals/enum-bug-keys.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/internals/export.js +0 -72
- package/dist/melonjs.mjs/node_modules/core-js/internals/fails.js +0 -16
- package/dist/melonjs.mjs/node_modules/core-js/internals/function-bind-native.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/internals/function-call.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/internals/function-name.js +0 -29
- package/dist/melonjs.mjs/node_modules/core-js/internals/function-uncurry-this.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/internals/get-built-in.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/internals/get-method.js +0 -21
- package/dist/melonjs.mjs/node_modules/core-js/internals/global.js +0 -25
- package/dist/melonjs.mjs/node_modules/core-js/internals/has-own-property.js +0 -23
- package/dist/melonjs.mjs/node_modules/core-js/internals/hidden-keys.js +0 -10
- package/dist/melonjs.mjs/node_modules/core-js/internals/ie8-dom-define.js +0 -24
- package/dist/melonjs.mjs/node_modules/core-js/internals/indexed-object.js +0 -28
- package/dist/melonjs.mjs/node_modules/core-js/internals/inspect-source.js +0 -27
- package/dist/melonjs.mjs/node_modules/core-js/internals/internal-state.js +0 -88
- package/dist/melonjs.mjs/node_modules/core-js/internals/is-callable.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/internals/is-forced.js +0 -34
- package/dist/melonjs.mjs/node_modules/core-js/internals/is-null-or-undefined.js +0 -14
- package/dist/melonjs.mjs/node_modules/core-js/internals/is-object.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/internals/is-symbol.js +0 -27
- package/dist/melonjs.mjs/node_modules/core-js/internals/length-of-array-like.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/internals/make-built-in.js +0 -68
- package/dist/melonjs.mjs/node_modules/core-js/internals/math-trunc.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-define-property.js +0 -58
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-get-own-property-descriptor.js +0 -41
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-get-own-property-names.js +0 -23
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-get-own-property-symbols.js +0 -12
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-is-prototype-of.js +0 -14
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-keys-internal.js +0 -35
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-property-is-enumerable.js +0 -23
- package/dist/melonjs.mjs/node_modules/core-js/internals/ordinary-to-primitive.js +0 -28
- package/dist/melonjs.mjs/node_modules/core-js/internals/own-keys.js +0 -31
- package/dist/melonjs.mjs/node_modules/core-js/internals/require-object-coercible.js +0 -21
- package/dist/melonjs.mjs/node_modules/core-js/internals/shared-key.js +0 -21
- package/dist/melonjs.mjs/node_modules/core-js/internals/shared-store.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/internals/shared.js +0 -24
- package/dist/melonjs.mjs/node_modules/core-js/internals/string-trim-end.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/internals/string-trim-forced.js +0 -28
- package/dist/melonjs.mjs/node_modules/core-js/internals/string-trim-start.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/internals/string-trim.js +0 -45
- package/dist/melonjs.mjs/node_modules/core-js/internals/symbol-constructor-detection.js +0 -26
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-absolute-index.js +0 -23
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-indexed-object.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-integer-or-infinity.js +0 -20
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-length.js +0 -20
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-object.js +0 -20
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-primitive.js +0 -41
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-property-key.js +0 -21
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-string-tag-support.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-string.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/internals/try-to-string.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/internals/uid.js +0 -20
- package/dist/melonjs.mjs/node_modules/core-js/internals/use-symbol-as-uid.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/internals/v8-prototype-define-bug.js +0 -24
- package/dist/melonjs.mjs/node_modules/core-js/internals/weak-map-basic-detection.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/internals/well-known-symbol.js +0 -41
- package/dist/melonjs.mjs/node_modules/core-js/internals/whitespaces.js +0 -12
- package/dist/melonjs.mjs/node_modules/core-js/modules/es.global-this.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/modules/es.string.trim-end.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/modules/es.string.trim-left.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/modules/es.string.trim-right.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/modules/es.string.trim-start.js +0 -22
- package/dist/melonjs.mjs/node_modules/eventemitter3/index.mjs.js +0 -9
|
@@ -1,53 +1,25 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v14.
|
|
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 -
|
|
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
|
-
|
|
25
|
-
|
|
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
|
-
|
|
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 =
|
|
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.
|
|
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 -
|
|
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.
|
|
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 -
|
|
6
|
+
* @copyright (C) 2011 - 2023 Olivier Biot (AltByte Pte Ltd)
|
|
7
7
|
*/
|
|
8
|
-
|
|
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.
|
|
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 -
|
|
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
|
-
|
|
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
|
-
|
|
204
|
-
|
|
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
|
-
|
|
314
|
-
|
|
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,
|
|
341
|
+
normalize(obj, node);
|
|
319
342
|
break;
|
|
320
343
|
|
|
321
344
|
case 3:
|
|
322
|
-
text +=
|
|
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.
|
|
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 -
|
|
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
|
-
* @
|
|
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.
|
|
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 -
|
|
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
|
-
* @
|
|
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.
|
|
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 -
|
|
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.
|
|
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 -
|
|
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.
|
|
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 -
|
|
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.
|
|
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 -
|
|
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
|