melonjs 15.1.4 → 15.1.6

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 (174) hide show
  1. package/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +1 -1
  2. package/dist/melonjs.mjs/_virtual/earcut.js +1 -1
  3. package/dist/melonjs.mjs/_virtual/howler.js +1 -1
  4. package/dist/melonjs.mjs/_virtual/index.js +1 -1
  5. package/dist/melonjs.mjs/application/application.js +1 -1
  6. package/dist/melonjs.mjs/application/header.js +1 -1
  7. package/dist/melonjs.mjs/application/resize.js +1 -1
  8. package/dist/melonjs.mjs/application/settings.js +1 -1
  9. package/dist/melonjs.mjs/audio/audio.js +1 -1
  10. package/dist/melonjs.mjs/camera/camera2d.js +3 -3
  11. package/dist/melonjs.mjs/const.js +1 -1
  12. package/dist/melonjs.mjs/entity/entity.js +3 -6
  13. package/dist/melonjs.mjs/geometries/ellipse.js +1 -1
  14. package/dist/melonjs.mjs/geometries/line.js +1 -1
  15. package/dist/melonjs.mjs/geometries/path2d.js +5 -5
  16. package/dist/melonjs.mjs/geometries/point.js +1 -1
  17. package/dist/melonjs.mjs/geometries/poly.js +3 -3
  18. package/dist/melonjs.mjs/geometries/rectangle.js +1 -1
  19. package/dist/melonjs.mjs/geometries/roundrect.js +1 -1
  20. package/dist/melonjs.mjs/index.js +4 -3
  21. package/dist/melonjs.mjs/input/gamepad.js +1 -1
  22. package/dist/melonjs.mjs/input/input.js +1 -1
  23. package/dist/melonjs.mjs/input/keyboard.js +1 -1
  24. package/dist/melonjs.mjs/input/pointer.js +1 -1
  25. package/dist/melonjs.mjs/input/pointerevent.js +10 -10
  26. package/dist/melonjs.mjs/lang/console.js +1 -1
  27. package/dist/melonjs.mjs/lang/deprecated.js +3 -2
  28. package/dist/melonjs.mjs/level/level.js +1 -1
  29. package/dist/melonjs.mjs/level/tiled/TMXGroup.js +1 -1
  30. package/dist/melonjs.mjs/level/tiled/TMXLayer.js +4 -4
  31. package/dist/melonjs.mjs/level/tiled/TMXObject.js +1 -1
  32. package/dist/melonjs.mjs/level/tiled/TMXTile.js +1 -1
  33. package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +1 -1
  34. package/dist/melonjs.mjs/level/tiled/TMXTileset.js +1 -1
  35. package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +1 -1
  36. package/dist/melonjs.mjs/level/tiled/TMXUtils.js +4 -4
  37. package/dist/melonjs.mjs/level/tiled/constants.js +1 -1
  38. package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +2 -2
  39. package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +1 -1
  40. package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +1 -1
  41. package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +2 -1
  42. package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +1 -1
  43. package/dist/melonjs.mjs/level/tiled/renderer/autodetect.js +1 -1
  44. package/dist/melonjs.mjs/loader/cache.js +1 -1
  45. package/dist/melonjs.mjs/loader/loader.js +4 -3
  46. package/dist/melonjs.mjs/loader/loadingscreen.js +1 -1
  47. package/dist/melonjs.mjs/loader/melonjs_logo.png.js +1 -1
  48. package/dist/melonjs.mjs/loader/parser.js +1 -1
  49. package/dist/melonjs.mjs/loader/settings.js +1 -1
  50. package/dist/melonjs.mjs/math/color.js +1 -1
  51. package/dist/melonjs.mjs/math/math.js +1 -1
  52. package/dist/melonjs.mjs/math/matrix2.js +1 -1
  53. package/dist/melonjs.mjs/math/matrix3.js +1 -1
  54. package/dist/melonjs.mjs/math/observable_vector2.js +1 -1
  55. package/dist/melonjs.mjs/math/observable_vector3.js +1 -1
  56. package/dist/melonjs.mjs/math/vector2.js +1 -1
  57. package/dist/melonjs.mjs/math/vector3.js +1 -1
  58. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/arraymultimap.js +1 -1
  59. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/multimap.js +1 -1
  60. package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +1 -1
  61. package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +1 -1
  62. package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +1 -1
  63. package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +1 -1
  64. package/dist/melonjs.mjs/particles/emitter.js +1 -1
  65. package/dist/melonjs.mjs/particles/particle.js +1 -1
  66. package/dist/melonjs.mjs/particles/settings.js +1 -1
  67. package/dist/melonjs.mjs/physics/body.js +3 -3
  68. package/dist/melonjs.mjs/physics/bounds.js +2 -2
  69. package/dist/melonjs.mjs/physics/collision.js +1 -1
  70. package/dist/melonjs.mjs/physics/detector.js +5 -5
  71. package/dist/melonjs.mjs/physics/quadtree.js +2 -2
  72. package/dist/melonjs.mjs/physics/response.js +1 -1
  73. package/dist/melonjs.mjs/physics/sat.js +13 -12
  74. package/dist/melonjs.mjs/physics/world.js +1 -1
  75. package/dist/melonjs.mjs/plugin/plugin.js +3 -3
  76. package/dist/melonjs.mjs/renderable/collectable.js +1 -1
  77. package/dist/melonjs.mjs/renderable/colorlayer.js +1 -1
  78. package/dist/melonjs.mjs/renderable/container.js +48 -38
  79. package/dist/melonjs.mjs/renderable/draggable.js +121 -0
  80. package/dist/melonjs.mjs/renderable/dragndrop.js +3 -113
  81. package/dist/melonjs.mjs/renderable/imagelayer.js +1 -1
  82. package/dist/melonjs.mjs/renderable/light2d.js +1 -1
  83. package/dist/melonjs.mjs/renderable/nineslicesprite.js +1 -1
  84. package/dist/melonjs.mjs/renderable/renderable.js +7 -10
  85. package/dist/melonjs.mjs/renderable/sprite.js +1 -1
  86. package/dist/melonjs.mjs/renderable/trigger.js +2 -2
  87. package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +7 -4
  88. package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +8 -2
  89. package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +1 -1
  90. package/dist/melonjs.mjs/state/stage.js +1 -1
  91. package/dist/melonjs.mjs/state/state.js +1 -1
  92. package/dist/melonjs.mjs/system/device.js +1 -1
  93. package/dist/melonjs.mjs/system/dom.js +1 -1
  94. package/dist/melonjs.mjs/system/event.js +1 -1
  95. package/dist/melonjs.mjs/system/platform.js +1 -1
  96. package/dist/melonjs.mjs/system/pooling.js +1 -1
  97. package/dist/melonjs.mjs/system/save.js +1 -1
  98. package/dist/melonjs.mjs/system/timer.js +1 -1
  99. package/dist/melonjs.mjs/text/bitmaptext.js +3 -3
  100. package/dist/melonjs.mjs/text/bitmaptextdata.js +1 -1
  101. package/dist/melonjs.mjs/text/glyph.js +1 -1
  102. package/dist/melonjs.mjs/text/text.js +2 -2
  103. package/dist/melonjs.mjs/text/textmetrics.js +1 -1
  104. package/dist/melonjs.mjs/text/textstyle.js +1 -1
  105. package/dist/melonjs.mjs/tweens/easing.js +1 -1
  106. package/dist/melonjs.mjs/tweens/interpolation.js +1 -1
  107. package/dist/melonjs.mjs/tweens/tween.js +1 -1
  108. package/dist/melonjs.mjs/utils/agent.js +1 -1
  109. package/dist/melonjs.mjs/utils/array.js +1 -1
  110. package/dist/melonjs.mjs/utils/file.js +1 -1
  111. package/dist/melonjs.mjs/utils/function.js +1 -1
  112. package/dist/melonjs.mjs/utils/string.js +1 -1
  113. package/dist/melonjs.mjs/utils/utils.js +1 -1
  114. package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +3 -6
  115. package/dist/melonjs.mjs/video/renderer.js +1 -1
  116. package/dist/melonjs.mjs/video/texture/atlas.js +1 -1
  117. package/dist/melonjs.mjs/video/texture/cache.js +1 -1
  118. package/dist/melonjs.mjs/video/texture/canvas_texture.js +2 -2
  119. package/dist/melonjs.mjs/video/utils/autodetect.js +1 -1
  120. package/dist/melonjs.mjs/video/video.js +1 -1
  121. package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +1 -1
  122. package/dist/melonjs.mjs/video/webgl/compositors/compositor.js +1 -1
  123. package/dist/melonjs.mjs/video/webgl/compositors/primitive_compositor.js +1 -1
  124. package/dist/melonjs.mjs/video/webgl/compositors/quad_compositor.js +1 -1
  125. package/dist/melonjs.mjs/video/webgl/glshader.js +1 -1
  126. package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +1 -1
  127. package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +1 -1
  128. package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +1 -1
  129. package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +1 -1
  130. package/dist/melonjs.mjs/video/webgl/utils/attributes.js +1 -1
  131. package/dist/melonjs.mjs/video/webgl/utils/precision.js +1 -1
  132. package/dist/melonjs.mjs/video/webgl/utils/program.js +1 -1
  133. package/dist/melonjs.mjs/video/webgl/utils/string.js +1 -1
  134. package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +1 -1
  135. package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +1 -1
  136. package/dist/melonjs.module.js +153 -135
  137. package/dist/types/camera/camera2d.d.ts +4 -4
  138. package/dist/types/index.d.ts +1 -1
  139. package/dist/types/loader/loader.d.ts +9 -4
  140. package/dist/types/physics/body.d.ts +4 -4
  141. package/dist/types/physics/detector.d.ts +5 -5
  142. package/dist/types/physics/sat.d.ts +12 -12
  143. package/dist/types/renderable/container.d.ts +25 -25
  144. package/dist/types/renderable/draggable.d.ts +53 -0
  145. package/dist/types/renderable/dragndrop.d.ts +0 -52
  146. package/dist/types/renderable/renderable.d.ts +3 -3
  147. package/package.json +11 -11
  148. package/src/camera/camera2d.js +2 -2
  149. package/src/entity/entity.js +2 -5
  150. package/src/geometries/path2d.js +4 -4
  151. package/src/geometries/poly.js +2 -2
  152. package/src/index.js +2 -1
  153. package/src/input/pointerevent.js +9 -9
  154. package/src/lang/deprecated.js +2 -1
  155. package/src/level/tiled/TMXLayer.js +3 -3
  156. package/src/level/tiled/TMXUtils.js +3 -3
  157. package/src/level/tiled/renderer/TMXHexagonalRenderer.js +1 -1
  158. package/src/loader/loader.js +3 -2
  159. package/src/physics/body.js +2 -2
  160. package/src/physics/bounds.js +1 -1
  161. package/src/physics/detector.js +4 -4
  162. package/src/physics/quadtree.js +1 -1
  163. package/src/physics/sat.js +11 -11
  164. package/src/renderable/container.js +47 -37
  165. package/src/renderable/draggable.js +114 -0
  166. package/src/renderable/dragndrop.js +0 -109
  167. package/src/renderable/renderable.js +6 -9
  168. package/src/renderable/trigger.js +1 -1
  169. package/src/renderable/ui/uibaseelement.js +6 -3
  170. package/src/renderable/ui/uispriteelement.js +7 -1
  171. package/src/text/bitmaptext.js +2 -2
  172. package/src/text/text.js +1 -1
  173. package/src/video/canvas/canvas_renderer.js +2 -5
  174. package/src/video/texture/canvas_texture.js +1 -1
@@ -0,0 +1,121 @@
1
+ /*!
2
+ * melonJS Game Engine - v15.1.6
3
+ * http://www.melonjs.org
4
+ * melonjs is licensed under the MIT License.
5
+ * http://www.opensource.org/licenses/mit-license
6
+ * @copyright (C) 2011 - 2023 Olivier Biot (AltByte Pte Ltd)
7
+ */
8
+ import Vector2d from '../math/vector2.js';
9
+ import { emit, DRAGSTART, DRAGEND, on, POINTERMOVE, off } from '../system/event.js';
10
+ import Renderable from './renderable.js';
11
+ import { registerPointerEvent, releasePointerEvent } from '../input/pointerevent.js';
12
+
13
+ /**
14
+ * @classdesc
15
+ * A Draggable base object
16
+ * @see DropTarget
17
+ * @augments Renderable
18
+ */
19
+ class Draggable extends Renderable {
20
+ /**
21
+ * @param {number} x - the x coordinates of the draggable object
22
+ * @param {number} y - the y coordinates of the draggable object
23
+ * @param {number} width - draggable object width
24
+ * @param {number} height - draggable object height
25
+ */
26
+ constructor(x, y, width, height) {
27
+ super(x, y, width, height);
28
+ this.isKinematic = false;
29
+ this.dragging = false;
30
+ this.dragId = null;
31
+ this.grabOffset = new Vector2d(0, 0);
32
+ this.initEvents();
33
+ }
34
+
35
+ /**
36
+ * Initializes the events the modules needs to listen to
37
+ * It translates the pointer events to me.events
38
+ * in order to make them pass through the system and to make
39
+ * this module testable. Then we subscribe this module to the
40
+ * transformed events.
41
+ * @name initEvents
42
+ * @memberof Draggable
43
+ * @private
44
+ */
45
+ initEvents() {
46
+ registerPointerEvent("pointerdown", this, (e) => emit(DRAGSTART, e, this));
47
+ registerPointerEvent("pointerup", this, (e) => emit(DRAGEND, e, this));
48
+ registerPointerEvent("pointercancel", this, (e) => emit(DRAGEND, e, this));
49
+ on(POINTERMOVE, (e) => this.dragMove(e));
50
+ on(DRAGSTART, (e, draggable) => {
51
+ if (draggable === this) {
52
+ this.dragStart(e);
53
+ }
54
+ });
55
+ on(DRAGEND, (e, draggable) => {
56
+ if (draggable === this) {
57
+ this.dragEnd(e);
58
+ }
59
+ });
60
+ }
61
+
62
+ /**
63
+ * Gets called when the user starts dragging the entity
64
+ * @name dragStart
65
+ * @memberof Draggable
66
+ * @param {object} e - the pointer event
67
+ * @returns {boolean} false if the object is being dragged
68
+ */
69
+ dragStart(e) {
70
+ if (this.dragging === false) {
71
+ this.dragging = true;
72
+ this.grabOffset.set(e.gameX, e.gameY);
73
+ this.grabOffset.sub(this.pos);
74
+ return false;
75
+ }
76
+ }
77
+
78
+ /**
79
+ * Gets called when the user drags this entity around
80
+ * @name dragMove
81
+ * @memberof Draggable
82
+ * @param {object} e - the pointer event
83
+ */
84
+ dragMove(e) {
85
+ if (this.dragging === true) {
86
+ this.pos.set(e.gameX, e.gameY, this.pos.z); //TODO : z ?
87
+ this.pos.sub(this.grabOffset);
88
+ }
89
+ }
90
+
91
+ /**
92
+ * Gets called when the user stops dragging the entity
93
+ * @name dragEnd
94
+ * @memberof Draggable
95
+ * @returns {boolean} false if the object stopped being dragged
96
+ */
97
+ dragEnd() {
98
+ if (this.dragging === true) {
99
+ this.dragging = false;
100
+ return false;
101
+ }
102
+ }
103
+
104
+ /**
105
+ * Destructor
106
+ * @name destroy
107
+ * @memberof Draggable
108
+ * @ignore
109
+ */
110
+ destroy() {
111
+ off(POINTERMOVE, this.dragMove);
112
+ off(DRAGSTART, this.dragStart);
113
+ off(DRAGEND, this.dragEnd);
114
+ releasePointerEvent("pointerdown", this);
115
+ releasePointerEvent("pointerup", this);
116
+ releasePointerEvent("pointercancel", this);
117
+ super.destroy();
118
+ }
119
+ }
120
+
121
+ export { Draggable };
@@ -1,122 +1,12 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.1.4
2
+ * melonJS Game Engine - v15.1.6
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
6
6
  * @copyright (C) 2011 - 2023 Olivier Biot (AltByte Pte Ltd)
7
7
  */
8
- import Vector2d from '../math/vector2.js';
9
- import { emit, DRAGSTART, DRAGEND, on, POINTERMOVE, off } from '../system/event.js';
8
+ import { on, DRAGEND, off } from '../system/event.js';
10
9
  import Renderable from './renderable.js';
11
- import { registerPointerEvent, releasePointerEvent } from '../input/pointerevent.js';
12
-
13
- /**
14
- * @classdesc
15
- * A Draggable base object
16
- * @see DropTarget
17
- * @augments Renderable
18
- */
19
- class Draggable extends Renderable {
20
- /**
21
- * @param {number} x - the x coordinates of the draggable object
22
- * @param {number} y - the y coordinates of the draggable object
23
- * @param {number} width - draggable object width
24
- * @param {number} height - draggable object height
25
- */
26
- constructor(x, y, width, height) {
27
- super(x, y, width, height);
28
- this.isKinematic = false;
29
- this.dragging = false;
30
- this.dragId = null;
31
- this.grabOffset = new Vector2d(0, 0);
32
- this.initEvents();
33
- }
34
-
35
- /**
36
- * Initializes the events the modules needs to listen to
37
- * It translates the pointer events to me.events
38
- * in order to make them pass through the system and to make
39
- * this module testable. Then we subscribe this module to the
40
- * transformed events.
41
- * @name initEvents
42
- * @memberof Draggable
43
- * @private
44
- */
45
- initEvents() {
46
- registerPointerEvent("pointerdown", this, (e) => emit(DRAGSTART, e, this));
47
- registerPointerEvent("pointerup", this, (e) => emit(DRAGEND, e, this));
48
- registerPointerEvent("pointercancel", this, (e) => emit(DRAGEND, e, this));
49
- on(POINTERMOVE, (e) => this.dragMove(e));
50
- on(DRAGSTART, (e, draggable) => {
51
- if (draggable === this) {
52
- this.dragStart(e);
53
- }
54
- });
55
- on(DRAGEND, (e, draggable) => {
56
- if (draggable === this) {
57
- this.dragEnd(e);
58
- }
59
- });
60
- }
61
-
62
- /**
63
- * Gets called when the user starts dragging the entity
64
- * @name dragStart
65
- * @memberof Draggable
66
- * @param {object} e - the pointer event
67
- * @returns {boolean} false if the object is being dragged
68
- */
69
- dragStart(e) {
70
- if (this.dragging === false) {
71
- this.dragging = true;
72
- this.grabOffset.set(e.gameX, e.gameY);
73
- this.grabOffset.sub(this.pos);
74
- return false;
75
- }
76
- }
77
-
78
- /**
79
- * Gets called when the user drags this entity around
80
- * @name dragMove
81
- * @memberof Draggable
82
- * @param {object} e - the pointer event
83
- */
84
- dragMove(e) {
85
- if (this.dragging === true) {
86
- this.pos.set(e.gameX, e.gameY, this.pos.z); //TODO : z ?
87
- this.pos.sub(this.grabOffset);
88
- }
89
- }
90
-
91
- /**
92
- * Gets called when the user stops dragging the entity
93
- * @name dragEnd
94
- * @memberof Draggable
95
- * @returns {boolean} false if the object stopped being dragged
96
- */
97
- dragEnd() {
98
- if (this.dragging === true) {
99
- this.dragging = false;
100
- return false;
101
- }
102
- }
103
-
104
- /**
105
- * Destructor
106
- * @name destroy
107
- * @memberof Draggable
108
- * @ignore
109
- */
110
- destroy() {
111
- off(POINTERMOVE, this.dragMove);
112
- off(DRAGSTART, this.dragStart);
113
- off(DRAGEND, this.dragEnd);
114
- releasePointerEvent("pointerdown", this);
115
- releasePointerEvent("pointerup", this);
116
- releasePointerEvent("pointercancel", this);
117
- super.destroy();
118
- }
119
- }
120
10
 
121
11
  /**
122
12
  * @classdesc
@@ -221,4 +111,4 @@ class DropTarget extends Renderable {
221
111
  }
222
112
  }
223
113
 
224
- export { Draggable, DropTarget };
114
+ export { DropTarget };
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.1.4
2
+ * melonJS Game Engine - v15.1.6
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.1.4
2
+ * melonJS Game Engine - v15.1.6
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.1.4
2
+ * melonJS Game Engine - v15.1.6
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.1.4
2
+ * melonJS Game Engine - v15.1.6
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -270,12 +270,12 @@ import { releaseAllPointerEvents } from '../input/pointerevent.js';
270
270
  }
271
271
 
272
272
  /**
273
- * Whether the renderable object is floating, or contained in a floating container
273
+ * Whether the renderable object is floating (i.e. used screen coordinates), or contained in a floating parent container
274
274
  * @see Renderable#floating
275
275
  * @type {boolean}
276
276
  */
277
277
  get isFloating() {
278
- return this.floating === true || (typeof this.ancestor !== "undefined" && this.ancestor.floating === true);
278
+ return this.floating === true || (typeof this.ancestor !== "undefined" && this.ancestor.isFloating === true);
279
279
  }
280
280
 
281
281
  /**
@@ -584,11 +584,8 @@ import { releaseAllPointerEvents } from '../input/pointerevent.js';
584
584
  }
585
585
 
586
586
  if (absolute === true) {
587
- bounds.centerOn(this.pos.x + bounds.x + bounds.width / 2, this.pos.y + bounds.y + bounds.height / 2);
588
- if (typeof this.ancestor !== "undefined" && typeof this.ancestor.addChild === "function" && this.floating !== true) {
589
- bounds.translate(this.ancestor.getAbsolutePosition());
590
- }
591
-
587
+ var absPos = this.getAbsolutePosition();
588
+ bounds.centerOn(absPos.x + bounds.x + bounds.width / 2, absPos.y + bounds.y + bounds.height / 2);
592
589
  }
593
590
  return bounds;
594
591
 
@@ -617,7 +614,7 @@ import { releaseAllPointerEvents } from '../input/pointerevent.js';
617
614
  }
618
615
  // XXX Cache me or something
619
616
  this._absPos.set(this.pos.x, this.pos.y);
620
- if (typeof this.ancestor !== "undefined" && typeof this.ancestor.addChild === "function" && this.floating !== true) {
617
+ if (typeof this.ancestor !== "undefined" && typeof this.ancestor.getAbsolutePosition === "function" && this.floating !== true) {
621
618
  this._absPos.add(this.ancestor.getAbsolutePosition());
622
619
  }
623
620
  return this._absPos;
@@ -735,7 +732,7 @@ import { releaseAllPointerEvents } from '../input/pointerevent.js';
735
732
  * onCollision callback, triggered in case of collision,
736
733
  * when this renderable body is colliding with another one
737
734
  * @param {ResponseObject} response - the collision response object
738
- * @param {Renderable} other - the other renderable touching this one (a reference to response.a or response.b)
735
+ * @param {Renderable|Container|Entity|Sprite|NineSliceSprite} other - the other renderable touching this one (a reference to response.a or response.b)
739
736
  * @returns {boolean} true if the object should respond to the collision (its position and velocity will be corrected)
740
737
  * @example
741
738
  * // colision handler
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.1.4
2
+ * melonJS Game Engine - v15.1.6
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.1.4
2
+ * melonJS Game Engine - v15.1.6
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -143,7 +143,7 @@ import pool from '../system/pooling.js';
143
143
  * @name onCollision
144
144
  * @memberof Trigger
145
145
  * @param {ResponseObject} response - the collision response object
146
- * @param {Renderable} other - the other renderable touching this one (a reference to response.a or response.b)
146
+ * @param {Renderable|Container|Entity|Sprite|NineSliceSprite} other - the other renderable touching this one (a reference to response.a or response.b)
147
147
  * @returns {boolean} true if the object should respond to the collision (its position and velocity will be corrected)
148
148
  */
149
149
  onCollision(response, other) { // eslint-disable-line no-unused-vars
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.1.4
2
+ * melonJS Game Engine - v15.1.6
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -71,7 +71,7 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
71
71
 
72
72
  /**
73
73
  * UI base elements use screen coordinates by default
74
- * (Note: any child elements added to a UIBaseElement should set their floating property to false)
74
+ * (Note: any child elements added to a UIBaseElement should have their floating property to false)
75
75
  * @see Renderable.floating
76
76
  * @type {boolean}
77
77
  * @default true
@@ -83,6 +83,9 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
83
83
 
84
84
  // enable event detection
85
85
  this.isKinematic = false;
86
+
87
+ // update container and children bounds automatically
88
+ this.enableChildBoundsUpdate = true;
86
89
  }
87
90
 
88
91
  /**
@@ -117,7 +120,7 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
117
120
  * @returns {boolean} return false if we need to stop propagating the event
118
121
  */
119
122
  onClick(event) { // eslint-disable-line no-unused-vars
120
- return false;
123
+ return true;
121
124
  }
122
125
 
123
126
  /**
@@ -210,7 +213,7 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
210
213
  * @returns {boolean} return false if we need to stop propagating the event
211
214
  */
212
215
  onRelease() {
213
- return false;
216
+ return true;
214
217
  }
215
218
 
216
219
  /**
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.1.4
2
+ * melonJS Game Engine - v15.1.6
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -80,7 +80,13 @@ import { registerPointerEvent, releasePointerEvent } from '../../input/pointerev
80
80
  this.holdTimeout = -1;
81
81
  this.released = true;
82
82
 
83
- // GUI items use screen coordinates
83
+ /**
84
+ * if this UISpriteElement should use screen coordinates or local coordinates
85
+ * (Note: any UISpriteElement elements added to a floating parent container should have their floating property to false)
86
+ * @see Renderable.floating
87
+ * @type {boolean}
88
+ * @default true
89
+ */
84
90
  this.floating = true;
85
91
 
86
92
  // enable event detection
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.1.4
2
+ * melonJS Game Engine - v15.1.6
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.1.4
2
+ * melonJS Game Engine - v15.1.6
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.1.4
2
+ * melonJS Game Engine - v15.1.6
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.1.4
2
+ * melonJS Game Engine - v15.1.6
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.1.4
2
+ * melonJS Game Engine - v15.1.6
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.1.4
2
+ * melonJS Game Engine - v15.1.6
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.1.4
2
+ * melonJS Game Engine - v15.1.6
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.1.4
2
+ * melonJS Game Engine - v15.1.6
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.1.4
2
+ * melonJS Game Engine - v15.1.6
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.1.4
2
+ * melonJS Game Engine - v15.1.6
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.1.4
2
+ * melonJS Game Engine - v15.1.6
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -239,7 +239,7 @@ import TextMetrics from './textmetrics.js';
239
239
  }
240
240
 
241
241
  if (absolute === true) {
242
- if (typeof this.ancestor !== "undefined" && typeof this.ancestor.addChild === "function" && this.floating !== true) {
242
+ if (typeof this.ancestor !== "undefined" && typeof this.ancestor.getAbsolutePosition === "function" && this.floating !== true) {
243
243
  bounds.translate(this.ancestor.getAbsolutePosition());
244
244
  }
245
245
  }
@@ -318,7 +318,7 @@ import TextMetrics from './textmetrics.js';
318
318
 
319
319
  for (let i = 0; i < this._text.length; i++) {
320
320
  x = lX;
321
- let string = this._text[i].trimEnd();
321
+ const string = this._text[i].trimEnd();
322
322
  // adjust x pos based on alignment value
323
323
  let stringWidth = this.metrics.lineWidth(string);
324
324
  switch (this.textAlign) {
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.1.4
2
+ * melonJS Game Engine - v15.1.6
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.1.4
2
+ * melonJS Game Engine - v15.1.6
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.1.4
2
+ * melonJS Game Engine - v15.1.6
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -382,7 +382,7 @@ const toPX = [12, 24, 0.75, 1];
382
382
  setContextStyle(context, this);
383
383
 
384
384
  for (let i = 0; i < text.length; i++) {
385
- let string = text[i].trimEnd();
385
+ const string = text[i].trimEnd();
386
386
  // draw the string
387
387
  if (this.fillStyle.alpha > 0) {
388
388
  context.fillText(string, x, y);
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.1.4
2
+ * melonJS Game Engine - v15.1.6
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.1.4
2
+ * melonJS Game Engine - v15.1.6
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.1.4
2
+ * melonJS Game Engine - v15.1.6
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.1.4
2
+ * melonJS Game Engine - v15.1.6
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.1.4
2
+ * melonJS Game Engine - v15.1.6
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.1.4
2
+ * melonJS Game Engine - v15.1.6
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.1.4
2
+ * melonJS Game Engine - v15.1.6
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.1.4
2
+ * melonJS Game Engine - v15.1.6
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.1.4
2
+ * melonJS Game Engine - v15.1.6
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.1.4
2
+ * melonJS Game Engine - v15.1.6
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.1.4
2
+ * melonJS Game Engine - v15.1.6
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license