melonjs 15.2.0 → 15.2.1

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 (144) hide show
  1. package/README.md +4 -4
  2. package/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +1 -1
  3. package/dist/melonjs.mjs/_virtual/earcut.js +1 -1
  4. package/dist/melonjs.mjs/_virtual/howler.js +1 -1
  5. package/dist/melonjs.mjs/_virtual/index.js +1 -1
  6. package/dist/melonjs.mjs/application/application.js +1 -1
  7. package/dist/melonjs.mjs/application/header.js +1 -1
  8. package/dist/melonjs.mjs/application/resize.js +1 -1
  9. package/dist/melonjs.mjs/application/settings.js +1 -1
  10. package/dist/melonjs.mjs/audio/audio.js +1 -1
  11. package/dist/melonjs.mjs/camera/camera2d.js +1 -1
  12. package/dist/melonjs.mjs/const.js +1 -1
  13. package/dist/melonjs.mjs/entity/entity.js +1 -1
  14. package/dist/melonjs.mjs/geometries/ellipse.js +1 -1
  15. package/dist/melonjs.mjs/geometries/line.js +1 -1
  16. package/dist/melonjs.mjs/geometries/path2d.js +1 -1
  17. package/dist/melonjs.mjs/geometries/point.js +1 -1
  18. package/dist/melonjs.mjs/geometries/poly.js +1 -1
  19. package/dist/melonjs.mjs/geometries/rectangle.js +1 -1
  20. package/dist/melonjs.mjs/geometries/roundrect.js +1 -1
  21. package/dist/melonjs.mjs/index.js +4 -2
  22. package/dist/melonjs.mjs/input/gamepad.js +1 -1
  23. package/dist/melonjs.mjs/input/input.js +1 -1
  24. package/dist/melonjs.mjs/input/keyboard.js +1 -1
  25. package/dist/melonjs.mjs/input/pointer.js +1 -1
  26. package/dist/melonjs.mjs/input/pointerevent.js +1 -1
  27. package/dist/melonjs.mjs/lang/console.js +1 -1
  28. package/dist/melonjs.mjs/lang/deprecated.js +1 -1
  29. package/dist/melonjs.mjs/level/level.js +1 -1
  30. package/dist/melonjs.mjs/level/tiled/TMXGroup.js +1 -1
  31. package/dist/melonjs.mjs/level/tiled/TMXLayer.js +1 -1
  32. package/dist/melonjs.mjs/level/tiled/TMXObject.js +1 -1
  33. package/dist/melonjs.mjs/level/tiled/TMXTile.js +1 -1
  34. package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +1 -1
  35. package/dist/melonjs.mjs/level/tiled/TMXTileset.js +1 -1
  36. package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +1 -1
  37. package/dist/melonjs.mjs/level/tiled/TMXUtils.js +124 -90
  38. package/dist/melonjs.mjs/level/tiled/constants.js +1 -1
  39. package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +1 -1
  40. package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +1 -1
  41. package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +1 -1
  42. package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +1 -1
  43. package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +1 -1
  44. package/dist/melonjs.mjs/level/tiled/renderer/autodetect.js +1 -1
  45. package/dist/melonjs.mjs/loader/cache.js +1 -1
  46. package/dist/melonjs.mjs/loader/loader.js +1 -1
  47. package/dist/melonjs.mjs/loader/loadingscreen.js +1 -1
  48. package/dist/melonjs.mjs/loader/melonjs_logo.png.js +1 -1
  49. package/dist/melonjs.mjs/loader/parser.js +1 -1
  50. package/dist/melonjs.mjs/loader/settings.js +1 -1
  51. package/dist/melonjs.mjs/math/color.js +1 -1
  52. package/dist/melonjs.mjs/math/math.js +1 -1
  53. package/dist/melonjs.mjs/math/matrix2.js +1 -1
  54. package/dist/melonjs.mjs/math/matrix3.js +1 -1
  55. package/dist/melonjs.mjs/math/observable_vector2.js +1 -1
  56. package/dist/melonjs.mjs/math/observable_vector3.js +1 -1
  57. package/dist/melonjs.mjs/math/vector2.js +1 -1
  58. package/dist/melonjs.mjs/math/vector3.js +1 -1
  59. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/arraymultimap.js +1 -1
  60. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/multimap.js +1 -1
  61. package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +1 -1
  62. package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +1 -1
  63. package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +1 -1
  64. package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +1 -1
  65. package/dist/melonjs.mjs/particles/emitter.js +1 -1
  66. package/dist/melonjs.mjs/particles/particle.js +1 -1
  67. package/dist/melonjs.mjs/particles/settings.js +1 -1
  68. package/dist/melonjs.mjs/physics/body.js +1 -1
  69. package/dist/melonjs.mjs/physics/bounds.js +1 -1
  70. package/dist/melonjs.mjs/physics/collision.js +1 -1
  71. package/dist/melonjs.mjs/physics/detector.js +1 -1
  72. package/dist/melonjs.mjs/physics/quadtree.js +1 -1
  73. package/dist/melonjs.mjs/physics/response.js +1 -1
  74. package/dist/melonjs.mjs/physics/sat.js +1 -1
  75. package/dist/melonjs.mjs/physics/world.js +1 -1
  76. package/dist/melonjs.mjs/plugin/plugin.js +3 -3
  77. package/dist/melonjs.mjs/renderable/collectable.js +1 -1
  78. package/dist/melonjs.mjs/renderable/colorlayer.js +1 -1
  79. package/dist/melonjs.mjs/renderable/container.js +1 -1
  80. package/dist/melonjs.mjs/renderable/draggable.js +1 -1
  81. package/dist/melonjs.mjs/renderable/dragndrop.js +1 -1
  82. package/dist/melonjs.mjs/renderable/imagelayer.js +1 -1
  83. package/dist/melonjs.mjs/renderable/light2d.js +1 -1
  84. package/dist/melonjs.mjs/renderable/nineslicesprite.js +1 -1
  85. package/dist/melonjs.mjs/renderable/renderable.js +1 -1
  86. package/dist/melonjs.mjs/renderable/sprite.js +1 -1
  87. package/dist/melonjs.mjs/renderable/trigger.js +1 -1
  88. package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +1 -1
  89. package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +1 -1
  90. package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +1 -1
  91. package/dist/melonjs.mjs/state/stage.js +1 -1
  92. package/dist/melonjs.mjs/state/state.js +1 -1
  93. package/dist/melonjs.mjs/system/device.js +1 -1
  94. package/dist/melonjs.mjs/system/dom.js +1 -1
  95. package/dist/melonjs.mjs/system/event.js +1 -1
  96. package/dist/melonjs.mjs/system/platform.js +1 -1
  97. package/dist/melonjs.mjs/system/pooling.js +1 -1
  98. package/dist/melonjs.mjs/system/save.js +1 -1
  99. package/dist/melonjs.mjs/system/timer.js +1 -1
  100. package/dist/melonjs.mjs/text/bitmaptext.js +1 -1
  101. package/dist/melonjs.mjs/text/bitmaptextdata.js +1 -1
  102. package/dist/melonjs.mjs/text/glyph.js +1 -1
  103. package/dist/melonjs.mjs/text/text.js +1 -1
  104. package/dist/melonjs.mjs/text/textmetrics.js +1 -1
  105. package/dist/melonjs.mjs/text/textstyle.js +1 -1
  106. package/dist/melonjs.mjs/tweens/easing.js +1 -1
  107. package/dist/melonjs.mjs/tweens/interpolation.js +1 -1
  108. package/dist/melonjs.mjs/tweens/tween.js +1 -1
  109. package/dist/melonjs.mjs/utils/agent.js +1 -1
  110. package/dist/melonjs.mjs/utils/array.js +1 -1
  111. package/dist/melonjs.mjs/utils/file.js +1 -1
  112. package/dist/melonjs.mjs/utils/function.js +1 -1
  113. package/dist/melonjs.mjs/utils/string.js +1 -1
  114. package/dist/melonjs.mjs/utils/utils.js +1 -1
  115. package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +1 -1
  116. package/dist/melonjs.mjs/video/renderer.js +1 -1
  117. package/dist/melonjs.mjs/video/texture/atlas.js +1 -1
  118. package/dist/melonjs.mjs/video/texture/cache.js +1 -1
  119. package/dist/melonjs.mjs/video/texture/canvas_texture.js +1 -1
  120. package/dist/melonjs.mjs/video/utils/autodetect.js +1 -1
  121. package/dist/melonjs.mjs/video/video.js +3 -29
  122. package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +1 -1
  123. package/dist/melonjs.mjs/video/webgl/compositors/compositor.js +1 -1
  124. package/dist/melonjs.mjs/video/webgl/compositors/primitive_compositor.js +1 -1
  125. package/dist/melonjs.mjs/video/webgl/compositors/quad_compositor.js +1 -1
  126. package/dist/melonjs.mjs/video/webgl/glshader.js +1 -1
  127. package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +1 -1
  128. package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +1 -1
  129. package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +1 -1
  130. package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +1 -1
  131. package/dist/melonjs.mjs/video/webgl/utils/attributes.js +1 -1
  132. package/dist/melonjs.mjs/video/webgl/utils/precision.js +1 -1
  133. package/dist/melonjs.mjs/video/webgl/utils/program.js +1 -1
  134. package/dist/melonjs.mjs/video/webgl/utils/string.js +1 -1
  135. package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +1 -1
  136. package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +1 -1
  137. package/dist/melonjs.module.js +142 -128
  138. package/dist/types/index.d.ts +2 -1
  139. package/dist/types/level/tiled/TMXUtils.d.ts +19 -36
  140. package/dist/types/video/video.d.ts +1 -21
  141. package/package.json +3 -3
  142. package/src/index.js +2 -0
  143. package/src/level/tiled/TMXUtils.js +123 -92
  144. package/src/video/video.js +3 -5
package/src/index.js CHANGED
@@ -54,6 +54,7 @@ import TMXTileset from "./level/tiled/TMXTileset.js";
54
54
  import TMXTilesetGroup from "./level/tiled/TMXTilesetGroup.js";
55
55
  import TMXTileMap from "./level/tiled/TMXTileMap.js";
56
56
  import TMXLayer from "./level/tiled/TMXLayer.js";
57
+ import * as TMXUtils from "./level/tiled/TMXUtils.js";
57
58
  import Pointer from "./input/pointer.js";
58
59
  import Stage from "./state/stage.js";
59
60
  import Camera2d from "./camera/camera2d.js";
@@ -167,6 +168,7 @@ export {
167
168
  TMXTilesetGroup,
168
169
  TMXTileMap,
169
170
  TMXLayer,
171
+ TMXUtils,
170
172
  Pointer,
171
173
  Stage,
172
174
  Camera2d,
@@ -1,5 +1,16 @@
1
1
  import { isBoolean, isNumeric } from "../../utils/string.js";
2
- import * as utils from "../../utils/utils.js";
2
+
3
+ /**
4
+ * a collection of utility functions for parsing TMX maps
5
+ * @namespace TMXUtils
6
+ */
7
+
8
+
9
+ /**
10
+ * the function used to decompress zlib/gzip data
11
+ * @ignore
12
+ */
13
+ let inflateFunction;
3
14
 
4
15
  /**
5
16
  * set and interpret a TMX property value
@@ -96,99 +107,11 @@ function parseAttributes(obj, elt) {
96
107
  }
97
108
  }
98
109
 
99
- /**
100
- * decompress and decode zlib/gzip data
101
- * @ignore
102
- * @name decompress
103
- * @param {string} input - Base64 encoded and compressed data
104
- * @param {string} format - compressed data format ("gzip","zlib", "zstd")
105
- * @returns {Uint32Array} Decoded and decompress data
106
- */
107
- export function decompress(data, format) {
108
- if (typeof utils.inflateb64 === "function") {
109
- return utils.inflateb64(data, format);
110
- } else {
111
- throw new Error("GZIP/ZLIB compressed TMX Tile Map not supported!");
112
- }
113
- }
114
-
115
- /**
116
- * Decode a CSV encoded array into a binary array
117
- * @ignore
118
- * @name decodeCSV
119
- * @param {string} input- - CSV formatted data (only numbers, everything else will be converted to NaN)
120
- * @returns {number[]} Decoded data
121
- */
122
- export function decodeCSV(input) {
123
- let entries = input.replace("\n", "").trim().split(",");
124
-
125
- let result = [];
126
- for (let i = 0; i < entries.length; i++) {
127
- result.push(+entries[i]);
128
- }
129
- return result;
130
- }
131
-
132
- /**
133
- * Decode a base64 encoded string into a byte array
134
- * @ignore
135
- * @name decodeBase64AsArray
136
- * @param {string} input - Base64 encoded data
137
- * @param {number} [bytes] - number of bytes per array entry
138
- * @returns {Uint32Array} Decoded data
139
- */
140
- export function decodeBase64AsArray(input, bytes) {
141
- bytes = bytes || 1;
142
-
143
- let i, j, len;
144
- let dec = globalThis.atob(input.replace(/[^A-Za-z0-9\+\/\=]/g, ""));
145
- let ar = new Uint32Array(dec.length / bytes);
146
-
147
- for (i = 0, len = dec.length / bytes; i < len; i++) {
148
- ar[i] = 0;
149
- for (j = bytes - 1; j >= 0; --j) {
150
- ar[i] += dec.charCodeAt((i * bytes) + j) << (j << 3);
151
- }
152
- }
153
- return ar;
154
- }
155
-
156
- /**
157
- * Decode the given data
158
- * @ignore
159
- */
160
- export function decode(data, encoding, compression) {
161
- compression = compression || "none";
162
- encoding = encoding || "none";
163
-
164
- switch (encoding) {
165
- case "csv":
166
- return decodeCSV(data);
167
-
168
- case "base64":
169
- if (compression !== "none") {
170
- data = decompress(data, compression);
171
- } else {
172
- data = decodeBase64AsArray(data, 4);
173
- }
174
- return data;
175
-
176
- case "none":
177
- return data;
178
-
179
- case "xml":
180
- throw new Error("XML encoding is deprecated, use base64 instead");
181
-
182
- default:
183
- throw new Error("Unknown layer encoding: " + encoding);
184
- }
185
- }
186
-
187
110
  /**
188
111
  * Normalize TMX format to Tiled JSON format
189
112
  * @ignore
190
113
  */
191
- export function normalize(obj, item) {
114
+ function normalize(obj, item) {
192
115
  let nodeName = item.nodeName;
193
116
 
194
117
  switch (nodeName) {
@@ -316,9 +239,113 @@ export function normalize(obj, item) {
316
239
  }
317
240
  }
318
241
 
242
+
243
+ /**
244
+ * decompress and decode zlib/gzip data
245
+ * @name decompress
246
+ * @memberOf TMXUtils
247
+ * @param {string} input - Base64 encoded and compressed data
248
+ * @param {string} format - compressed data format ("gzip","zlib", "zstd")
249
+ * @returns {Uint32Array} Decoded and decompress data
250
+ */
251
+ function decompress(data, format) {
252
+ if (typeof inflateFunction === "function") {
253
+ return inflateFunction(data, format);
254
+ } else {
255
+ throw new Error("GZIP/ZLIB compressed TMX Tile Map not supported!");
256
+ }
257
+ }
258
+
259
+ /**
260
+ * Decode a CSV encoded array into a binary array
261
+ * @name decodeCSV
262
+ * @memberOf TMXUtils
263
+ * @param {string} input- - CSV formatted data (only numbers, everything else will be converted to NaN)
264
+ * @returns {number[]} Decoded data
265
+ */
266
+ function decodeCSV(input) {
267
+ let entries = input.replace("\n", "").trim().split(",");
268
+
269
+ let result = [];
270
+ for (let i = 0; i < entries.length; i++) {
271
+ result.push(+entries[i]);
272
+ }
273
+ return result;
274
+ }
275
+
276
+ /**
277
+ * Decode a base64 encoded string into a byte array
278
+ * @name decodeBase64AsArray
279
+ * @memberOf TMXUtils
280
+ * @param {string} input - Base64 encoded data
281
+ * @param {number} [bytes] - number of bytes per array entry
282
+ * @returns {Uint32Array} Decoded data
283
+ */
284
+ function decodeBase64AsArray(input, bytes) {
285
+ bytes = bytes || 1;
286
+
287
+ let i, j, len;
288
+ let dec = globalThis.atob(input.replace(/[^A-Za-z0-9\+\/\=]/g, ""));
289
+ let ar = new Uint32Array(dec.length / bytes);
290
+
291
+ for (i = 0, len = dec.length / bytes; i < len; i++) {
292
+ ar[i] = 0;
293
+ for (j = bytes - 1; j >= 0; --j) {
294
+ ar[i] += dec.charCodeAt((i * bytes) + j) << (j << 3);
295
+ }
296
+ }
297
+ return ar;
298
+ }
299
+
300
+ /**
301
+ * set the function used to inflate gzip/zlib data
302
+ * @param {Func} fn - inflate function
303
+ */
304
+ export function setInflateFunction(fn) {
305
+ inflateFunction = fn;
306
+ }
307
+
308
+ /**
309
+ * Decode a encoded array into a binary array
310
+ * @name decodeCSV
311
+ * @memberOf TMXUtils
312
+ * @param {string} data - data to be decoded
313
+ * @param {string} [encoding="none"] - data encoding ("csv", "base64", "xml")
314
+ * @returns {number[]} Decoded data
315
+ */
316
+ export function decode(data, encoding, compression) {
317
+ compression = compression || "none";
318
+ encoding = encoding || "none";
319
+
320
+ switch (encoding) {
321
+ case "csv":
322
+ return decodeCSV(data);
323
+
324
+ case "base64":
325
+ if (compression !== "none") {
326
+ data = decompress(data, compression);
327
+ } else {
328
+ data = decodeBase64AsArray(data, 4);
329
+ }
330
+ return data;
331
+
332
+ case "none":
333
+ return data;
334
+
335
+ case "xml":
336
+ throw new Error("XML encoding is deprecated, use base64 instead");
337
+
338
+ default:
339
+ throw new Error("Unknown layer encoding: " + encoding);
340
+ }
341
+ }
342
+
319
343
  /**
320
344
  * Parse a XML TMX object and returns the corresponding javascript object
321
- * @ignore
345
+ * @name parse
346
+ * @memberOf TMXUtils
347
+ * @param {Document} xml - XML TMX object
348
+ * @returns {object} Javascript object
322
349
  */
323
350
  export function parse(xml) {
324
351
  // Create the return object
@@ -356,7 +383,11 @@ export function parse(xml) {
356
383
 
357
384
  /**
358
385
  * Apply TMX Properties to the given object
359
- * @ignore
386
+ * @name applyTMXProperties
387
+ * @memberOf TMXUtils
388
+ * @param {object} obj - object to apply the properties to
389
+ * @param {object} data - TMX data object
390
+ * @returns {object} obj
360
391
  */
361
392
  export function applyTMXProperties(obj, data) {
362
393
  let properties = data.properties;
@@ -2,33 +2,31 @@ import * as event from "./../system/event.js";
2
2
  import { initialized, game } from "./../index.js";
3
3
  import * as device from "./../system/device.js";
4
4
  import { throttle } from "../utils/function.js";
5
- import * as vc from "../const";
6
5
 
7
6
  /**
8
7
  * @namespace video
9
8
  */
10
9
 
11
-
12
10
  /**
13
11
  * Select the HTML5 Canvas renderer
14
12
  * @memberof video
15
13
  * @static
16
14
  */
17
- export const CANVAS = vc.CANVAS;
15
+ export { CANVAS } from "../const";
18
16
 
19
17
  /**
20
18
  * Select the WebGL renderer
21
19
  * @memberof video
22
20
  * @static
23
21
  */
24
- export const WEBGL = vc.WEBGL;
22
+ export { WEBGL } from "../const";
25
23
 
26
24
  /**
27
25
  * Auto-select the renderer (Attempt WebGL first, with fallback to Canvas)
28
26
  * @memberof video
29
27
  * @static
30
28
  */
31
- export const AUTO = vc.AUTO;
29
+ export { AUTO } from "../const";
32
30
 
33
31
  /**
34
32
  * A reference to the active Canvas or WebGL active renderer renderer