bard-legends-framework 0.9.6 → 0.9.7

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 (238) hide show
  1. package/dist/_interfaces/index.d.ts +2 -2
  2. package/dist/_interfaces/index.js +2 -3
  3. package/dist/game-entities/attachable/attachable.d.ts +6 -6
  4. package/dist/game-entities/attachable/attachable.js +28 -30
  5. package/dist/game-entities/attachable/attachable.spec.js +129 -128
  6. package/dist/game-entities/attachable/attachable.store.d.ts +5 -5
  7. package/dist/game-entities/attachable/attachable.store.js +34 -32
  8. package/dist/game-entities/attachable/attachable.test.js +132 -131
  9. package/dist/game-entities/attachable/destroyable.d.ts +13 -13
  10. package/dist/game-entities/attachable/destroyable.js +64 -69
  11. package/dist/game-entities/attachable/helpers/decorate-actions-lib.d.ts +15 -15
  12. package/dist/game-entities/attachable/helpers/decorate-actions-lib.js +125 -116
  13. package/dist/game-entities/attachable/helpers/referance-variable.d.ts +15 -15
  14. package/dist/game-entities/attachable/helpers/referance-variable.js +47 -48
  15. package/dist/game-entities/attachable/interfaces.d.ts +6 -6
  16. package/dist/game-entities/attachable/interfaces.js +2 -3
  17. package/dist/game-entities/base/helpers/decorate-actions-lib.js +0 -1
  18. package/dist/game-entities/controller/controller.js +0 -1
  19. package/dist/game-entities/controller/controller.spec.js +128 -125
  20. package/dist/game-entities/entity/entity.spec.js +263 -293
  21. package/dist/game-entities/entity/helpers/view-creation.helper.d.ts +7 -7
  22. package/dist/game-entities/entity/helpers/view-creation.helper.js +48 -48
  23. package/dist/game-entities/scene/scene.spec.js +219 -223
  24. package/dist/game-entities/service/service.js +0 -4
  25. package/dist/game-entities/service/service.spec.js +265 -237
  26. package/dist/game-entities/service/service.test.js +4 -2
  27. package/dist/game-entities/update-loop.d.ts +18 -18
  28. package/dist/game-entities/update-loop.js +46 -28
  29. package/dist/game-entities/view/view.spec.js +490 -506
  30. package/dist/game-entities/view/view.test.js +1 -1
  31. package/dist/lib/animator/animations.d.ts +13 -13
  32. package/dist/lib/animator/animations.js +43 -40
  33. package/dist/lib/animator/animator.d.ts +41 -41
  34. package/dist/lib/animator/animator.js +194 -197
  35. package/dist/lib/animator/animator.spec.js +699 -612
  36. package/dist/lib/animator/index.js +24 -19
  37. package/dist/lib/libraries/animator/animations.d.ts +13 -13
  38. package/dist/lib/libraries/animator/animations.js +43 -40
  39. package/dist/lib/libraries/animator/animator.d.ts +41 -41
  40. package/dist/lib/libraries/animator/animator.js +194 -197
  41. package/dist/lib/libraries/animator/animator.spec.js +699 -612
  42. package/dist/lib/libraries/animator/index.js +24 -19
  43. package/dist/lib/libraries/path-finder/path-finder.d.ts +2 -2
  44. package/dist/lib/libraries/path-finder/path-finder.js +19 -20
  45. package/dist/lib/path-finder/path-finder.d.ts +2 -2
  46. package/dist/lib/path-finder/path-finder.js +19 -20
  47. package/dist/lib/services/keyboard/keyboard.d.ts +4 -4
  48. package/dist/lib/services/keyboard/keyboard.js +39 -31
  49. package/dist/lib/services/mouse/mouse.service.d.ts +8 -8
  50. package/dist/lib/services/mouse/mouse.service.js +65 -53
  51. package/dist/lib/services/mouse/mouser-target-focus.service.d.ts +11 -11
  52. package/dist/lib/services/mouse/mouser-target-focus.service.js +83 -81
  53. package/dist/lib/update-loop.d.ts +10 -10
  54. package/dist/lib/update-loop.js +35 -27
  55. package/dist/physics/entitity-types/immovable-physics-entity.d.ts +6 -6
  56. package/dist/physics/entitity-types/immovable-physics-entity.js +23 -24
  57. package/dist/physics/entitity-types/movable-entity.d.ts +6 -6
  58. package/dist/physics/entitity-types/movable-entity.js +21 -22
  59. package/dist/physics/entitity-types/movable-physics-entity.d.ts +14 -14
  60. package/dist/physics/entitity-types/movable-physics-entity.js +83 -88
  61. package/dist/physics/entitity-types/physics-entity.d.ts +23 -23
  62. package/dist/physics/entitity-types/physics-entity.js +97 -88
  63. package/dist/physics/helpers/closest-available-space.helper.d.ts +16 -16
  64. package/dist/physics/helpers/closest-available-space.helper.js +98 -96
  65. package/dist/physics/helpers/closest-available-space.helper.spec.js +115 -68
  66. package/dist/physics/helpers/p2js.helper.d.ts +3 -3
  67. package/dist/physics/helpers/p2js.helper.js +21 -22
  68. package/dist/physics/helpers/shape-factory.d.ts +9 -4
  69. package/dist/physics/helpers/shape-factory.js +99 -75
  70. package/dist/physics/libs/p2js.helper.js +1 -1
  71. package/dist/physics/libs/position-to-grid-position-converter.d.ts +3 -3
  72. package/dist/physics/libs/position-to-grid-position-converter.js +15 -13
  73. package/dist/physics/module//360/237/223/220services/availability-grid.service.d.ts +10 -5
  74. package/dist/physics/module//360/237/223/220services/availability-grid.service.js +77 -57
  75. package/dist/physics/module//360/237/223/220services/border.service.d.ts +2 -2
  76. package/dist/physics/module//360/237/223/220services/border.service.js +57 -37
  77. package/dist/physics/module//360/237/223/220services/collision/physics-body-group.service.js +1 -1
  78. package/dist/physics/module//360/237/223/220services/collisions.service.d.ts +7 -7
  79. package/dist/physics/module//360/237/223/220services/collisions.service.js +110 -98
  80. package/dist/physics/module//360/237/223/220services/debug-visuals.service.d.ts +28 -6
  81. package/dist/physics/module//360/237/223/220services/debug-visuals.service.js +121 -89
  82. package/dist/physics/module//360/237/223/220services/eliptic-explosion.service.d.ts +15 -7
  83. package/dist/physics/module//360/237/223/220services/eliptic-explosion.service.js +117 -93
  84. package/dist/physics/module//360/237/223/220services/explosion.service.d.ts +14 -7
  85. package/dist/physics/module//360/237/223/220services/explosion.service.js +102 -77
  86. package/dist/physics/module//360/237/223/220services/explosions/eliptic-explosion.service.d.ts +15 -7
  87. package/dist/physics/module//360/237/223/220services/explosions/eliptic-explosion.service.js +117 -93
  88. package/dist/physics/module//360/237/223/220services/explosions/explosion.service.d.ts +14 -7
  89. package/dist/physics/module//360/237/223/220services/explosions/explosion.service.js +102 -77
  90. package/dist/physics/module//360/237/223/220services/explosions/helpers/ray-cast-hit-converter.d.ts +3 -3
  91. package/dist/physics/module//360/237/223/220services/explosions/helpers/ray-cast-hit-converter.js +71 -67
  92. package/dist/physics/module//360/237/223/220services/helpers/ray-cast-hit-converter.d.ts +3 -3
  93. package/dist/physics/module//360/237/223/220services/helpers/ray-cast-hit-converter.js +71 -67
  94. package/dist/physics/module//360/237/223/220services/impact/eliptic-explosion.service.js +1 -1
  95. package/dist/physics/module//360/237/223/220services/materials.service.d.ts +16 -11
  96. package/dist/physics/module//360/237/223/220services/materials.service.js +118 -108
  97. package/dist/physics/module//360/237/223/220services/path-finder.service.d.ts +19 -8
  98. package/dist/physics/module//360/237/223/220services/path-finder.service.js +121 -82
  99. package/dist/physics/module//360/237/223/220services/physics-world.service.d.ts +30 -15
  100. package/dist/physics/module//360/237/223/220services/physics-world.service.js +122 -100
  101. package/dist/physics/module//360/237/223/220services/ray-casting.service.d.ts +3 -3
  102. package/dist/physics/module//360/237/223/220services/ray-casting.service.js +87 -86
  103. package/dist/physics/module//360/237/223/220services/shape-creation.service.d.ts +9 -4
  104. package/dist/physics/module//360/237/223/220services/shape-creation.service.js +113 -84
  105. package/dist/physics/module//360/237/223/220services/test-visuals/test-visuals.service.js +2 -1
  106. package/dist/physics/module//360/237/247/212entities/data-structures/availability-grid-cache.d.ts +8 -8
  107. package/dist/physics/module//360/237/247/212entities/data-structures/availability-grid-cache.js +32 -33
  108. package/dist/physics/physics-world.d.ts +50 -34
  109. package/dist/physics/physics-world.js +142 -133
  110. package/dist/physics/sub-elements/available-spaces/helpers/availability-grid.helper.d.ts +3 -3
  111. package/dist/physics/sub-elements/available-spaces/helpers/availability-grid.helper.js +15 -13
  112. package/dist/physics/sub-elements/available-spaces/physics-availability-grid.d.ts +9 -9
  113. package/dist/physics/sub-elements/available-spaces/physics-availability-grid.js +82 -77
  114. package/dist/physics/sub-elements/available-spaces/physics-available-spaces.d.ts +18 -14
  115. package/dist/physics/sub-elements/available-spaces/physics-available-spaces.js +91 -79
  116. package/dist/physics/sub-elements/collisions/contact-equation-orginiser.d.ts +11 -11
  117. package/dist/physics/sub-elements/collisions/contact-equation-orginiser.js +84 -76
  118. package/dist/physics/sub-elements/collisions/physics-collision.d.ts +7 -7
  119. package/dist/physics/sub-elements/collisions/physics-collision.js +43 -44
  120. package/dist/physics/sub-elements/elements/physics-body-groups.d.ts +11 -11
  121. package/dist/physics/sub-elements/elements/physics-body-groups.js +54 -54
  122. package/dist/physics/sub-elements/elements/physics-materials.d.ts +15 -10
  123. package/dist/physics/sub-elements/elements/physics-materials.js +101 -100
  124. package/dist/physics/sub-elements/elements/physics-world-borders.d.ts +3 -3
  125. package/dist/physics/sub-elements/elements/physics-world-borders.js +69 -45
  126. package/dist/physics/sub-elements/physics-body-groups.d.ts +8 -8
  127. package/dist/physics/sub-elements/physics-body-groups.js +41 -42
  128. package/dist/physics/sub-elements/physics-collision.d.ts +16 -16
  129. package/dist/physics/sub-elements/physics-collision.js +141 -121
  130. package/dist/physics/sub-elements/physics-materials.d.ts +15 -10
  131. package/dist/physics/sub-elements/physics-materials.js +101 -100
  132. package/dist/physics/sub-elements/physics-world-borders.d.ts +2 -2
  133. package/dist/physics/sub-elements/physics-world-borders.js +25 -26
  134. package/dist/physics/sub-elements/raycasting/physics-body-explosion-hit.d.ts +15 -11
  135. package/dist/physics/sub-elements/raycasting/physics-body-explosion-hit.js +59 -59
  136. package/dist/physics/sub-elements/raycasting/physics-explosion.d.ts +13 -6
  137. package/dist/physics/sub-elements/raycasting/physics-explosion.js +108 -73
  138. package/dist/physics/sub-elements/raycasting/ray-cast.d.ts +19 -19
  139. package/dist/physics/sub-elements/raycasting/ray-cast.js +93 -98
  140. package/dist/pixi/display-object/components/filters.d.ts +18 -18
  141. package/dist/pixi/display-object/components/filters.js +106 -81
  142. package/dist/pixi/display-object/components/glow-effect.d.ts +8 -8
  143. package/dist/pixi/display-object/components/glow-effect.js +33 -36
  144. package/dist/pixi/display-object/components/glow-filter.d.ts +8 -8
  145. package/dist/pixi/display-object/components/glow-filter.js +33 -36
  146. package/dist/pixi/display-object/container-attributes.js +1 -1
  147. package/dist/pixi/display-object/display-object-attributes.d.ts +41 -41
  148. package/dist/pixi/display-object/display-object-attributes.js +148 -150
  149. package/dist/pixi/display-object/display-object.d.ts +17 -17
  150. package/dist/pixi/display-object/display-object.js +79 -75
  151. package/dist/pixi/display-object/filters/base-filters/alpha-primer-color.filter.d.ts +9 -4
  152. package/dist/pixi/display-object/filters/base-filters/alpha-primer-color.filter.js +89 -77
  153. package/dist/pixi/display-object/filters/base-filters/blur.filter.js +30 -30
  154. package/dist/pixi/display-object/filters/base-filters/contrast-filter.d.ts +9 -4
  155. package/dist/pixi/display-object/filters/base-filters/contrast-filter.js +62 -53
  156. package/dist/pixi/display-object/filters/base-filters/expand-with-alpha-color.d.ts +10 -5
  157. package/dist/pixi/display-object/filters/base-filters/expand-with-alpha-color.js +93 -81
  158. package/dist/pixi/display-object/filters/base-filters/expand-with-color-gradient.d.ts +12 -7
  159. package/dist/pixi/display-object/filters/base-filters/expand-with-color-gradient.js +120 -109
  160. package/dist/pixi/display-object/filters/base-filters/expand-with-color.d.ts +10 -5
  161. package/dist/pixi/display-object/filters/base-filters/expand-with-color.filter.js +32 -32
  162. package/dist/pixi/display-object/filters/base-filters/expand-with-color.js +92 -85
  163. package/dist/pixi/display-object/filters/templates/checking-neighbors.template.js +28 -28
  164. package/dist/pixi/display-object/filters/templates/plane.template.js +20 -20
  165. package/dist/pixi/display-object/filters.js +20 -4
  166. package/dist/pixi/display-object/objects/components/filters.d.ts +18 -18
  167. package/dist/pixi/display-object/objects/components/filters.js +106 -81
  168. package/dist/pixi/display-object/objects/container.d.ts +2 -2
  169. package/dist/pixi/display-object/objects/container.js +39 -30
  170. package/dist/pixi/display-object/objects/graphics.d.ts +28 -28
  171. package/dist/pixi/display-object/objects/graphics.js +218 -202
  172. package/dist/pixi/display-object/objects/helpers/filters.d.ts +25 -25
  173. package/dist/pixi/display-object/objects/helpers/filters.js +150 -124
  174. package/dist/pixi/display-object/objects/helpers/glow-sprite-generator.d.ts +7 -7
  175. package/dist/pixi/display-object/objects/helpers/glow-sprite-generator.js +114 -95
  176. package/dist/pixi/display-object/objects/premade-objects/sprite-with-glowing-shapes.d.ts +5 -5
  177. package/dist/pixi/display-object/objects/premade-objects/sprite-with-glowing-shapes.js +81 -57
  178. package/dist/pixi/display-object/objects/sprite.d.ts +43 -43
  179. package/dist/pixi/display-object/objects/sprite.js +248 -233
  180. package/dist/pixi/display-object/objects/text/helpers/process-steps/1-data-in-converter/rich-text-data-in-converter.js +1 -1
  181. package/dist/pixi/display-object/objects/text/helpers/process-steps/1-data-in-converter/rich-text-data-in-converter.test.js +9 -9
  182. package/dist/pixi/display-object/objects/text/helpers/rich-text-to-plane-text.d.ts +1 -1
  183. package/dist/pixi/display-object/objects/text.d.ts +25 -25
  184. package/dist/pixi/display-object/objects/text.js +111 -102
  185. package/dist/pixi/display-object/premade-objects/sprite-with-glowing-shapes.d.ts +13 -9
  186. package/dist/pixi/display-object/premade-objects/sprite-with-glowing-shapes.js +96 -67
  187. package/dist/pixi/game.d.ts +1 -1
  188. package/dist/pixi/game.js +2 -2
  189. package/dist/pixi/helpers/glow-sprite-generator.d.ts +6 -6
  190. package/dist/pixi/helpers/glow-sprite-generator.js +99 -84
  191. package/dist/pixi/helpers/pixi-container.helper.d.ts +1 -1
  192. package/dist/pixi/helpers/pixi-container.helper.js +10 -8
  193. package/dist/pixi/helpers/screen-position-to-stage.helper.d.ts +1 -1
  194. package/dist/pixi/helpers/screen-position-to-stage.helper.js +12 -12
  195. package/dist/pixi/helpers/screen-position-to-stage.helper.test.js +174 -79
  196. package/dist/pixi/modules/CAMERA/index.d.ts +1 -1
  197. package/dist/pixi/modules/CAMERA/index.js +3 -3
  198. package/dist/services/keyboard/keyboard.d.ts +4 -4
  199. package/dist/services/keyboard/keyboard.js +39 -31
  200. package/dist/services/mouse/mouse.service.d.ts +8 -8
  201. package/dist/services/mouse/mouse.service.js +65 -53
  202. package/dist/services/mouse/mouser-target-focus.service.d.ts +11 -11
  203. package/dist/services/mouse/mouser-target-focus.service.js +83 -81
  204. package/dist/utilities/libraries/animator/animating-content/state-animation.d.ts +29 -26
  205. package/dist/utilities/libraries/animator/animating-content/state-animation.js +159 -165
  206. package/dist/utilities/libraries/animator/animating-content/state-animation.test.js +386 -375
  207. package/dist/utilities/libraries/animator/animator.spec.js +765 -656
  208. package/dist/utilities/libraries/binary-heap/binary-heap.d.ts +11 -11
  209. package/dist/utilities/libraries/binary-heap/binary-heap.js +79 -81
  210. package/dist/utilities/libraries/data-structures/binary-heap/binary-heap.d.ts +11 -11
  211. package/dist/utilities/libraries/data-structures/binary-heap/binary-heap.js +79 -81
  212. package/dist/utilities/libraries/data-structures/grid/grid.d.ts +35 -31
  213. package/dist/utilities/libraries/data-structures/grid/grid.js +128 -117
  214. package/dist/utilities/libraries/data-structures/grid/grid.spec.js +176 -138
  215. package/dist/utilities/libraries/data-structures/grid/grid.test.js +218 -141
  216. package/dist/utilities/libraries/data-structures/grid/position-to-grid-position-converter.d.ts +3 -3
  217. package/dist/utilities/libraries/data-structures/grid/position-to-grid-position-converter.js +15 -13
  218. package/dist/utilities/libraries/data-structures/queue/queue.d.ts +21 -21
  219. package/dist/utilities/libraries/data-structures/queue/queue.js +63 -66
  220. package/dist/utilities/libraries/data-structures/queue/queue.test.js +54 -55
  221. package/dist/utilities/libraries/grid-algorithms/closest-available-space/closest-available-space.helper.spec.js +122 -68
  222. package/dist/utilities/libraries/grid-algorithms/path-finder/path-finder.spec.js +140 -135
  223. package/dist/utilities/libraries/grid-algorithms/vector-field-path-finder/vector-field-path-finder.spec.js +293 -229
  224. package/dist/utilities/libraries/path-finder/path-finder.d.ts +7 -7
  225. package/dist/utilities/libraries/path-finder/path-finder.js +113 -109
  226. package/dist/utilities/libraries/path-finder/path-finder.spec.js +131 -106
  227. package/dist/utilities/services/keyboard/keyboard.d.ts +4 -4
  228. package/dist/utilities/services/keyboard/keyboard.js +42 -34
  229. package/dist/utilities/services/mouse/helpers/mouse-position.helper.d.ts +1 -1
  230. package/dist/utilities/services/mouse/helpers/mouse-position.helper.js +12 -12
  231. package/dist/utilities/services/mouse/helpers/mouse-position.helper.test.js +168 -73
  232. package/dist/utilities/services/mouse/mouse-target-focus.service.d.ts +15 -15
  233. package/dist/utilities/services/mouse/mouse-target-focus.service.js +79 -76
  234. package/dist/utilities/services/mouse/mouse.service.d.ts +9 -9
  235. package/dist/utilities/services/mouse/mouse.service.js +86 -72
  236. package/dist/utilities/services/mouse/mouser-target-focus.service.d.ts +11 -11
  237. package/dist/utilities/services/mouse/mouser-target-focus.service.js +83 -81
  238. package/package.json +4 -10
@@ -1,13 +1,13 @@
1
1
  export declare class BinaryHeap<T> {
2
- private heap;
3
- private map;
4
- get size(): number;
5
- private comparator;
6
- private comparatorOrEqual;
7
- constructor(type?: 'min' | 'max');
8
- add(priority: number, item: T): void;
9
- delete(item: T): boolean;
10
- pop(): T | undefined;
11
- private bubbleUp;
12
- private bubbleDown;
2
+ private heap;
3
+ private map;
4
+ get size(): number;
5
+ private comparator;
6
+ private comparatorOrEqual;
7
+ constructor(type?: 'min' | 'max');
8
+ add(priority: number, item: T): void;
9
+ delete(item: T): boolean;
10
+ pop(): T | undefined;
11
+ private bubbleUp;
12
+ private bubbleDown;
13
13
  }
@@ -1,94 +1,92 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ Object.defineProperty(exports, '__esModule', { value: true });
3
2
  exports.BinaryHeap = void 0;
4
3
  class BinaryHeapNode {
5
- constructor(priority, item, index) {
6
- this.priority = priority;
7
- this.item = item;
8
- this.index = index;
9
- }
4
+ constructor(priority, item, index) {
5
+ this.priority = priority;
6
+ this.item = item;
7
+ this.index = index;
8
+ }
10
9
  }
11
10
  class BinaryHeap {
12
- get size() {
13
- return this.heap.length;
14
- }
15
- constructor(type = 'min') {
16
- this.heap = [];
17
- this.map = new Map(); // Map to keep track of items and their indices
18
- this.comparator = (a, b) => a.priority < b.priority;
19
- this.comparatorOrEqual = (a, b) => a.priority <= b.priority;
20
- if (type === 'max') {
21
- this.comparator = (a, b) => a.priority > b.priority;
22
- this.comparatorOrEqual = (a, b) => a.priority >= b.priority;
23
- }
11
+ get size() {
12
+ return this.heap.length;
13
+ }
14
+ constructor(type = 'min') {
15
+ this.heap = [];
16
+ this.map = new Map(); // Map to keep track of items and their indices
17
+ this.comparator = (a, b) => a.priority < b.priority;
18
+ this.comparatorOrEqual = (a, b) => a.priority <= b.priority;
19
+ if (type === 'max') {
20
+ this.comparator = (a, b) => a.priority > b.priority;
21
+ this.comparatorOrEqual = (a, b) => a.priority >= b.priority;
24
22
  }
25
- add(priority, item) {
26
- let node = new BinaryHeapNode(priority, item, this.heap.length);
27
- this.heap.push(node);
28
- this.map.set(item, node);
23
+ }
24
+ add(priority, item) {
25
+ const node = new BinaryHeapNode(priority, item, this.heap.length);
26
+ this.heap.push(node);
27
+ this.map.set(item, node);
28
+ this.bubbleUp(node.index);
29
+ }
30
+ delete(item) {
31
+ const node = this.map.get(item);
32
+ if (node) {
33
+ const lastNode = this.heap.pop();
34
+ if (this.heap.length > 0) {
35
+ this.heap[node.index] = lastNode;
36
+ lastNode.index = node.index; // Update the index of the last node
37
+ this.map.set(lastNode.item, lastNode); // Update the map
38
+ this.bubbleDown(node.index);
29
39
  this.bubbleUp(node.index);
40
+ }
41
+ this.map.delete(item); // Remove the item from the map
42
+ return true;
43
+ } else {
44
+ return false;
45
+ }
46
+ }
47
+ pop() {
48
+ if (this.heap.length > 0) {
49
+ const topNode = this.heap[0];
50
+ const lastNode = this.heap.pop();
51
+ if (this.heap.length > 0) {
52
+ this.heap[0] = lastNode;
53
+ lastNode.index = 0; // Update the index of the last node
54
+ this.map.set(lastNode.item, lastNode); // Update the map
55
+ this.bubbleDown(0);
56
+ }
57
+ this.map.delete(topNode.item); // Remove the popped item from the map
58
+ return topNode.item;
30
59
  }
31
- delete(item) {
32
- let node = this.map.get(item);
33
- if (node) {
34
- let lastNode = this.heap.pop();
35
- if (this.heap.length > 0) {
36
- this.heap[node.index] = lastNode;
37
- lastNode.index = node.index; // Update the index of the last node
38
- this.map.set(lastNode.item, lastNode); // Update the map
39
- this.bubbleDown(node.index);
40
- this.bubbleUp(node.index);
41
- }
42
- this.map.delete(item); // Remove the item from the map
43
- return true;
44
- }
45
- else {
46
- return false;
47
- }
60
+ }
61
+ bubbleUp(index) {
62
+ while (index > 0) {
63
+ const parentIndex = Math.floor((index - 1) / 2);
64
+ if (this.comparatorOrEqual(this.heap[parentIndex], this.heap[index])) {
65
+ break;
66
+ }
67
+ [this.heap[parentIndex], this.heap[index]] = [this.heap[index], this.heap[parentIndex]];
68
+ this.heap[parentIndex].index = parentIndex;
69
+ this.heap[index].index = index;
70
+ index = parentIndex;
48
71
  }
49
- pop() {
50
- if (this.heap.length > 0) {
51
- let topNode = this.heap[0];
52
- let lastNode = this.heap.pop();
53
- if (this.heap.length > 0) {
54
- this.heap[0] = lastNode;
55
- lastNode.index = 0; // Update the index of the last node
56
- this.map.set(lastNode.item, lastNode); // Update the map
57
- this.bubbleDown(0);
58
- }
59
- this.map.delete(topNode.item); // Remove the popped item from the map
60
- return topNode.item;
61
- }
72
+ }
73
+ bubbleDown(index) {
74
+ const leftChildIndex = 2 * index + 1;
75
+ const rightChildIndex = 2 * index + 2;
76
+ let currentIndex = index;
77
+ if (leftChildIndex < this.heap.length && this.comparator(this.heap[leftChildIndex], this.heap[currentIndex])) {
78
+ currentIndex = leftChildIndex;
62
79
  }
63
- bubbleUp(index) {
64
- while (index > 0) {
65
- let parentIndex = Math.floor((index - 1) / 2);
66
- if (this.comparatorOrEqual(this.heap[parentIndex], this.heap[index])) {
67
- break;
68
- }
69
- [this.heap[parentIndex], this.heap[index]] = [this.heap[index], this.heap[parentIndex]];
70
- this.heap[parentIndex].index = parentIndex;
71
- this.heap[index].index = index;
72
- index = parentIndex;
73
- }
80
+ if (rightChildIndex < this.heap.length && this.comparator(this.heap[rightChildIndex], this.heap[currentIndex])) {
81
+ currentIndex = rightChildIndex;
74
82
  }
75
- bubbleDown(index) {
76
- let leftChildIndex = 2 * index + 1;
77
- let rightChildIndex = 2 * index + 2;
78
- let currentIndex = index;
79
- if (leftChildIndex < this.heap.length && this.comparator(this.heap[leftChildIndex], this.heap[currentIndex])) {
80
- currentIndex = leftChildIndex;
81
- }
82
- if (rightChildIndex < this.heap.length && this.comparator(this.heap[rightChildIndex], this.heap[currentIndex])) {
83
- currentIndex = rightChildIndex;
84
- }
85
- if (currentIndex !== index) {
86
- [this.heap[index], this.heap[currentIndex]] = [this.heap[currentIndex], this.heap[index]];
87
- this.heap[index].index = index;
88
- this.heap[currentIndex].index = currentIndex;
89
- this.bubbleDown(currentIndex);
90
- }
83
+ if (currentIndex !== index) {
84
+ [this.heap[index], this.heap[currentIndex]] = [this.heap[currentIndex], this.heap[index]];
85
+ this.heap[index].index = index;
86
+ this.heap[currentIndex].index = currentIndex;
87
+ this.bubbleDown(currentIndex);
91
88
  }
89
+ }
92
90
  }
93
91
  exports.BinaryHeap = BinaryHeap;
94
92
  /*
@@ -109,4 +107,4 @@ time complexity for the delete function as well?
109
107
  Prompt:
110
108
  I want to get the lowest priority items, could you convert the max max binary heap to min binary heap?
111
109
  */
112
- //# sourceMappingURL=binary-heap.js.map
110
+ //# sourceMappingURL=binary-heap.js.map
@@ -1,13 +1,13 @@
1
1
  export declare class BinaryHeap<T> {
2
- private heap;
3
- private map;
4
- get size(): number;
5
- private comparator;
6
- private comparatorOrEqual;
7
- constructor(type?: 'min' | 'max');
8
- add(priority: number, item: T): void;
9
- delete(item: T): boolean;
10
- pop(): T | undefined;
11
- private bubbleUp;
12
- private bubbleDown;
2
+ private heap;
3
+ private map;
4
+ get size(): number;
5
+ private comparator;
6
+ private comparatorOrEqual;
7
+ constructor(type?: 'min' | 'max');
8
+ add(priority: number, item: T): void;
9
+ delete(item: T): boolean;
10
+ pop(): T | undefined;
11
+ private bubbleUp;
12
+ private bubbleDown;
13
13
  }
@@ -1,94 +1,92 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ Object.defineProperty(exports, '__esModule', { value: true });
3
2
  exports.BinaryHeap = void 0;
4
3
  class BinaryHeapNode {
5
- constructor(priority, item, index) {
6
- this.priority = priority;
7
- this.item = item;
8
- this.index = index;
9
- }
4
+ constructor(priority, item, index) {
5
+ this.priority = priority;
6
+ this.item = item;
7
+ this.index = index;
8
+ }
10
9
  }
11
10
  class BinaryHeap {
12
- get size() {
13
- return this.heap.length;
14
- }
15
- constructor(type = 'min') {
16
- this.heap = [];
17
- this.map = new Map();
18
- this.comparator = (a, b) => a.priority < b.priority;
19
- this.comparatorOrEqual = (a, b) => a.priority <= b.priority;
20
- if (type === 'max') {
21
- this.comparator = (a, b) => a.priority > b.priority;
22
- this.comparatorOrEqual = (a, b) => a.priority >= b.priority;
23
- }
11
+ get size() {
12
+ return this.heap.length;
13
+ }
14
+ constructor(type = 'min') {
15
+ this.heap = [];
16
+ this.map = new Map();
17
+ this.comparator = (a, b) => a.priority < b.priority;
18
+ this.comparatorOrEqual = (a, b) => a.priority <= b.priority;
19
+ if (type === 'max') {
20
+ this.comparator = (a, b) => a.priority > b.priority;
21
+ this.comparatorOrEqual = (a, b) => a.priority >= b.priority;
24
22
  }
25
- add(priority, item) {
26
- let node = new BinaryHeapNode(priority, item, this.heap.length);
27
- this.heap.push(node);
28
- this.map.set(item, node);
23
+ }
24
+ add(priority, item) {
25
+ const node = new BinaryHeapNode(priority, item, this.heap.length);
26
+ this.heap.push(node);
27
+ this.map.set(item, node);
28
+ this.bubbleUp(node.index);
29
+ }
30
+ delete(item) {
31
+ const node = this.map.get(item);
32
+ if (node) {
33
+ const lastNode = this.heap.pop();
34
+ if (this.heap.length > 0) {
35
+ this.heap[node.index] = lastNode;
36
+ lastNode.index = node.index;
37
+ this.map.set(lastNode.item, lastNode);
38
+ this.bubbleDown(node.index);
29
39
  this.bubbleUp(node.index);
40
+ }
41
+ this.map.delete(item);
42
+ return true;
43
+ } else {
44
+ return false;
45
+ }
46
+ }
47
+ pop() {
48
+ if (this.heap.length > 0) {
49
+ const topNode = this.heap[0];
50
+ const lastNode = this.heap.pop();
51
+ if (this.heap.length > 0) {
52
+ this.heap[0] = lastNode;
53
+ lastNode.index = 0;
54
+ this.map.set(lastNode.item, lastNode);
55
+ this.bubbleDown(0);
56
+ }
57
+ this.map.delete(topNode.item);
58
+ return topNode.item;
30
59
  }
31
- delete(item) {
32
- let node = this.map.get(item);
33
- if (node) {
34
- let lastNode = this.heap.pop();
35
- if (this.heap.length > 0) {
36
- this.heap[node.index] = lastNode;
37
- lastNode.index = node.index;
38
- this.map.set(lastNode.item, lastNode);
39
- this.bubbleDown(node.index);
40
- this.bubbleUp(node.index);
41
- }
42
- this.map.delete(item);
43
- return true;
44
- }
45
- else {
46
- return false;
47
- }
60
+ }
61
+ bubbleUp(index) {
62
+ while (index > 0) {
63
+ const parentIndex = Math.floor((index - 1) / 2);
64
+ if (this.comparatorOrEqual(this.heap[parentIndex], this.heap[index])) {
65
+ break;
66
+ }
67
+ [this.heap[parentIndex], this.heap[index]] = [this.heap[index], this.heap[parentIndex]];
68
+ this.heap[parentIndex].index = parentIndex;
69
+ this.heap[index].index = index;
70
+ index = parentIndex;
48
71
  }
49
- pop() {
50
- if (this.heap.length > 0) {
51
- let topNode = this.heap[0];
52
- let lastNode = this.heap.pop();
53
- if (this.heap.length > 0) {
54
- this.heap[0] = lastNode;
55
- lastNode.index = 0;
56
- this.map.set(lastNode.item, lastNode);
57
- this.bubbleDown(0);
58
- }
59
- this.map.delete(topNode.item);
60
- return topNode.item;
61
- }
72
+ }
73
+ bubbleDown(index) {
74
+ const leftChildIndex = 2 * index + 1;
75
+ const rightChildIndex = 2 * index + 2;
76
+ let currentIndex = index;
77
+ if (leftChildIndex < this.heap.length && this.comparator(this.heap[leftChildIndex], this.heap[currentIndex])) {
78
+ currentIndex = leftChildIndex;
62
79
  }
63
- bubbleUp(index) {
64
- while (index > 0) {
65
- let parentIndex = Math.floor((index - 1) / 2);
66
- if (this.comparatorOrEqual(this.heap[parentIndex], this.heap[index])) {
67
- break;
68
- }
69
- [this.heap[parentIndex], this.heap[index]] = [this.heap[index], this.heap[parentIndex]];
70
- this.heap[parentIndex].index = parentIndex;
71
- this.heap[index].index = index;
72
- index = parentIndex;
73
- }
80
+ if (rightChildIndex < this.heap.length && this.comparator(this.heap[rightChildIndex], this.heap[currentIndex])) {
81
+ currentIndex = rightChildIndex;
74
82
  }
75
- bubbleDown(index) {
76
- let leftChildIndex = 2 * index + 1;
77
- let rightChildIndex = 2 * index + 2;
78
- let currentIndex = index;
79
- if (leftChildIndex < this.heap.length && this.comparator(this.heap[leftChildIndex], this.heap[currentIndex])) {
80
- currentIndex = leftChildIndex;
81
- }
82
- if (rightChildIndex < this.heap.length && this.comparator(this.heap[rightChildIndex], this.heap[currentIndex])) {
83
- currentIndex = rightChildIndex;
84
- }
85
- if (currentIndex !== index) {
86
- [this.heap[index], this.heap[currentIndex]] = [this.heap[currentIndex], this.heap[index]];
87
- this.heap[index].index = index;
88
- this.heap[currentIndex].index = currentIndex;
89
- this.bubbleDown(currentIndex);
90
- }
83
+ if (currentIndex !== index) {
84
+ [this.heap[index], this.heap[currentIndex]] = [this.heap[currentIndex], this.heap[index]];
85
+ this.heap[index].index = index;
86
+ this.heap[currentIndex].index = currentIndex;
87
+ this.bubbleDown(currentIndex);
91
88
  }
89
+ }
92
90
  }
93
91
  exports.BinaryHeap = BinaryHeap;
94
92
  /*
@@ -109,4 +107,4 @@ time complexity for the delete function as well?
109
107
  Prompt:
110
108
  I want to get the lowest priority items, could you convert the max max binary heap to min binary heap?
111
109
  */
112
- //# sourceMappingURL=binary-heap.js.map
110
+ //# sourceMappingURL=binary-heap.js.map
@@ -1,34 +1,38 @@
1
1
  import { Rectangle, Vector } from 'helpers-lib';
2
2
  export declare class Grid<T> {
3
- static createByValues<T>(values: T[][]): Grid<T>;
4
- static createNew<T>(size: Vector, defaultValue: T): Grid<T>;
5
- static getNeighborDirections(options?: {
6
- includeDiagonals: boolean;
7
- }): Vector[];
8
- static getDiagonalNeighborDirections(): Vector[];
9
- static vectorToNeighborDirection(vector: Vector, options?: {
10
- includeDiagonals: boolean;
11
- }): Vector;
12
- private _size;
13
- private _grid;
14
- get size(): Vector;
15
- get width(): number;
16
- get height(): number;
17
- private constructor();
18
- has(position: Vector): boolean;
19
- get(position: Vector): T;
20
- set(position: Vector, value: T): void;
21
- safeSetArea(area: Rectangle, value: T): void;
22
- setArea(area: Rectangle, value: T): void;
23
- forEach(callback: (value: T, position: Vector) => void): void;
24
- map<U>(callback: (value: T, position: Vector) => U): Grid<U>;
25
- isAreaWithinBounds(area: Rectangle): boolean;
26
- isPointWithinBounds(point: Vector): boolean;
27
- cropPartsOutsideOfTheGrid(area: Rectangle): Rectangle;
28
- moveAreaInsideGrid(area: Rectangle): Rectangle;
29
- movePositionInsideGrid(point: Vector): Vector;
30
- getNeighborPositions(position: Vector, options?: {
31
- includeDiagonals: boolean;
32
- }): Vector[];
33
- getDiagonalNeighborPositions(position: Vector): Vector[];
3
+ static createByValues<T>(values: T[][]): Grid<T>;
4
+ static createNew<T>(size: Vector, defaultValue: T): Grid<T>;
5
+ static getNeighborDirections(options?: { includeDiagonals: boolean }): Vector[];
6
+ static getDiagonalNeighborDirections(): Vector[];
7
+ static vectorToNeighborDirection(
8
+ vector: Vector,
9
+ options?: {
10
+ includeDiagonals: boolean;
11
+ }
12
+ ): Vector;
13
+ private _size;
14
+ private _grid;
15
+ get size(): Vector;
16
+ get width(): number;
17
+ get height(): number;
18
+ private constructor();
19
+ has(position: Vector): boolean;
20
+ get(position: Vector): T;
21
+ set(position: Vector, value: T): void;
22
+ safeSetArea(area: Rectangle, value: T): void;
23
+ setArea(area: Rectangle, value: T): void;
24
+ forEach(callback: (value: T, position: Vector) => void): void;
25
+ map<U>(callback: (value: T, position: Vector) => U): Grid<U>;
26
+ isAreaWithinBounds(area: Rectangle): boolean;
27
+ isPointWithinBounds(point: Vector): boolean;
28
+ cropPartsOutsideOfTheGrid(area: Rectangle): Rectangle;
29
+ moveAreaInsideGrid(area: Rectangle): Rectangle;
30
+ movePositionInsideGrid(point: Vector): Vector;
31
+ getNeighborPositions(
32
+ position: Vector,
33
+ options?: {
34
+ includeDiagonals: boolean;
35
+ }
36
+ ): Vector[];
37
+ getDiagonalNeighborPositions(position: Vector): Vector[];
34
38
  }