melonjs 15.1.6 → 15.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/README.md +2 -2
  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 +3 -3
  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 +10 -6
  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 +5 -4
  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 +3 -3
  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 +6 -8
  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 +106 -108
  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 +7 -6
  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 +4 -4
  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 +105 -111
  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 +4 -4
  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 +460 -449
  138. package/dist/types/index.d.ts +3 -3
  139. package/dist/types/plugin/plugin.d.ts +60 -5
  140. package/dist/types/utils/utils.d.ts +56 -17
  141. package/package.json +3 -3
  142. package/src/application/application.js +2 -2
  143. package/src/index.js +3 -2
  144. package/src/level/level.js +4 -3
  145. package/src/level/tiled/TMXTileMap.js +2 -2
  146. package/src/level/tiled/TMXUtils.js +4 -3
  147. package/src/plugin/plugin.js +103 -105
  148. package/src/renderable/container.js +6 -5
  149. package/src/system/timer.js +3 -3
  150. package/src/utils/utils.js +102 -111
  151. package/src/video/video.js +3 -3
@@ -1,8 +1,10 @@
1
- import * as agentUtils from "./agent.js";
2
- import * as arrayUtils from "./array.js";
3
- import * as fileUtils from "./file.js";
4
- import * as stringUtils from "./string.js";
5
- import * as fnUtils from "./function.js";
1
+ import { toHex } from "./string.js";
2
+
3
+ export * as agent from "./agent.js";
4
+ export * as array from "./array.js";
5
+ export * as file from "./file.js";
6
+ export * as string from "./string.js";
7
+ export * as function from "./function.js";
6
8
 
7
9
  /**
8
10
  * a collection of utility functions
@@ -13,124 +15,113 @@ import * as fnUtils from "./function.js";
13
15
  let GUID_base = "";
14
16
  let GUID_index = 0;
15
17
 
16
- let utils = {
17
-
18
- agent : agentUtils,
19
- array : arrayUtils,
20
- file : fileUtils,
21
- string : stringUtils,
22
- function : fnUtils,
23
-
24
- /**
25
- * Compare two version strings
26
- * @public
27
- * @memberof utils
28
- * @name checkVersion
29
- * @param {string} first - First version string to compare
30
- * @param {string} second - second version string to compare
31
- * @returns {number} comparison result <br>&lt; 0 : first &lt; second<br>
32
- * 0 : first == second<br>
33
- * &gt; 0 : first &gt; second
34
- * @example
35
- * if (me.utils.checkVersion("7.0.0") > 0) {
36
- * console.error(
37
- * "melonJS is too old. Expected: 7.0.0, Got: 6.3.0"
38
- * );
39
- * }
40
- */
41
- checkVersion : function (first, second) {
42
- let a = first.split(".");
43
- let b = second.split(".");
44
- let len = Math.min(a.length, b.length);
45
- let result = 0;
18
+ /**
19
+ * Compare two version strings
20
+ * @public
21
+ * @memberof utils
22
+ * @name checkVersion
23
+ * @param {string} first - First version string to compare
24
+ * @param {string} second - second version string to compare
25
+ * @returns {number} comparison result <br>&lt; 0 : first &lt; second<br>
26
+ * 0 : first == second<br>
27
+ * &gt; 0 : first &gt; second
28
+ * @example
29
+ * if (me.utils.checkVersion("7.0.0") > 0) {
30
+ * console.error(
31
+ * "melonJS is too old. Expected: 7.0.0, Got: 6.3.0"
32
+ * );
33
+ * }
34
+ */
35
+ export function checkVersion(first, second) {
36
+ let a = first.split(".");
37
+ let b = second.split(".");
38
+ let len = Math.min(a.length, b.length);
39
+ let result = 0;
46
40
 
47
- for (let i = 0; i < len; i++) {
48
- if ((result = +a[i] - +b[i])) {
49
- break;
50
- }
41
+ for (let i = 0; i < len; i++) {
42
+ if ((result = +a[i] - +b[i])) {
43
+ break;
51
44
  }
45
+ }
52
46
 
53
- return result ? result : a.length - b.length;
54
- },
47
+ return result ? result : a.length - b.length;
48
+ }
55
49
 
56
- /**
57
- * parse the fragment (hash) from a URL and returns them into
58
- * @public
59
- * @memberof utils
60
- * @name getUriFragment
61
- * @param {string} [url=document.location] - an optional params string or URL containing fragment (hash) params to be parsed
62
- * @returns {object} an object representing the deserialized params string.
63
- * @property {boolean} [hitbox=false] draw the hitbox in the debug panel (if enabled)
64
- * @property {boolean} [velocity=false] draw the entities velocity in the debug panel (if enabled)
65
- * @property {boolean} [quadtree=false] draw the quadtree in the debug panel (if enabled)
66
- * @property {boolean} [webgl=false] force the renderer to WebGL
67
- * @property {boolean} [debug=false] display the debug panel (if preloaded)
68
- * @property {string} [debugToggleKey="s"] show/hide the debug panel (if preloaded)
69
- * @example
70
- * // http://www.example.com/index.html#debug&hitbox=true&mytag=value
71
- * let UriFragment = me.utils.getUriFragment();
72
- * console.log(UriFragment["mytag"]); //> "value"
73
- */
74
- getUriFragment : function (url) {
75
- let hash = {};
50
+ /**
51
+ * parse the fragment (hash) from a URL and returns them into
52
+ * @public
53
+ * @memberof utils
54
+ * @name getUriFragment
55
+ * @param {string} [url=document.location] - an optional params string or URL containing fragment (hash) params to be parsed
56
+ * @returns {object} an object representing the deserialized params string.
57
+ * @property {boolean} [hitbox=false] draw the hitbox in the debug panel (if enabled)
58
+ * @property {boolean} [velocity=false] draw the entities velocity in the debug panel (if enabled)
59
+ * @property {boolean} [quadtree=false] draw the quadtree in the debug panel (if enabled)
60
+ * @property {boolean} [webgl=false] force the renderer to WebGL
61
+ * @property {boolean} [debug=false] display the debug panel (if preloaded)
62
+ * @property {string} [debugToggleKey="s"] show/hide the debug panel (if preloaded)
63
+ * @example
64
+ * // http://www.example.com/index.html#debug&hitbox=true&mytag=value
65
+ * let UriFragment = me.utils.getUriFragment();
66
+ * console.log(UriFragment["mytag"]); //> "value"
67
+ */
68
+ export function getUriFragment(url) {
69
+ let hash = {};
76
70
 
77
- if (typeof url === "undefined") {
78
- if (typeof globalThis.document !== "undefined") {
79
- let location = globalThis.document.location;
71
+ if (typeof url === "undefined") {
72
+ if (typeof globalThis.document !== "undefined") {
73
+ let location = globalThis.document.location;
80
74
 
81
- if (location && location.hash) {
82
- url = location.hash;
83
- } else {
84
- // No "document.location" exist for Wechat mini game platform.
85
- return hash;
86
- }
75
+ if (location && location.hash) {
76
+ url = location.hash;
87
77
  } else {
88
- // "document" undefined on node.js
78
+ // No "document.location" exist for Wechat mini game platform.
89
79
  return hash;
90
80
  }
91
81
  } else {
92
- // never cache if a url is passed as parameter
93
- let index = url.indexOf("#");
94
- if (index !== -1) {
95
- url = url.slice(index, url.length);
96
- } else {
97
- return hash;
98
- }
82
+ // "document" undefined on node.js
83
+ return hash;
99
84
  }
85
+ } else {
86
+ // never cache if a url is passed as parameter
87
+ let index = url.indexOf("#");
88
+ if (index !== -1) {
89
+ url = url.slice(index, url.length);
90
+ } else {
91
+ return hash;
92
+ }
93
+ }
100
94
 
101
- // parse the url
102
- url.slice(1).split("&").filter((value) => value !== "").forEach((value) => {
103
- let kv = value.split("=");
104
- let k = kv.shift();
105
- let v = kv.join("=");
106
- hash[k] = v || true;
107
- });
108
-
109
- return hash;
110
- },
95
+ // parse the url
96
+ url.slice(1).split("&").filter((value) => value !== "").forEach((value) => {
97
+ let kv = value.split("=");
98
+ let k = kv.shift();
99
+ let v = kv.join("=");
100
+ hash[k] = v || true;
101
+ });
111
102
 
112
- /**
113
- * reset the GUID Base Name
114
- * the idea here being to have a unique ID
115
- * per level / object
116
- * @ignore
117
- */
118
- resetGUID : function (base, index = 0) {
119
- // also ensure it's only 8bit ASCII characters
120
- GUID_base = stringUtils.toHex(base.toString().toUpperCase());
121
- GUID_index = index;
122
- },
103
+ return hash;
104
+ }
123
105
 
124
- /**
125
- * create and return a very simple GUID
126
- * Game Unique ID
127
- * @ignore
128
- */
129
- createGUID : function (index = 1) {
130
- // to cover the case of undefined id for groups
131
- GUID_index += index;
132
- return GUID_base + "-" + (index || GUID_index);
133
- }
134
- };
106
+ /**
107
+ * reset the GUID Base Name
108
+ * the idea here being to have a unique ID
109
+ * per level / object
110
+ * @ignore
111
+ */
112
+ export function resetGUID(base, index = 0) {
113
+ // also ensure it's only 8bit ASCII characters
114
+ GUID_base = toHex(base.toString().toUpperCase());
115
+ GUID_index = index;
116
+ }
135
117
 
136
- export default utils;
118
+ /**
119
+ * create and return a very simple GUID
120
+ * Game Unique ID
121
+ * @ignore
122
+ */
123
+ export function createGUID(index = 1) {
124
+ // to cover the case of undefined id for groups
125
+ GUID_index += index;
126
+ return GUID_base + "-" + (index || GUID_index);
127
+ }
@@ -1,7 +1,7 @@
1
1
  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
- import utils from "./../utils/utils.js";
4
+ import { throttle } from "../utils/function.js";
5
5
  import * as vc from "../const";
6
6
 
7
7
  /**
@@ -98,7 +98,7 @@ export function init(width, height, options) {
98
98
  //add a channel for the onresize/onorientationchange event
99
99
  globalThis.addEventListener(
100
100
  "resize",
101
- utils.function.throttle(
101
+ throttle(
102
102
  (e) => {
103
103
  event.emit(event.WINDOW_ONRESIZE, e);
104
104
  }, 100
@@ -130,7 +130,7 @@ export function init(width, height, options) {
130
130
  }
131
131
 
132
132
  // Automatically update relative canvas position on scroll
133
- globalThis.addEventListener("scroll", utils.function.throttle((e) => {
133
+ globalThis.addEventListener("scroll", throttle((e) => {
134
134
  event.emit(event.WINDOW_ONSCROLL, e);
135
135
  }, 100), false);
136
136