melonjs 15.2.1 → 15.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/README.md +1 -1
- package/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +1 -1
- package/dist/melonjs.mjs/_virtual/earcut.js +1 -1
- package/dist/melonjs.mjs/_virtual/howler.js +1 -1
- package/dist/melonjs.mjs/_virtual/index.js +1 -1
- package/dist/melonjs.mjs/application/application.js +75 -23
- package/dist/melonjs.mjs/application/header.js +2 -2
- package/dist/melonjs.mjs/application/resize.js +13 -11
- package/dist/melonjs.mjs/application/settings.js +37 -1
- package/dist/melonjs.mjs/audio/audio.js +4 -6
- package/dist/melonjs.mjs/camera/camera2d.js +12 -14
- package/dist/melonjs.mjs/const.js +1 -1
- package/dist/melonjs.mjs/entity/entity.js +3 -4
- package/dist/melonjs.mjs/geometries/ellipse.js +26 -59
- package/dist/melonjs.mjs/geometries/line.js +18 -25
- package/dist/melonjs.mjs/geometries/path2d.js +16 -13
- package/dist/melonjs.mjs/geometries/point.js +8 -16
- package/dist/melonjs.mjs/geometries/poly.js +40 -97
- package/dist/melonjs.mjs/geometries/rectangle.js +37 -91
- package/dist/melonjs.mjs/geometries/roundrect.js +26 -35
- package/dist/melonjs.mjs/index.js +6 -6
- package/dist/melonjs.mjs/input/gamepad.js +1 -1
- package/dist/melonjs.mjs/input/input.js +1 -1
- package/dist/melonjs.mjs/input/keyboard.js +3 -3
- package/dist/melonjs.mjs/input/pointer.js +4 -4
- package/dist/melonjs.mjs/input/pointerevent.js +6 -7
- package/dist/melonjs.mjs/lang/console.js +1 -1
- package/dist/melonjs.mjs/lang/deprecated.js +2 -2
- package/dist/melonjs.mjs/level/level.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXGroup.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXLayer.js +16 -33
- package/dist/melonjs.mjs/level/tiled/TMXObject.js +3 -4
- package/dist/melonjs.mjs/level/tiled/TMXTile.js +4 -4
- package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +3 -3
- package/dist/melonjs.mjs/level/tiled/TMXTileset.js +4 -7
- package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +2 -2
- package/dist/melonjs.mjs/level/tiled/TMXUtils.js +37 -47
- package/dist/melonjs.mjs/level/tiled/constants.js +1 -1
- package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +3 -3
- package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +2 -2
- package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +2 -2
- package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +2 -2
- package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +2 -2
- package/dist/melonjs.mjs/level/tiled/renderer/autodetect.js +1 -1
- package/dist/melonjs.mjs/loader/cache.js +1 -1
- package/dist/melonjs.mjs/loader/loader.js +1 -1
- package/dist/melonjs.mjs/loader/loadingscreen.js +1 -1
- package/dist/melonjs.mjs/loader/melonjs_logo.png.js +1 -1
- package/dist/melonjs.mjs/loader/parser.js +4 -5
- package/dist/melonjs.mjs/loader/settings.js +1 -1
- package/dist/melonjs.mjs/math/color.js +5 -5
- package/dist/melonjs.mjs/math/math.js +1 -1
- package/dist/melonjs.mjs/math/matrix2.js +5 -59
- package/dist/melonjs.mjs/math/matrix3.js +82 -141
- package/dist/melonjs.mjs/math/observable_vector2.js +7 -7
- package/dist/melonjs.mjs/math/observable_vector3.js +5 -5
- package/dist/melonjs.mjs/math/vector2.js +7 -91
- package/dist/melonjs.mjs/math/vector3.js +6 -90
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/arraymultimap.js +1 -1
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/multimap.js +1 -1
- package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +1 -1
- package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +1 -1
- package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +1 -1
- package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +1 -1
- 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 +1 -1
- package/dist/melonjs.mjs/physics/body.js +22 -20
- package/dist/melonjs.mjs/physics/bounds.js +27 -33
- package/dist/melonjs.mjs/physics/collision.js +5 -5
- package/dist/melonjs.mjs/physics/detector.js +10 -10
- package/dist/melonjs.mjs/physics/quadtree.js +5 -5
- package/dist/melonjs.mjs/physics/response.js +1 -1
- package/dist/melonjs.mjs/physics/sat.js +3 -4
- package/dist/melonjs.mjs/physics/world.js +6 -9
- package/dist/melonjs.mjs/plugin/plugin.js +3 -3
- package/dist/melonjs.mjs/renderable/collectable.js +2 -2
- package/dist/melonjs.mjs/renderable/colorlayer.js +4 -4
- package/dist/melonjs.mjs/renderable/container.js +25 -25
- package/dist/melonjs.mjs/renderable/draggable.js +1 -1
- package/dist/melonjs.mjs/renderable/dragndrop.js +1 -1
- package/dist/melonjs.mjs/renderable/imagelayer.js +4 -4
- package/dist/melonjs.mjs/renderable/light2d.js +3 -3
- package/dist/melonjs.mjs/renderable/nineslicesprite.js +2 -2
- package/dist/melonjs.mjs/renderable/renderable.js +31 -39
- package/dist/melonjs.mjs/renderable/sprite.js +3 -3
- package/dist/melonjs.mjs/renderable/text/bitmaptext.js +421 -0
- package/dist/melonjs.mjs/renderable/text/bitmaptextdata.js +195 -0
- package/dist/melonjs.mjs/renderable/text/glyph.js +65 -0
- package/dist/melonjs.mjs/renderable/text/text.js +422 -0
- package/dist/melonjs.mjs/renderable/text/textmetrics.js +175 -0
- package/dist/melonjs.mjs/renderable/text/textstyle.js +21 -0
- package/dist/melonjs.mjs/renderable/trigger.js +10 -10
- package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +7 -7
- package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +7 -7
- package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +3 -3
- package/dist/melonjs.mjs/state/stage.js +13 -14
- package/dist/melonjs.mjs/state/state.js +4 -51
- package/dist/melonjs.mjs/system/device.js +51 -10
- package/dist/melonjs.mjs/system/dom.js +1 -1
- package/dist/melonjs.mjs/system/event.js +46 -2
- package/dist/melonjs.mjs/system/platform.js +18 -18
- package/dist/melonjs.mjs/system/pooling.js +10 -10
- package/dist/melonjs.mjs/system/save.js +1 -1
- package/dist/melonjs.mjs/system/timer.js +1 -1
- package/dist/melonjs.mjs/text/bitmaptext.js +1 -1
- package/dist/melonjs.mjs/text/bitmaptextdata.js +3 -6
- package/dist/melonjs.mjs/text/glyph.js +1 -1
- package/dist/melonjs.mjs/text/text.js +1 -1
- package/dist/melonjs.mjs/text/textmetrics.js +1 -1
- package/dist/melonjs.mjs/text/textstyle.js +1 -1
- package/dist/melonjs.mjs/tweens/easing.js +1 -1
- package/dist/melonjs.mjs/tweens/interpolation.js +1 -1
- package/dist/melonjs.mjs/tweens/tween.js +2 -2
- package/dist/melonjs.mjs/utils/agent.js +1 -1
- package/dist/melonjs.mjs/utils/array.js +1 -1
- package/dist/melonjs.mjs/utils/file.js +1 -1
- package/dist/melonjs.mjs/utils/function.js +2 -3
- package/dist/melonjs.mjs/utils/string.js +1 -1
- package/dist/melonjs.mjs/utils/utils.js +1 -1
- package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +5 -18
- package/dist/melonjs.mjs/video/renderer.js +17 -30
- package/dist/melonjs.mjs/video/texture/atlas.js +13 -13
- package/dist/melonjs.mjs/video/texture/cache.js +1 -1
- package/dist/melonjs.mjs/video/texture/canvas_texture.js +15 -15
- package/dist/melonjs.mjs/video/utils/autodetect.js +1 -1
- package/dist/melonjs.mjs/video/video.js +5 -29
- package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +3 -3
- package/dist/melonjs.mjs/video/webgl/compositors/compositor.js +13 -14
- package/dist/melonjs.mjs/video/webgl/compositors/primitive_compositor.js +5 -5
- package/dist/melonjs.mjs/video/webgl/compositors/quad_compositor.js +2 -3
- package/dist/melonjs.mjs/video/webgl/glshader.js +2 -2
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +1 -1
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +1 -1
- package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +1 -1
- package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/attributes.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/precision.js +4 -4
- package/dist/melonjs.mjs/video/webgl/utils/program.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/string.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +1 -1
- package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +62 -67
- package/dist/melonjs.module.js +1272 -1713
- package/dist/types/application/application.d.ts +32 -31
- package/dist/types/application/header.d.ts +2 -2
- package/dist/types/application/settings.d.ts +80 -16
- package/dist/types/audio/audio.d.ts +4 -6
- package/dist/types/camera/camera2d.d.ts +13 -16
- package/dist/types/entity/entity.d.ts +0 -1
- package/dist/types/geometries/ellipse.d.ts +18 -50
- package/dist/types/geometries/path2d.d.ts +1 -1
- package/dist/types/geometries/point.d.ts +5 -13
- package/dist/types/geometries/poly.d.ts +26 -75
- package/dist/types/geometries/rectangle.d.ts +12 -58
- package/dist/types/geometries/roundrect.d.ts +2 -11
- package/dist/types/index.d.ts +3 -3
- package/dist/types/input/gamepad.d.ts +31 -31
- package/dist/types/input/keyboard.d.ts +105 -105
- package/dist/types/input/pointer.d.ts +21 -21
- package/dist/types/input/pointerevent.d.ts +6 -6
- package/dist/types/level/tiled/TMXLayer.d.ts +1 -1
- package/dist/types/level/tiled/TMXUtils.d.ts +4 -6
- package/dist/types/math/matrix2.d.ts +9 -63
- package/dist/types/math/matrix3.d.ts +9 -68
- package/dist/types/math/observable_vector2.d.ts +2 -2
- package/dist/types/math/observable_vector3.d.ts +2 -2
- package/dist/types/math/vector2.d.ts +8 -92
- package/dist/types/math/vector3.d.ts +8 -92
- package/dist/types/particles/settings.d.ts +29 -29
- package/dist/types/physics/body.d.ts +10 -8
- package/dist/types/physics/bounds.d.ts +24 -30
- package/dist/types/physics/collision.d.ts +12 -12
- package/dist/types/physics/detector.d.ts +1 -1
- package/dist/types/physics/world.d.ts +4 -7
- package/dist/types/renderable/container.d.ts +19 -19
- package/dist/types/renderable/imagelayer.d.ts +6 -6
- package/dist/types/renderable/light2d.d.ts +7 -7
- package/dist/types/renderable/renderable.d.ts +10 -18
- package/dist/types/renderable/text/bitmaptext.d.ts +151 -0
- package/dist/types/renderable/text/bitmaptextdata.d.ts +35 -0
- package/dist/types/renderable/text/glyph.d.ts +28 -0
- package/dist/types/renderable/text/text.d.ts +159 -0
- package/dist/types/renderable/text/textmetrics.d.ts +47 -0
- package/dist/types/renderable/text/textstyle.d.ts +5 -0
- package/dist/types/renderable/ui/uibaseelement.d.ts +0 -1
- package/dist/types/renderable/ui/uispriteelement.d.ts +0 -1
- package/dist/types/renderable/ui/uitextbutton.d.ts +2 -7
- package/dist/types/state/stage.d.ts +3 -2
- package/dist/types/state/state.d.ts +11 -11
- package/dist/types/system/device.d.ts +16 -9
- package/dist/types/system/event.d.ts +40 -0
- package/dist/types/system/platform.d.ts +17 -17
- package/dist/types/utils/function.d.ts +1 -2
- package/dist/types/video/canvas/canvas_renderer.d.ts +0 -23
- package/dist/types/video/renderer.d.ts +16 -43
- package/dist/types/video/texture/canvas_texture.d.ts +14 -14
- package/dist/types/video/video.d.ts +4 -38
- package/dist/types/video/webgl/buffer/vertex.d.ts +2 -2
- package/dist/types/video/webgl/compositors/compositor.d.ts +24 -13
- package/dist/types/video/webgl/compositors/primitive_compositor.d.ts +0 -1
- package/dist/types/video/webgl/compositors/quad_compositor.d.ts +0 -1
- package/dist/types/video/webgl/utils/precision.d.ts +1 -1
- package/dist/types/video/webgl/webgl_renderer.d.ts +48 -84
- package/package.json +15 -15
- package/src/application/application.js +73 -21
- package/src/application/header.js +1 -1
- package/src/application/resize.js +11 -9
- package/src/application/settings.js +36 -0
- package/src/audio/audio.js +3 -5
- package/src/camera/camera2d.js +11 -13
- package/src/entity/entity.js +2 -3
- package/src/geometries/ellipse.js +25 -58
- package/src/geometries/line.js +17 -24
- package/src/geometries/path2d.js +15 -12
- package/src/geometries/point.js +7 -15
- package/src/geometries/poly.js +39 -96
- package/src/geometries/rectangle.js +36 -90
- package/src/geometries/roundrect.js +25 -34
- package/src/index.js +4 -4
- package/src/input/keyboard.js +2 -2
- package/src/input/pointer.js +3 -3
- package/src/input/pointerevent.js +5 -6
- package/src/lang/deprecated.js +1 -1
- package/src/level/tiled/TMXLayer.js +15 -32
- package/src/level/tiled/TMXObject.js +2 -3
- package/src/level/tiled/TMXTile.js +3 -3
- package/src/level/tiled/TMXTileMap.js +2 -2
- package/src/level/tiled/TMXTileset.js +3 -6
- package/src/level/tiled/TMXTilesetGroup.js +1 -1
- package/src/level/tiled/TMXUtils.js +36 -46
- package/src/level/tiled/renderer/TMXHexagonalRenderer.js +2 -2
- package/src/level/tiled/renderer/TMXIsometricRenderer.js +1 -1
- package/src/level/tiled/renderer/TMXOrthogonalRenderer.js +1 -1
- package/src/level/tiled/renderer/TMXRenderer.js +1 -1
- package/src/level/tiled/renderer/TMXStaggeredRenderer.js +1 -1
- package/src/loader/parser.js +3 -4
- package/src/math/color.js +4 -4
- package/src/math/matrix2.js +4 -58
- package/src/math/matrix3.js +81 -140
- package/src/math/observable_vector2.js +6 -6
- package/src/math/observable_vector3.js +4 -4
- package/src/math/vector2.js +6 -90
- package/src/math/vector3.js +5 -89
- package/src/particles/emitter.js +1 -1
- package/src/particles/particle.js +1 -1
- package/src/physics/body.js +21 -19
- package/src/physics/bounds.js +26 -32
- package/src/physics/collision.js +4 -4
- package/src/physics/detector.js +9 -9
- package/src/physics/quadtree.js +4 -4
- package/src/physics/sat.js +2 -3
- package/src/physics/world.js +5 -8
- package/src/polyfill/roundrect.js +163 -163
- package/src/renderable/collectable.js +1 -1
- package/src/renderable/colorlayer.js +3 -3
- package/src/renderable/container.js +24 -24
- package/src/renderable/imagelayer.js +3 -3
- package/src/renderable/light2d.js +2 -2
- package/src/renderable/nineslicesprite.js +1 -1
- package/src/renderable/renderable.js +30 -38
- package/src/renderable/sprite.js +2 -2
- package/src/{text → renderable/text}/bitmaptext.js +8 -8
- package/src/{text → renderable/text}/bitmaptextdata.js +4 -7
- package/src/{text → renderable/text}/glyph.js +1 -1
- package/src/{text → renderable/text}/text.js +16 -17
- package/src/{text → renderable/text}/textmetrics.js +2 -2
- package/src/renderable/trigger.js +9 -9
- package/src/renderable/ui/uibaseelement.js +6 -6
- package/src/renderable/ui/uispriteelement.js +6 -6
- package/src/renderable/ui/uitextbutton.js +2 -2
- package/src/state/stage.js +12 -13
- package/src/state/state.js +2 -61
- package/src/system/device.js +50 -9
- package/src/system/event.js +44 -0
- package/src/system/platform.js +18 -18
- package/src/system/pooling.js +9 -9
- package/src/tweens/tween.js +1 -1
- package/src/utils/function.js +1 -2
- package/src/video/canvas/canvas_renderer.js +4 -17
- package/src/video/renderer.js +16 -29
- package/src/video/texture/atlas.js +12 -12
- package/src/video/texture/canvas_texture.js +14 -14
- package/src/video/video.js +7 -28
- package/src/video/webgl/buffer/vertex.js +2 -2
- package/src/video/webgl/compositors/compositor.js +12 -13
- package/src/video/webgl/compositors/primitive_compositor.js +4 -4
- package/src/video/webgl/compositors/quad_compositor.js +1 -2
- package/src/video/webgl/glshader.js +1 -1
- package/src/video/webgl/utils/precision.js +3 -3
- package/src/video/webgl/webgl_renderer.js +61 -66
- /package/src/{text → renderable/text}/textstyle.js +0 -0
|
@@ -32,11 +32,8 @@ export default class RoundRect extends Rect {
|
|
|
32
32
|
|
|
33
33
|
/**
|
|
34
34
|
* the radius of the rounded corner
|
|
35
|
-
* @public
|
|
36
35
|
* @type {number}
|
|
37
36
|
* @default 20
|
|
38
|
-
* @name radius
|
|
39
|
-
* @memberof RoundRect
|
|
40
37
|
*/
|
|
41
38
|
get radius() {
|
|
42
39
|
return this._radius;
|
|
@@ -54,8 +51,6 @@ export default class RoundRect extends Rect {
|
|
|
54
51
|
|
|
55
52
|
/**
|
|
56
53
|
* copy the position, size and radius of the given rounded rectangle into this one
|
|
57
|
-
* @name copy
|
|
58
|
-
* @memberof RoundRect
|
|
59
54
|
* @param {RoundRect} rrect - source rounded rectangle
|
|
60
55
|
* @returns {RoundRect} new rectangle
|
|
61
56
|
*/
|
|
@@ -66,38 +61,38 @@ export default class RoundRect extends Rect {
|
|
|
66
61
|
}
|
|
67
62
|
|
|
68
63
|
/**
|
|
69
|
-
* Returns true if the rounded rectangle contains the given point
|
|
70
|
-
* @
|
|
71
|
-
* @
|
|
72
|
-
* @
|
|
73
|
-
* @
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
*
|
|
82
|
-
*
|
|
83
|
-
*
|
|
64
|
+
* Returns true if the rounded rectangle contains the given point or rectangle
|
|
65
|
+
* @param {number|Vector2d|Rect} x - x coordinate or a vector point, or a Rect to test
|
|
66
|
+
* @param {number} [y] - y coordinate
|
|
67
|
+
* @returns {boolean} True if the rounded rectangle contain the given point or rectangle, otherwise false
|
|
68
|
+
* @example
|
|
69
|
+
* if (rect.contains(10, 10)) {
|
|
70
|
+
* // do something
|
|
71
|
+
* }
|
|
72
|
+
* // or
|
|
73
|
+
* if (rect.contains(myVector2d)) {
|
|
74
|
+
* // do something
|
|
75
|
+
* }
|
|
76
|
+
* if (rect.contains(myRect)) {
|
|
77
|
+
* // do something
|
|
78
|
+
* }
|
|
84
79
|
*/
|
|
85
80
|
contains() {
|
|
86
81
|
let arg0 = arguments[0];
|
|
87
82
|
let _x, _y;
|
|
88
83
|
if (arguments.length === 2) {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
84
|
+
// x, y
|
|
85
|
+
_x = arg0;
|
|
86
|
+
_y = arguments[1];
|
|
87
|
+
} else {
|
|
88
|
+
if ((typeof arg0.radius === "undefined") && (typeof arg0.bottom === "number")) {
|
|
89
|
+
// it's a rect
|
|
90
|
+
return super.contains(arg0);
|
|
91
|
+
} else {
|
|
92
|
+
// else a vector or point
|
|
98
93
|
_x = arg0.x;
|
|
99
94
|
_y = arg0.y;
|
|
100
|
-
|
|
95
|
+
}
|
|
101
96
|
}
|
|
102
97
|
|
|
103
98
|
// check whether point is outside the bounding box
|
|
@@ -137,8 +132,6 @@ export default class RoundRect extends Rect {
|
|
|
137
132
|
|
|
138
133
|
/**
|
|
139
134
|
* check if this RoundRect is identical to the specified one
|
|
140
|
-
* @name equals
|
|
141
|
-
* @memberof RoundRect
|
|
142
135
|
* @param {RoundRect} rrect
|
|
143
136
|
* @returns {boolean} true if equals
|
|
144
137
|
*/
|
|
@@ -148,8 +141,6 @@ export default class RoundRect extends Rect {
|
|
|
148
141
|
|
|
149
142
|
/**
|
|
150
143
|
* clone this RoundRect
|
|
151
|
-
* @name clone
|
|
152
|
-
* @memberof RoundRect
|
|
153
144
|
* @returns {RoundRect} new RoundRect
|
|
154
145
|
*/
|
|
155
146
|
clone() {
|
package/src/index.js
CHANGED
|
@@ -39,9 +39,9 @@ import UISpriteElement from "./renderable/ui/uispriteelement.js";
|
|
|
39
39
|
import Collectable from "./renderable/collectable.js";
|
|
40
40
|
import Trigger from "./renderable/trigger.js";
|
|
41
41
|
import Light2d from "./renderable/light2d.js";
|
|
42
|
-
import Text from "./text/text.js";
|
|
43
|
-
import BitmapText from "./text/bitmaptext.js";
|
|
44
|
-
import BitmapTextData from "./text/bitmaptextdata.js";
|
|
42
|
+
import Text from "./renderable/text/text.js";
|
|
43
|
+
import BitmapText from "./renderable/text/bitmaptext.js";
|
|
44
|
+
import BitmapTextData from "./renderable/text/bitmaptextdata.js";
|
|
45
45
|
import { Draggable } from "./renderable/draggable.js";
|
|
46
46
|
import { DropTarget } from "./renderable/dragndrop.js";
|
|
47
47
|
import TMXRenderer from "./level/tiled/renderer/TMXRenderer.js";
|
|
@@ -310,6 +310,6 @@ export function boot() {
|
|
|
310
310
|
// call the library init function when ready
|
|
311
311
|
device.onReady(() => {
|
|
312
312
|
if (skipAutoInit === false) {
|
|
313
|
-
|
|
313
|
+
boot();
|
|
314
314
|
}
|
|
315
315
|
});
|
package/src/input/keyboard.js
CHANGED
|
@@ -95,14 +95,14 @@ let keyUpEvent = function (e, keyCode, mouseButton) {
|
|
|
95
95
|
* PUBLIC STUFF
|
|
96
96
|
*/
|
|
97
97
|
|
|
98
|
-
|
|
98
|
+
/**
|
|
99
99
|
* the default target element for keyboard events (usually the window element in which the game is running)
|
|
100
100
|
* @public
|
|
101
101
|
* @type {EventTarget}
|
|
102
102
|
* @name keyBoardEventTarget
|
|
103
103
|
* @memberof input
|
|
104
104
|
*/
|
|
105
|
-
|
|
105
|
+
export let keyBoardEventTarget = null;
|
|
106
106
|
|
|
107
107
|
/**
|
|
108
108
|
* standard keyboard constants
|
package/src/input/pointer.js
CHANGED
|
@@ -130,7 +130,7 @@ class Pointer extends Bounds {
|
|
|
130
130
|
*/
|
|
131
131
|
this.clientX = 0;
|
|
132
132
|
|
|
133
|
-
|
|
133
|
+
/**
|
|
134
134
|
* the vertical coordinate within the application's client area at which the event occurred
|
|
135
135
|
* @public
|
|
136
136
|
* @type {number}
|
|
@@ -150,7 +150,7 @@ class Pointer extends Bounds {
|
|
|
150
150
|
*/
|
|
151
151
|
this.movementX = 0;
|
|
152
152
|
|
|
153
|
-
|
|
153
|
+
/**
|
|
154
154
|
* the difference in the Y coordinate of the pointer since the previous move event
|
|
155
155
|
* @public
|
|
156
156
|
* @type {number}
|
|
@@ -274,7 +274,7 @@ class Pointer extends Bounds {
|
|
|
274
274
|
*/
|
|
275
275
|
this.gameLocalY = 0;
|
|
276
276
|
|
|
277
|
-
|
|
277
|
+
/**
|
|
278
278
|
* The unique identifier of the contact for a touch, mouse or pen
|
|
279
279
|
* @public
|
|
280
280
|
* @type {number}
|
|
@@ -158,10 +158,9 @@ function enablePointerEvent() {
|
|
|
158
158
|
}
|
|
159
159
|
|
|
160
160
|
// if time interval <= 16, disable the feature
|
|
161
|
-
let i;
|
|
162
161
|
let events = findAllActiveEvents(activeEventList, POINTER_MOVE);
|
|
163
162
|
if (throttlingInterval < 17) {
|
|
164
|
-
for (i = 0; i < events.length; i++) {
|
|
163
|
+
for (let i = 0; i < events.length; i++) {
|
|
165
164
|
if (activeEventList.indexOf(events[i]) !== -1) {
|
|
166
165
|
pointerEventTarget.addEventListener(
|
|
167
166
|
events[i],
|
|
@@ -173,7 +172,7 @@ function enablePointerEvent() {
|
|
|
173
172
|
}
|
|
174
173
|
}
|
|
175
174
|
else {
|
|
176
|
-
for (i = 0; i < events.length; i++) {
|
|
175
|
+
for (let i = 0; i < events.length; i++) {
|
|
177
176
|
if (activeEventList.indexOf(events[i]) !== -1) {
|
|
178
177
|
pointerEventTarget.addEventListener(
|
|
179
178
|
events[i],
|
|
@@ -483,14 +482,14 @@ function onPointerEvent(e) {
|
|
|
483
482
|
* PUBLIC STUFF
|
|
484
483
|
*/
|
|
485
484
|
|
|
486
|
-
|
|
485
|
+
/**
|
|
487
486
|
* the default target element for pointer events (usually the canvas element in which the game is rendered)
|
|
488
487
|
* @public
|
|
489
488
|
* @type {EventTarget}
|
|
490
489
|
* @name pointerEventTarget
|
|
491
490
|
* @memberof input
|
|
492
491
|
*/
|
|
493
|
-
|
|
492
|
+
export let pointerEventTarget = null;
|
|
494
493
|
|
|
495
494
|
/**
|
|
496
495
|
* Pointer information (current position and size)
|
|
@@ -613,7 +612,7 @@ export function unbindPointer(button) {
|
|
|
613
612
|
// clear the event status
|
|
614
613
|
pointer.bind[
|
|
615
614
|
typeof(button) === "undefined" ?
|
|
616
|
-
|
|
615
|
+
pointer.LEFT : button
|
|
617
616
|
] = null;
|
|
618
617
|
}
|
|
619
618
|
|
package/src/lang/deprecated.js
CHANGED
|
@@ -100,7 +100,7 @@ Renderer.prototype.getScreenContext = function() {
|
|
|
100
100
|
* @deprecated since 14.0.0
|
|
101
101
|
* @see UISpriteElement
|
|
102
102
|
*/
|
|
103
|
-
|
|
103
|
+
export class GUI_Object extends UISpriteElement {
|
|
104
104
|
/**
|
|
105
105
|
* @param {number} x - the x coordinate of the GUI Object
|
|
106
106
|
* @param {number} y - the y coordinate of the GUI Object
|
|
@@ -4,7 +4,6 @@ import * as TMXUtils from "./TMXUtils.js";
|
|
|
4
4
|
import Tile from "./TMXTile.js";
|
|
5
5
|
import Renderable from "./../../renderable/renderable.js";
|
|
6
6
|
import CanvasRenderer from "./../../video/canvas/canvas_renderer";
|
|
7
|
-
import { game } from "../../index.js";
|
|
8
7
|
|
|
9
8
|
/**
|
|
10
9
|
* Create required arrays for the given layer object
|
|
@@ -52,32 +51,13 @@ function setLayerData(layer, bounds, data) {
|
|
|
52
51
|
}
|
|
53
52
|
}
|
|
54
53
|
|
|
55
|
-
/**
|
|
56
|
-
* preRender a tile layer using the given renderer
|
|
57
|
-
* @ignore
|
|
58
|
-
*/
|
|
59
|
-
function preRenderLayer(layer, renderer) {
|
|
60
|
-
// set everything
|
|
61
|
-
for (let y = 0; y < layer.rows; y++) {
|
|
62
|
-
for (let x = 0; x < layer.cols; x++) {
|
|
63
|
-
// get the value of the gid
|
|
64
|
-
const tile = layer.layerData[x][y];
|
|
65
|
-
// draw the tile if defined
|
|
66
|
-
if (tile instanceof Tile) {
|
|
67
|
-
// add a new tile to the layer
|
|
68
|
-
layer.getRenderer().drawTile(renderer, x, y, tile);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
54
|
/**
|
|
75
55
|
* @classdesc
|
|
76
56
|
* a TMX Tile Layer Object
|
|
77
57
|
* Tiled QT 0.7.x format
|
|
78
58
|
* @augments Renderable
|
|
79
59
|
*/
|
|
80
|
-
|
|
60
|
+
export default class TMXLayer extends Renderable {
|
|
81
61
|
/**
|
|
82
62
|
* @param {object} map - layer data in JSON format ({@link http://docs.mapeditor.org/en/stable/reference/tmx-map-format/#layer})
|
|
83
63
|
* @param {object} data - layer data in JSON format ({@link http://docs.mapeditor.org/en/stable/reference/tmx-map-format/#layer})
|
|
@@ -192,11 +172,6 @@ function preRenderLayer(layer, renderer) {
|
|
|
192
172
|
// check if we have any user-defined properties
|
|
193
173
|
TMXUtils.applyTMXProperties(this, data);
|
|
194
174
|
|
|
195
|
-
// check for the correct rendering method
|
|
196
|
-
if (typeof (this.preRender) === "undefined") {
|
|
197
|
-
this.preRender = game.world.preRender;
|
|
198
|
-
}
|
|
199
|
-
|
|
200
175
|
// set a renderer
|
|
201
176
|
this.setRenderer(map.getRenderer());
|
|
202
177
|
|
|
@@ -251,8 +226,11 @@ function preRenderLayer(layer, renderer) {
|
|
|
251
226
|
|
|
252
227
|
this.isAnimated = this.animatedTilesets.length > 0;
|
|
253
228
|
|
|
254
|
-
//
|
|
255
|
-
if (this.isAnimated) {
|
|
229
|
+
// check for the correct rendering method
|
|
230
|
+
if (typeof this.preRender === "undefined" && this.isAnimated === false) {
|
|
231
|
+
this.preRender = this.ancestor.getRootAncestor().preRender;
|
|
232
|
+
} else {
|
|
233
|
+
// Force pre-render off when tileset animation is used
|
|
256
234
|
this.preRender = false;
|
|
257
235
|
}
|
|
258
236
|
|
|
@@ -264,8 +242,11 @@ function preRenderLayer(layer, renderer) {
|
|
|
264
242
|
heigth : this.height,
|
|
265
243
|
transparent : true
|
|
266
244
|
});
|
|
267
|
-
|
|
245
|
+
// pre render the layer on the canvas
|
|
246
|
+
this.getRenderer().drawTileLayer(this.canvasRenderer, this, this);
|
|
268
247
|
}
|
|
248
|
+
|
|
249
|
+
this.isDirty = true;
|
|
269
250
|
}
|
|
270
251
|
|
|
271
252
|
// called when the layer is removed from the game world or a container
|
|
@@ -285,6 +266,7 @@ function preRenderLayer(layer, renderer) {
|
|
|
285
266
|
*/
|
|
286
267
|
setRenderer(renderer) {
|
|
287
268
|
this.renderer = renderer;
|
|
269
|
+
this.isDirty = true;
|
|
288
270
|
}
|
|
289
271
|
|
|
290
272
|
/**
|
|
@@ -337,6 +319,7 @@ function preRenderLayer(layer, renderer) {
|
|
|
337
319
|
*/
|
|
338
320
|
setTile(tile, x, y) {
|
|
339
321
|
this.layerData[x][y] = tile;
|
|
322
|
+
this.isDirty = true;
|
|
340
323
|
return tile;
|
|
341
324
|
}
|
|
342
325
|
|
|
@@ -395,6 +378,7 @@ function preRenderLayer(layer, renderer) {
|
|
|
395
378
|
if (this.preRender) {
|
|
396
379
|
this.canvasRenderer.clearRect(x * this.tilewidth, y * this.tileheight, this.tilewidth, this.tileheight);
|
|
397
380
|
}
|
|
381
|
+
this.isDirty = true;
|
|
398
382
|
}
|
|
399
383
|
|
|
400
384
|
/**
|
|
@@ -402,14 +386,13 @@ function preRenderLayer(layer, renderer) {
|
|
|
402
386
|
* @ignore
|
|
403
387
|
*/
|
|
404
388
|
update(dt) {
|
|
389
|
+
let result = this.isDirty;
|
|
405
390
|
if (this.isAnimated) {
|
|
406
|
-
let result = false;
|
|
407
391
|
for (let i = 0; i < this.animatedTilesets.length; i++) {
|
|
408
392
|
result = this.animatedTilesets[i].update(dt) || result;
|
|
409
393
|
}
|
|
410
|
-
return result;
|
|
411
394
|
}
|
|
412
|
-
return
|
|
395
|
+
return result;
|
|
413
396
|
}
|
|
414
397
|
|
|
415
398
|
/**
|
|
@@ -209,7 +209,6 @@ export default class TMXObject {
|
|
|
209
209
|
* @returns {Polygon[]|Line[]|Ellipse[]} an array of shape objects
|
|
210
210
|
*/
|
|
211
211
|
parseTMXShapes() {
|
|
212
|
-
let i = 0;
|
|
213
212
|
let shapes = [];
|
|
214
213
|
|
|
215
214
|
// add an ellipse shape
|
|
@@ -237,7 +236,7 @@ export default class TMXObject {
|
|
|
237
236
|
let p = this.points;
|
|
238
237
|
let p1, p2;
|
|
239
238
|
let segments = p.length - 1;
|
|
240
|
-
for (i = 0; i < segments; i++) {
|
|
239
|
+
for (let i = 0; i < segments; i++) {
|
|
241
240
|
// clone the value before, as [i + 1]
|
|
242
241
|
// is reused later by the next segment
|
|
243
242
|
p1 = pool.pull("Vector2d", p[i].x, p[i].y);
|
|
@@ -264,7 +263,7 @@ export default class TMXObject {
|
|
|
264
263
|
|
|
265
264
|
// Apply isometric projection
|
|
266
265
|
if (this.orientation === "isometric") {
|
|
267
|
-
for (i = 0; i < shapes.length; i++) {
|
|
266
|
+
for (let i = 0; i < shapes.length; i++) {
|
|
268
267
|
if (typeof shapes[i].toIso === "function") {
|
|
269
268
|
shapes[i].toIso();
|
|
270
269
|
}
|
|
@@ -8,7 +8,7 @@ import { TMX_FLIP_V, TMX_FLIP_H, TMX_FLIP_AD, TMX_CLEAR_BIT_MASK } from "./const
|
|
|
8
8
|
* a basic tile object
|
|
9
9
|
* @augments Bounds
|
|
10
10
|
*/
|
|
11
|
-
|
|
11
|
+
export default class Tile extends Bounds {
|
|
12
12
|
/**
|
|
13
13
|
* @param {number} x - x index of the Tile in the map
|
|
14
14
|
* @param {number} y - y index of the Tile in the map
|
|
@@ -108,8 +108,8 @@ import { TMX_FLIP_V, TMX_FLIP_H, TMX_FLIP_AD, TMX_CLEAR_BIT_MASK } from "./const
|
|
|
108
108
|
}
|
|
109
109
|
if (this.flippedY) {
|
|
110
110
|
transform.scale(
|
|
111
|
-
|
|
112
|
-
|
|
111
|
+
this.flippedAD ? -1 : 1, this.flippedAD ? 1 : -1
|
|
112
|
+
);
|
|
113
113
|
}
|
|
114
114
|
transform.translate(-this.width / 2, -this.height / 2);
|
|
115
115
|
}
|
|
@@ -74,7 +74,7 @@ function readObjectGroup(map, data, z) {
|
|
|
74
74
|
* a TMX Tile Map Object
|
|
75
75
|
* Tiled QT +0.7.x format
|
|
76
76
|
*/
|
|
77
|
-
|
|
77
|
+
export default class TMXTileMap {
|
|
78
78
|
/**
|
|
79
79
|
* @param {string} levelId - name of TMX map
|
|
80
80
|
* @param {object} data - TMX map in JSON format
|
|
@@ -269,7 +269,7 @@ function readObjectGroup(map, data, z) {
|
|
|
269
269
|
image : this.background_image,
|
|
270
270
|
z : zOrder++
|
|
271
271
|
}
|
|
272
|
-
|
|
272
|
+
));
|
|
273
273
|
}
|
|
274
274
|
|
|
275
275
|
data.layers.forEach((layer) => {
|
|
@@ -8,14 +8,11 @@ import { getTMX, getImage } from "./../../loader/loader.js";
|
|
|
8
8
|
* @classdesc
|
|
9
9
|
* a TMX Tile Set Object
|
|
10
10
|
*/
|
|
11
|
-
|
|
11
|
+
export default class TMXTileset {
|
|
12
12
|
/**
|
|
13
13
|
* @param {object} tileset - tileset data in JSON format ({@link http://docs.mapeditor.org/en/stable/reference/tmx-map-format/#tileset})
|
|
14
14
|
*/
|
|
15
15
|
constructor(tileset) {
|
|
16
|
-
let i = 0;
|
|
17
|
-
// first gid
|
|
18
|
-
|
|
19
16
|
// tile properties (collidable, etc..)
|
|
20
17
|
this.TileProperties = [];
|
|
21
18
|
|
|
@@ -77,7 +74,7 @@ import { getTMX, getImage } from "./../../loader/loader.js";
|
|
|
77
74
|
this._lastUpdate = 0;
|
|
78
75
|
|
|
79
76
|
let tiles = tileset.tiles;
|
|
80
|
-
for (i in tiles) {
|
|
77
|
+
for (let i in tiles) {
|
|
81
78
|
if (tiles.hasOwnProperty(i)) {
|
|
82
79
|
if ("animation" in tiles[i]) {
|
|
83
80
|
this.isAnimated = true;
|
|
@@ -121,7 +118,7 @@ import { getTMX, getImage } from "./../../loader/loader.js";
|
|
|
121
118
|
// set tile properties, if any (JSON old format)
|
|
122
119
|
let tileInfo = tileset.tileproperties;
|
|
123
120
|
if (tileInfo) {
|
|
124
|
-
for (i in tileInfo) {
|
|
121
|
+
for (let i in tileInfo) {
|
|
125
122
|
if (tileInfo.hasOwnProperty(i)) {
|
|
126
123
|
this.setTileProperty(+i + this.firstgid, tileInfo[i]);
|
|
127
124
|
}
|
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
import { isBoolean, isNumeric } from "../../utils/string.js";
|
|
2
2
|
|
|
3
|
-
/**
|
|
4
|
-
* a collection of utility functions for parsing TMX maps
|
|
5
|
-
* @namespace TMXUtils
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
|
|
9
3
|
/**
|
|
10
4
|
* the function used to decompress zlib/gzip data
|
|
11
5
|
* @ignore
|
|
@@ -115,8 +109,8 @@ function normalize(obj, item) {
|
|
|
115
109
|
let nodeName = item.nodeName;
|
|
116
110
|
|
|
117
111
|
switch (nodeName) {
|
|
118
|
-
case "data":
|
|
119
|
-
|
|
112
|
+
case "data": {
|
|
113
|
+
let data = parse(item);
|
|
120
114
|
|
|
121
115
|
data.encoding = data.encoding || "xml";
|
|
122
116
|
|
|
@@ -144,7 +138,7 @@ function normalize(obj, item) {
|
|
|
144
138
|
obj.encoding = "none";
|
|
145
139
|
}
|
|
146
140
|
break;
|
|
147
|
-
|
|
141
|
+
}
|
|
148
142
|
case "chunk":
|
|
149
143
|
obj.chunks = obj.chunks || [];
|
|
150
144
|
obj.chunks.push(parse(item));
|
|
@@ -153,8 +147,8 @@ function normalize(obj, item) {
|
|
|
153
147
|
case "imagelayer":
|
|
154
148
|
case "layer":
|
|
155
149
|
case "objectgroup":
|
|
156
|
-
case "group":
|
|
157
|
-
|
|
150
|
+
case "group": {
|
|
151
|
+
let layer = parse(item);
|
|
158
152
|
layer.type = (nodeName === "layer" ? "tilelayer" : nodeName);
|
|
159
153
|
if (layer.image) {
|
|
160
154
|
layer.image = layer.image.source;
|
|
@@ -163,20 +157,20 @@ function normalize(obj, item) {
|
|
|
163
157
|
obj.layers = obj.layers || [];
|
|
164
158
|
obj.layers.push(layer);
|
|
165
159
|
break;
|
|
166
|
-
|
|
160
|
+
}
|
|
167
161
|
case "animation":
|
|
168
162
|
obj.animation = parse(item).frames;
|
|
169
163
|
break;
|
|
170
164
|
|
|
171
165
|
case "frame":
|
|
172
|
-
case "object":
|
|
173
|
-
|
|
166
|
+
case "object": {
|
|
167
|
+
const name = nodeName + "s";
|
|
174
168
|
obj[name] = obj[name] || [];
|
|
175
169
|
obj[name].push(parse(item));
|
|
176
170
|
break;
|
|
177
|
-
|
|
178
|
-
case "tile":
|
|
179
|
-
|
|
171
|
+
}
|
|
172
|
+
case "tile": {
|
|
173
|
+
let tile = parse(item);
|
|
180
174
|
if (tile.image) {
|
|
181
175
|
tile.imagewidth = tile.image.width;
|
|
182
176
|
tile.imageheight = tile.image.height;
|
|
@@ -185,9 +179,9 @@ function normalize(obj, item) {
|
|
|
185
179
|
obj.tiles = obj.tiles || {};
|
|
186
180
|
obj.tiles[tile.id] = tile;
|
|
187
181
|
break;
|
|
188
|
-
|
|
189
|
-
case "tileset":
|
|
190
|
-
|
|
182
|
+
}
|
|
183
|
+
case "tileset": {
|
|
184
|
+
let tileset = parse(item);
|
|
191
185
|
if (tileset.image) {
|
|
192
186
|
tileset.imagewidth = tileset.image.width;
|
|
193
187
|
tileset.imageheight = tileset.image.height;
|
|
@@ -197,13 +191,13 @@ function normalize(obj, item) {
|
|
|
197
191
|
obj.tilesets = obj.tilesets || [];
|
|
198
192
|
obj.tilesets.push(tileset);
|
|
199
193
|
break;
|
|
200
|
-
|
|
194
|
+
}
|
|
201
195
|
case "polygon":
|
|
202
|
-
case "polyline":
|
|
196
|
+
case "polyline": {
|
|
203
197
|
obj[nodeName] = [];
|
|
204
198
|
|
|
205
199
|
// Get a point array
|
|
206
|
-
|
|
200
|
+
let points = parse(item).points.split(" ");
|
|
207
201
|
|
|
208
202
|
// And normalize them into an array of vectors
|
|
209
203
|
for (let i = 0; i < points.length; i++) {
|
|
@@ -215,15 +209,15 @@ function normalize(obj, item) {
|
|
|
215
209
|
}
|
|
216
210
|
|
|
217
211
|
break;
|
|
218
|
-
|
|
212
|
+
}
|
|
219
213
|
case "properties":
|
|
220
214
|
obj.properties = parse(item);
|
|
221
215
|
break;
|
|
222
216
|
|
|
223
|
-
case "property":
|
|
224
|
-
|
|
217
|
+
case "property": {
|
|
218
|
+
const property = parse(item);
|
|
225
219
|
// for custom properties, text is used
|
|
226
|
-
|
|
220
|
+
const value = (typeof property.value !== "undefined") ? property.value : property.text;
|
|
227
221
|
|
|
228
222
|
obj[property.name] = setTMXValue(
|
|
229
223
|
property.name,
|
|
@@ -232,18 +226,21 @@ function normalize(obj, item) {
|
|
|
232
226
|
value
|
|
233
227
|
);
|
|
234
228
|
break;
|
|
235
|
-
|
|
229
|
+
}
|
|
236
230
|
default:
|
|
237
231
|
obj[nodeName] = parse(item);
|
|
238
232
|
break;
|
|
239
233
|
}
|
|
240
234
|
}
|
|
241
235
|
|
|
236
|
+
/**
|
|
237
|
+
* a collection of utility functions for parsing TMX maps
|
|
238
|
+
* @namespace TMXUtils
|
|
239
|
+
*/
|
|
242
240
|
|
|
243
241
|
/**
|
|
244
242
|
* decompress and decode zlib/gzip data
|
|
245
|
-
* @
|
|
246
|
-
* @memberOf TMXUtils
|
|
243
|
+
* @memberof TMXUtils
|
|
247
244
|
* @param {string} input - Base64 encoded and compressed data
|
|
248
245
|
* @param {string} format - compressed data format ("gzip","zlib", "zstd")
|
|
249
246
|
* @returns {Uint32Array} Decoded and decompress data
|
|
@@ -258,8 +255,7 @@ function decompress(data, format) {
|
|
|
258
255
|
|
|
259
256
|
/**
|
|
260
257
|
* Decode a CSV encoded array into a binary array
|
|
261
|
-
* @
|
|
262
|
-
* @memberOf TMXUtils
|
|
258
|
+
* @memberof TMXUtils
|
|
263
259
|
* @param {string} input- - CSV formatted data (only numbers, everything else will be converted to NaN)
|
|
264
260
|
* @returns {number[]} Decoded data
|
|
265
261
|
*/
|
|
@@ -275,22 +271,18 @@ function decodeCSV(input) {
|
|
|
275
271
|
|
|
276
272
|
/**
|
|
277
273
|
* Decode a base64 encoded string into a byte array
|
|
278
|
-
* @
|
|
279
|
-
* @memberOf TMXUtils
|
|
274
|
+
* @memberof TMXUtils
|
|
280
275
|
* @param {string} input - Base64 encoded data
|
|
281
276
|
* @param {number} [bytes] - number of bytes per array entry
|
|
282
277
|
* @returns {Uint32Array} Decoded data
|
|
283
278
|
*/
|
|
284
|
-
function decodeBase64AsArray(input, bytes) {
|
|
285
|
-
bytes = bytes || 1;
|
|
286
|
-
|
|
287
|
-
let i, j, len;
|
|
279
|
+
function decodeBase64AsArray(input, bytes = 1) {
|
|
288
280
|
let dec = globalThis.atob(input.replace(/[^A-Za-z0-9\+\/\=]/g, ""));
|
|
289
281
|
let ar = new Uint32Array(dec.length / bytes);
|
|
290
282
|
|
|
291
|
-
for (i = 0, len = dec.length / bytes; i < len; i++) {
|
|
283
|
+
for (let i = 0, len = dec.length / bytes; i < len; i++) {
|
|
292
284
|
ar[i] = 0;
|
|
293
|
-
for (j = bytes - 1; j >= 0; --j) {
|
|
285
|
+
for (let j = bytes - 1; j >= 0; --j) {
|
|
294
286
|
ar[i] += dec.charCodeAt((i * bytes) + j) << (j << 3);
|
|
295
287
|
}
|
|
296
288
|
}
|
|
@@ -299,6 +291,7 @@ function decodeBase64AsArray(input, bytes) {
|
|
|
299
291
|
|
|
300
292
|
/**
|
|
301
293
|
* set the function used to inflate gzip/zlib data
|
|
294
|
+
* @memberof TMXUtils
|
|
302
295
|
* @param {Func} fn - inflate function
|
|
303
296
|
*/
|
|
304
297
|
export function setInflateFunction(fn) {
|
|
@@ -307,8 +300,7 @@ export function setInflateFunction(fn) {
|
|
|
307
300
|
|
|
308
301
|
/**
|
|
309
302
|
* Decode a encoded array into a binary array
|
|
310
|
-
* @
|
|
311
|
-
* @memberOf TMXUtils
|
|
303
|
+
* @memberof TMXUtils
|
|
312
304
|
* @param {string} data - data to be decoded
|
|
313
305
|
* @param {string} [encoding="none"] - data encoding ("csv", "base64", "xml")
|
|
314
306
|
* @returns {number[]} Decoded data
|
|
@@ -342,8 +334,7 @@ export function decode(data, encoding, compression) {
|
|
|
342
334
|
|
|
343
335
|
/**
|
|
344
336
|
* Parse a XML TMX object and returns the corresponding javascript object
|
|
345
|
-
* @
|
|
346
|
-
* @memberOf TMXUtils
|
|
337
|
+
* @memberof TMXUtils
|
|
347
338
|
* @param {Document} xml - XML TMX object
|
|
348
339
|
* @returns {object} Javascript object
|
|
349
340
|
*/
|
|
@@ -383,8 +374,7 @@ export function parse(xml) {
|
|
|
383
374
|
|
|
384
375
|
/**
|
|
385
376
|
* Apply TMX Properties to the given object
|
|
386
|
-
* @
|
|
387
|
-
* @memberOf TMXUtils
|
|
377
|
+
* @memberof TMXUtils
|
|
388
378
|
* @param {object} obj - object to apply the properties to
|
|
389
379
|
* @param {object} data - TMX data object
|
|
390
380
|
* @returns {object} obj
|