melonjs 15.0.0 → 15.1.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 (285) hide show
  1. package/README.md +4 -4
  2. package/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +1 -1
  3. package/dist/melonjs.mjs/_virtual/arraymultimap.js +1 -1
  4. package/dist/melonjs.mjs/_virtual/earcut.js +1 -1
  5. package/dist/melonjs.mjs/_virtual/howler.js +1 -1
  6. package/dist/melonjs.mjs/_virtual/index.js +7 -3
  7. package/dist/melonjs.mjs/_virtual/index2.js +1 -1
  8. package/dist/melonjs.mjs/_virtual/multimap.js +1 -1
  9. package/dist/melonjs.mjs/_virtual/setmultimap.js +1 -1
  10. package/dist/melonjs.mjs/application/application.js +27 -17
  11. package/dist/melonjs.mjs/application/header.js +6 -5
  12. package/dist/melonjs.mjs/application/resize.js +20 -20
  13. package/dist/melonjs.mjs/application/settings.js +1 -1
  14. package/dist/melonjs.mjs/audio/audio.js +17 -17
  15. package/dist/melonjs.mjs/camera/camera2d.js +10 -10
  16. package/dist/melonjs.mjs/const.js +1 -1
  17. package/dist/melonjs.mjs/entity/entity.js +4 -4
  18. package/dist/melonjs.mjs/geometries/ellipse.js +6 -6
  19. package/dist/melonjs.mjs/geometries/line.js +9 -9
  20. package/dist/melonjs.mjs/geometries/path2d.js +53 -53
  21. package/dist/melonjs.mjs/geometries/point.js +2 -2
  22. package/dist/melonjs.mjs/geometries/poly.js +29 -29
  23. package/dist/melonjs.mjs/geometries/rectangle.js +8 -8
  24. package/dist/melonjs.mjs/geometries/roundrect.js +6 -6
  25. package/dist/melonjs.mjs/index.js +5 -5
  26. package/dist/melonjs.mjs/input/gamepad.js +30 -30
  27. package/dist/melonjs.mjs/input/input.js +2 -2
  28. package/dist/melonjs.mjs/input/keyboard.js +15 -15
  29. package/dist/melonjs.mjs/input/pointer.js +2 -2
  30. package/dist/melonjs.mjs/input/pointerevent.js +58 -58
  31. package/dist/melonjs.mjs/lang/console.js +3 -3
  32. package/dist/melonjs.mjs/lang/deprecated.js +2 -2
  33. package/dist/melonjs.mjs/level/level.js +9 -9
  34. package/dist/melonjs.mjs/level/tiled/TMXGroup.js +3 -3
  35. package/dist/melonjs.mjs/level/tiled/TMXLayer.js +31 -31
  36. package/dist/melonjs.mjs/level/tiled/TMXObject.js +8 -8
  37. package/dist/melonjs.mjs/level/tiled/TMXTile.js +8 -8
  38. package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +19 -19
  39. package/dist/melonjs.mjs/level/tiled/TMXTileset.js +15 -15
  40. package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +3 -3
  41. package/dist/melonjs.mjs/level/tiled/TMXUtils.js +46 -41
  42. package/dist/melonjs.mjs/level/tiled/constants.js +1 -1
  43. package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +30 -30
  44. package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +21 -21
  45. package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +10 -10
  46. package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +2 -2
  47. package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +6 -6
  48. package/dist/melonjs.mjs/level/tiled/renderer/autodetect.js +1 -1
  49. package/dist/melonjs.mjs/loader/cache.js +1 -1
  50. package/dist/melonjs.mjs/loader/loader.js +7 -7
  51. package/dist/melonjs.mjs/loader/loadingscreen.js +2 -2
  52. package/dist/melonjs.mjs/loader/melonjs_logo.png.js +1 -1
  53. package/dist/melonjs.mjs/loader/parser.js +13 -13
  54. package/dist/melonjs.mjs/loader/settings.js +3 -3
  55. package/dist/melonjs.mjs/math/color.js +21 -21
  56. package/dist/melonjs.mjs/math/math.js +2 -2
  57. package/dist/melonjs.mjs/math/matrix2.js +22 -22
  58. package/dist/melonjs.mjs/math/matrix3.js +52 -52
  59. package/dist/melonjs.mjs/math/observable_vector2.js +12 -12
  60. package/dist/melonjs.mjs/math/observable_vector3.js +22 -22
  61. package/dist/melonjs.mjs/math/vector2.js +11 -11
  62. package/dist/melonjs.mjs/math/vector3.js +21 -21
  63. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/arraymultimap.js +45 -0
  64. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/multimap.js +130 -0
  65. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/arraymultimap.js +1 -1
  66. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/index.js +1 -1
  67. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/multimap.js +1 -1
  68. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/setmultimap.js +1 -1
  69. package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +1 -1
  70. package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +2 -2
  71. package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +1 -1
  72. package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +1 -1
  73. package/dist/melonjs.mjs/particles/emitter.js +5 -5
  74. package/dist/melonjs.mjs/particles/particle.js +8 -8
  75. package/dist/melonjs.mjs/particles/settings.js +3 -3
  76. package/dist/melonjs.mjs/physics/body.js +17 -17
  77. package/dist/melonjs.mjs/physics/bounds.js +12 -12
  78. package/dist/melonjs.mjs/physics/collision.js +3 -3
  79. package/dist/melonjs.mjs/physics/detector.js +14 -14
  80. package/dist/melonjs.mjs/physics/quadtree.js +19 -19
  81. package/dist/melonjs.mjs/physics/response.js +1 -1
  82. package/dist/melonjs.mjs/physics/sat.js +60 -60
  83. package/dist/melonjs.mjs/physics/world.js +4 -4
  84. package/dist/melonjs.mjs/plugin/plugin.js +11 -11
  85. package/dist/melonjs.mjs/renderable/collectable.js +2 -2
  86. package/dist/melonjs.mjs/renderable/colorlayer.js +1 -1
  87. package/dist/melonjs.mjs/renderable/container.js +107 -63
  88. package/dist/melonjs.mjs/renderable/dragndrop.js +5 -5
  89. package/dist/melonjs.mjs/renderable/imagelayer.js +7 -6
  90. package/dist/melonjs.mjs/renderable/light2d.js +6 -6
  91. package/dist/melonjs.mjs/renderable/nineslicesprite.js +12 -12
  92. package/dist/melonjs.mjs/renderable/renderable.js +11 -11
  93. package/dist/melonjs.mjs/renderable/sprite.js +25 -25
  94. package/dist/melonjs.mjs/renderable/trigger.js +11 -9
  95. package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +97 -27
  96. package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +25 -25
  97. package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +83 -63
  98. package/dist/melonjs.mjs/state/stage.js +7 -7
  99. package/dist/melonjs.mjs/state/state.js +15 -15
  100. package/dist/melonjs.mjs/system/device.js +2 -2
  101. package/dist/melonjs.mjs/system/dom.js +1 -1
  102. package/dist/melonjs.mjs/system/event.js +2 -2
  103. package/dist/melonjs.mjs/system/platform.js +1 -1
  104. package/dist/melonjs.mjs/system/pooling.js +9 -9
  105. package/dist/melonjs.mjs/system/save.js +6 -6
  106. package/dist/melonjs.mjs/system/timer.js +16 -12
  107. package/dist/melonjs.mjs/text/bitmaptext.js +20 -20
  108. package/dist/melonjs.mjs/text/bitmaptextdata.js +22 -22
  109. package/dist/melonjs.mjs/text/glyph.js +3 -3
  110. package/dist/melonjs.mjs/text/text.js +10 -9
  111. package/dist/melonjs.mjs/text/textmetrics.js +15 -15
  112. package/dist/melonjs.mjs/text/textstyle.js +1 -1
  113. package/dist/melonjs.mjs/tweens/easing.js +4 -4
  114. package/dist/melonjs.mjs/tweens/interpolation.js +8 -8
  115. package/dist/melonjs.mjs/tweens/tween.js +11 -11
  116. package/dist/melonjs.mjs/utils/agent.js +6 -6
  117. package/dist/melonjs.mjs/utils/array.js +4 -4
  118. package/dist/melonjs.mjs/utils/file.js +1 -1
  119. package/dist/melonjs.mjs/utils/function.js +5 -5
  120. package/dist/melonjs.mjs/utils/string.js +3 -3
  121. package/dist/melonjs.mjs/utils/utils.js +16 -16
  122. package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +35 -109
  123. package/dist/melonjs.mjs/video/renderer.js +74 -7
  124. package/dist/melonjs.mjs/video/texture/atlas.js +37 -37
  125. package/dist/melonjs.mjs/video/texture/cache.js +9 -10
  126. package/dist/melonjs.mjs/video/texture/canvas_texture.js +63 -3
  127. package/dist/melonjs.mjs/video/utils/autodetect.js +1 -1
  128. package/dist/melonjs.mjs/video/video.js +2 -2
  129. package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +3 -3
  130. package/dist/melonjs.mjs/video/webgl/compositors/compositor.js +5 -5
  131. package/dist/melonjs.mjs/video/webgl/compositors/primitive_compositor.js +5 -5
  132. package/dist/melonjs.mjs/video/webgl/compositors/quad_compositor.js +18 -15
  133. package/dist/melonjs.mjs/video/webgl/glshader.js +7 -7
  134. package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +1 -1
  135. package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +1 -1
  136. package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +1 -1
  137. package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +1 -1
  138. package/dist/melonjs.mjs/video/webgl/utils/attributes.js +2 -2
  139. package/dist/melonjs.mjs/video/webgl/utils/precision.js +1 -1
  140. package/dist/melonjs.mjs/video/webgl/utils/program.js +7 -7
  141. package/dist/melonjs.mjs/video/webgl/utils/string.js +1 -1
  142. package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +4 -4
  143. package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +55 -38
  144. package/dist/melonjs.module.js +1777 -1813
  145. package/dist/types/application/application.d.ts +11 -8
  146. package/dist/types/audio/audio.d.ts +3 -3
  147. package/dist/types/index.d.ts +4 -3
  148. package/dist/types/input/input.d.ts +1 -1
  149. package/dist/types/input/keyboard.d.ts +1 -1
  150. package/dist/types/input/pointerevent.d.ts +6 -6
  151. package/dist/types/level/level.d.ts +2 -2
  152. package/dist/types/level/tiled/TMXLayer.d.ts +4 -4
  153. package/dist/types/level/tiled/TMXTileMap.d.ts +2 -2
  154. package/dist/types/level/tiled/TMXUtils.d.ts +5 -4
  155. package/dist/types/loader/loader.d.ts +2 -2
  156. package/dist/types/loader/settings.d.ts +2 -2
  157. package/dist/types/particles/emitter.d.ts +1 -1
  158. package/dist/types/physics/collision.d.ts +1 -1
  159. package/dist/types/physics/detector.d.ts +1 -1
  160. package/dist/types/plugin/plugin.d.ts +2 -2
  161. package/dist/types/renderable/container.d.ts +21 -17
  162. package/dist/types/renderable/sprite.d.ts +11 -11
  163. package/dist/types/renderable/trigger.d.ts +1 -1
  164. package/dist/types/renderable/ui/uibaseelement.d.ts +28 -6
  165. package/dist/types/renderable/ui/uispriteelement.d.ts +12 -14
  166. package/dist/types/renderable/ui/uitextbutton.d.ts +52 -11
  167. package/dist/types/state/stage.d.ts +1 -1
  168. package/dist/types/system/device.d.ts +1 -1
  169. package/dist/types/system/pooling.d.ts +3 -3
  170. package/dist/types/system/timer.d.ts +5 -5
  171. package/dist/types/text/bitmaptext.d.ts +1 -1
  172. package/dist/types/text/text.d.ts +1 -1
  173. package/dist/types/utils/array.d.ts +2 -2
  174. package/dist/types/video/canvas/canvas_renderer.d.ts +8 -76
  175. package/dist/types/video/renderer.d.ts +48 -0
  176. package/dist/types/video/texture/atlas.d.ts +3 -3
  177. package/dist/types/video/texture/canvas_texture.d.ts +40 -0
  178. package/dist/types/video/webgl/glshader.d.ts +1 -1
  179. package/dist/types/video/webgl/webgl_renderer.d.ts +13 -9
  180. package/package.json +14 -14
  181. package/src/application/application.js +26 -16
  182. package/src/application/header.js +5 -4
  183. package/src/application/resize.js +19 -19
  184. package/src/audio/audio.js +16 -16
  185. package/src/camera/camera2d.js +9 -9
  186. package/src/entity/entity.js +3 -3
  187. package/src/geometries/ellipse.js +5 -5
  188. package/src/geometries/line.js +8 -8
  189. package/src/geometries/path2d.js +52 -52
  190. package/src/geometries/point.js +1 -1
  191. package/src/geometries/poly.js +28 -28
  192. package/src/geometries/rectangle.js +7 -7
  193. package/src/geometries/roundrect.js +5 -5
  194. package/src/index.js +3 -2
  195. package/src/input/gamepad.js +29 -29
  196. package/src/input/input.js +1 -1
  197. package/src/input/keyboard.js +14 -14
  198. package/src/input/pointer.js +1 -1
  199. package/src/input/pointerevent.js +52 -52
  200. package/src/lang/console.js +2 -2
  201. package/src/lang/deprecated.js +1 -1
  202. package/src/level/level.js +8 -8
  203. package/src/level/tiled/TMXGroup.js +2 -2
  204. package/src/level/tiled/TMXLayer.js +30 -30
  205. package/src/level/tiled/TMXObject.js +7 -7
  206. package/src/level/tiled/TMXTile.js +7 -7
  207. package/src/level/tiled/TMXTileMap.js +18 -18
  208. package/src/level/tiled/TMXTileset.js +14 -14
  209. package/src/level/tiled/TMXTilesetGroup.js +2 -2
  210. package/src/level/tiled/TMXUtils.js +45 -40
  211. package/src/level/tiled/renderer/TMXHexagonalRenderer.js +29 -29
  212. package/src/level/tiled/renderer/TMXIsometricRenderer.js +20 -20
  213. package/src/level/tiled/renderer/TMXOrthogonalRenderer.js +9 -9
  214. package/src/level/tiled/renderer/TMXRenderer.js +1 -1
  215. package/src/level/tiled/renderer/TMXStaggeredRenderer.js +5 -5
  216. package/src/loader/loader.js +6 -6
  217. package/src/loader/loadingscreen.js +1 -1
  218. package/src/loader/parser.js +12 -12
  219. package/src/loader/settings.js +2 -2
  220. package/src/math/color.js +20 -20
  221. package/src/math/math.js +1 -1
  222. package/src/math/matrix2.js +21 -21
  223. package/src/math/matrix3.js +51 -51
  224. package/src/math/observable_vector2.js +11 -11
  225. package/src/math/observable_vector3.js +21 -21
  226. package/src/math/vector2.js +10 -10
  227. package/src/math/vector3.js +20 -20
  228. package/src/particles/emitter.js +4 -4
  229. package/src/particles/particle.js +7 -7
  230. package/src/particles/settings.js +2 -2
  231. package/src/physics/body.js +16 -16
  232. package/src/physics/bounds.js +11 -11
  233. package/src/physics/collision.js +2 -2
  234. package/src/physics/detector.js +13 -13
  235. package/src/physics/quadtree.js +18 -18
  236. package/src/physics/sat.js +59 -59
  237. package/src/physics/world.js +3 -3
  238. package/src/plugin/plugin.js +8 -8
  239. package/src/renderable/collectable.js +1 -1
  240. package/src/renderable/container.js +106 -62
  241. package/src/renderable/dragndrop.js +4 -4
  242. package/src/renderable/imagelayer.js +6 -5
  243. package/src/renderable/light2d.js +5 -5
  244. package/src/renderable/nineslicesprite.js +11 -11
  245. package/src/renderable/renderable.js +10 -10
  246. package/src/renderable/sprite.js +24 -24
  247. package/src/renderable/trigger.js +10 -8
  248. package/src/renderable/ui/uibaseelement.js +96 -26
  249. package/src/renderable/ui/uispriteelement.js +24 -24
  250. package/src/renderable/ui/uitextbutton.js +85 -65
  251. package/src/state/stage.js +6 -6
  252. package/src/state/state.js +14 -14
  253. package/src/system/device.js +1 -1
  254. package/src/system/event.js +1 -1
  255. package/src/system/pooling.js +8 -8
  256. package/src/system/save.js +5 -5
  257. package/src/system/timer.js +15 -11
  258. package/src/text/bitmaptext.js +19 -19
  259. package/src/text/bitmaptextdata.js +21 -21
  260. package/src/text/glyph.js +2 -2
  261. package/src/text/text.js +9 -8
  262. package/src/text/textmetrics.js +14 -14
  263. package/src/tweens/easing.js +3 -3
  264. package/src/tweens/interpolation.js +7 -7
  265. package/src/tweens/tween.js +10 -10
  266. package/src/utils/agent.js +5 -5
  267. package/src/utils/array.js +3 -3
  268. package/src/utils/function.js +4 -4
  269. package/src/utils/string.js +2 -2
  270. package/src/utils/utils.js +15 -15
  271. package/src/video/canvas/canvas_renderer.js +34 -108
  272. package/src/video/renderer.js +72 -5
  273. package/src/video/texture/atlas.js +36 -36
  274. package/src/video/texture/cache.js +6 -6
  275. package/src/video/texture/canvas_texture.js +62 -2
  276. package/src/video/video.js +1 -1
  277. package/src/video/webgl/buffer/vertex.js +2 -2
  278. package/src/video/webgl/compositors/compositor.js +4 -4
  279. package/src/video/webgl/compositors/primitive_compositor.js +4 -4
  280. package/src/video/webgl/compositors/quad_compositor.js +17 -14
  281. package/src/video/webgl/glshader.js +6 -6
  282. package/src/video/webgl/utils/attributes.js +1 -1
  283. package/src/video/webgl/utils/program.js +6 -6
  284. package/src/video/webgl/utils/uniforms.js +3 -3
  285. package/src/video/webgl/webgl_renderer.js +54 -37
@@ -29,16 +29,16 @@ const RIGHT_VORNOI_REGION = 1;
29
29
  * @type {Array.<Vector2d>}
30
30
  * @ignore
31
31
  */
32
- var T_VECTORS = [];
33
- for (var v = 0; v < 10; v++) { T_VECTORS.push(new Vector2d()); }
32
+ let T_VECTORS = [];
33
+ for (let v = 0; v < 10; v++) { T_VECTORS.push(new Vector2d()); }
34
34
 
35
35
  /**
36
36
  * A pool of arrays of numbers used in calculations to avoid allocating memory.
37
37
  * @type {Array.<Array.<number>>}
38
38
  * @ignore
39
39
  */
40
- var T_ARRAYS = [];
41
- for (var a = 0; a < 5; a++) { T_ARRAYS.push([]); }
40
+ let T_ARRAYS = [];
41
+ for (let a = 0; a < 5; a++) { T_ARRAYS.push([]); }
42
42
 
43
43
 
44
44
  /**
@@ -53,12 +53,12 @@ for (var a = 0; a < 5; a++) { T_ARRAYS.push([]); }
53
53
  * result[1] will be the maximum value.
54
54
  */
55
55
  function flattenPointsOn(points, normal, result) {
56
- var min = Number.MAX_VALUE;
57
- var max = -Number.MAX_VALUE;
58
- var len = points.length;
59
- for (var i = 0; i < len; i++) {
56
+ let min = Number.MAX_VALUE;
57
+ let max = -Number.MAX_VALUE;
58
+ let len = points.length;
59
+ for (let i = 0; i < len; i++) {
60
60
  // The magnitude of the projection of the point onto the normal
61
- var dot = points[i].dot(normal);
61
+ let dot = points[i].dot(normal);
62
62
  if (dot < min) { min = dot; }
63
63
  if (dot > max) { max = dot; }
64
64
  }
@@ -83,11 +83,11 @@ function flattenPointsOn(points, normal, result) {
83
83
  * the direction of the overlap will be populated.
84
84
  */
85
85
  function isSeparatingAxis(aPos, bPos, aPoints, bPoints, axis, response) {
86
- var rangeA = T_ARRAYS.pop();
87
- var rangeB = T_ARRAYS.pop();
86
+ let rangeA = T_ARRAYS.pop();
87
+ let rangeB = T_ARRAYS.pop();
88
88
  // The magnitude of the offset between the two polygons
89
- var offsetV = T_VECTORS.pop().copy(bPos).sub(aPos);
90
- var projectedOffset = offsetV.dot(axis);
89
+ let offsetV = T_VECTORS.pop().copy(bPos).sub(aPos);
90
+ let projectedOffset = offsetV.dot(axis);
91
91
 
92
92
  // Project the polygons onto the axis.
93
93
  flattenPointsOn(aPoints, axis, rangeA);
@@ -105,7 +105,7 @@ function isSeparatingAxis(aPos, bPos, aPoints, bPoints, axis, response) {
105
105
 
106
106
  // This is not a separating axis. If we're calculating a response, calculate the overlap.
107
107
  if (response) {
108
- var overlap = 0;
108
+ let overlap = 0;
109
109
  // A starts further left than B
110
110
  if (rangeA[0] < rangeB[0]) {
111
111
  response.aInB = false;
@@ -115,8 +115,8 @@ function isSeparatingAxis(aPos, bPos, aPoints, bPoints, axis, response) {
115
115
  response.bInA = false;
116
116
  // B is fully inside A. Pick the shortest way out.
117
117
  } else {
118
- var option1 = rangeA[1] - rangeB[0];
119
- var option2 = rangeB[1] - rangeA[0];
118
+ let option1 = rangeA[1] - rangeB[0];
119
+ let option2 = rangeB[1] - rangeA[0];
120
120
  overlap = option1 < option2 ? option1 : -option2;
121
121
  }
122
122
  // B starts further left than A
@@ -128,14 +128,14 @@ function isSeparatingAxis(aPos, bPos, aPoints, bPoints, axis, response) {
128
128
  response.aInB = false;
129
129
  // A is fully inside B. Pick the shortest way out.
130
130
  } else {
131
- var option11 = rangeA[1] - rangeB[0];
132
- var option22 = rangeB[1] - rangeA[0];
131
+ let option11 = rangeA[1] - rangeB[0];
132
+ let option22 = rangeB[1] - rangeA[0];
133
133
  overlap = option11 < option22 ? option11 : -option22;
134
134
  }
135
135
  }
136
136
 
137
137
  // If this is the smallest amount of overlap we've seen so far, set it as the minimum overlap.
138
- var absOverlap = Math.abs(overlap);
138
+ let absOverlap = Math.abs(overlap);
139
139
  if (absOverlap < response.overlap) {
140
140
  response.overlap = absOverlap;
141
141
  response.overlapN.copy(axis);
@@ -168,8 +168,8 @@ function isSeparatingAxis(aPos, bPos, aPoints, bPoints, axis, response) {
168
168
  * RIGHT_VORNOI_REGION (1) if it is the right region.
169
169
  */
170
170
  function vornoiRegion(line, point) {
171
- var len2 = line.length2();
172
- var dp = point.dot(line);
171
+ let len2 = line.length2();
172
+ let dp = point.dot(line);
173
173
  if (dp < 0) {
174
174
  // If the point is beyond the start of the line, it is in the
175
175
  // left vornoi region.
@@ -196,16 +196,16 @@ function vornoiRegion(line, point) {
196
196
  */
197
197
  export function testPolygonPolygon(a, polyA, b, polyB, response) {
198
198
  // specific point for
199
- var aPoints = polyA.points;
200
- var aNormals = polyA.normals;
201
- var aLen = aNormals.length;
202
- var bPoints = polyB.points;
203
- var bNormals = polyB.normals;
204
- var bLen = bNormals.length;
199
+ let aPoints = polyA.points;
200
+ let aNormals = polyA.normals;
201
+ let aLen = aNormals.length;
202
+ let bPoints = polyB.points;
203
+ let bNormals = polyB.normals;
204
+ let bLen = bNormals.length;
205
205
  // aboslute shape position
206
- var posA = T_VECTORS.pop().copy(a.pos).add(a.ancestor.getAbsolutePosition()).add(polyA.pos);
207
- var posB = T_VECTORS.pop().copy(b.pos).add(b.ancestor.getAbsolutePosition()).add(polyB.pos);
208
- var i;
206
+ let posA = T_VECTORS.pop().copy(a.pos).add(a.ancestor.getAbsolutePosition()).add(polyA.pos);
207
+ let posB = T_VECTORS.pop().copy(b.pos).add(b.ancestor.getAbsolutePosition()).add(polyB.pos);
208
+ let i;
209
209
 
210
210
  // If any of the edge normals of A is a separating axis, no intersection.
211
211
  for (i = 0; i < aLen; i++) {
@@ -252,13 +252,13 @@ export function testPolygonPolygon(a, polyA, b, polyB, response) {
252
252
  export function testEllipseEllipse(a, ellipseA, b, ellipseB, response) {
253
253
  // Check if the distance between the centers of the two
254
254
  // circles is greater than their combined radius.
255
- var differenceV = T_VECTORS.pop().copy(b.pos).add(b.ancestor.getAbsolutePosition()).add(ellipseB.pos)
255
+ let differenceV = T_VECTORS.pop().copy(b.pos).add(b.ancestor.getAbsolutePosition()).add(ellipseB.pos)
256
256
  .sub(a.pos).add(a.ancestor.getAbsolutePosition()).sub(ellipseA.pos);
257
- var radiusA = ellipseA.radius;
258
- var radiusB = ellipseB.radius;
259
- var totalRadius = radiusA + radiusB;
260
- var totalRadiusSq = totalRadius * totalRadius;
261
- var distanceSq = differenceV.length2();
257
+ let radiusA = ellipseA.radius;
258
+ let radiusB = ellipseB.radius;
259
+ let totalRadius = radiusA + radiusB;
260
+ let totalRadiusSq = totalRadius * totalRadius;
261
+ let distanceSq = differenceV.length2();
262
262
  // If the distance is bigger than the combined radius, they don't intersect.
263
263
  if (distanceSq > totalRadiusSq) {
264
264
  T_VECTORS.push(differenceV);
@@ -266,7 +266,7 @@ export function testEllipseEllipse(a, ellipseA, b, ellipseB, response) {
266
266
  }
267
267
  // They intersect. If we're calculating a response, calculate the overlap.
268
268
  if (response) {
269
- var dist = Math.sqrt(distanceSq);
269
+ let dist = Math.sqrt(distanceSq);
270
270
  response.a = a;
271
271
  response.b = b;
272
272
  response.overlap = totalRadius - dist;
@@ -291,24 +291,24 @@ export function testEllipseEllipse(a, ellipseA, b, ellipseB, response) {
291
291
  */
292
292
  export function testPolygonEllipse(a, polyA, b, ellipseB, response) {
293
293
  // Get the position of the circle relative to the polygon.
294
- var circlePos = T_VECTORS.pop().copy(b.pos).add(b.ancestor.getAbsolutePosition()).add(ellipseB.pos)
294
+ let circlePos = T_VECTORS.pop().copy(b.pos).add(b.ancestor.getAbsolutePosition()).add(ellipseB.pos)
295
295
  .sub(a.pos).add(a.ancestor.getAbsolutePosition()).sub(polyA.pos);
296
- var radius = ellipseB.radius;
297
- var radius2 = radius * radius;
298
- var points = polyA.points;
299
- var edges = polyA.edges;
300
- var len = edges.length;
301
- var edge = T_VECTORS.pop();
302
- var normal = T_VECTORS.pop();
303
- var point = T_VECTORS.pop();
304
- var dist = 0;
296
+ let radius = ellipseB.radius;
297
+ let radius2 = radius * radius;
298
+ let points = polyA.points;
299
+ let edges = polyA.edges;
300
+ let len = edges.length;
301
+ let edge = T_VECTORS.pop();
302
+ let normal = T_VECTORS.pop();
303
+ let point = T_VECTORS.pop();
304
+ let dist = 0;
305
305
 
306
306
  // For each edge in the polygon:
307
- for (var i = 0; i < len; i++) {
308
- var next = i === len - 1 ? 0 : i + 1;
309
- var prev = i === 0 ? len - 1 : i - 1;
310
- var overlap = 0;
311
- var overlapN = null;
307
+ for (let i = 0; i < len; i++) {
308
+ let next = i === len - 1 ? 0 : i + 1;
309
+ let prev = i === 0 ? len - 1 : i - 1;
310
+ let overlap = 0;
311
+ let overlapN = null;
312
312
 
313
313
  // Get the edge.
314
314
  edge.copy(edges[i]);
@@ -323,11 +323,11 @@ export function testPolygonEllipse(a, polyA, b, ellipseB, response) {
323
323
  }
324
324
 
325
325
  // Calculate which Vornoi region the center of the circle is in.
326
- var region = vornoiRegion(edge, point);
327
- var inRegion = true;
326
+ let region = vornoiRegion(edge, point);
327
+ let inRegion = true;
328
328
  // If it's the left region:
329
329
  if (region === LEFT_VORNOI_REGION) {
330
- var point2 = null;
330
+ let point2 = null;
331
331
  if (len > 1) {
332
332
  // We need to make sure we're in the RIGHT_VORNOI_REGION of the previous edge.
333
333
  edge.copy(edges[prev]);
@@ -401,7 +401,7 @@ export function testPolygonEllipse(a, polyA, b, ellipseB, response) {
401
401
  // Find the perpendicular distance between the center of the
402
402
  // circle and the edge.
403
403
  dist = point.dot(normal);
404
- var distAbs = Math.abs(dist);
404
+ let distAbs = Math.abs(dist);
405
405
  // If the circle is on the outside of the edge, there is no intersection.
406
406
  if ((len === 1 || dist > 0) && distAbs > radius) {
407
407
  // No intersection
@@ -458,11 +458,11 @@ export function testPolygonEllipse(a, polyA, b, ellipseB, response) {
458
458
  */
459
459
  export function testEllipsePolygon(a, ellipseA, b, polyB, response) {
460
460
  // Test the polygon against the circle.
461
- var result = testPolygonEllipse(b, polyB, a, ellipseA, response);
461
+ let result = testPolygonEllipse(b, polyB, a, ellipseA, response);
462
462
  if (result && response) {
463
463
  // Swap A and B in the response.
464
- var resa = response.a;
465
- var aInB = response.aInB;
464
+ let resa = response.a;
465
+ let aInB = response.aInB;
466
466
  response.overlapN.negateSelf();
467
467
  response.overlapV.negateSelf();
468
468
  response.a = response.b;
@@ -140,7 +140,7 @@ import state from "./../state/state.js";
140
140
  bodyApplyGravity(body) {
141
141
  // apply gravity to the current velocity
142
142
  if (!body.ignoreGravity && body.gravityScale !== 0) {
143
- var gravity = this.gravity;
143
+ let gravity = this.gravity;
144
144
 
145
145
  // apply gravity if defined
146
146
  body.force.x += (body.mass * gravity.x) * body.gravityScale;
@@ -154,7 +154,7 @@ import state from "./../state/state.js";
154
154
  * @returns {boolean} true if the word is dirty
155
155
  */
156
156
  update(dt) {
157
- var isPaused = state.isPaused();
157
+ let isPaused = state.isPaused();
158
158
 
159
159
  // clear the quadtree
160
160
  this.broadphase.clear();
@@ -165,7 +165,7 @@ import state from "./../state/state.js";
165
165
  // iterate through all bodies
166
166
  this.bodies.forEach((body) => {
167
167
  if (!body.isStatic) {
168
- var ancestor = body.ancestor;
168
+ let ancestor = body.ancestor;
169
169
  // if the game is not paused, and ancestor can be updated
170
170
  if (!(isPaused && (!ancestor.updateWhenPaused)) &&
171
171
  (ancestor.inViewport || ancestor.alwaysUpdate)) {
@@ -6,7 +6,7 @@ import { version } from "./../index.js";
6
6
  * @see plugin.register
7
7
  * @namespace plugins
8
8
  */
9
- export var plugins = {};
9
+ export let plugins = {};
10
10
 
11
11
 
12
12
  class BasePlugin {
@@ -27,7 +27,7 @@ class BasePlugin {
27
27
  /**
28
28
  * @namespace plugin
29
29
  */
30
- export var plugin = {
30
+ export let plugin = {
31
31
 
32
32
  /**
33
33
  * a base Object for plugin <br>
@@ -64,14 +64,14 @@ export var plugin = {
64
64
  // reuse the logic behind object extends
65
65
  if (typeof(proto[name]) === "function") {
66
66
  // save the original function
67
- var _parent = proto[name];
67
+ let _parent = proto[name];
68
68
  // override the function with the new one
69
69
  Object.defineProperty(proto, name, {
70
70
  "configurable" : true,
71
71
  "value" : (function (name, fn) {
72
72
  return function () {
73
73
  this._patched = _parent;
74
- var ret = fn.apply(this, arguments);
74
+ let ret = fn.apply(this, arguments);
75
75
  this._patched = null;
76
76
  return ret;
77
77
  };
@@ -90,7 +90,7 @@ export var plugin = {
90
90
  * @see Base
91
91
  * @public
92
92
  * @param {plugin.Base} pluginObj - Plugin object to instantiate and register
93
- * @param {string} name
93
+ * @param {string} [name=pluginObj.constructor.name] - a unique name for this plugin
94
94
  * @param {object} [...arguments] - all extra parameters will be passed to the plugin constructor
95
95
  * @example
96
96
  * // register a new plugin
@@ -99,14 +99,14 @@ export var plugin = {
99
99
  * // under then me.plugins namespace
100
100
  * me.plugins.testPlugin.myfunction ();
101
101
  */
102
- register : function (pluginObj, name) {
102
+ register : function (pluginObj, name = pluginObj.toString().match(/ (\w+)/)[1]) {
103
103
  // ensure me.plugins[name] is not already "used"
104
104
  if (plugins[name]) {
105
105
  throw new Error("plugin " + name + " already registered");
106
106
  }
107
107
 
108
108
  // get extra arguments
109
- var _args = [];
109
+ let _args = [];
110
110
  if (arguments.length > 2) {
111
111
  // store extra arguments if any
112
112
  _args = Array.prototype.slice.call(arguments, 1);
@@ -114,7 +114,7 @@ export var plugin = {
114
114
 
115
115
  // try to instantiate the plugin
116
116
  _args[0] = pluginObj;
117
- var instance = new (pluginObj.bind.apply(pluginObj, _args))();
117
+ let instance = new (pluginObj.bind.apply(pluginObj, _args))();
118
118
 
119
119
  // inheritance check
120
120
  if (typeof instance === "undefined" || !(instance instanceof plugin.Base)) {
@@ -24,7 +24,7 @@ import pool from "./../system/pooling.js";
24
24
  this.id = settings.id;
25
25
 
26
26
  // add and configure the physic body
27
- var shape = settings.shapes;
27
+ let shape = settings.shapes;
28
28
  if (typeof shape === "undefined") {
29
29
  shape = pool.pull("Polygon", 0, 0, [
30
30
  pool.pull("Vector2d", 0, 0),