bard-legends-framework 0.9.6 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (241) 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.d.ts +4 -1
  21. package/dist/game-entities/entity/entity.js +5 -5
  22. package/dist/game-entities/entity/entity.spec.js +263 -293
  23. package/dist/game-entities/entity/helpers/view-creation.helper.d.ts +7 -7
  24. package/dist/game-entities/entity/helpers/view-creation.helper.js +48 -48
  25. package/dist/game-entities/scene/scene.spec.js +219 -223
  26. package/dist/game-entities/service/service.js +0 -4
  27. package/dist/game-entities/service/service.spec.js +265 -237
  28. package/dist/game-entities/service/service.test.js +4 -2
  29. package/dist/game-entities/update-loop.d.ts +18 -18
  30. package/dist/game-entities/update-loop.js +46 -28
  31. package/dist/game-entities/view/view.spec.js +490 -506
  32. package/dist/game-entities/view/view.test.js +1 -1
  33. package/dist/lib/animator/animations.d.ts +13 -13
  34. package/dist/lib/animator/animations.js +43 -40
  35. package/dist/lib/animator/animator.d.ts +41 -41
  36. package/dist/lib/animator/animator.js +194 -197
  37. package/dist/lib/animator/animator.spec.js +699 -612
  38. package/dist/lib/animator/index.js +24 -19
  39. package/dist/lib/libraries/animator/animations.d.ts +13 -13
  40. package/dist/lib/libraries/animator/animations.js +43 -40
  41. package/dist/lib/libraries/animator/animator.d.ts +41 -41
  42. package/dist/lib/libraries/animator/animator.js +194 -197
  43. package/dist/lib/libraries/animator/animator.spec.js +699 -612
  44. package/dist/lib/libraries/animator/index.js +24 -19
  45. package/dist/lib/libraries/path-finder/path-finder.d.ts +2 -2
  46. package/dist/lib/libraries/path-finder/path-finder.js +19 -20
  47. package/dist/lib/path-finder/path-finder.d.ts +2 -2
  48. package/dist/lib/path-finder/path-finder.js +19 -20
  49. package/dist/lib/services/keyboard/keyboard.d.ts +4 -4
  50. package/dist/lib/services/keyboard/keyboard.js +39 -31
  51. package/dist/lib/services/mouse/mouse.service.d.ts +8 -8
  52. package/dist/lib/services/mouse/mouse.service.js +65 -53
  53. package/dist/lib/services/mouse/mouser-target-focus.service.d.ts +11 -11
  54. package/dist/lib/services/mouse/mouser-target-focus.service.js +83 -81
  55. package/dist/lib/update-loop.d.ts +10 -10
  56. package/dist/lib/update-loop.js +35 -27
  57. package/dist/physics/entitity-types/immovable-physics-entity.d.ts +6 -6
  58. package/dist/physics/entitity-types/immovable-physics-entity.js +23 -24
  59. package/dist/physics/entitity-types/movable-entity.d.ts +6 -6
  60. package/dist/physics/entitity-types/movable-entity.js +21 -22
  61. package/dist/physics/entitity-types/movable-physics-entity.d.ts +14 -14
  62. package/dist/physics/entitity-types/movable-physics-entity.js +83 -88
  63. package/dist/physics/entitity-types/physics-entity.d.ts +23 -23
  64. package/dist/physics/entitity-types/physics-entity.js +97 -88
  65. package/dist/physics/helpers/closest-available-space.helper.d.ts +16 -16
  66. package/dist/physics/helpers/closest-available-space.helper.js +98 -96
  67. package/dist/physics/helpers/closest-available-space.helper.spec.js +115 -68
  68. package/dist/physics/helpers/p2js.helper.d.ts +3 -3
  69. package/dist/physics/helpers/p2js.helper.js +21 -22
  70. package/dist/physics/helpers/shape-factory.d.ts +9 -4
  71. package/dist/physics/helpers/shape-factory.js +99 -75
  72. package/dist/physics/libs/p2js.helper.js +1 -1
  73. package/dist/physics/libs/position-to-grid-position-converter.d.ts +3 -3
  74. package/dist/physics/libs/position-to-grid-position-converter.js +15 -13
  75. package/dist/physics/module//360/237/223/220services/availability-grid.service.d.ts +10 -5
  76. package/dist/physics/module//360/237/223/220services/availability-grid.service.js +77 -57
  77. package/dist/physics/module//360/237/223/220services/border.service.d.ts +2 -2
  78. package/dist/physics/module//360/237/223/220services/border.service.js +57 -37
  79. package/dist/physics/module//360/237/223/220services/collision/physics-body-group.service.js +1 -1
  80. package/dist/physics/module//360/237/223/220services/collisions.service.d.ts +7 -7
  81. package/dist/physics/module//360/237/223/220services/collisions.service.js +110 -98
  82. package/dist/physics/module//360/237/223/220services/debug-visuals.service.d.ts +28 -6
  83. package/dist/physics/module//360/237/223/220services/debug-visuals.service.js +121 -89
  84. package/dist/physics/module//360/237/223/220services/eliptic-explosion.service.d.ts +15 -7
  85. package/dist/physics/module//360/237/223/220services/eliptic-explosion.service.js +117 -93
  86. package/dist/physics/module//360/237/223/220services/explosion.service.d.ts +14 -7
  87. package/dist/physics/module//360/237/223/220services/explosion.service.js +102 -77
  88. package/dist/physics/module//360/237/223/220services/explosions/eliptic-explosion.service.d.ts +15 -7
  89. package/dist/physics/module//360/237/223/220services/explosions/eliptic-explosion.service.js +117 -93
  90. package/dist/physics/module//360/237/223/220services/explosions/explosion.service.d.ts +14 -7
  91. package/dist/physics/module//360/237/223/220services/explosions/explosion.service.js +102 -77
  92. package/dist/physics/module//360/237/223/220services/explosions/helpers/ray-cast-hit-converter.d.ts +3 -3
  93. package/dist/physics/module//360/237/223/220services/explosions/helpers/ray-cast-hit-converter.js +71 -67
  94. package/dist/physics/module//360/237/223/220services/helpers/ray-cast-hit-converter.d.ts +3 -3
  95. package/dist/physics/module//360/237/223/220services/helpers/ray-cast-hit-converter.js +71 -67
  96. package/dist/physics/module//360/237/223/220services/impact/eliptic-explosion.service.js +1 -1
  97. package/dist/physics/module//360/237/223/220services/materials.service.d.ts +16 -11
  98. package/dist/physics/module//360/237/223/220services/materials.service.js +118 -108
  99. package/dist/physics/module//360/237/223/220services/path-finder.service.d.ts +19 -8
  100. package/dist/physics/module//360/237/223/220services/path-finder.service.js +121 -82
  101. package/dist/physics/module//360/237/223/220services/physics-world.service.d.ts +30 -15
  102. package/dist/physics/module//360/237/223/220services/physics-world.service.js +122 -100
  103. package/dist/physics/module//360/237/223/220services/ray-casting.service.d.ts +3 -3
  104. package/dist/physics/module//360/237/223/220services/ray-casting.service.js +87 -86
  105. package/dist/physics/module//360/237/223/220services/shape-creation.service.d.ts +9 -4
  106. package/dist/physics/module//360/237/223/220services/shape-creation.service.js +113 -84
  107. package/dist/physics/module//360/237/223/220services/test-visuals/test-visuals.service.js +2 -1
  108. package/dist/physics/module//360/237/247/212entities/data-structures/availability-grid-cache.d.ts +8 -8
  109. package/dist/physics/module//360/237/247/212entities/data-structures/availability-grid-cache.js +32 -33
  110. package/dist/physics/physics-world.d.ts +50 -34
  111. package/dist/physics/physics-world.js +142 -133
  112. package/dist/physics/sub-elements/available-spaces/helpers/availability-grid.helper.d.ts +3 -3
  113. package/dist/physics/sub-elements/available-spaces/helpers/availability-grid.helper.js +15 -13
  114. package/dist/physics/sub-elements/available-spaces/physics-availability-grid.d.ts +9 -9
  115. package/dist/physics/sub-elements/available-spaces/physics-availability-grid.js +82 -77
  116. package/dist/physics/sub-elements/available-spaces/physics-available-spaces.d.ts +18 -14
  117. package/dist/physics/sub-elements/available-spaces/physics-available-spaces.js +91 -79
  118. package/dist/physics/sub-elements/collisions/contact-equation-orginiser.d.ts +11 -11
  119. package/dist/physics/sub-elements/collisions/contact-equation-orginiser.js +84 -76
  120. package/dist/physics/sub-elements/collisions/physics-collision.d.ts +7 -7
  121. package/dist/physics/sub-elements/collisions/physics-collision.js +43 -44
  122. package/dist/physics/sub-elements/elements/physics-body-groups.d.ts +11 -11
  123. package/dist/physics/sub-elements/elements/physics-body-groups.js +54 -54
  124. package/dist/physics/sub-elements/elements/physics-materials.d.ts +15 -10
  125. package/dist/physics/sub-elements/elements/physics-materials.js +101 -100
  126. package/dist/physics/sub-elements/elements/physics-world-borders.d.ts +3 -3
  127. package/dist/physics/sub-elements/elements/physics-world-borders.js +69 -45
  128. package/dist/physics/sub-elements/physics-body-groups.d.ts +8 -8
  129. package/dist/physics/sub-elements/physics-body-groups.js +41 -42
  130. package/dist/physics/sub-elements/physics-collision.d.ts +16 -16
  131. package/dist/physics/sub-elements/physics-collision.js +141 -121
  132. package/dist/physics/sub-elements/physics-materials.d.ts +15 -10
  133. package/dist/physics/sub-elements/physics-materials.js +101 -100
  134. package/dist/physics/sub-elements/physics-world-borders.d.ts +2 -2
  135. package/dist/physics/sub-elements/physics-world-borders.js +25 -26
  136. package/dist/physics/sub-elements/raycasting/physics-body-explosion-hit.d.ts +15 -11
  137. package/dist/physics/sub-elements/raycasting/physics-body-explosion-hit.js +59 -59
  138. package/dist/physics/sub-elements/raycasting/physics-explosion.d.ts +13 -6
  139. package/dist/physics/sub-elements/raycasting/physics-explosion.js +108 -73
  140. package/dist/physics/sub-elements/raycasting/ray-cast.d.ts +19 -19
  141. package/dist/physics/sub-elements/raycasting/ray-cast.js +93 -98
  142. package/dist/pixi/display-object/components/filters.d.ts +18 -18
  143. package/dist/pixi/display-object/components/filters.js +106 -81
  144. package/dist/pixi/display-object/components/glow-effect.d.ts +8 -8
  145. package/dist/pixi/display-object/components/glow-effect.js +33 -36
  146. package/dist/pixi/display-object/components/glow-filter.d.ts +8 -8
  147. package/dist/pixi/display-object/components/glow-filter.js +33 -36
  148. package/dist/pixi/display-object/container-attributes.js +1 -1
  149. package/dist/pixi/display-object/display-object-attributes.d.ts +41 -41
  150. package/dist/pixi/display-object/display-object-attributes.js +148 -150
  151. package/dist/pixi/display-object/display-object.d.ts +17 -17
  152. package/dist/pixi/display-object/display-object.js +79 -75
  153. package/dist/pixi/display-object/filters/base-filters/alpha-primer-color.filter.d.ts +9 -4
  154. package/dist/pixi/display-object/filters/base-filters/alpha-primer-color.filter.js +89 -77
  155. package/dist/pixi/display-object/filters/base-filters/blur.filter.js +30 -30
  156. package/dist/pixi/display-object/filters/base-filters/contrast-filter.d.ts +9 -4
  157. package/dist/pixi/display-object/filters/base-filters/contrast-filter.js +62 -53
  158. package/dist/pixi/display-object/filters/base-filters/expand-with-alpha-color.d.ts +10 -5
  159. package/dist/pixi/display-object/filters/base-filters/expand-with-alpha-color.js +93 -81
  160. package/dist/pixi/display-object/filters/base-filters/expand-with-color-gradient.d.ts +12 -7
  161. package/dist/pixi/display-object/filters/base-filters/expand-with-color-gradient.js +120 -109
  162. package/dist/pixi/display-object/filters/base-filters/expand-with-color.d.ts +10 -5
  163. package/dist/pixi/display-object/filters/base-filters/expand-with-color.filter.js +32 -32
  164. package/dist/pixi/display-object/filters/base-filters/expand-with-color.js +92 -85
  165. package/dist/pixi/display-object/filters/templates/checking-neighbors.template.js +28 -28
  166. package/dist/pixi/display-object/filters/templates/plane.template.js +20 -20
  167. package/dist/pixi/display-object/filters.js +20 -4
  168. package/dist/pixi/display-object/objects/components/filters.d.ts +18 -18
  169. package/dist/pixi/display-object/objects/components/filters.js +106 -81
  170. package/dist/pixi/display-object/objects/container.d.ts +2 -2
  171. package/dist/pixi/display-object/objects/container.js +39 -30
  172. package/dist/pixi/display-object/objects/graphics.d.ts +28 -28
  173. package/dist/pixi/display-object/objects/graphics.js +218 -202
  174. package/dist/pixi/display-object/objects/helpers/filters.d.ts +25 -25
  175. package/dist/pixi/display-object/objects/helpers/filters.js +150 -124
  176. package/dist/pixi/display-object/objects/helpers/glow-sprite-generator.d.ts +7 -7
  177. package/dist/pixi/display-object/objects/helpers/glow-sprite-generator.js +114 -95
  178. package/dist/pixi/display-object/objects/premade-objects/sprite-with-glowing-shapes.d.ts +5 -5
  179. package/dist/pixi/display-object/objects/premade-objects/sprite-with-glowing-shapes.js +81 -57
  180. package/dist/pixi/display-object/objects/sprite.d.ts +43 -43
  181. package/dist/pixi/display-object/objects/sprite.js +248 -233
  182. package/dist/pixi/display-object/objects/text/helpers/process-steps/1-data-in-converter/rich-text-data-in-converter.js +1 -1
  183. package/dist/pixi/display-object/objects/text/helpers/process-steps/1-data-in-converter/rich-text-data-in-converter.test.js +9 -9
  184. package/dist/pixi/display-object/objects/text/helpers/rich-text-to-plane-text.d.ts +1 -1
  185. package/dist/pixi/display-object/objects/text.d.ts +25 -25
  186. package/dist/pixi/display-object/objects/text.js +111 -102
  187. package/dist/pixi/display-object/premade-objects/sprite-with-glowing-shapes.d.ts +13 -9
  188. package/dist/pixi/display-object/premade-objects/sprite-with-glowing-shapes.js +96 -67
  189. package/dist/pixi/game.d.ts +1 -1
  190. package/dist/pixi/game.js +2 -2
  191. package/dist/pixi/helpers/glow-sprite-generator.d.ts +6 -6
  192. package/dist/pixi/helpers/glow-sprite-generator.js +99 -84
  193. package/dist/pixi/helpers/pixi-container.helper.d.ts +1 -1
  194. package/dist/pixi/helpers/pixi-container.helper.js +10 -8
  195. package/dist/pixi/helpers/screen-position-to-stage.helper.d.ts +1 -1
  196. package/dist/pixi/helpers/screen-position-to-stage.helper.js +12 -12
  197. package/dist/pixi/helpers/screen-position-to-stage.helper.test.js +174 -79
  198. package/dist/pixi/modules/CAMERA/index.d.ts +1 -1
  199. package/dist/pixi/modules/CAMERA/index.js +3 -3
  200. package/dist/pixi/modules/CAMERA//360/237/247/212entities/camera.entity.js +1 -1
  201. package/dist/services/keyboard/keyboard.d.ts +4 -4
  202. package/dist/services/keyboard/keyboard.js +39 -31
  203. package/dist/services/mouse/mouse.service.d.ts +8 -8
  204. package/dist/services/mouse/mouse.service.js +65 -53
  205. package/dist/services/mouse/mouser-target-focus.service.d.ts +11 -11
  206. package/dist/services/mouse/mouser-target-focus.service.js +83 -81
  207. package/dist/utilities/libraries/animator/animating-content/state-animation.d.ts +29 -26
  208. package/dist/utilities/libraries/animator/animating-content/state-animation.js +159 -165
  209. package/dist/utilities/libraries/animator/animating-content/state-animation.test.js +386 -375
  210. package/dist/utilities/libraries/animator/animator.spec.js +765 -656
  211. package/dist/utilities/libraries/binary-heap/binary-heap.d.ts +11 -11
  212. package/dist/utilities/libraries/binary-heap/binary-heap.js +79 -81
  213. package/dist/utilities/libraries/data-structures/binary-heap/binary-heap.d.ts +11 -11
  214. package/dist/utilities/libraries/data-structures/binary-heap/binary-heap.js +79 -81
  215. package/dist/utilities/libraries/data-structures/grid/grid.d.ts +35 -31
  216. package/dist/utilities/libraries/data-structures/grid/grid.js +128 -117
  217. package/dist/utilities/libraries/data-structures/grid/grid.spec.js +176 -138
  218. package/dist/utilities/libraries/data-structures/grid/grid.test.js +218 -141
  219. package/dist/utilities/libraries/data-structures/grid/position-to-grid-position-converter.d.ts +3 -3
  220. package/dist/utilities/libraries/data-structures/grid/position-to-grid-position-converter.js +15 -13
  221. package/dist/utilities/libraries/data-structures/queue/queue.d.ts +21 -21
  222. package/dist/utilities/libraries/data-structures/queue/queue.js +63 -66
  223. package/dist/utilities/libraries/data-structures/queue/queue.test.js +54 -55
  224. package/dist/utilities/libraries/grid-algorithms/closest-available-space/closest-available-space.helper.spec.js +122 -68
  225. package/dist/utilities/libraries/grid-algorithms/path-finder/path-finder.spec.js +140 -135
  226. package/dist/utilities/libraries/grid-algorithms/vector-field-path-finder/vector-field-path-finder.spec.js +293 -229
  227. package/dist/utilities/libraries/path-finder/path-finder.d.ts +7 -7
  228. package/dist/utilities/libraries/path-finder/path-finder.js +113 -109
  229. package/dist/utilities/libraries/path-finder/path-finder.spec.js +131 -106
  230. package/dist/utilities/services/keyboard/keyboard.d.ts +4 -4
  231. package/dist/utilities/services/keyboard/keyboard.js +42 -34
  232. package/dist/utilities/services/mouse/helpers/mouse-position.helper.d.ts +1 -1
  233. package/dist/utilities/services/mouse/helpers/mouse-position.helper.js +12 -12
  234. package/dist/utilities/services/mouse/helpers/mouse-position.helper.test.js +168 -73
  235. package/dist/utilities/services/mouse/mouse-target-focus.service.d.ts +15 -15
  236. package/dist/utilities/services/mouse/mouse-target-focus.service.js +79 -76
  237. package/dist/utilities/services/mouse/mouse.service.d.ts +9 -9
  238. package/dist/utilities/services/mouse/mouse.service.js +86 -72
  239. package/dist/utilities/services/mouse/mouser-target-focus.service.d.ts +11 -11
  240. package/dist/utilities/services/mouse/mouser-target-focus.service.js +83 -81
  241. package/package.json +8 -13
@@ -1,102 +1,126 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
1
+ var __decorate =
2
+ (this && this.__decorate) ||
3
+ ((decorators, target, key, desc) => {
4
+ var c = arguments.length,
5
+ r = c < 3 ? target : desc === null ? (desc = Object.getOwnPropertyDescriptor(target, key)) : desc,
6
+ d;
7
+ if (typeof Reflect === 'object' && typeof Reflect.decorate === 'function')
8
+ r = Reflect.decorate(decorators, target, key, desc);
9
+ else
10
+ for (var i = decorators.length - 1; i >= 0; i--)
11
+ if ((d = decorators[i])) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
12
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
13
+ });
14
+ var __metadata =
15
+ (this && this.__metadata) ||
16
+ ((k, v) => {
17
+ if (typeof Reflect === 'object' && typeof Reflect.metadata === 'function') return Reflect.metadata(k, v);
18
+ });
19
+ Object.defineProperty(exports, '__esModule', { value: true });
12
20
  exports.ElipticExplosionService = void 0;
13
- const helpers_lib_1 = require("helpers-lib");
14
- const game_entities_1 = require("../../../game-entities");
15
- const ray_casting_service_1 = require("./ray-casting.service");
16
- const debug_visuals_service_1 = require("./debug-visuals.service");
17
- const physics_world_entity_1 = require("../\uD83E\uDDCAentities/physics-world.entity");
18
- const ray_cast_hit_converter_1 = require("./helpers/ray-cast-hit-converter");
19
- const p2js_helper_1 = require("../../libs/p2js.helper");
21
+ const helpers_lib_1 = require('helpers-lib');
22
+ const game_entities_1 = require('../../../game-entities');
23
+ const ray_casting_service_1 = require('./ray-casting.service');
24
+ const debug_visuals_service_1 = require('./debug-visuals.service');
25
+ const physics_world_entity_1 = require('../\uD83E\uDDCAentities/physics-world.entity');
26
+ const ray_cast_hit_converter_1 = require('./helpers/ray-cast-hit-converter');
27
+ const p2js_helper_1 = require('../../libs/p2js.helper');
20
28
  const MIN_GAP_BETWEEN_LINES = 15;
21
29
  let ElipticExplosionService = class ElipticExplosionService {
22
- constructor(rayCastingService, debugVisualsService) {
23
- this.rayCastingService = rayCastingService;
24
- this.debugVisualsService = debugVisualsService;
30
+ constructor(rayCastingService, debugVisualsService) {
31
+ this.rayCastingService = rayCastingService;
32
+ this.debugVisualsService = debugVisualsService;
33
+ }
34
+ createElipticExplosion(physicsWorldId, explosionCenter, rotation, size, physicsBodyGroup, severity, options) {
35
+ const physicsWorld = physics_world_entity_1.PhysicsWorldEntity.getInstanceByIdOrFail(physicsWorldId);
36
+ const rayCasts = this.createRays(
37
+ explosionCenter,
38
+ rotation,
39
+ size,
40
+ physicsBodyGroup,
41
+ options?.hitOnlyClosest === true,
42
+ physicsWorld
43
+ );
44
+ const explosionHitWithP2Bodies = ray_cast_hit_converter_1.RayCastHitConverter.toExplosionHits(rayCasts, false);
45
+ this.applyForcesToBodies(explosionHitWithP2Bodies, severity);
46
+ if (options?.testLayerId) {
47
+ this.debugVisualsService.createElipticExplosionDebugVisual(
48
+ physicsWorld,
49
+ options.testLayerId,
50
+ rayCasts,
51
+ explosionCenter,
52
+ rotation,
53
+ size,
54
+ options.debugRayDuration
55
+ );
25
56
  }
26
- createElipticExplosion(physicsWorldId, explosionCenter, rotation, size, physicsBodyGroup, severity, options) {
27
- let physicsWorld = physics_world_entity_1.PhysicsWorldEntity.getInstanceByIdOrFail(physicsWorldId);
28
- let rayCasts = this.createRays(explosionCenter, rotation, size, physicsBodyGroup, options?.hitOnlyClosest === true, physicsWorld);
29
- let explosionHitWithP2Bodies = ray_cast_hit_converter_1.RayCastHitConverter.toExplosionHits(rayCasts, false);
30
- this.applyForcesToBodies(explosionHitWithP2Bodies, severity);
31
- if (options?.testLayerId) {
32
- this.debugVisualsService.createElipticExplosionDebugVisual(physicsWorld, options.testLayerId, rayCasts, explosionCenter, rotation, size, options.debugRayDuration);
57
+ return explosionHitWithP2Bodies.map(explosionHitWithP2Body => {
58
+ const { p2Body, ...explosionHit } = explosionHitWithP2Body;
59
+ return explosionHit;
60
+ });
61
+ }
62
+ createRays(explosionCenter, rotation, size, physicsBodyGroup, hitOnlyClosest, physicsWorld) {
63
+ const lines = [];
64
+ const centerDirection = helpers_lib_1.Radian.toVector(rotation);
65
+ const lineDirection = helpers_lib_1.Radian.toVector(rotation + helpers_lib_1.Radian.get90);
66
+ const horizontalVector = lineDirection.normalize(size.x);
67
+ lines.push(new helpers_lib_1.Line(explosionCenter, explosionCenter.add(horizontalVector)));
68
+ lines.push(new helpers_lib_1.Line(explosionCenter, explosionCenter.add(horizontalVector.multiply(-1))));
69
+ const verticalVector = centerDirection.normalize(size.y);
70
+ lines.push(new helpers_lib_1.Line(explosionCenter, explosionCenter.add(verticalVector)));
71
+ lines.push(new helpers_lib_1.Line(explosionCenter, explosionCenter.add(verticalVector.multiply(-1))));
72
+ const lineCount = Math.round(size.y / MIN_GAP_BETWEEN_LINES);
73
+ const gap = (size.y / (lineCount * 2 + 1)) * 2;
74
+ const gapVector = centerDirection.normalize(gap);
75
+ const width = size.x;
76
+ const heightSquared = size.y ** 2;
77
+ helpers_lib_1.ArrayHelper.createIntegerArray(lineCount).forEach(index => {
78
+ const distanceFromCenter = gap * (index + 1);
79
+ const distanceFromCenterVector = gapVector.multiply(index + 1);
80
+ const vector = lineDirection.normalize(this.getWidthOfLine(width, heightSquared, distanceFromCenter));
81
+ const center1 = explosionCenter.add(distanceFromCenterVector);
82
+ lines.push(new helpers_lib_1.Line(center1, center1.add(vector)));
83
+ lines.push(new helpers_lib_1.Line(center1, center1.add(vector.multiply(-1))));
84
+ const center2 = explosionCenter.add(distanceFromCenterVector.multiply(-1));
85
+ lines.push(new helpers_lib_1.Line(center2, center2.add(vector)));
86
+ lines.push(new helpers_lib_1.Line(center2, center2.add(vector.multiply(-1))));
87
+ });
88
+ return lines.map(line => {
89
+ if (hitOnlyClosest) {
90
+ const hit = this.rayCastingService.castClosest(physicsWorld, line, physicsBodyGroup);
91
+ return { line, hits: hit ? [hit] : [] };
92
+ } else {
93
+ const hits = this.rayCastingService.castAllFirstContacts(physicsWorld, line, physicsBodyGroup);
94
+ return { line, hits };
95
+ }
96
+ });
97
+ }
98
+ getWidthOfLine(width, heightSquared, distanceFromCenter) {
99
+ return Math.sqrt(1 - distanceFromCenter ** 2 / heightSquared) * width;
100
+ }
101
+ applyForcesToBodies(explosionHits, severity) {
102
+ explosionHits.forEach(explosionHit => {
103
+ explosionHit.raycastResults.forEach(rayCastResult => {
104
+ let hitDirection;
105
+ let force;
106
+ if (rayCastResult.isExternal()) {
107
+ hitDirection = rayCastResult.line.fromTo;
108
+ force = severity * 2;
109
+ } else {
110
+ hitDirection = rayCastResult.line.fromTo.multiply(-1);
111
+ force = severity * (1 - rayCastResult.fraction) * 8;
33
112
  }
34
- return explosionHitWithP2Bodies.map(explosionHitWithP2Body => {
35
- let { p2Body, ...explosionHit } = explosionHitWithP2Body;
36
- return explosionHit;
37
- });
38
- }
39
- createRays(explosionCenter, rotation, size, physicsBodyGroup, hitOnlyClosest, physicsWorld) {
40
- let lines = [];
41
- let centerDirection = helpers_lib_1.Radian.toVector(rotation);
42
- let lineDirection = helpers_lib_1.Radian.toVector(rotation + helpers_lib_1.Radian.get90);
43
- let horizontalVector = lineDirection.normalize(size.x);
44
- lines.push(new helpers_lib_1.Line(explosionCenter, explosionCenter.add(horizontalVector)));
45
- lines.push(new helpers_lib_1.Line(explosionCenter, explosionCenter.add(horizontalVector.multiply(-1))));
46
- let verticalVector = centerDirection.normalize(size.y);
47
- lines.push(new helpers_lib_1.Line(explosionCenter, explosionCenter.add(verticalVector)));
48
- lines.push(new helpers_lib_1.Line(explosionCenter, explosionCenter.add(verticalVector.multiply(-1))));
49
- let lineCount = Math.round(size.y / MIN_GAP_BETWEEN_LINES);
50
- let gap = (size.y / (lineCount * 2 + 1)) * 2;
51
- let gapVector = centerDirection.normalize(gap);
52
- let width = size.x;
53
- let heightSquared = Math.pow(size.y, 2);
54
- helpers_lib_1.ArrayHelper.createIntegerArray(lineCount).forEach(index => {
55
- let distanceFromCenter = gap * (index + 1);
56
- let distanceFromCenterVector = gapVector.multiply(index + 1);
57
- let vector = lineDirection.normalize(this.getWidthOfLine(width, heightSquared, distanceFromCenter));
58
- let center1 = explosionCenter.add(distanceFromCenterVector);
59
- lines.push(new helpers_lib_1.Line(center1, center1.add(vector)));
60
- lines.push(new helpers_lib_1.Line(center1, center1.add(vector.multiply(-1))));
61
- let center2 = explosionCenter.add(distanceFromCenterVector.multiply(-1));
62
- lines.push(new helpers_lib_1.Line(center2, center2.add(vector)));
63
- lines.push(new helpers_lib_1.Line(center2, center2.add(vector.multiply(-1))));
64
- });
65
- return lines.map(line => {
66
- if (hitOnlyClosest) {
67
- let hit = this.rayCastingService.castClosest(physicsWorld, line, physicsBodyGroup);
68
- return { line, hits: hit ? [hit] : [] };
69
- }
70
- else {
71
- let hits = this.rayCastingService.castAllFirstContacts(physicsWorld, line, physicsBodyGroup);
72
- return { line, hits };
73
- }
74
- });
75
- }
76
- getWidthOfLine(width, heightSquared, distanceFromCenter) {
77
- return Math.sqrt(1 - Math.pow(distanceFromCenter, 2) / heightSquared) * width;
78
- }
79
- applyForcesToBodies(explosionHits, severity) {
80
- explosionHits.forEach(explosionHit => {
81
- explosionHit.raycastResults.forEach(rayCastResult => {
82
- let hitDirection;
83
- let force;
84
- if (rayCastResult.isExternal()) {
85
- hitDirection = rayCastResult.line.fromTo;
86
- force = severity * 2;
87
- }
88
- else {
89
- hitDirection = rayCastResult.line.fromTo.multiply(-1);
90
- force = severity * (1 - rayCastResult.fraction) * 8;
91
- }
92
- p2js_helper_1.P2JSHelper.pushBody(rayCastResult.body, rayCastResult.hitPosition(), hitDirection, force);
93
- });
94
- });
95
- }
113
+ p2js_helper_1.P2JSHelper.pushBody(rayCastResult.body, rayCastResult.hitPosition(), hitDirection, force);
114
+ });
115
+ });
116
+ }
96
117
  };
97
118
  exports.ElipticExplosionService = ElipticExplosionService;
98
- exports.ElipticExplosionService = ElipticExplosionService = __decorate([
119
+ exports.ElipticExplosionService = ElipticExplosionService = __decorate(
120
+ [
99
121
  (0, game_entities_1.ServiceDecorator)(),
100
- __metadata("design:paramtypes", [ray_casting_service_1.RayCastingService, debug_visuals_service_1.DebugVisualsService])
101
- ], ElipticExplosionService);
102
- //# sourceMappingURL=eliptic-explosion.service.js.map
122
+ __metadata('design:paramtypes', [ray_casting_service_1.RayCastingService, debug_visuals_service_1.DebugVisualsService])
123
+ ],
124
+ ElipticExplosionService
125
+ );
126
+ //# sourceMappingURL=eliptic-explosion.service.js.map
@@ -4,11 +4,18 @@ import { PhysicsBodyGroup } from '../../libs/physics-body-groups';
4
4
  import { DebugVisualsService } from './debug-visuals.service';
5
5
  import { RayCastingService } from './ray-casting.service';
6
6
  export declare class ExplosionService {
7
- private rayCastingService;
8
- private debugVisualsService;
9
- constructor(rayCastingService: RayCastingService, debugVisualsService: DebugVisualsService);
10
- createExplosion(physicsWorldId: string, explosionCenter: Vector, radius: number, physicsBodyGroup: PhysicsBodyGroup, severity: number, options?: PhysicsExplosionOptions): ExplosionHit[];
11
- private createRays;
12
- private applyForcesToBodies;
13
- private getTotalCountOfRays;
7
+ private rayCastingService;
8
+ private debugVisualsService;
9
+ constructor(rayCastingService: RayCastingService, debugVisualsService: DebugVisualsService);
10
+ createExplosion(
11
+ physicsWorldId: string,
12
+ explosionCenter: Vector,
13
+ radius: number,
14
+ physicsBodyGroup: PhysicsBodyGroup,
15
+ severity: number,
16
+ options?: PhysicsExplosionOptions
17
+ ): ExplosionHit[];
18
+ private createRays;
19
+ private applyForcesToBodies;
20
+ private getTotalCountOfRays;
14
21
  }
@@ -1,87 +1,112 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
1
+ var __decorate =
2
+ (this && this.__decorate) ||
3
+ ((decorators, target, key, desc) => {
4
+ var c = arguments.length,
5
+ r = c < 3 ? target : desc === null ? (desc = Object.getOwnPropertyDescriptor(target, key)) : desc,
6
+ d;
7
+ if (typeof Reflect === 'object' && typeof Reflect.decorate === 'function')
8
+ r = Reflect.decorate(decorators, target, key, desc);
9
+ else
10
+ for (var i = decorators.length - 1; i >= 0; i--)
11
+ if ((d = decorators[i])) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
12
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
13
+ });
14
+ var __metadata =
15
+ (this && this.__metadata) ||
16
+ ((k, v) => {
17
+ if (typeof Reflect === 'object' && typeof Reflect.metadata === 'function') return Reflect.metadata(k, v);
18
+ });
19
+ Object.defineProperty(exports, '__esModule', { value: true });
12
20
  exports.ExplosionService = void 0;
13
- const helpers_lib_1 = require("helpers-lib");
14
- const game_entities_1 = require("../../../game-entities");
15
- const physics_world_entity_1 = require("../\uD83E\uDDCAentities/physics-world.entity");
16
- const p2js_helper_1 = require("../../libs/p2js.helper");
17
- const ray_cast_hit_converter_1 = require("./helpers/ray-cast-hit-converter");
18
- const debug_visuals_service_1 = require("./debug-visuals.service");
19
- const ray_casting_service_1 = require("./ray-casting.service");
21
+ const helpers_lib_1 = require('helpers-lib');
22
+ const game_entities_1 = require('../../../game-entities');
23
+ const physics_world_entity_1 = require('../\uD83E\uDDCAentities/physics-world.entity');
24
+ const p2js_helper_1 = require('../../libs/p2js.helper');
25
+ const ray_cast_hit_converter_1 = require('./helpers/ray-cast-hit-converter');
26
+ const debug_visuals_service_1 = require('./debug-visuals.service');
27
+ const ray_casting_service_1 = require('./ray-casting.service');
20
28
  let ExplosionService = class ExplosionService {
21
- constructor(rayCastingService, debugVisualsService) {
22
- this.rayCastingService = rayCastingService;
23
- this.debugVisualsService = debugVisualsService;
29
+ constructor(rayCastingService, debugVisualsService) {
30
+ this.rayCastingService = rayCastingService;
31
+ this.debugVisualsService = debugVisualsService;
32
+ }
33
+ createExplosion(physicsWorldId, explosionCenter, radius, physicsBodyGroup, severity, options) {
34
+ const physicsWorld = physics_world_entity_1.PhysicsWorldEntity.getInstanceByIdOrFail(physicsWorldId);
35
+ const totalCountOfRays = this.getTotalCountOfRays(radius);
36
+ const rayCasts = this.createRays(
37
+ explosionCenter,
38
+ radius,
39
+ physicsBodyGroup,
40
+ totalCountOfRays,
41
+ options?.hitOnlyClosest === true,
42
+ physicsWorld
43
+ );
44
+ const explosionHits = ray_cast_hit_converter_1.RayCastHitConverter.toExplosionHits(rayCasts);
45
+ this.applyForcesToBodies(explosionCenter, radius, severity, totalCountOfRays, explosionHits);
46
+ if (options?.testLayerId) {
47
+ this.debugVisualsService.createExplosionDebugVisual(
48
+ physicsWorld,
49
+ options.testLayerId,
50
+ rayCasts,
51
+ explosionCenter,
52
+ radius,
53
+ options.debugRayDuration
54
+ );
24
55
  }
25
- createExplosion(physicsWorldId, explosionCenter, radius, physicsBodyGroup, severity, options) {
26
- let physicsWorld = physics_world_entity_1.PhysicsWorldEntity.getInstanceByIdOrFail(physicsWorldId);
27
- let totalCountOfRays = this.getTotalCountOfRays(radius);
28
- let rayCasts = this.createRays(explosionCenter, radius, physicsBodyGroup, totalCountOfRays, options?.hitOnlyClosest === true, physicsWorld);
29
- let explosionHits = ray_cast_hit_converter_1.RayCastHitConverter.toExplosionHits(rayCasts);
30
- this.applyForcesToBodies(explosionCenter, radius, severity, totalCountOfRays, explosionHits);
31
- if (options?.testLayerId) {
32
- this.debugVisualsService.createExplosionDebugVisual(physicsWorld, options.testLayerId, rayCasts, explosionCenter, radius, options.debugRayDuration);
56
+ return explosionHits;
57
+ }
58
+ createRays(explosionCenter, radius, physicsBodyGroup, totalCountOfRays, hitOnlyClosest, physicsWorld) {
59
+ const radianPerLine = helpers_lib_1.Radian.get360 / totalCountOfRays;
60
+ let directionVector = new helpers_lib_1.Vector(0, -radius);
61
+ const rotationVector = helpers_lib_1.Radian.toVector(radianPerLine);
62
+ return helpers_lib_1.ArrayHelper.createEmptyArray(totalCountOfRays)
63
+ .map(() => {
64
+ const to = explosionCenter.add(directionVector);
65
+ directionVector = directionVector.rotate(rotationVector);
66
+ return new helpers_lib_1.Line(explosionCenter, to);
67
+ })
68
+ .map(line => {
69
+ if (hitOnlyClosest) {
70
+ const hit = this.rayCastingService.castClosest(physicsWorld, line, physicsBodyGroup);
71
+ return { line, hits: hit ? [hit] : [] };
72
+ } else {
73
+ const hits = this.rayCastingService.castAllFirstContacts(physicsWorld, line, physicsBodyGroup);
74
+ return { line, hits };
33
75
  }
34
- return explosionHits;
35
- }
36
- createRays(explosionCenter, radius, physicsBodyGroup, totalCountOfRays, hitOnlyClosest, physicsWorld) {
37
- let radianPerLine = helpers_lib_1.Radian.get360 / totalCountOfRays;
38
- let directionVector = new helpers_lib_1.Vector(0, -radius);
39
- let rotationVector = helpers_lib_1.Radian.toVector(radianPerLine);
40
- return helpers_lib_1.ArrayHelper.createEmptyArray(totalCountOfRays)
41
- .map(() => {
42
- let to = explosionCenter.add(directionVector);
43
- directionVector = directionVector.rotate(rotationVector);
44
- return new helpers_lib_1.Line(explosionCenter, to);
45
- })
46
- .map(line => {
47
- if (hitOnlyClosest) {
48
- let hit = this.rayCastingService.castClosest(physicsWorld, line, physicsBodyGroup);
49
- return { line, hits: hit ? [hit] : [] };
50
- }
51
- else {
52
- let hits = this.rayCastingService.castAllFirstContacts(physicsWorld, line, physicsBodyGroup);
53
- return { line, hits };
54
- }
55
- });
56
- }
57
- applyForcesToBodies(explosionCenter, radius, severity, totalCountOfRays, explosionHits) {
58
- explosionHits.forEach(explosionHit => {
59
- if (explosionHit.isExternal) {
60
- explosionHit.raycastResults.forEach(rayCastResult => {
61
- let force = severity * (1 - rayCastResult.fraction);
62
- p2js_helper_1.P2JSHelper.pushBody(rayCastResult.body, rayCastResult.hitPosition(), rayCastResult.line.fromTo, force);
63
- });
64
- }
65
- else {
66
- let vectorToCenter = helpers_lib_1.Vector.fromTo(explosionCenter, p2js_helper_1.P2JSHelper.arrayToVector(explosionHit.p2Body.position));
67
- let fractionToCenter = vectorToCenter.length / radius;
68
- let force = (severity * totalCountOfRays * fractionToCenter) / 2;
69
- p2js_helper_1.P2JSHelper.pushBody(explosionHit.p2Body, explosionHit.getHitPosition(), vectorToCenter, force);
70
- }
76
+ });
77
+ }
78
+ applyForcesToBodies(explosionCenter, radius, severity, totalCountOfRays, explosionHits) {
79
+ explosionHits.forEach(explosionHit => {
80
+ if (explosionHit.isExternal) {
81
+ explosionHit.raycastResults.forEach(rayCastResult => {
82
+ const force = severity * (1 - rayCastResult.fraction);
83
+ p2js_helper_1.P2JSHelper.pushBody(rayCastResult.body, rayCastResult.hitPosition(), rayCastResult.line.fromTo, force);
71
84
  });
85
+ } else {
86
+ const vectorToCenter = helpers_lib_1.Vector.fromTo(
87
+ explosionCenter,
88
+ p2js_helper_1.P2JSHelper.arrayToVector(explosionHit.p2Body.position)
89
+ );
90
+ const fractionToCenter = vectorToCenter.length / radius;
91
+ const force = (severity * totalCountOfRays * fractionToCenter) / 2;
92
+ p2js_helper_1.P2JSHelper.pushBody(explosionHit.p2Body, explosionHit.getHitPosition(), vectorToCenter, force);
93
+ }
94
+ });
95
+ }
96
+ getTotalCountOfRays(radius) {
97
+ if (radius > 100) {
98
+ return Math.floor(radius * 0.3);
99
+ } else {
100
+ return Math.floor(radius * 0.26 + 4);
72
101
  }
73
- getTotalCountOfRays(radius) {
74
- if (radius > 100) {
75
- return Math.floor(radius * 0.3);
76
- }
77
- else {
78
- return Math.floor(radius * 0.26 + 4);
79
- }
80
- }
102
+ }
81
103
  };
82
104
  exports.ExplosionService = ExplosionService;
83
- exports.ExplosionService = ExplosionService = __decorate([
105
+ exports.ExplosionService = ExplosionService = __decorate(
106
+ [
84
107
  (0, game_entities_1.ServiceDecorator)(),
85
- __metadata("design:paramtypes", [ray_casting_service_1.RayCastingService, debug_visuals_service_1.DebugVisualsService])
86
- ], ExplosionService);
87
- //# sourceMappingURL=explosion.service.js.map
108
+ __metadata('design:paramtypes', [ray_casting_service_1.RayCastingService, debug_visuals_service_1.DebugVisualsService])
109
+ ],
110
+ ExplosionService
111
+ );
112
+ //# sourceMappingURL=explosion.service.js.map
@@ -4,11 +4,19 @@ import { ExplosionHit, PhysicsExplosionOptions } from '../../⚜️gateways';
4
4
  import { RayCastingService } from '../ray-casting/ray-casting.service';
5
5
  import { TestVisualsService } from '../test-visuals/test-visuals.service';
6
6
  export declare class ElipticExplosionService {
7
- private rayCastingService;
8
- private testVisualsService;
9
- constructor(rayCastingService: RayCastingService, testVisualsService: TestVisualsService);
10
- createElipticExplosion(physicsWorldId: string, explosionCenter: Vector, rotation: Radian, size: Vector, physicsBodyGroup: PhysicsBodyGroup, severity: number, options?: PhysicsExplosionOptions): ExplosionHit[];
11
- private createRays;
12
- private getWidthOfLine;
13
- private applyForcesToBodies;
7
+ private rayCastingService;
8
+ private testVisualsService;
9
+ constructor(rayCastingService: RayCastingService, testVisualsService: TestVisualsService);
10
+ createElipticExplosion(
11
+ physicsWorldId: string,
12
+ explosionCenter: Vector,
13
+ rotation: Radian,
14
+ size: Vector,
15
+ physicsBodyGroup: PhysicsBodyGroup,
16
+ severity: number,
17
+ options?: PhysicsExplosionOptions
18
+ ): ExplosionHit[];
19
+ private createRays;
20
+ private getWidthOfLine;
21
+ private applyForcesToBodies;
14
22
  }