bard-legends-framework 0.11.0 → 0.12.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.
- package/dist/actions-performance.test.d.ts +1 -0
- package/dist/actions-performance.test.js +83 -0
- package/dist/game-entities/controller/controller.d.ts +2 -2
- package/dist/game-entities/controller/controller.js +8 -8
- package/dist/game-entities/controller/controller.test.js +2 -2
- package/dist/game-entities/entity/entity.d.ts +7 -7
- package/dist/game-entities/entity/entity.js +18 -12
- package/dist/game-entities/entity/entity.test.js +93 -30
- package/dist/game-entities/entity/helpers/entity-store.helper.d.ts +3 -3
- package/dist/game-entities/entity/helpers/entity-store.helper.js +12 -12
- package/dist/game-entities/entity/helpers/entity-store.helper.test.js +11 -11
- package/dist/game-entities/entity/helpers/entity-views.helper.d.ts +6 -6
- package/dist/game-entities/entity/helpers/entity-views.helper.js +25 -22
- package/dist/game-entities/entity/singleton-entity.test.js +9 -4
- package/dist/game-entities/hard-reset.d.ts +5 -0
- package/dist/game-entities/hard-reset.js +14 -0
- package/dist/game-entities/index.d.ts +1 -1
- package/dist/game-entities/index.js +3 -3
- package/dist/game-entities/scene/scene.d.ts +13 -13
- package/dist/game-entities/scene/scene.js +41 -46
- package/dist/game-entities/scene/scene.test.js +95 -37
- package/dist/game-entities/service/service.d.ts +1 -4
- package/dist/game-entities/service/service.js +12 -13
- package/dist/game-entities/service/service.test.js +33 -12
- package/dist/game-entities/unit-test.helper.js +1 -1
- package/dist/game-entities/update-cycle.d.ts +7 -17
- package/dist/game-entities/update-cycle.js +25 -19
- package/dist/game-entities/view/view.d.ts +6 -6
- package/dist/game-entities/view/view.js +15 -21
- package/dist/game-entities/view/view.test.js +40 -9
- package/dist/physics/entity-types/immovable-physics-entity.d.ts +1 -1
- package/dist/physics/entity-types/immovable-physics-entity.js +4 -4
- package/dist/physics/entity-types/movable-entity.d.ts +1 -1
- package/dist/physics/entity-types/movable-entity.js +2 -2
- package/dist/physics/entity-types/movable-physics-entity.d.ts +8 -8
- package/dist/physics/entity-types/movable-physics-entity.js +27 -27
- package/dist/physics/entity-types/physics-entity.d.ts +10 -14
- package/dist/physics/entity-types/physics-entity.js +27 -26
- package/dist/physics/interfaces.d.ts +6 -6
- package/dist/physics/interfaces.js +4 -4
- package/dist/physics/module//342/232/234/357/270/217gateways/controllers/physics-internal.controller.d.ts +16 -16
- package/dist/physics/module//342/232/234/357/270/217gateways/controllers/physics-internal.controller.js +22 -22
- package/dist/physics/module//342/232/234/357/270/217gateways/controllers/physics.controller.d.ts +19 -19
- package/dist/physics/module//342/232/234/357/270/217gateways/controllers/physics.controller.js +30 -30
- package/dist/physics/module//342/232/234/357/270/217gateways/dtos/requests.dto.d.ts +3 -3
- package/dist/physics/module//342/232/234/357/270/217gateways/physics-internal.gateway.d.ts +10 -10
- package/dist/physics/module//342/232/234/357/270/217gateways/physics-internal.gateway.js +16 -16
- package/dist/physics/module//342/232/234/357/270/217gateways/physics.gateway.d.ts +10 -10
- package/dist/physics/module//342/232/234/357/270/217gateways/physics.gateway.js +18 -18
- package/dist/physics/module//360/237/223/220services/collision/collisions.service.d.ts +5 -5
- package/dist/physics/module//360/237/223/220services/collision/collisions.service.js +17 -17
- package/dist/physics/module//360/237/223/220services/collision/hit-test.service.d.ts +4 -4
- package/dist/physics/module//360/237/223/220services/collision/hit-test.service.js +11 -11
- package/dist/physics/module//360/237/223/220services/collision/physics-body-group.service.d.ts +2 -2
- package/dist/physics/module//360/237/223/220services/collision/physics-body-group.service.js +4 -4
- package/dist/physics/module//360/237/223/220services/creation/border.service.d.ts +2 -2
- package/dist/physics/module//360/237/223/220services/creation/border.service.js +9 -9
- package/dist/physics/module//360/237/223/220services/creation/materials.service.d.ts +7 -7
- package/dist/physics/module//360/237/223/220services/creation/materials.service.js +17 -17
- package/dist/physics/module//360/237/223/220services/creation/physics-world.service.d.ts +11 -11
- package/dist/physics/module//360/237/223/220services/creation/physics-world.service.js +27 -26
- package/dist/physics/module//360/237/223/220services/creation/shape-creation.service.d.ts +4 -4
- package/dist/physics/module//360/237/223/220services/creation/shape-creation.service.js +13 -13
- package/dist/physics/module//360/237/223/220services/impact/eliptic-explosion.service.d.ts +9 -9
- package/dist/physics/module//360/237/223/220services/impact/eliptic-explosion.service.js +19 -19
- package/dist/physics/module//360/237/223/220services/impact/explosion.service.d.ts +9 -9
- package/dist/physics/module//360/237/223/220services/impact/explosion.service.js +20 -20
- package/dist/physics/module//360/237/223/220services/impact/ray-cast-hit-converter.d.ts +1 -1
- package/dist/physics/module//360/237/223/220services/impact/ray-cast-hit-converter.js +4 -4
- package/dist/physics/module//360/237/223/220services/path-finding/availability-grid-cache.service.d.ts +2 -2
- package/dist/physics/module//360/237/223/220services/path-finding/availability-grid-cache.service.js +3 -3
- package/dist/physics/module//360/237/223/220services/path-finding/availability-grid.service.d.ts +5 -5
- package/dist/physics/module//360/237/223/220services/path-finding/availability-grid.service.js +12 -12
- package/dist/physics/module//360/237/223/220services/path-finding/path-finder.service.d.ts +4 -4
- package/dist/physics/module//360/237/223/220services/path-finding/path-finder.service.js +12 -12
- package/dist/physics/module//360/237/223/220services/query/physics-query.service.d.ts +4 -4
- package/dist/physics/module//360/237/223/220services/query/physics-query.service.js +4 -4
- package/dist/physics/module//360/237/223/220services/ray-casting/ray-casting.service.d.ts +1 -4
- package/dist/physics/module//360/237/223/220services/ray-casting/ray-casting.service.js +7 -15
- package/dist/physics/module//360/237/223/220services/test-visuals/test-visuals.service.d.ts +9 -9
- package/dist/physics/module//360/237/223/220services/test-visuals/test-visuals.service.js +43 -42
- package/dist/physics/module//360/237/247/212entities/border.entity.d.ts +1 -1
- package/dist/physics/module//360/237/247/212entities/border.entity.js +3 -3
- package/dist/pixi/components/display-object-array.d.ts +5 -5
- package/dist/pixi/components/display-object-array.js +14 -14
- package/dist/pixi/components/helpers/smooth-scroller.d.ts +7 -7
- package/dist/pixi/components/helpers/smooth-scroller.js +23 -23
- package/dist/pixi/components/helpers/smooth-scroller.test.js +14 -14
- package/dist/pixi/components/menu/menu-entity.d.ts +14 -0
- package/dist/pixi/components/menu/menu-entity.js +48 -0
- package/dist/pixi/components/menu/menu.ui.d.ts +23 -0
- package/dist/pixi/components/menu/menu.ui.js +97 -0
- package/dist/pixi/components/mouse-wheel-listener.ui.d.ts +2 -2
- package/dist/pixi/components/mouse-wheel-listener.ui.js +11 -11
- package/dist/pixi/components/scroll-area.ui.d.ts +1 -1
- package/dist/pixi/components/scroll-area.ui.js +9 -9
- package/dist/pixi/components/scroll-mask.ui.d.ts +9 -8
- package/dist/pixi/components/scroll-mask.ui.js +25 -24
- package/dist/pixi/display-object/container-attributes.d.ts +24 -25
- package/dist/pixi/display-object/container-attributes.js +26 -26
- package/dist/pixi/display-object/container.d.ts +3 -3
- package/dist/pixi/display-object/container.js +2 -2
- package/dist/pixi/display-object/filters/base-filters/blur.filter.d.ts +9 -9
- package/dist/pixi/display-object/filters/base-filters/blur.filter.js +25 -25
- package/dist/pixi/display-object/filters/base-filters/expand-with-color.filter.d.ts +7 -7
- package/dist/pixi/display-object/filters/base-filters/expand-with-color.filter.js +17 -17
- package/dist/pixi/display-object/filters/composite-filters/glow-filter.d.ts +6 -6
- package/dist/pixi/display-object/filters/composite-filters/glow-filter.js +10 -11
- package/dist/pixi/display-object/filters/helpers/gaussian-values.helper.d.ts +2 -2
- package/dist/pixi/display-object/filters/helpers/gaussian-values.helper.js +5 -5
- package/dist/pixi/display-object/filters/templates/checking-neighbors.template.d.ts +5 -5
- package/dist/pixi/display-object/filters/templates/checking-neighbors.template.js +8 -8
- package/dist/pixi/display-object/filters/templates/plane.template.d.ts +5 -5
- package/dist/pixi/display-object/filters/templates/plane.template.js +7 -7
- package/dist/pixi/display-object/filters.d.ts +7 -7
- package/dist/pixi/display-object/filters.js +34 -34
- package/dist/pixi/display-object/index.d.ts +1 -1
- package/dist/pixi/display-object/objects/graphics/graphics.d.ts +9 -9
- package/dist/pixi/display-object/objects/graphics/graphics.js +25 -25
- package/dist/pixi/display-object/objects/placeholder.d.ts +1 -1
- package/dist/pixi/display-object/objects/placeholder.js +7 -7
- package/dist/pixi/display-object/objects/sprite/glow-sprite-generator.d.ts +9 -9
- package/dist/pixi/display-object/objects/sprite/glow-sprite-generator.js +26 -25
- package/dist/pixi/display-object/objects/sprite/sprite.d.ts +10 -9
- package/dist/pixi/display-object/objects/sprite/sprite.js +62 -53
- package/dist/pixi/display-object/objects/text/helpers/process-steps/1-data-in-converter/pixi-text-style-converter.d.ts +4 -3
- package/dist/pixi/display-object/objects/text/helpers/process-steps/1-data-in-converter/rich-text-data-in-converter.d.ts +6 -6
- package/dist/pixi/display-object/objects/text/helpers/process-steps/1-data-in-converter/rich-text-data-in-converter.js +16 -16
- package/dist/pixi/display-object/objects/text/helpers/process-steps/1-data-in-converter/rich-text-data-in-converter.test.js +28 -28
- package/dist/pixi/display-object/objects/text/helpers/process-steps/2-wrapping-text/consistent-space-text-wrapper.d.ts +1 -1
- package/dist/pixi/display-object/objects/text/helpers/process-steps/2-wrapping-text/consistent-space-text-wrapper.js +3 -3
- package/dist/pixi/display-object/objects/text/helpers/process-steps/2-wrapping-text/rich-text-typewriter.d.ts +17 -17
- package/dist/pixi/display-object/objects/text/helpers/process-steps/2-wrapping-text/rich-text-typewriter.js +62 -62
- package/dist/pixi/display-object/objects/text/helpers/process-steps/2-wrapping-text/rich-text-typewriter.test.js +2 -2
- package/dist/pixi/display-object/objects/text/helpers/process-steps/3-data-out-converter/rich-text-data-out-converter.d.ts +3 -3
- package/dist/pixi/display-object/objects/text/helpers/process-steps/3-data-out-converter/rich-text-data-out-converter.js +6 -6
- package/dist/pixi/display-object/objects/text/helpers/process-steps/3-data-out-converter/rich-text-data-out-converter.test.js +12 -12
- package/dist/pixi/display-object/objects/text/helpers/rich-text-to-plane-text.d.ts +2 -2
- package/dist/pixi/display-object/objects/text/helpers/rich-text-to-plane-text.test.js +5 -5
- package/dist/pixi/display-object/objects/text/rich-text.d.ts +0 -1
- package/dist/pixi/display-object/objects/text/rich-text.js +0 -1
- package/dist/pixi/display-object/objects/text/text.d.ts +9 -10
- package/dist/pixi/display-object/objects/text/text.js +34 -35
- package/dist/pixi/game.d.ts +20 -15
- package/dist/pixi/game.js +40 -35
- package/dist/pixi/helpers/game-assets.d.ts +5 -5
- package/dist/pixi/helpers/game-assets.js +14 -11
- package/dist/pixi/helpers/position-conversion.helper.d.ts +4 -4
- package/dist/pixi/helpers/position-conversion.helper.js +3 -3
- package/dist/pixi/index.d.ts +3 -37
- package/dist/pixi/index.js +6 -22
- package/dist/pixi/modules/CAMERA/camera.d.ts +5 -4
- package/dist/pixi/modules/CAMERA/camera.js +9 -9
- package/dist/pixi/modules/CAMERA//342/232/234/357/270/217gateways/camera-view.gateway.d.ts +3 -2
- package/dist/pixi/modules/CAMERA//342/232/234/357/270/217gateways/camera-view.gateway.js +1 -1
- package/dist/pixi/modules/CAMERA//342/232/234/357/270/217gateways/controllers/camera-view.controller.d.ts +3 -2
- package/dist/pixi/modules/CAMERA//342/232/234/357/270/217gateways/controllers/camera-view.controller.js +5 -5
- package/dist/pixi/modules/CAMERA//342/232/234/357/270/217gateways/controllers/camera.controller.d.ts +3 -3
- package/dist/pixi/modules/CAMERA//342/232/234/357/270/217gateways/controllers/camera.controller.js +7 -7
- package/dist/pixi/modules/CAMERA//342/232/234/357/270/217gateways/dtos/requests.dto.d.ts +8 -8
- package/dist/pixi/modules/CAMERA//342/232/234/357/270/217gateways/dtos/requests.dto.js +8 -8
- package/dist/pixi/modules/CAMERA//360/237/223/220services/camera.service.d.ts +2 -2
- package/dist/pixi/modules/CAMERA//360/237/223/220services/camera.service.js +12 -12
- package/dist/pixi/modules/CAMERA//360/237/247/251views/camera.view.d.ts +17 -16
- package/dist/pixi/modules/CAMERA//360/237/247/251views/camera.view.js +49 -48
- package/dist/pixi/pixi-definitions.d.ts +38 -0
- package/dist/pixi/pixi-definitions.js +37 -0
- package/dist/pixi/services/keyboard/keyboard.d.ts +2 -2
- package/dist/pixi/services/keyboard/keyboard.js +9 -9
- package/dist/pixi/services/mouse/mouse-target-focus.service.d.ts +10 -10
- package/dist/pixi/services/mouse/mouse-target-focus.service.js +28 -28
- package/dist/pixi/services/mouse/mouse.service.d.ts +1 -1
- package/dist/pixi/services/mouse/mouse.service.js +5 -5
- package/dist/utilities/animator/animating-content/fade-in-content.test.d.ts +1 -0
- package/dist/utilities/animator/animating-content/fade-in-content.test.js +10 -0
- package/dist/utilities/animator/animating-content/slide-in-content.test.d.ts +1 -0
- package/dist/utilities/animator/animating-content/slide-in-content.test.js +10 -0
- package/dist/utilities/animator/animations.d.ts +14 -6
- package/dist/utilities/animator/animations.js +15 -11
- package/dist/utilities/animator/animator/animator.d.ts +44 -0
- package/dist/utilities/animator/animator/animator.js +234 -0
- package/dist/utilities/animator/animator/animator.memory-leak.test.d.ts +1 -0
- package/dist/utilities/animator/animator/animator.memory-leak.test.js +73 -0
- package/dist/utilities/animator/animator/animator.performance.test.d.ts +1 -0
- package/dist/utilities/animator/animator/animator.performance.test.js +116 -0
- package/dist/utilities/animator/animator/animator.test.d.ts +1 -0
- package/dist/utilities/animator/animator/animator.test.js +1046 -0
- package/dist/utilities/animator/animator.d.ts +2 -3
- package/dist/utilities/animator/animator.js +66 -59
- package/dist/utilities/animator/animator.performance.test.d.ts +1 -0
- package/dist/utilities/animator/animator.performance.test.js +46 -0
- package/dist/utilities/animator/animator.test.js +89 -28
- package/dist/utilities/animator/animator2/animator.d.ts +42 -0
- package/dist/utilities/animator/animator2/animator.js +222 -0
- package/dist/utilities/animator/animator2/animator.memory-leak.test.d.ts +1 -0
- package/dist/utilities/animator/animator2/animator.memory-leak.test.js +73 -0
- package/dist/utilities/animator/animator2/animator.performance.test.d.ts +1 -0
- package/dist/utilities/animator/animator2/animator.performance.test.js +65 -0
- package/dist/utilities/animator/animator2/animator.test.d.ts +1 -0
- package/dist/utilities/animator/animator2/animator.test.js +1007 -0
- package/dist/utilities/animator/animator_old/animator.d.ts +60 -0
- package/dist/utilities/animator/animator_old/animator.js +337 -0
- package/dist/utilities/animator/animator_old/animator.performance.test.d.ts +1 -0
- package/dist/utilities/animator/animator_old/animator.performance.test.js +121 -0
- package/dist/utilities/animator/animator_old/animator.test.d.ts +1 -0
- package/dist/utilities/animator/animator_old/animator.test.js +996 -0
- package/dist/utilities/animator/content-animations/fade-in/fade-in-content.d.ts +18 -0
- package/dist/utilities/animator/content-animations/fade-in/fade-in-content.js +37 -0
- package/dist/utilities/animator/content-animations/fade-in/fade-in-content.test.d.ts +1 -0
- package/dist/utilities/animator/content-animations/fade-in/fade-in-content.test.js +10 -0
- package/dist/utilities/animator/content-animations/fade-in/fade-in-state-animation.d.ts +38 -0
- package/dist/utilities/animator/content-animations/fade-in/fade-in-state-animation.js +208 -0
- package/dist/utilities/animator/content-animations/fade-in/fade-in-state-animation.test.d.ts +1 -0
- package/dist/utilities/animator/content-animations/fade-in/fade-in-state-animation.test.js +439 -0
- package/dist/utilities/animator/content-animations/slide/slide-in-content.d.ts +41 -0
- package/dist/utilities/animator/content-animations/slide/slide-in-content.js +107 -0
- package/dist/utilities/animator/content-animations/slide/slide-in-content.test.d.ts +1 -0
- package/dist/utilities/animator/content-animations/slide/slide-in-content.test.js +10 -0
- package/dist/utilities/animator/content-animations/slide/slide-state-animation.d.ts +24 -0
- package/dist/utilities/animator/content-animations/slide/slide-state-animation.js +138 -0
- package/dist/utilities/animator/content-animations/slide/slide-state-animation.test.d.ts +1 -0
- package/dist/utilities/animator/content-animations/slide/slide-state-animation.test.js +307 -0
- package/dist/utilities/animator/content-animations/slide/state-animation.d.ts +37 -0
- package/dist/utilities/animator/content-animations/slide/state-animation.js +170 -0
- package/dist/utilities/animator/content-animations/slide/state-animation.test.d.ts +1 -0
- package/dist/utilities/animator/content-animations/slide/state-animation.test.js +340 -0
- package/dist/utilities/animator/index.d.ts +6 -6
- package/dist/utilities/animator/index.js +6 -6
- package/dist/utilities/animator/state-animation/fade-in/fade-in-content.d.ts +18 -0
- package/dist/utilities/animator/state-animation/fade-in/fade-in-content.js +37 -0
- package/dist/utilities/animator/state-animation/fade-in/fade-in-content.test.d.ts +1 -0
- package/dist/utilities/animator/state-animation/fade-in/fade-in-content.test.js +10 -0
- package/dist/utilities/animator/state-animation/fade-in/fade-in-state-animation.d.ts +32 -0
- package/dist/utilities/animator/state-animation/fade-in/fade-in-state-animation.js +168 -0
- package/dist/utilities/animator/state-animation/fade-in/fade-in-state-animation.test.d.ts +1 -0
- package/dist/utilities/animator/state-animation/fade-in/fade-in-state-animation.test.js +431 -0
- package/dist/utilities/animator/state-animation/slide/slide-in-content.d.ts +37 -0
- package/dist/utilities/animator/state-animation/slide/slide-in-content.js +100 -0
- package/dist/utilities/animator/state-animation/slide/slide-in-content.test.d.ts +1 -0
- package/dist/utilities/animator/state-animation/slide/slide-in-content.test.js +10 -0
- package/dist/utilities/animator/state-animation/slide/slide-state-animation.d.ts +24 -0
- package/dist/utilities/animator/state-animation/slide/slide-state-animation.js +130 -0
- package/dist/utilities/animator/state-animation/slide/slide-state-animation.test.d.ts +1 -0
- package/dist/utilities/animator/state-animation/slide/slide-state-animation.test.js +301 -0
- package/dist/utilities/animator/state-animation/slide-state-animation.test.js +30 -30
- package/dist/utilities/animator/state-animation/state-animation.js +7 -7
- package/dist/utilities/animator/state-animation/state-animation.test.js +24 -24
- package/dist/utilities/animator/state-animation/visit-disappear-state-animation.test.js +30 -30
- package/dist/utilities/data-structures/vector-set/vector-set.d.ts +1 -1
- package/dist/utilities/data-structures/vector-set/vector-set.js +5 -5
- package/dist/utilities/grid-algorithms/closest-available-space/closest-available-space.helper.d.ts +1 -1
- package/dist/utilities/grid-algorithms/closest-available-space/closest-available-space.helper.js +5 -5
- package/dist/utilities/grid-algorithms/path-finder/path-finder.js +21 -21
- package/dist/utilities/grid-algorithms/path-finder/path-finder.test.js +9 -9
- package/dist/utilities/grid-algorithms/vector-field-path-finder/vector-field-path-finder.d.ts +14 -14
- package/dist/utilities/grid-algorithms/vector-field-path-finder/vector-field-path-finder.js +43 -43
- package/dist/utilities/grid-algorithms/vector-field-path-finder/vector-field-path-finder.test.js +21 -21
- package/package.json +7 -5
|
@@ -10,29 +10,29 @@ exports.PhysicsInternalGateway = exports.PhysicsInternalControllerLink = void 0;
|
|
|
10
10
|
const game_entities_1 = require("../../../game-entities");
|
|
11
11
|
exports.PhysicsInternalControllerLink = new game_entities_1.ControllerLink();
|
|
12
12
|
let PhysicsInternalGateway = class PhysicsInternalGateway {
|
|
13
|
-
createBody(
|
|
14
|
-
return exports.PhysicsInternalControllerLink.trigger('createBody',
|
|
13
|
+
createBody(physicsWorldID, physicsEntityDefinition, material, materialDefinition, type) {
|
|
14
|
+
return exports.PhysicsInternalControllerLink.trigger('createBody', physicsWorldID, physicsEntityDefinition, material, materialDefinition, type);
|
|
15
15
|
}
|
|
16
|
-
getMaterial(
|
|
17
|
-
return exports.PhysicsInternalControllerLink.trigger('getMaterial',
|
|
16
|
+
getMaterial(physicsWorldID, name) {
|
|
17
|
+
return exports.PhysicsInternalControllerLink.trigger('getMaterial', physicsWorldID, name);
|
|
18
18
|
}
|
|
19
|
-
getMaterialDefinition(
|
|
20
|
-
return exports.PhysicsInternalControllerLink.trigger('getMaterialDefinition',
|
|
19
|
+
getMaterialDefinition(physicsWorldID, name) {
|
|
20
|
+
return exports.PhysicsInternalControllerLink.trigger('getMaterialDefinition', physicsWorldID, name);
|
|
21
21
|
}
|
|
22
|
-
getGroupConstant(
|
|
23
|
-
return exports.PhysicsInternalControllerLink.trigger('getGroupConstant',
|
|
22
|
+
getGroupConstant(physicsWorldID, group) {
|
|
23
|
+
return exports.PhysicsInternalControllerLink.trigger('getGroupConstant', physicsWorldID, group);
|
|
24
24
|
}
|
|
25
|
-
getMaskConstant(
|
|
26
|
-
return exports.PhysicsInternalControllerLink.trigger('getMaskConstant',
|
|
25
|
+
getMaskConstant(physicsWorldID, group) {
|
|
26
|
+
return exports.PhysicsInternalControllerLink.trigger('getMaskConstant', physicsWorldID, group);
|
|
27
27
|
}
|
|
28
|
-
addBody(
|
|
29
|
-
return exports.PhysicsInternalControllerLink.trigger('addBody',
|
|
28
|
+
addBody(physicsWorldID, body, addInEmptySpace, physicsBodyGroup, includeOnPathfinding) {
|
|
29
|
+
return exports.PhysicsInternalControllerLink.trigger('addBody', physicsWorldID, body, addInEmptySpace, physicsBodyGroup, includeOnPathfinding);
|
|
30
30
|
}
|
|
31
|
-
removeBody(
|
|
32
|
-
return exports.PhysicsInternalControllerLink.trigger('removeBody',
|
|
31
|
+
removeBody(physicsWorldID, p2Body) {
|
|
32
|
+
return exports.PhysicsInternalControllerLink.trigger('removeBody', physicsWorldID, p2Body);
|
|
33
33
|
}
|
|
34
|
-
subscribeToPhysicsStep(
|
|
35
|
-
return exports.PhysicsInternalControllerLink.trigger('subscribeToPhysicsStep',
|
|
34
|
+
subscribeToPhysicsStep(physicsWorldID, callback) {
|
|
35
|
+
return exports.PhysicsInternalControllerLink.trigger('subscribeToPhysicsStep', physicsWorldID, callback);
|
|
36
36
|
}
|
|
37
37
|
};
|
|
38
38
|
exports.PhysicsInternalGateway = PhysicsInternalGateway;
|
|
@@ -6,14 +6,14 @@ import { CreatePhysicsWorldRequestDTO, HitTestOptions, PhysicsExplosionOptions }
|
|
|
6
6
|
import { ExplosionHit, MapSizeDTO } from './dtos/responses.dto';
|
|
7
7
|
export declare const PhysicsControllerLink: ControllerLink;
|
|
8
8
|
export declare class PhysicsGateway {
|
|
9
|
-
createPhysicsWorld(request: CreatePhysicsWorldRequestDTO):
|
|
10
|
-
getMapSize(
|
|
11
|
-
setPaused(pause: boolean,
|
|
12
|
-
hitTest(
|
|
13
|
-
findPath(
|
|
14
|
-
findPathDirection(
|
|
15
|
-
applyImpulse(
|
|
16
|
-
createExplosion(
|
|
17
|
-
createElipticExplosion(
|
|
18
|
-
printPathfindingTestGrid(
|
|
9
|
+
createPhysicsWorld(request: CreatePhysicsWorldRequestDTO): number;
|
|
10
|
+
getMapSize(physicsWorldID: number): MapSizeDTO;
|
|
11
|
+
setPaused(pause: boolean, physicsWorldID: number): void;
|
|
12
|
+
hitTest(physicsEntityID: number, options?: HitTestOptions): boolean;
|
|
13
|
+
findPath(physicsWorldID: number, startingPosition: Vector, target: Vector | number, collidableWithGroup: PhysicsBodyGroup, neighborType: GridNeighborType): PathFinderResult;
|
|
14
|
+
findPathDirection(physicsWorldID: number, startingPosition: Vector, target: Vector | number, collidableWithGroup: PhysicsBodyGroup): Radian | undefined;
|
|
15
|
+
applyImpulse(physicsEntityID: number, hitPosition: Vector, hitDirection: Vector, severity: number): void;
|
|
16
|
+
createExplosion(physicsWorldID: number, explosionCenter: Vector, radius: number, physicsBodyGroup: PhysicsBodyGroup, severity: number, options?: PhysicsExplosionOptions): ExplosionHit[];
|
|
17
|
+
createElipticExplosion(physicsWorldID: number, explosionCenter: Vector, rotation: Radian, size: Vector, physicsBodyGroup: PhysicsBodyGroup, severity: number, options?: PhysicsExplosionOptions): ExplosionHit[];
|
|
18
|
+
printPathfindingTestGrid(physicsWorldID: number, testLayerID: number, target: Vector | number, physicsBodyGroup: PhysicsBodyGroup, area: Rectangle, gridCellSize?: number): void;
|
|
19
19
|
}
|
|
@@ -14,32 +14,32 @@ let PhysicsGateway = class PhysicsGateway {
|
|
|
14
14
|
createPhysicsWorld(request) {
|
|
15
15
|
return exports.PhysicsControllerLink.trigger('createPhysicsWorld', request);
|
|
16
16
|
}
|
|
17
|
-
getMapSize(
|
|
18
|
-
return exports.PhysicsControllerLink.trigger('getMapSize',
|
|
17
|
+
getMapSize(physicsWorldID) {
|
|
18
|
+
return exports.PhysicsControllerLink.trigger('getMapSize', physicsWorldID);
|
|
19
19
|
}
|
|
20
|
-
setPaused(pause,
|
|
21
|
-
return exports.PhysicsControllerLink.trigger('setPaused', pause,
|
|
20
|
+
setPaused(pause, physicsWorldID) {
|
|
21
|
+
return exports.PhysicsControllerLink.trigger('setPaused', pause, physicsWorldID);
|
|
22
22
|
}
|
|
23
|
-
hitTest(
|
|
24
|
-
return exports.PhysicsControllerLink.trigger('hitTest',
|
|
23
|
+
hitTest(physicsEntityID, options) {
|
|
24
|
+
return exports.PhysicsControllerLink.trigger('hitTest', physicsEntityID, options);
|
|
25
25
|
}
|
|
26
|
-
findPath(
|
|
27
|
-
return exports.PhysicsControllerLink.trigger('findPath',
|
|
26
|
+
findPath(physicsWorldID, startingPosition, target, collidableWithGroup, neighborType) {
|
|
27
|
+
return exports.PhysicsControllerLink.trigger('findPath', physicsWorldID, startingPosition, target, collidableWithGroup, neighborType);
|
|
28
28
|
}
|
|
29
|
-
findPathDirection(
|
|
30
|
-
return exports.PhysicsControllerLink.trigger('findPathDirection',
|
|
29
|
+
findPathDirection(physicsWorldID, startingPosition, target, collidableWithGroup) {
|
|
30
|
+
return exports.PhysicsControllerLink.trigger('findPathDirection', physicsWorldID, startingPosition, target, collidableWithGroup);
|
|
31
31
|
}
|
|
32
|
-
applyImpulse(
|
|
33
|
-
return exports.PhysicsControllerLink.trigger('applyImpulse',
|
|
32
|
+
applyImpulse(physicsEntityID, hitPosition, hitDirection, severity) {
|
|
33
|
+
return exports.PhysicsControllerLink.trigger('applyImpulse', physicsEntityID, hitPosition, hitDirection, severity);
|
|
34
34
|
}
|
|
35
|
-
createExplosion(
|
|
36
|
-
return exports.PhysicsControllerLink.trigger('createExplosion',
|
|
35
|
+
createExplosion(physicsWorldID, explosionCenter, radius, physicsBodyGroup, severity, options) {
|
|
36
|
+
return exports.PhysicsControllerLink.trigger('createExplosion', physicsWorldID, explosionCenter, radius, physicsBodyGroup, severity, options);
|
|
37
37
|
}
|
|
38
|
-
createElipticExplosion(
|
|
39
|
-
return exports.PhysicsControllerLink.trigger('createElipticExplosion',
|
|
38
|
+
createElipticExplosion(physicsWorldID, explosionCenter, rotation, size, physicsBodyGroup, severity, options) {
|
|
39
|
+
return exports.PhysicsControllerLink.trigger('createElipticExplosion', physicsWorldID, explosionCenter, rotation, size, physicsBodyGroup, severity, options);
|
|
40
40
|
}
|
|
41
|
-
printPathfindingTestGrid(
|
|
42
|
-
return exports.PhysicsControllerLink.trigger('printPathfindingTestGrid',
|
|
41
|
+
printPathfindingTestGrid(physicsWorldID, testLayerID, target, physicsBodyGroup, area, gridCellSize = path_finder_service_1.DEFAULT_GRID_CELL_SIZE) {
|
|
42
|
+
return exports.PhysicsControllerLink.trigger('printPathfindingTestGrid', physicsWorldID, testLayerID, target, physicsBodyGroup, area, gridCellSize);
|
|
43
43
|
}
|
|
44
44
|
};
|
|
45
45
|
exports.PhysicsGateway = PhysicsGateway;
|
|
@@ -2,9 +2,9 @@ import { PhysicsWorldEntity } from '../../🧊entities/physics-world.entity';
|
|
|
2
2
|
export declare class CollisionsService {
|
|
3
3
|
registerPhysicsWorld(physicsWorld: PhysicsWorldEntity): void;
|
|
4
4
|
step(physicsWorld: PhysicsWorldEntity, time: number, delta: number): void;
|
|
5
|
-
private
|
|
6
|
-
private
|
|
7
|
-
private
|
|
8
|
-
private
|
|
9
|
-
private
|
|
5
|
+
private _handleSpeedLimit;
|
|
6
|
+
private _registerContactEquation;
|
|
7
|
+
private _getCollisionDetails;
|
|
8
|
+
private _getCollisionDetail;
|
|
9
|
+
private _getNormals;
|
|
10
10
|
}
|
|
@@ -15,26 +15,26 @@ let CollisionsService = class CollisionsService {
|
|
|
15
15
|
registerPhysicsWorld(physicsWorld) {
|
|
16
16
|
physicsWorld.p2World.on('beginContact', (event) => {
|
|
17
17
|
event.contactEquations.forEach(contactEquation => {
|
|
18
|
-
this.
|
|
18
|
+
this._registerContactEquation(physicsWorld, contactEquation);
|
|
19
19
|
});
|
|
20
20
|
});
|
|
21
21
|
}
|
|
22
22
|
step(physicsWorld, time, delta) {
|
|
23
23
|
physics_entity_1.PhysicsEntity.getPhysicsEntities().forEach(entity => {
|
|
24
|
-
entity
|
|
24
|
+
entity._collisions = [];
|
|
25
25
|
});
|
|
26
26
|
// 'beginContact' event is not getting triggered for the continues collisions
|
|
27
27
|
physicsWorld.p2World.narrowphase.contactEquations.forEach(contactEquation => {
|
|
28
|
-
this.
|
|
28
|
+
this._registerContactEquation(physicsWorld, contactEquation);
|
|
29
29
|
});
|
|
30
|
-
physicsWorld.bodiesInContactWith.forEach((item,
|
|
31
|
-
this.
|
|
32
|
-
item.entity
|
|
30
|
+
physicsWorld.bodiesInContactWith.forEach((item, bodyID) => {
|
|
31
|
+
this._handleSpeedLimit(item.p2Body);
|
|
32
|
+
item.entity._setCollisionReports(physicsWorld.collisionReports.get(bodyID) || []);
|
|
33
33
|
});
|
|
34
34
|
physicsWorld.bodiesInContactWith.clear();
|
|
35
35
|
physicsWorld.collisionReports.clear();
|
|
36
36
|
}
|
|
37
|
-
|
|
37
|
+
_handleSpeedLimit(body) {
|
|
38
38
|
let velocity = p2js_helper_1.P2JSHelper.arrayToVector(body.velocity);
|
|
39
39
|
if (velocity.length > interfaces_1.SPEED_LIMIT) {
|
|
40
40
|
velocity = velocity.normalize(interfaces_1.SPEED_LIMIT);
|
|
@@ -42,15 +42,15 @@ let CollisionsService = class CollisionsService {
|
|
|
42
42
|
}
|
|
43
43
|
body.angularVelocity = Math.min(Math.max(body.angularVelocity, -interfaces_1.ROTATIONAL_SPEED_LIMIT), interfaces_1.ROTATIONAL_SPEED_LIMIT);
|
|
44
44
|
}
|
|
45
|
-
|
|
46
|
-
let entityA = physics_entity_1.PhysicsEntity.
|
|
47
|
-
let entityB = physics_entity_1.PhysicsEntity.
|
|
45
|
+
_registerContactEquation(physicsWorld, contactEquation) {
|
|
46
|
+
let entityA = physics_entity_1.PhysicsEntity.getFromP2BodyID(contactEquation.bodyA.id);
|
|
47
|
+
let entityB = physics_entity_1.PhysicsEntity.getFromP2BodyID(contactEquation.bodyB.id);
|
|
48
48
|
if (entityA && entityB) {
|
|
49
49
|
physicsWorld.bodiesInContactWith.set(contactEquation.bodyA.id, { p2Body: contactEquation.bodyA, entity: entityA });
|
|
50
50
|
physicsWorld.bodiesInContactWith.set(contactEquation.bodyB.id, { p2Body: contactEquation.bodyB, entity: entityB });
|
|
51
51
|
let bodyACollisions = physicsWorld.collisionReports.get(contactEquation.bodyA.id) || [];
|
|
52
52
|
let bodyBCollisions = physicsWorld.collisionReports.get(contactEquation.bodyB.id) || [];
|
|
53
|
-
let { collisionDetailsA, collisionDetailsB } = this.
|
|
53
|
+
let { collisionDetailsA, collisionDetailsB } = this._getCollisionDetails(entityA, entityB, contactEquation);
|
|
54
54
|
bodyACollisions.push({
|
|
55
55
|
self: collisionDetailsA,
|
|
56
56
|
target: collisionDetailsB
|
|
@@ -66,18 +66,18 @@ let CollisionsService = class CollisionsService {
|
|
|
66
66
|
console.warn('ContactEquationOrganiser: Entity not found for contact equation', contactEquation);
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
|
-
|
|
69
|
+
_getCollisionDetails(entityA, entityB, contactEquation) {
|
|
70
70
|
let dtoA = entityA.convertToDTO();
|
|
71
71
|
let dtoB = entityB.convertToDTO();
|
|
72
72
|
let contactPointA = p2js_helper_1.P2JSHelper.arrayToVector(contactEquation.contactPointA);
|
|
73
73
|
let contactPointB = p2js_helper_1.P2JSHelper.arrayToVector(contactEquation.contactPointB);
|
|
74
|
-
let { normalA, normalB } = this.
|
|
74
|
+
let { normalA, normalB } = this._getNormals(contactEquation);
|
|
75
75
|
return {
|
|
76
|
-
collisionDetailsA: this.
|
|
77
|
-
collisionDetailsB: this.
|
|
76
|
+
collisionDetailsA: this._getCollisionDetail(dtoA, contactEquation.bodyA.mass, contactPointA, normalA, entityA.area),
|
|
77
|
+
collisionDetailsB: this._getCollisionDetail(dtoB, contactEquation.bodyB.mass, contactPointB, normalB, entityB.area)
|
|
78
78
|
};
|
|
79
79
|
}
|
|
80
|
-
|
|
80
|
+
_getCollisionDetail(physicsBodyDTOSelf, massSelf, contactPointSelf, normalSelf, areaSelf) {
|
|
81
81
|
let positionRelativeToObject;
|
|
82
82
|
let collisionPosition = contactPointSelf.add(physicsBodyDTOSelf.position);
|
|
83
83
|
return {
|
|
@@ -100,7 +100,7 @@ let CollisionsService = class CollisionsService {
|
|
|
100
100
|
normal: normalSelf
|
|
101
101
|
};
|
|
102
102
|
}
|
|
103
|
-
|
|
103
|
+
_getNormals(contactEquation) {
|
|
104
104
|
let contactEquationNormalA = p2js_helper_1.P2JSHelper.arrayToVector(contactEquation.normalA);
|
|
105
105
|
let contactEquationNormalB = contactEquationNormalA.multiplyNumber(-1);
|
|
106
106
|
return { normalA: contactEquationNormalA, normalB: contactEquationNormalB };
|
|
@@ -2,9 +2,9 @@ import p2 from 'p2';
|
|
|
2
2
|
import { HitTestOptions } from '../../⚜️gateways';
|
|
3
3
|
import { TestVisualsService } from '../test-visuals/test-visuals.service';
|
|
4
4
|
export declare class HitTestService {
|
|
5
|
-
private
|
|
6
|
-
constructor(
|
|
5
|
+
private _testVisualsService;
|
|
6
|
+
constructor(_testVisualsService: TestVisualsService);
|
|
7
7
|
hitTest(p2Body: p2.Body, options?: HitTestOptions): boolean;
|
|
8
|
-
private
|
|
9
|
-
private
|
|
8
|
+
private _applyOverriddenValues;
|
|
9
|
+
private _getAABB;
|
|
10
10
|
}
|
|
@@ -20,20 +20,20 @@ const physics_entity_1 = require("../../../entity-types/physics-entity");
|
|
|
20
20
|
const p2js_helper_1 = require("../../../libs/p2js.helper");
|
|
21
21
|
const test_visuals_service_1 = require("../test-visuals/test-visuals.service");
|
|
22
22
|
let HitTestService = class HitTestService {
|
|
23
|
-
constructor(
|
|
24
|
-
this.
|
|
23
|
+
constructor(_testVisualsService) {
|
|
24
|
+
this._testVisualsService = _testVisualsService;
|
|
25
25
|
}
|
|
26
26
|
hitTest(p2Body, options) {
|
|
27
27
|
let p2World = p2Body.world;
|
|
28
|
-
let physicsEntity = physics_entity_1.PhysicsEntity.
|
|
28
|
+
let physicsEntity = physics_entity_1.PhysicsEntity.getFromP2BodyIDOrFail(p2Body.id);
|
|
29
29
|
let bodyClone = p2js_helper_1.P2JSHelper.cloneP2Body(p2Body);
|
|
30
|
-
this.
|
|
30
|
+
this._applyOverriddenValues(bodyClone, options);
|
|
31
31
|
let overlappingBodyClones = p2World.broadphase
|
|
32
|
-
.aabbQuery(p2World, this.
|
|
33
|
-
.map(targetBody => physics_entity_1.PhysicsEntity.
|
|
32
|
+
.aabbQuery(p2World, this._getAABB(bodyClone))
|
|
33
|
+
.map(targetBody => physics_entity_1.PhysicsEntity.getFromP2BodyIDOrFail(targetBody.id))
|
|
34
34
|
.filter(targetEntity => targetEntity.includeInPathfinding)
|
|
35
35
|
.filter(targetEntity => physicsEntity.canCollideWith(targetEntity))
|
|
36
|
-
.map(targetEntity => p2js_helper_1.P2JSHelper.cloneP2Body(targetEntity
|
|
36
|
+
.map(targetEntity => p2js_helper_1.P2JSHelper.cloneP2Body(targetEntity.p2Body));
|
|
37
37
|
let hitFound = false;
|
|
38
38
|
if (overlappingBodyClones.length !== 0) {
|
|
39
39
|
let p2WorldClone = new p2_1.default.World();
|
|
@@ -43,9 +43,9 @@ let HitTestService = class HitTestService {
|
|
|
43
43
|
hitFound = p2WorldClone.narrowphase.contactEquations.some(contactEquation => contactEquation.bodyA === bodyClone || contactEquation.bodyB === bodyClone);
|
|
44
44
|
p2WorldClone.clear();
|
|
45
45
|
}
|
|
46
|
-
if (options?.
|
|
46
|
+
if (options?.testLayerID) {
|
|
47
47
|
let color = hitFound ? helpers_lib_1.ColorHelper.red : helpers_lib_1.ColorHelper.green;
|
|
48
|
-
this.
|
|
48
|
+
this._testVisualsService.createPhysicsEntityShapeVisual(p2Body, options.testLayerID, {
|
|
49
49
|
overridePosition: options.overridePosition,
|
|
50
50
|
overrideRotation: options.overrideRotation,
|
|
51
51
|
color
|
|
@@ -53,7 +53,7 @@ let HitTestService = class HitTestService {
|
|
|
53
53
|
}
|
|
54
54
|
return hitFound;
|
|
55
55
|
}
|
|
56
|
-
|
|
56
|
+
_applyOverriddenValues(p2Body, options) {
|
|
57
57
|
if (options?.overridePosition) {
|
|
58
58
|
p2Body.position = p2js_helper_1.P2JSHelper.vectorToArray(options.overridePosition);
|
|
59
59
|
}
|
|
@@ -61,7 +61,7 @@ let HitTestService = class HitTestService {
|
|
|
61
61
|
p2Body.angle = options.overrideRotation.value;
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
|
-
|
|
64
|
+
_getAABB(p2Body) {
|
|
65
65
|
p2Body.aabbNeedsUpdate = true;
|
|
66
66
|
p2Body.updateAABB();
|
|
67
67
|
return p2Body.aabb;
|
package/dist/physics/module//360/237/223/220services/collision/physics-body-group.service.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export declare class PhysicsBodyGroupService {
|
|
|
6
6
|
readonly physicsBodyGroupToP2Group: Map<PhysicsBodyGroup, number>;
|
|
7
7
|
readonly physicsBodyGroupToP2Mask: Map<PhysicsBodyGroup, number>;
|
|
8
8
|
};
|
|
9
|
-
getGroupConstant(
|
|
10
|
-
getMaskConstant(
|
|
9
|
+
getGroupConstant(physicsWorldID: number, group: PhysicsBodyGroup): number;
|
|
10
|
+
getMaskConstant(physicsWorldID: number, group: PhysicsBodyGroup): number;
|
|
11
11
|
canCollide(physicsWorld: PhysicsWorldEntity, groupType1: PhysicsBodyGroup, groupType2: PhysicsBodyGroup): boolean;
|
|
12
12
|
}
|
package/dist/physics/module//360/237/223/220services/collision/physics-body-group.service.js
CHANGED
|
@@ -38,12 +38,12 @@ let PhysicsBodyGroupService = class PhysicsBodyGroupService {
|
|
|
38
38
|
});
|
|
39
39
|
return { physicsBodyGroupToP2Group, physicsBodyGroupToP2Mask };
|
|
40
40
|
}
|
|
41
|
-
getGroupConstant(
|
|
42
|
-
let physicsWorld = physics_world_entity_1.PhysicsWorldEntity.
|
|
41
|
+
getGroupConstant(physicsWorldID, group) {
|
|
42
|
+
let physicsWorld = physics_world_entity_1.PhysicsWorldEntity.getInstanceByIDOrFail(physicsWorldID);
|
|
43
43
|
return physicsWorld.physicsBodyGroupToP2Group.get(group);
|
|
44
44
|
}
|
|
45
|
-
getMaskConstant(
|
|
46
|
-
let physicsWorld = physics_world_entity_1.PhysicsWorldEntity.
|
|
45
|
+
getMaskConstant(physicsWorldID, group) {
|
|
46
|
+
let physicsWorld = physics_world_entity_1.PhysicsWorldEntity.getInstanceByIDOrFail(physicsWorldID);
|
|
47
47
|
return physicsWorld.physicsBodyGroupToP2Mask.get(group);
|
|
48
48
|
}
|
|
49
49
|
canCollide(physicsWorld, groupType1, groupType2) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Vector } from 'helpers-lib';
|
|
2
2
|
import { PhysicsBodyGroup } from '../../../libs/physics-body-groups';
|
|
3
3
|
export declare class BorderService {
|
|
4
|
-
createBorders(
|
|
5
|
-
private
|
|
4
|
+
createBorders(physicsWorldID: number, mapSize: Vector, borderBodyGroup: PhysicsBodyGroup): void;
|
|
5
|
+
private _createBorder;
|
|
6
6
|
}
|
|
@@ -14,25 +14,25 @@ const __gateways_1 = require("../../\u269C\uFE0Fgateways");
|
|
|
14
14
|
const border_entity_1 = require("../../\uD83E\uDDCAentities/border.entity");
|
|
15
15
|
const BORDER_WIDTH = 10000;
|
|
16
16
|
let BorderService = class BorderService {
|
|
17
|
-
createBorders(
|
|
18
|
-
this.
|
|
19
|
-
this.
|
|
20
|
-
this.
|
|
21
|
-
this.
|
|
17
|
+
createBorders(physicsWorldID, mapSize, borderBodyGroup) {
|
|
18
|
+
this._createBorder(physicsWorldID, new helpers_lib_1.Vector(mapSize.x / 2, -BORDER_WIDTH / 2), new helpers_lib_1.Vector(mapSize.x + BORDER_WIDTH * 2, BORDER_WIDTH), borderBodyGroup); // Top border
|
|
19
|
+
this._createBorder(physicsWorldID, new helpers_lib_1.Vector(mapSize.x / 2, mapSize.y + BORDER_WIDTH / 2), new helpers_lib_1.Vector(mapSize.x + BORDER_WIDTH * 2, BORDER_WIDTH), borderBodyGroup); // Bottom border
|
|
20
|
+
this._createBorder(physicsWorldID, new helpers_lib_1.Vector(-BORDER_WIDTH / 2, mapSize.y / 2), new helpers_lib_1.Vector(BORDER_WIDTH, mapSize.y + BORDER_WIDTH * 2), borderBodyGroup); // Left border
|
|
21
|
+
this._createBorder(physicsWorldID, new helpers_lib_1.Vector(mapSize.x + BORDER_WIDTH / 2, mapSize.y / 2), new helpers_lib_1.Vector(BORDER_WIDTH, mapSize.y + BORDER_WIDTH * 2), borderBodyGroup); // Right border
|
|
22
22
|
}
|
|
23
|
-
|
|
24
|
-
return new border_entity_1.BorderEntity(
|
|
23
|
+
_createBorder(physicsWorldID, position, size, borderBodyGroup) {
|
|
24
|
+
return new border_entity_1.BorderEntity(physicsWorldID, {
|
|
25
25
|
shapeDefinition: {
|
|
26
26
|
materialName: __gateways_1.BORDER_MATERIAL_NAME,
|
|
27
27
|
group: borderBodyGroup,
|
|
28
|
-
shapeType: interfaces_1.PhysicsShapeType.
|
|
28
|
+
shapeType: interfaces_1.PhysicsShapeType.Rectangle,
|
|
29
29
|
shapeData: size
|
|
30
30
|
},
|
|
31
31
|
position,
|
|
32
32
|
rotation: helpers_lib_1.Radian.get0,
|
|
33
33
|
addInEmptySpace: false,
|
|
34
34
|
includeOnPathfinding: true
|
|
35
|
-
}).
|
|
35
|
+
}).attachByID(physicsWorldID);
|
|
36
36
|
}
|
|
37
37
|
};
|
|
38
38
|
exports.BorderService = BorderService;
|
|
@@ -5,11 +5,11 @@ export declare class MaterialsService {
|
|
|
5
5
|
materials: Map<string, p2.Material>;
|
|
6
6
|
materialDefinitions: Map<string, MaterialDefinition>;
|
|
7
7
|
};
|
|
8
|
-
getMaterial(
|
|
9
|
-
getMaterialDefinition(
|
|
10
|
-
private
|
|
11
|
-
private
|
|
12
|
-
private
|
|
13
|
-
private
|
|
14
|
-
private
|
|
8
|
+
getMaterial(physicsWorldID: number, name: string): p2.Material;
|
|
9
|
+
getMaterialDefinition(physicsWorldID: number, name: string): MaterialDefinition;
|
|
10
|
+
private _getMaterialInternal;
|
|
11
|
+
private _getMaterialDefinitionInternal;
|
|
12
|
+
private _addContactMaterials;
|
|
13
|
+
private _getFullListOfMaterialContactDefinitions;
|
|
14
|
+
private _addContactMaterialsWithBorder;
|
|
15
15
|
}
|
|
@@ -34,44 +34,44 @@ let MaterialsService = class MaterialsService {
|
|
|
34
34
|
}
|
|
35
35
|
materials.set(__gateways_1.BORDER_MATERIAL_NAME, BORDER_MATERIAL);
|
|
36
36
|
materialDefinitionsMap.set(__gateways_1.BORDER_MATERIAL_NAME, BORDER_MATERIAL_DEFINITION);
|
|
37
|
-
this.
|
|
37
|
+
this._addContactMaterials(p2World, borderProperties, materialDefinitions, materialContactDefinitions, materials);
|
|
38
38
|
return { materials, materialDefinitions: materialDefinitionsMap };
|
|
39
39
|
}
|
|
40
|
-
getMaterial(
|
|
41
|
-
let physicsWorld = physics_world_entity_1.PhysicsWorldEntity.
|
|
42
|
-
return this.
|
|
40
|
+
getMaterial(physicsWorldID, name) {
|
|
41
|
+
let physicsWorld = physics_world_entity_1.PhysicsWorldEntity.getInstanceByIDOrFail(physicsWorldID);
|
|
42
|
+
return this._getMaterialInternal(name, physicsWorld.materials);
|
|
43
43
|
}
|
|
44
|
-
getMaterialDefinition(
|
|
45
|
-
let physicsWorld = physics_world_entity_1.PhysicsWorldEntity.
|
|
46
|
-
return this.
|
|
44
|
+
getMaterialDefinition(physicsWorldID, name) {
|
|
45
|
+
let physicsWorld = physics_world_entity_1.PhysicsWorldEntity.getInstanceByIDOrFail(physicsWorldID);
|
|
46
|
+
return this._getMaterialDefinitionInternal(name, physicsWorld.materialDefinitions);
|
|
47
47
|
}
|
|
48
|
-
|
|
48
|
+
_getMaterialInternal(name, materials) {
|
|
49
49
|
let material = materials.get(name);
|
|
50
50
|
if (!material) {
|
|
51
51
|
throw new Error(`Could not find material with name ${name}.`);
|
|
52
52
|
}
|
|
53
53
|
return material;
|
|
54
54
|
}
|
|
55
|
-
|
|
55
|
+
_getMaterialDefinitionInternal(name, materialDefinitions) {
|
|
56
56
|
let materialDefinition = materialDefinitions.get(name);
|
|
57
57
|
if (!materialDefinition) {
|
|
58
58
|
throw new Error(`Could not find material definition with name ${name}.`);
|
|
59
59
|
}
|
|
60
60
|
return materialDefinition;
|
|
61
61
|
}
|
|
62
|
-
|
|
63
|
-
this.
|
|
64
|
-
let materialA = this.
|
|
65
|
-
let materialB = this.
|
|
62
|
+
_addContactMaterials(p2World, borderProperties, materialDefinitions, materialContactDefinitions, materials) {
|
|
63
|
+
this._getFullListOfMaterialContactDefinitions(materialDefinitions.map(definition => definition.id), materialContactDefinitions).forEach(contactDefinition => {
|
|
64
|
+
let materialA = this._getMaterialInternal(contactDefinition.materialA, materials);
|
|
65
|
+
let materialB = this._getMaterialInternal(contactDefinition.materialB, materials);
|
|
66
66
|
p2World.addContactMaterial(new p2_1.default.ContactMaterial(materialA, materialB, {
|
|
67
67
|
friction: contactDefinition.friction,
|
|
68
68
|
restitution: contactDefinition.bounciness,
|
|
69
69
|
stiffness: contactDefinition.stiffness
|
|
70
70
|
}));
|
|
71
71
|
});
|
|
72
|
-
this.
|
|
72
|
+
this._addContactMaterialsWithBorder(p2World, borderProperties, materialDefinitions, materials);
|
|
73
73
|
}
|
|
74
|
-
|
|
74
|
+
_getFullListOfMaterialContactDefinitions(materialNames, materialContactDefinitions) {
|
|
75
75
|
let definedCombinations = new Map();
|
|
76
76
|
materialContactDefinitions.forEach(contactDefinition => {
|
|
77
77
|
let materialAMap = definedCombinations.get(contactDefinition.materialA);
|
|
@@ -102,9 +102,9 @@ let MaterialsService = class MaterialsService {
|
|
|
102
102
|
});
|
|
103
103
|
return fullList;
|
|
104
104
|
}
|
|
105
|
-
|
|
105
|
+
_addContactMaterialsWithBorder(p2World, borderProperties, materialDefinitions, materials) {
|
|
106
106
|
materialDefinitions.forEach(materialDefinition => {
|
|
107
|
-
let materialA = this.
|
|
107
|
+
let materialA = this._getMaterialInternal(materialDefinition.id, materials);
|
|
108
108
|
p2World.addContactMaterial(new p2_1.default.ContactMaterial(materialA, BORDER_MATERIAL, {
|
|
109
109
|
friction: borderProperties.friction,
|
|
110
110
|
restitution: borderProperties.bounciness,
|
|
@@ -7,15 +7,15 @@ import { AvailabilityGridService } from '../path-finding/availability-grid.servi
|
|
|
7
7
|
import { BorderService } from './border.service';
|
|
8
8
|
import { MaterialsService } from './materials.service';
|
|
9
9
|
export declare class PhysicsWorldService {
|
|
10
|
-
private
|
|
11
|
-
private
|
|
12
|
-
private
|
|
13
|
-
private
|
|
14
|
-
private
|
|
15
|
-
constructor(
|
|
16
|
-
createPhysicsWorld(request: CreatePhysicsWorldRequestDTO):
|
|
17
|
-
addBody(
|
|
18
|
-
removeBody(
|
|
19
|
-
private
|
|
20
|
-
setPaused(pause: boolean,
|
|
10
|
+
private _materialsService;
|
|
11
|
+
private _borderService;
|
|
12
|
+
private _availabilityGridService;
|
|
13
|
+
private _collisionsService;
|
|
14
|
+
private _physicsBodyGroupService;
|
|
15
|
+
constructor(_materialsService: MaterialsService, _borderService: BorderService, _availabilityGridService: AvailabilityGridService, _collisionsService: CollisionsService, _physicsBodyGroupService: PhysicsBodyGroupService);
|
|
16
|
+
createPhysicsWorld(request: CreatePhysicsWorldRequestDTO): number;
|
|
17
|
+
addBody(physicsWorldID: number, body: p2.Body, addInEmptySpace: boolean, physicsBodyGroup: PhysicsBodyGroup, includeOnPathfinding: boolean): boolean;
|
|
18
|
+
removeBody(physicsWorldID: number, body: p2.Body): void;
|
|
19
|
+
private _step;
|
|
20
|
+
setPaused(pause: boolean, physicsWorldID: number): void;
|
|
21
21
|
}
|
|
@@ -22,50 +22,51 @@ const availability_grid_service_1 = require("../path-finding/availability-grid.s
|
|
|
22
22
|
const border_service_1 = require("./border.service");
|
|
23
23
|
const materials_service_1 = require("./materials.service");
|
|
24
24
|
let PhysicsWorldService = class PhysicsWorldService {
|
|
25
|
-
constructor(
|
|
26
|
-
this.
|
|
27
|
-
this.
|
|
28
|
-
this.
|
|
29
|
-
this.
|
|
30
|
-
this.
|
|
25
|
+
constructor(_materialsService, _borderService, _availabilityGridService, _collisionsService, _physicsBodyGroupService) {
|
|
26
|
+
this._materialsService = _materialsService;
|
|
27
|
+
this._borderService = _borderService;
|
|
28
|
+
this._availabilityGridService = _availabilityGridService;
|
|
29
|
+
this._collisionsService = _collisionsService;
|
|
30
|
+
this._physicsBodyGroupService = _physicsBodyGroupService;
|
|
31
31
|
}
|
|
32
32
|
createPhysicsWorld(request) {
|
|
33
33
|
let p2World = new p2_1.default.World({ gravity: [0, 0] });
|
|
34
|
-
let { materials, materialDefinitions } = this.
|
|
35
|
-
let { physicsBodyGroupToP2Group, physicsBodyGroupToP2Mask } = this.
|
|
36
|
-
let physicsWorld = new physics_world_entity_1.PhysicsWorldEntity(request.mapSize, request.modifyUpdateCycle, p2World, materials, materialDefinitions, physicsBodyGroupToP2Group, physicsBodyGroupToP2Mask).
|
|
34
|
+
let { materials, materialDefinitions } = this._materialsService.createMaterials(p2World, request.borderProperties, request.materialDefinitions, request.materialContactDefinitions);
|
|
35
|
+
let { physicsBodyGroupToP2Group, physicsBodyGroupToP2Mask } = this._physicsBodyGroupService.createBodyGroupsAndMasks(request.physicsBodyGroups, request.interactingBodyGroups);
|
|
36
|
+
let physicsWorld = new physics_world_entity_1.PhysicsWorldEntity(request.mapSize, request.modifyUpdateCycle, p2World, materials, materialDefinitions, physicsBodyGroupToP2Group, physicsBodyGroupToP2Mask).attachByID(request.attachTo);
|
|
37
37
|
physicsWorld
|
|
38
|
-
.onDestroy(
|
|
38
|
+
.onDestroy()
|
|
39
|
+
.tap(() => {
|
|
39
40
|
p2World.clear();
|
|
40
41
|
if (request.modifyUpdateCycle) {
|
|
41
42
|
game_entities_1.UpdateCycle.cleanUpdateModifier();
|
|
42
43
|
}
|
|
43
44
|
})
|
|
44
|
-
.
|
|
45
|
-
this.
|
|
46
|
-
this.
|
|
45
|
+
.attachToRoot();
|
|
46
|
+
this._borderService.createBorders(physicsWorld.id, request.mapSize, request.borderProperties.borderBodyGroup);
|
|
47
|
+
this._collisionsService.registerPhysicsWorld(physicsWorld);
|
|
47
48
|
if (request.modifyUpdateCycle) {
|
|
48
|
-
game_entities_1.UpdateCycle.registerUpdateModifier((time, delta) => this.
|
|
49
|
+
game_entities_1.UpdateCycle.registerUpdateModifier((time, delta) => this._step(physicsWorld, time, delta));
|
|
49
50
|
}
|
|
50
51
|
else {
|
|
51
52
|
game_entities_1.UpdateCycle.beforeSceneUpdateAction
|
|
52
53
|
.subscribe(({ time, delta }) => {
|
|
53
|
-
this.
|
|
54
|
+
this._step(physicsWorld, time, delta);
|
|
54
55
|
})
|
|
55
56
|
.attach(physicsWorld);
|
|
56
57
|
}
|
|
57
58
|
return physicsWorld.id;
|
|
58
59
|
}
|
|
59
|
-
addBody(
|
|
60
|
-
let physicsWorld = physics_world_entity_1.PhysicsWorldEntity.
|
|
60
|
+
addBody(physicsWorldID, body, addInEmptySpace, physicsBodyGroup, includeOnPathfinding) {
|
|
61
|
+
let physicsWorld = physics_world_entity_1.PhysicsWorldEntity.getInstanceByIDOrFail(physicsWorldID);
|
|
61
62
|
if (addInEmptySpace) {
|
|
62
|
-
let changeVector = this.
|
|
63
|
+
let changeVector = this._availabilityGridService.findClosestAvailableSpace(physicsWorld, body, physicsBodyGroup);
|
|
63
64
|
if (changeVector) {
|
|
64
65
|
body.position[0] += changeVector.x;
|
|
65
66
|
body.position[1] += changeVector.y;
|
|
66
67
|
physicsWorld.p2World.addBody(body);
|
|
67
68
|
if (includeOnPathfinding) {
|
|
68
|
-
this.
|
|
69
|
+
this._availabilityGridService.onBodyAdded(physicsWorld, body, physicsBodyGroup);
|
|
69
70
|
}
|
|
70
71
|
return true;
|
|
71
72
|
}
|
|
@@ -76,15 +77,15 @@ let PhysicsWorldService = class PhysicsWorldService {
|
|
|
76
77
|
else {
|
|
77
78
|
physicsWorld.p2World.addBody(body);
|
|
78
79
|
if (includeOnPathfinding) {
|
|
79
|
-
this.
|
|
80
|
+
this._availabilityGridService.onBodyAdded(physicsWorld, body, physicsBodyGroup);
|
|
80
81
|
}
|
|
81
82
|
return true;
|
|
82
83
|
}
|
|
83
84
|
}
|
|
84
|
-
removeBody(
|
|
85
|
-
physics_world_entity_1.PhysicsWorldEntity.
|
|
85
|
+
removeBody(physicsWorldID, body) {
|
|
86
|
+
physics_world_entity_1.PhysicsWorldEntity.getInstanceByID(physicsWorldID)?.p2World.removeBody(body);
|
|
86
87
|
}
|
|
87
|
-
|
|
88
|
+
_step(physicsWorld, previousTime, delta) {
|
|
88
89
|
if (!physicsWorld.paused.value) {
|
|
89
90
|
physicsWorld.availabilityGridCache.clear();
|
|
90
91
|
physicsWorld.vectorFieldCache.clear();
|
|
@@ -93,14 +94,14 @@ let PhysicsWorldService = class PhysicsWorldService {
|
|
|
93
94
|
delta = physicsWorld.p2World.time - physicsWorld.lastP2Time.value;
|
|
94
95
|
}
|
|
95
96
|
let time = previousTime + delta;
|
|
96
|
-
this.
|
|
97
|
+
this._collisionsService.step(physicsWorld, time, delta);
|
|
97
98
|
physicsWorld.onPhysicsStep.trigger({ time, delta });
|
|
98
99
|
physicsWorld.lastP2Time.value = physicsWorld.p2World.time;
|
|
99
100
|
}
|
|
100
101
|
return delta;
|
|
101
102
|
}
|
|
102
|
-
setPaused(pause,
|
|
103
|
-
physics_world_entity_1.PhysicsWorldEntity.
|
|
103
|
+
setPaused(pause, physicsWorldID) {
|
|
104
|
+
physics_world_entity_1.PhysicsWorldEntity.getInstanceByIDOrFail(physicsWorldID).paused.set(pause);
|
|
104
105
|
}
|
|
105
106
|
};
|
|
106
107
|
exports.PhysicsWorldService = PhysicsWorldService;
|