bard-legends-framework 0.9.5 → 0.9.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_interfaces/index.d.ts +2 -2
- package/dist/_interfaces/index.js +2 -3
- package/dist/game-entities/attachable/attachable.d.ts +6 -6
- package/dist/game-entities/attachable/attachable.js +28 -30
- package/dist/game-entities/attachable/attachable.spec.js +129 -128
- package/dist/game-entities/attachable/attachable.store.d.ts +5 -5
- package/dist/game-entities/attachable/attachable.store.js +34 -32
- package/dist/game-entities/attachable/attachable.test.js +132 -131
- package/dist/game-entities/attachable/destroyable.d.ts +13 -13
- package/dist/game-entities/attachable/destroyable.js +64 -69
- package/dist/game-entities/attachable/helpers/decorate-actions-lib.d.ts +15 -15
- package/dist/game-entities/attachable/helpers/decorate-actions-lib.js +125 -116
- package/dist/game-entities/attachable/helpers/referance-variable.d.ts +15 -15
- package/dist/game-entities/attachable/helpers/referance-variable.js +47 -48
- package/dist/game-entities/attachable/interfaces.d.ts +6 -6
- package/dist/game-entities/attachable/interfaces.js +2 -3
- package/dist/game-entities/base/helpers/decorate-actions-lib.js +0 -1
- package/dist/game-entities/controller/controller.js +0 -1
- package/dist/game-entities/controller/controller.spec.js +128 -125
- package/dist/game-entities/entity/entity.spec.js +263 -293
- package/dist/game-entities/entity/helpers/view-creation.helper.d.ts +7 -7
- package/dist/game-entities/entity/helpers/view-creation.helper.js +48 -48
- package/dist/game-entities/scene/scene.spec.js +219 -223
- package/dist/game-entities/service/service.js +0 -4
- package/dist/game-entities/service/service.spec.js +265 -237
- package/dist/game-entities/service/service.test.js +4 -2
- package/dist/game-entities/update-loop.d.ts +18 -18
- package/dist/game-entities/update-loop.js +46 -28
- package/dist/game-entities/view/view.js +1 -1
- package/dist/game-entities/view/view.spec.js +490 -506
- package/dist/game-entities/view/view.test.js +1 -1
- package/dist/lib/animator/animations.d.ts +13 -13
- package/dist/lib/animator/animations.js +43 -40
- package/dist/lib/animator/animator.d.ts +41 -41
- package/dist/lib/animator/animator.js +194 -197
- package/dist/lib/animator/animator.spec.js +699 -612
- package/dist/lib/animator/index.js +24 -19
- package/dist/lib/libraries/animator/animations.d.ts +13 -13
- package/dist/lib/libraries/animator/animations.js +43 -40
- package/dist/lib/libraries/animator/animator.d.ts +41 -41
- package/dist/lib/libraries/animator/animator.js +194 -197
- package/dist/lib/libraries/animator/animator.spec.js +699 -612
- package/dist/lib/libraries/animator/index.js +24 -19
- package/dist/lib/libraries/path-finder/path-finder.d.ts +2 -2
- package/dist/lib/libraries/path-finder/path-finder.js +19 -20
- package/dist/lib/path-finder/path-finder.d.ts +2 -2
- package/dist/lib/path-finder/path-finder.js +19 -20
- package/dist/lib/services/keyboard/keyboard.d.ts +4 -4
- package/dist/lib/services/keyboard/keyboard.js +39 -31
- package/dist/lib/services/mouse/mouse.service.d.ts +8 -8
- package/dist/lib/services/mouse/mouse.service.js +65 -53
- package/dist/lib/services/mouse/mouser-target-focus.service.d.ts +11 -11
- package/dist/lib/services/mouse/mouser-target-focus.service.js +83 -81
- package/dist/lib/update-loop.d.ts +10 -10
- package/dist/lib/update-loop.js +35 -27
- package/dist/physics/entitity-types/immovable-physics-entity.d.ts +6 -6
- package/dist/physics/entitity-types/immovable-physics-entity.js +23 -24
- package/dist/physics/entitity-types/movable-entity.d.ts +6 -6
- package/dist/physics/entitity-types/movable-entity.js +21 -22
- package/dist/physics/entitity-types/movable-physics-entity.d.ts +14 -14
- package/dist/physics/entitity-types/movable-physics-entity.js +83 -88
- package/dist/physics/entitity-types/physics-entity.d.ts +23 -23
- package/dist/physics/entitity-types/physics-entity.js +97 -88
- package/dist/physics/helpers/closest-available-space.helper.d.ts +16 -16
- package/dist/physics/helpers/closest-available-space.helper.js +98 -96
- package/dist/physics/helpers/closest-available-space.helper.spec.js +115 -68
- package/dist/physics/helpers/p2js.helper.d.ts +3 -3
- package/dist/physics/helpers/p2js.helper.js +21 -22
- package/dist/physics/helpers/shape-factory.d.ts +9 -4
- package/dist/physics/helpers/shape-factory.js +99 -75
- package/dist/physics/libs/p2js.helper.js +1 -1
- package/dist/physics/libs/position-to-grid-position-converter.d.ts +3 -3
- package/dist/physics/libs/position-to-grid-position-converter.js +15 -13
- package/dist/physics/module//360/237/223/220services/availability-grid.service.d.ts +10 -5
- package/dist/physics/module//360/237/223/220services/availability-grid.service.js +77 -57
- package/dist/physics/module//360/237/223/220services/border.service.d.ts +2 -2
- package/dist/physics/module//360/237/223/220services/border.service.js +57 -37
- package/dist/physics/module//360/237/223/220services/collision/physics-body-group.service.js +1 -1
- package/dist/physics/module//360/237/223/220services/collisions.service.d.ts +7 -7
- package/dist/physics/module//360/237/223/220services/collisions.service.js +110 -98
- package/dist/physics/module//360/237/223/220services/debug-visuals.service.d.ts +28 -6
- package/dist/physics/module//360/237/223/220services/debug-visuals.service.js +121 -89
- package/dist/physics/module//360/237/223/220services/eliptic-explosion.service.d.ts +15 -7
- package/dist/physics/module//360/237/223/220services/eliptic-explosion.service.js +117 -93
- package/dist/physics/module//360/237/223/220services/explosion.service.d.ts +14 -7
- package/dist/physics/module//360/237/223/220services/explosion.service.js +102 -77
- package/dist/physics/module//360/237/223/220services/explosions/eliptic-explosion.service.d.ts +15 -7
- package/dist/physics/module//360/237/223/220services/explosions/eliptic-explosion.service.js +117 -93
- package/dist/physics/module//360/237/223/220services/explosions/explosion.service.d.ts +14 -7
- package/dist/physics/module//360/237/223/220services/explosions/explosion.service.js +102 -77
- package/dist/physics/module//360/237/223/220services/explosions/helpers/ray-cast-hit-converter.d.ts +3 -3
- package/dist/physics/module//360/237/223/220services/explosions/helpers/ray-cast-hit-converter.js +71 -67
- package/dist/physics/module//360/237/223/220services/helpers/ray-cast-hit-converter.d.ts +3 -3
- package/dist/physics/module//360/237/223/220services/helpers/ray-cast-hit-converter.js +71 -67
- package/dist/physics/module//360/237/223/220services/impact/eliptic-explosion.service.js +1 -1
- package/dist/physics/module//360/237/223/220services/materials.service.d.ts +16 -11
- package/dist/physics/module//360/237/223/220services/materials.service.js +118 -108
- package/dist/physics/module//360/237/223/220services/path-finder.service.d.ts +19 -8
- package/dist/physics/module//360/237/223/220services/path-finder.service.js +121 -82
- package/dist/physics/module//360/237/223/220services/physics-world.service.d.ts +30 -15
- package/dist/physics/module//360/237/223/220services/physics-world.service.js +122 -100
- package/dist/physics/module//360/237/223/220services/ray-casting.service.d.ts +3 -3
- package/dist/physics/module//360/237/223/220services/ray-casting.service.js +87 -86
- package/dist/physics/module//360/237/223/220services/shape-creation.service.d.ts +9 -4
- package/dist/physics/module//360/237/223/220services/shape-creation.service.js +113 -84
- package/dist/physics/module//360/237/223/220services/test-visuals/test-visuals.service.js +2 -1
- package/dist/physics/module//360/237/247/212entities/data-structures/availability-grid-cache.d.ts +8 -8
- package/dist/physics/module//360/237/247/212entities/data-structures/availability-grid-cache.js +32 -33
- package/dist/physics/physics-world.d.ts +50 -34
- package/dist/physics/physics-world.js +142 -133
- package/dist/physics/sub-elements/available-spaces/helpers/availability-grid.helper.d.ts +3 -3
- package/dist/physics/sub-elements/available-spaces/helpers/availability-grid.helper.js +15 -13
- package/dist/physics/sub-elements/available-spaces/physics-availability-grid.d.ts +9 -9
- package/dist/physics/sub-elements/available-spaces/physics-availability-grid.js +82 -77
- package/dist/physics/sub-elements/available-spaces/physics-available-spaces.d.ts +18 -14
- package/dist/physics/sub-elements/available-spaces/physics-available-spaces.js +91 -79
- package/dist/physics/sub-elements/collisions/contact-equation-orginiser.d.ts +11 -11
- package/dist/physics/sub-elements/collisions/contact-equation-orginiser.js +84 -76
- package/dist/physics/sub-elements/collisions/physics-collision.d.ts +7 -7
- package/dist/physics/sub-elements/collisions/physics-collision.js +43 -44
- package/dist/physics/sub-elements/elements/physics-body-groups.d.ts +11 -11
- package/dist/physics/sub-elements/elements/physics-body-groups.js +54 -54
- package/dist/physics/sub-elements/elements/physics-materials.d.ts +15 -10
- package/dist/physics/sub-elements/elements/physics-materials.js +101 -100
- package/dist/physics/sub-elements/elements/physics-world-borders.d.ts +3 -3
- package/dist/physics/sub-elements/elements/physics-world-borders.js +69 -45
- package/dist/physics/sub-elements/physics-body-groups.d.ts +8 -8
- package/dist/physics/sub-elements/physics-body-groups.js +41 -42
- package/dist/physics/sub-elements/physics-collision.d.ts +16 -16
- package/dist/physics/sub-elements/physics-collision.js +141 -121
- package/dist/physics/sub-elements/physics-materials.d.ts +15 -10
- package/dist/physics/sub-elements/physics-materials.js +101 -100
- package/dist/physics/sub-elements/physics-world-borders.d.ts +2 -2
- package/dist/physics/sub-elements/physics-world-borders.js +25 -26
- package/dist/physics/sub-elements/raycasting/physics-body-explosion-hit.d.ts +15 -11
- package/dist/physics/sub-elements/raycasting/physics-body-explosion-hit.js +59 -59
- package/dist/physics/sub-elements/raycasting/physics-explosion.d.ts +13 -6
- package/dist/physics/sub-elements/raycasting/physics-explosion.js +108 -73
- package/dist/physics/sub-elements/raycasting/ray-cast.d.ts +19 -19
- package/dist/physics/sub-elements/raycasting/ray-cast.js +93 -98
- package/dist/pixi/display-object/components/filters.d.ts +18 -18
- package/dist/pixi/display-object/components/filters.js +106 -81
- package/dist/pixi/display-object/components/glow-effect.d.ts +8 -8
- package/dist/pixi/display-object/components/glow-effect.js +33 -36
- package/dist/pixi/display-object/components/glow-filter.d.ts +8 -8
- package/dist/pixi/display-object/components/glow-filter.js +33 -36
- package/dist/pixi/display-object/container-attributes.js +1 -1
- package/dist/pixi/display-object/display-object-attributes.d.ts +41 -41
- package/dist/pixi/display-object/display-object-attributes.js +148 -150
- package/dist/pixi/display-object/display-object.d.ts +17 -17
- package/dist/pixi/display-object/display-object.js +79 -75
- package/dist/pixi/display-object/filters/base-filters/alpha-primer-color.filter.d.ts +9 -4
- package/dist/pixi/display-object/filters/base-filters/alpha-primer-color.filter.js +89 -77
- package/dist/pixi/display-object/filters/base-filters/blur.filter.js +30 -30
- package/dist/pixi/display-object/filters/base-filters/contrast-filter.d.ts +9 -4
- package/dist/pixi/display-object/filters/base-filters/contrast-filter.js +62 -53
- package/dist/pixi/display-object/filters/base-filters/expand-with-alpha-color.d.ts +10 -5
- package/dist/pixi/display-object/filters/base-filters/expand-with-alpha-color.js +93 -81
- package/dist/pixi/display-object/filters/base-filters/expand-with-color-gradient.d.ts +12 -7
- package/dist/pixi/display-object/filters/base-filters/expand-with-color-gradient.js +120 -109
- package/dist/pixi/display-object/filters/base-filters/expand-with-color.d.ts +10 -5
- package/dist/pixi/display-object/filters/base-filters/expand-with-color.filter.js +32 -32
- package/dist/pixi/display-object/filters/base-filters/expand-with-color.js +92 -85
- package/dist/pixi/display-object/filters/templates/checking-neighbors.template.js +28 -28
- package/dist/pixi/display-object/filters/templates/plane.template.js +20 -20
- package/dist/pixi/display-object/filters.js +20 -4
- package/dist/pixi/display-object/objects/components/filters.d.ts +18 -18
- package/dist/pixi/display-object/objects/components/filters.js +106 -81
- package/dist/pixi/display-object/objects/container.d.ts +2 -2
- package/dist/pixi/display-object/objects/container.js +39 -30
- package/dist/pixi/display-object/objects/graphics.d.ts +28 -28
- package/dist/pixi/display-object/objects/graphics.js +218 -202
- package/dist/pixi/display-object/objects/helpers/filters.d.ts +25 -25
- package/dist/pixi/display-object/objects/helpers/filters.js +150 -124
- package/dist/pixi/display-object/objects/helpers/glow-sprite-generator.d.ts +7 -7
- package/dist/pixi/display-object/objects/helpers/glow-sprite-generator.js +114 -95
- package/dist/pixi/display-object/objects/premade-objects/sprite-with-glowing-shapes.d.ts +5 -5
- package/dist/pixi/display-object/objects/premade-objects/sprite-with-glowing-shapes.js +81 -57
- package/dist/pixi/display-object/objects/sprite.d.ts +43 -43
- package/dist/pixi/display-object/objects/sprite.js +248 -233
- package/dist/pixi/display-object/objects/text/helpers/process-steps/1-data-in-converter/rich-text-data-in-converter.js +1 -1
- package/dist/pixi/display-object/objects/text/helpers/process-steps/1-data-in-converter/rich-text-data-in-converter.test.js +9 -9
- package/dist/pixi/display-object/objects/text/helpers/rich-text-to-plane-text.d.ts +1 -1
- package/dist/pixi/display-object/objects/text.d.ts +25 -25
- package/dist/pixi/display-object/objects/text.js +111 -102
- package/dist/pixi/display-object/premade-objects/sprite-with-glowing-shapes.d.ts +13 -9
- package/dist/pixi/display-object/premade-objects/sprite-with-glowing-shapes.js +96 -67
- package/dist/pixi/game.d.ts +1 -1
- package/dist/pixi/game.js +2 -2
- package/dist/pixi/helpers/glow-sprite-generator.d.ts +6 -6
- package/dist/pixi/helpers/glow-sprite-generator.js +99 -84
- package/dist/pixi/helpers/pixi-container.helper.d.ts +1 -1
- package/dist/pixi/helpers/pixi-container.helper.js +10 -8
- package/dist/pixi/helpers/screen-position-to-stage.helper.d.ts +1 -1
- package/dist/pixi/helpers/screen-position-to-stage.helper.js +12 -12
- package/dist/pixi/helpers/screen-position-to-stage.helper.test.js +174 -79
- package/dist/pixi/modules/CAMERA/index.d.ts +1 -1
- package/dist/pixi/modules/CAMERA/index.js +3 -3
- package/dist/services/keyboard/keyboard.d.ts +4 -4
- package/dist/services/keyboard/keyboard.js +39 -31
- package/dist/services/mouse/mouse.service.d.ts +8 -8
- package/dist/services/mouse/mouse.service.js +65 -53
- package/dist/services/mouse/mouser-target-focus.service.d.ts +11 -11
- package/dist/services/mouse/mouser-target-focus.service.js +83 -81
- package/dist/utilities/libraries/animator/animating-content/state-animation.d.ts +29 -26
- package/dist/utilities/libraries/animator/animating-content/state-animation.js +159 -165
- package/dist/utilities/libraries/animator/animating-content/state-animation.test.js +386 -375
- package/dist/utilities/libraries/animator/animator.spec.js +765 -656
- package/dist/utilities/libraries/binary-heap/binary-heap.d.ts +11 -11
- package/dist/utilities/libraries/binary-heap/binary-heap.js +79 -81
- package/dist/utilities/libraries/data-structures/binary-heap/binary-heap.d.ts +11 -11
- package/dist/utilities/libraries/data-structures/binary-heap/binary-heap.js +79 -81
- package/dist/utilities/libraries/data-structures/grid/grid.d.ts +35 -31
- package/dist/utilities/libraries/data-structures/grid/grid.js +128 -117
- package/dist/utilities/libraries/data-structures/grid/grid.spec.js +176 -138
- package/dist/utilities/libraries/data-structures/grid/grid.test.js +218 -141
- package/dist/utilities/libraries/data-structures/grid/position-to-grid-position-converter.d.ts +3 -3
- package/dist/utilities/libraries/data-structures/grid/position-to-grid-position-converter.js +15 -13
- package/dist/utilities/libraries/data-structures/queue/queue.d.ts +21 -21
- package/dist/utilities/libraries/data-structures/queue/queue.js +63 -66
- package/dist/utilities/libraries/data-structures/queue/queue.test.js +54 -55
- package/dist/utilities/libraries/grid-algorithms/closest-available-space/closest-available-space.helper.spec.js +122 -68
- package/dist/utilities/libraries/grid-algorithms/path-finder/path-finder.spec.js +140 -135
- package/dist/utilities/libraries/grid-algorithms/vector-field-path-finder/vector-field-path-finder.spec.js +293 -229
- package/dist/utilities/libraries/path-finder/path-finder.d.ts +7 -7
- package/dist/utilities/libraries/path-finder/path-finder.js +113 -109
- package/dist/utilities/libraries/path-finder/path-finder.spec.js +131 -106
- package/dist/utilities/services/keyboard/keyboard.d.ts +4 -4
- package/dist/utilities/services/keyboard/keyboard.js +42 -34
- package/dist/utilities/services/mouse/helpers/mouse-position.helper.d.ts +1 -1
- package/dist/utilities/services/mouse/helpers/mouse-position.helper.js +12 -12
- package/dist/utilities/services/mouse/helpers/mouse-position.helper.test.js +168 -73
- package/dist/utilities/services/mouse/mouse-target-focus.service.d.ts +15 -15
- package/dist/utilities/services/mouse/mouse-target-focus.service.js +79 -76
- package/dist/utilities/services/mouse/mouse.service.d.ts +9 -9
- package/dist/utilities/services/mouse/mouse.service.js +86 -72
- package/dist/utilities/services/mouse/mouser-target-focus.service.d.ts +11 -11
- package/dist/utilities/services/mouse/mouser-target-focus.service.js +83 -81
- package/package.json +6 -12
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
3
2
|
exports.PhysicsBodyGroups = exports.PhysicsBodyGroup = void 0;
|
|
4
3
|
/* eslint-disable no-bitwise */
|
|
5
4
|
const BORDER_GROUP = 1 << 0; // 0b0001;
|
|
@@ -14,63 +13,64 @@ const FRIEND_MASK = ENEMY_GROUP | ENEMY_PROJECTILE_GROUP | NEUTRAL_GROUP | BORDE
|
|
|
14
13
|
const FRIEND_PROJECTILE_MASK = ENEMY_GROUP | NEUTRAL_GROUP | BORDER_GROUP;
|
|
15
14
|
const ENEMY_MASK = FRIEND_GROUP | FRIEND_PROJECTILE_GROUP | NEUTRAL_GROUP | BORDER_GROUP | EXPLOSION_GROUP;
|
|
16
15
|
const ENEMY_PROJECTILE_MASK = FRIEND_GROUP | NEUTRAL_GROUP | BORDER_GROUP;
|
|
17
|
-
const NEUTRAL_MASK =
|
|
16
|
+
const NEUTRAL_MASK =
|
|
17
|
+
FRIEND_GROUP | FRIEND_PROJECTILE_GROUP | ENEMY_GROUP | ENEMY_PROJECTILE_GROUP | NEUTRAL_GROUP | BORDER_GROUP | EXPLOSION_GROUP;
|
|
18
18
|
const EXPLOSION_MASK = FRIEND_GROUP | ENEMY_GROUP | NEUTRAL_GROUP;
|
|
19
19
|
var PhysicsBodyGroup;
|
|
20
|
-
(
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
20
|
+
(PhysicsBodyGroup => {
|
|
21
|
+
PhysicsBodyGroup[(PhysicsBodyGroup['none'] = 0)] = 'none';
|
|
22
|
+
PhysicsBodyGroup[(PhysicsBodyGroup['border'] = 1)] = 'border';
|
|
23
|
+
PhysicsBodyGroup[(PhysicsBodyGroup['friend'] = 2)] = 'friend';
|
|
24
|
+
PhysicsBodyGroup[(PhysicsBodyGroup['friendProjectile'] = 3)] = 'friendProjectile';
|
|
25
|
+
PhysicsBodyGroup[(PhysicsBodyGroup['enemy'] = 4)] = 'enemy';
|
|
26
|
+
PhysicsBodyGroup[(PhysicsBodyGroup['enemyProjectile'] = 5)] = 'enemyProjectile';
|
|
27
|
+
PhysicsBodyGroup[(PhysicsBodyGroup['neutral'] = 6)] = 'neutral';
|
|
28
|
+
PhysicsBodyGroup[(PhysicsBodyGroup['explosion'] = 7)] = 'explosion';
|
|
29
29
|
})(PhysicsBodyGroup || (exports.PhysicsBodyGroup = PhysicsBodyGroup = {}));
|
|
30
30
|
class PhysicsBodyGroups {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}
|
|
31
|
+
static getGroupConstant(group) {
|
|
32
|
+
switch (group) {
|
|
33
|
+
case PhysicsBodyGroup.none:
|
|
34
|
+
return 0;
|
|
35
|
+
case PhysicsBodyGroup.border:
|
|
36
|
+
return BORDER_GROUP;
|
|
37
|
+
case PhysicsBodyGroup.friend:
|
|
38
|
+
return FRIEND_GROUP;
|
|
39
|
+
case PhysicsBodyGroup.friendProjectile:
|
|
40
|
+
return FRIEND_PROJECTILE_GROUP;
|
|
41
|
+
case PhysicsBodyGroup.enemy:
|
|
42
|
+
return ENEMY_GROUP;
|
|
43
|
+
case PhysicsBodyGroup.enemyProjectile:
|
|
44
|
+
return ENEMY_PROJECTILE_GROUP;
|
|
45
|
+
case PhysicsBodyGroup.neutral:
|
|
46
|
+
return NEUTRAL_GROUP;
|
|
47
|
+
case PhysicsBodyGroup.explosion:
|
|
48
|
+
return EXPLOSION_GROUP;
|
|
50
49
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
}
|
|
71
|
-
static canCollide(group1, group2) {
|
|
72
|
-
return (PhysicsBodyGroups.getMaskConstant(group1) & PhysicsBodyGroups.getGroupConstant(group2)) !== 0;
|
|
50
|
+
}
|
|
51
|
+
static getMaskConstant(group) {
|
|
52
|
+
switch (group) {
|
|
53
|
+
case PhysicsBodyGroup.none:
|
|
54
|
+
return 0;
|
|
55
|
+
case PhysicsBodyGroup.border:
|
|
56
|
+
return BORDER_MASK;
|
|
57
|
+
case PhysicsBodyGroup.friend:
|
|
58
|
+
return FRIEND_MASK;
|
|
59
|
+
case PhysicsBodyGroup.friendProjectile:
|
|
60
|
+
return FRIEND_PROJECTILE_MASK;
|
|
61
|
+
case PhysicsBodyGroup.enemy:
|
|
62
|
+
return ENEMY_MASK;
|
|
63
|
+
case PhysicsBodyGroup.enemyProjectile:
|
|
64
|
+
return ENEMY_PROJECTILE_MASK;
|
|
65
|
+
case PhysicsBodyGroup.neutral:
|
|
66
|
+
return NEUTRAL_MASK;
|
|
67
|
+
case PhysicsBodyGroup.explosion:
|
|
68
|
+
return EXPLOSION_MASK;
|
|
73
69
|
}
|
|
70
|
+
}
|
|
71
|
+
static canCollide(group1, group2) {
|
|
72
|
+
return (PhysicsBodyGroups.getMaskConstant(group1) & PhysicsBodyGroups.getGroupConstant(group2)) !== 0;
|
|
73
|
+
}
|
|
74
74
|
}
|
|
75
75
|
exports.PhysicsBodyGroups = PhysicsBodyGroups;
|
|
76
|
-
//# sourceMappingURL=physics-body-groups.js.map
|
|
76
|
+
//# sourceMappingURL=physics-body-groups.js.map
|
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
import p2 from 'p2';
|
|
2
2
|
import { BorderProperties, MaterialContactDefinition, MaterialDefinition } from '../../interfaces';
|
|
3
3
|
export declare class PhysicsMaterials {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
4
|
+
private borderMaterial;
|
|
5
|
+
private materials;
|
|
6
|
+
private materialDefinitions;
|
|
7
|
+
constructor(
|
|
8
|
+
p2World: p2.World,
|
|
9
|
+
borderProperties: BorderProperties,
|
|
10
|
+
materialDefinitions: ReadonlyArray<MaterialDefinition>,
|
|
11
|
+
materialContactDefinitions: ReadonlyArray<MaterialContactDefinition>
|
|
12
|
+
);
|
|
13
|
+
getBorderMaterial(): p2.Material;
|
|
14
|
+
getMaterial(name: string): p2.Material;
|
|
15
|
+
getMaterialDefinition(name: string): MaterialDefinition;
|
|
16
|
+
private addContactMaterials;
|
|
17
|
+
private getFullListOfMaterialContactDefinitions;
|
|
18
|
+
private addContactMaterialsWithBorder;
|
|
14
19
|
}
|
|
@@ -1,107 +1,108 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1
|
+
var __importDefault = (this && this.__importDefault) || (mod => (mod && mod.__esModule ? mod : { default: mod }));
|
|
2
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
6
3
|
exports.PhysicsMaterials = void 0;
|
|
7
|
-
const p2_1 = __importDefault(require(
|
|
8
|
-
const interfaces_1 = require(
|
|
4
|
+
const p2_1 = __importDefault(require('p2'));
|
|
5
|
+
const interfaces_1 = require('../../interfaces');
|
|
9
6
|
class PhysicsMaterials {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
7
|
+
constructor(p2World, borderProperties, materialDefinitions, materialContactDefinitions) {
|
|
8
|
+
this.borderMaterial = new p2_1.default.Material();
|
|
9
|
+
this.materials = new Map();
|
|
10
|
+
this.materialDefinitions = new Map();
|
|
11
|
+
materialDefinitions.forEach(materialDefinition => {
|
|
12
|
+
this.materials.set(materialDefinition.name, new p2_1.default.Material());
|
|
13
|
+
this.materialDefinitions.set(materialDefinition.name, materialDefinition);
|
|
14
|
+
});
|
|
15
|
+
this.addContactMaterials(p2World, borderProperties, materialDefinitions, materialContactDefinitions);
|
|
16
|
+
}
|
|
17
|
+
getBorderMaterial() {
|
|
18
|
+
return this.borderMaterial;
|
|
19
|
+
}
|
|
20
|
+
getMaterial(name) {
|
|
21
|
+
if (name === interfaces_1.BorderMaterialName) {
|
|
22
|
+
return this.borderMaterial;
|
|
23
|
+
} else {
|
|
24
|
+
const material = this.materials.get(name);
|
|
25
|
+
if (!material) {
|
|
26
|
+
throw new Error(`Could not find material with name ${name}.`);
|
|
27
|
+
}
|
|
28
|
+
return material;
|
|
19
29
|
}
|
|
20
|
-
|
|
21
|
-
|
|
30
|
+
}
|
|
31
|
+
getMaterialDefinition(name) {
|
|
32
|
+
if (name === interfaces_1.BorderMaterialName) {
|
|
33
|
+
return {
|
|
34
|
+
name: interfaces_1.BorderMaterialName,
|
|
35
|
+
density: Number.MAX_SAFE_INTEGER,
|
|
36
|
+
velocityDrag: 1,
|
|
37
|
+
rotationalDrag: 1
|
|
38
|
+
};
|
|
39
|
+
} else {
|
|
40
|
+
const materialDefinition = this.materialDefinitions.get(name);
|
|
41
|
+
if (!materialDefinition) {
|
|
42
|
+
throw new Error(`Could not find material definition with name ${name}.`);
|
|
43
|
+
}
|
|
44
|
+
return materialDefinition;
|
|
22
45
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
46
|
+
}
|
|
47
|
+
addContactMaterials(p2World, borderProperties, materialDefinitions, materialContactDefinitions) {
|
|
48
|
+
this.getFullListOfMaterialContactDefinitions(
|
|
49
|
+
materialDefinitions.map(definition => definition.name),
|
|
50
|
+
materialContactDefinitions
|
|
51
|
+
).forEach(contactDefinition => {
|
|
52
|
+
const materialA = this.getMaterial(contactDefinition.materialA);
|
|
53
|
+
const materialB = this.getMaterial(contactDefinition.materialB);
|
|
54
|
+
p2World.addContactMaterial(
|
|
55
|
+
new p2_1.default.ContactMaterial(materialA, materialB, {
|
|
56
|
+
friction: contactDefinition.friction,
|
|
57
|
+
restitution: contactDefinition.bounciness,
|
|
58
|
+
stiffness: contactDefinition.stiffness
|
|
59
|
+
})
|
|
60
|
+
);
|
|
61
|
+
});
|
|
62
|
+
this.addContactMaterialsWithBorder(p2World, borderProperties, materialDefinitions);
|
|
63
|
+
}
|
|
64
|
+
getFullListOfMaterialContactDefinitions(materialNames, materialContactDefinitions) {
|
|
65
|
+
const definedCombinations = new Map();
|
|
66
|
+
materialContactDefinitions.forEach(contactDefinition => {
|
|
67
|
+
let materialAMap = definedCombinations.get(contactDefinition.materialA);
|
|
68
|
+
if (!materialAMap) {
|
|
69
|
+
materialAMap = new Map();
|
|
70
|
+
definedCombinations.set(contactDefinition.materialA, materialAMap);
|
|
71
|
+
}
|
|
72
|
+
materialAMap.set(contactDefinition.materialB, contactDefinition);
|
|
73
|
+
});
|
|
74
|
+
const fullList = [];
|
|
75
|
+
materialNames.forEach((materialA, index) => {
|
|
76
|
+
for (let i = index; i < materialNames.length; i++) {
|
|
77
|
+
const materialB = materialNames[i];
|
|
78
|
+
const contactDefinition = definedCombinations.get(materialA)?.get(materialB);
|
|
79
|
+
if (contactDefinition) {
|
|
80
|
+
fullList.push(contactDefinition);
|
|
81
|
+
} else {
|
|
82
|
+
fullList.push({
|
|
83
|
+
materialA,
|
|
84
|
+
materialB,
|
|
85
|
+
friction: 0,
|
|
86
|
+
bounciness: 0,
|
|
87
|
+
stiffness: 1e6 // default p2js stiffness
|
|
88
|
+
});
|
|
26
89
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
let materialDefinition = this.materialDefinitions.get(name);
|
|
46
|
-
if (!materialDefinition) {
|
|
47
|
-
throw new Error(`Could not find material definition with name ${name}.`);
|
|
48
|
-
}
|
|
49
|
-
return materialDefinition;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
addContactMaterials(p2World, borderProperties, materialDefinitions, materialContactDefinitions) {
|
|
53
|
-
this.getFullListOfMaterialContactDefinitions(materialDefinitions.map(definition => definition.name), materialContactDefinitions).forEach(contactDefinition => {
|
|
54
|
-
let materialA = this.getMaterial(contactDefinition.materialA);
|
|
55
|
-
let materialB = this.getMaterial(contactDefinition.materialB);
|
|
56
|
-
p2World.addContactMaterial(new p2_1.default.ContactMaterial(materialA, materialB, {
|
|
57
|
-
friction: contactDefinition.friction,
|
|
58
|
-
restitution: contactDefinition.bounciness,
|
|
59
|
-
stiffness: contactDefinition.stiffness
|
|
60
|
-
}));
|
|
61
|
-
});
|
|
62
|
-
this.addContactMaterialsWithBorder(p2World, borderProperties, materialDefinitions);
|
|
63
|
-
}
|
|
64
|
-
getFullListOfMaterialContactDefinitions(materialNames, materialContactDefinitions) {
|
|
65
|
-
let definedCombinations = new Map();
|
|
66
|
-
materialContactDefinitions.forEach(contactDefinition => {
|
|
67
|
-
let materialAMap = definedCombinations.get(contactDefinition.materialA);
|
|
68
|
-
if (!materialAMap) {
|
|
69
|
-
materialAMap = new Map();
|
|
70
|
-
definedCombinations.set(contactDefinition.materialA, materialAMap);
|
|
71
|
-
}
|
|
72
|
-
materialAMap.set(contactDefinition.materialB, contactDefinition);
|
|
73
|
-
});
|
|
74
|
-
let fullList = [];
|
|
75
|
-
materialNames.forEach((materialA, index) => {
|
|
76
|
-
for (let i = index; i < materialNames.length; i++) {
|
|
77
|
-
let materialB = materialNames[i];
|
|
78
|
-
let contactDefinition = definedCombinations.get(materialA)?.get(materialB);
|
|
79
|
-
if (contactDefinition) {
|
|
80
|
-
fullList.push(contactDefinition);
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
fullList.push({
|
|
84
|
-
materialA,
|
|
85
|
-
materialB,
|
|
86
|
-
friction: 0,
|
|
87
|
-
bounciness: 0,
|
|
88
|
-
stiffness: 1e6 // default p2js stiffness
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
});
|
|
93
|
-
return fullList;
|
|
94
|
-
}
|
|
95
|
-
addContactMaterialsWithBorder(p2World, borderProperties, materialDefinitions) {
|
|
96
|
-
materialDefinitions.forEach(materialDefinition => {
|
|
97
|
-
let materialA = this.getMaterial(materialDefinition.name);
|
|
98
|
-
p2World.addContactMaterial(new p2_1.default.ContactMaterial(materialA, this.borderMaterial, {
|
|
99
|
-
friction: borderProperties.friction,
|
|
100
|
-
restitution: borderProperties.bounciness,
|
|
101
|
-
stiffness: borderProperties.stiffness
|
|
102
|
-
}));
|
|
103
|
-
});
|
|
104
|
-
}
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
return fullList;
|
|
93
|
+
}
|
|
94
|
+
addContactMaterialsWithBorder(p2World, borderProperties, materialDefinitions) {
|
|
95
|
+
materialDefinitions.forEach(materialDefinition => {
|
|
96
|
+
const materialA = this.getMaterial(materialDefinition.name);
|
|
97
|
+
p2World.addContactMaterial(
|
|
98
|
+
new p2_1.default.ContactMaterial(materialA, this.borderMaterial, {
|
|
99
|
+
friction: borderProperties.friction,
|
|
100
|
+
restitution: borderProperties.bounciness,
|
|
101
|
+
stiffness: borderProperties.stiffness
|
|
102
|
+
})
|
|
103
|
+
);
|
|
104
|
+
});
|
|
105
|
+
}
|
|
105
106
|
}
|
|
106
107
|
exports.PhysicsMaterials = PhysicsMaterials;
|
|
107
|
-
//# sourceMappingURL=physics-materials.js.map
|
|
108
|
+
//# sourceMappingURL=physics-materials.js.map
|
|
@@ -3,9 +3,9 @@ import { PhysicsEntityDefinition } from '../../interfaces';
|
|
|
3
3
|
import { PhysicsWorld } from '../../physics-world';
|
|
4
4
|
import { ImmovablePhysicsEntity } from '../../entitity-types/immovable-physics-entity';
|
|
5
5
|
export declare class BorderEntity extends ImmovablePhysicsEntity {
|
|
6
|
-
|
|
6
|
+
constructor(physicsWorld: any, physicsEntityDefinition: PhysicsEntityDefinition);
|
|
7
7
|
}
|
|
8
8
|
export declare class PhysicsWorldBorders {
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
static createBorders(physicsWorld: PhysicsWorld, mapSize: Vector): void;
|
|
10
|
+
private static createBorder;
|
|
11
11
|
}
|
|
@@ -1,53 +1,77 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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 =
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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.PhysicsWorldBorders = exports.BorderEntity = void 0;
|
|
13
|
-
const helpers_lib_1 = require(
|
|
14
|
-
const interfaces_1 = require(
|
|
15
|
-
const physics_body_groups_1 = require(
|
|
16
|
-
const game_entities_1 = require(
|
|
17
|
-
const immovable_physics_entity_1 = require(
|
|
21
|
+
const helpers_lib_1 = require('helpers-lib');
|
|
22
|
+
const interfaces_1 = require('../../interfaces');
|
|
23
|
+
const physics_body_groups_1 = require('./physics-body-groups');
|
|
24
|
+
const game_entities_1 = require('../../../game-entities');
|
|
25
|
+
const immovable_physics_entity_1 = require('../../entitity-types/immovable-physics-entity');
|
|
18
26
|
let BorderEntity = class BorderEntity extends immovable_physics_entity_1.ImmovablePhysicsEntity {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
27
|
+
// TODO: check - physicsWorld type is removed because, it is giving "PhysicsWorld cannot be accessed before it's initialization".
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
29
|
+
constructor(physicsWorld, physicsEntityDefinition) {
|
|
30
|
+
super(physicsWorld, physicsEntityDefinition);
|
|
31
|
+
}
|
|
24
32
|
};
|
|
25
33
|
exports.BorderEntity = BorderEntity;
|
|
26
|
-
exports.BorderEntity = BorderEntity = __decorate(
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
34
|
+
exports.BorderEntity = BorderEntity = __decorate(
|
|
35
|
+
[(0, game_entities_1.EntityDecorator)(), __metadata('design:paramtypes', [Object, Object])],
|
|
36
|
+
BorderEntity
|
|
37
|
+
);
|
|
30
38
|
class PhysicsWorldBorders {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
39
|
+
static createBorders(physicsWorld, mapSize) {
|
|
40
|
+
PhysicsWorldBorders.createBorder(
|
|
41
|
+
physicsWorld,
|
|
42
|
+
new helpers_lib_1.Vector(mapSize.x / 2, -50),
|
|
43
|
+
new helpers_lib_1.Vector(mapSize.x + 200, 100)
|
|
44
|
+
); // Top border
|
|
45
|
+
PhysicsWorldBorders.createBorder(
|
|
46
|
+
physicsWorld,
|
|
47
|
+
new helpers_lib_1.Vector(mapSize.x / 2, mapSize.y + 50),
|
|
48
|
+
new helpers_lib_1.Vector(mapSize.x + 200, 100)
|
|
49
|
+
); // Bottom border
|
|
50
|
+
PhysicsWorldBorders.createBorder(
|
|
51
|
+
physicsWorld,
|
|
52
|
+
new helpers_lib_1.Vector(-50, mapSize.y / 2),
|
|
53
|
+
new helpers_lib_1.Vector(100, mapSize.y + 200)
|
|
54
|
+
); // Left border
|
|
55
|
+
PhysicsWorldBorders.createBorder(
|
|
56
|
+
physicsWorld,
|
|
57
|
+
new helpers_lib_1.Vector(mapSize.x + 50, mapSize.y / 2),
|
|
58
|
+
new helpers_lib_1.Vector(100, mapSize.y + 200)
|
|
59
|
+
); // Right border
|
|
60
|
+
}
|
|
61
|
+
static createBorder(physicsWorld, position, size) {
|
|
62
|
+
return new BorderEntity(physicsWorld, {
|
|
63
|
+
shapeDefinition: {
|
|
64
|
+
materialName: interfaces_1.BorderMaterialName,
|
|
65
|
+
group: physics_body_groups_1.PhysicsBodyGroup.border,
|
|
66
|
+
shapeType: interfaces_1.PhysicsShapeType.rectangle,
|
|
67
|
+
shapeData: { size }
|
|
68
|
+
},
|
|
69
|
+
position,
|
|
70
|
+
rotation: 0,
|
|
71
|
+
addInEmptySpace: false,
|
|
72
|
+
includeOnPathfinding: true
|
|
73
|
+
}).attach(physicsWorld);
|
|
74
|
+
}
|
|
51
75
|
}
|
|
52
76
|
exports.PhysicsWorldBorders = PhysicsWorldBorders;
|
|
53
|
-
//# sourceMappingURL=physics-world-borders.js.map
|
|
77
|
+
//# sourceMappingURL=physics-world-borders.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
export declare enum PhysicsBodyGroup {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
none = 0,
|
|
3
|
+
border = 1,
|
|
4
|
+
friend = 2,
|
|
5
|
+
enemy = 3,
|
|
6
|
+
neutral = 4
|
|
7
7
|
}
|
|
8
8
|
export declare class PhysicsBodyGroups {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
static getGroupConstant(group: PhysicsBodyGroup): number;
|
|
10
|
+
static getMaskConstant(group: PhysicsBodyGroup): number;
|
|
11
|
+
static canCollide(group1: PhysicsBodyGroup, group2: PhysicsBodyGroup): boolean;
|
|
12
12
|
}
|
|
@@ -1,55 +1,54 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
3
2
|
exports.PhysicsBodyGroups = exports.PhysicsBodyGroup = void 0;
|
|
4
3
|
/* eslint-disable no-bitwise */
|
|
5
|
-
const BORDER_GROUP =
|
|
6
|
-
const FRIEND_GROUP =
|
|
7
|
-
const ENEMY_GROUP =
|
|
8
|
-
const NEUTRAL_GROUP =
|
|
4
|
+
const BORDER_GROUP = 2 ** 0; // 0b0001;
|
|
5
|
+
const FRIEND_GROUP = 2 ** 1; // 0b0010;
|
|
6
|
+
const ENEMY_GROUP = 2 ** 2; // 0b0100;
|
|
7
|
+
const NEUTRAL_GROUP = 2 ** 3; // 0b1000;
|
|
9
8
|
const BORDER_MASK = FRIEND_GROUP | ENEMY_GROUP | NEUTRAL_GROUP; // Borders only collide with bodies
|
|
10
9
|
const FRIEND_MASK = ENEMY_GROUP | NEUTRAL_GROUP | BORDER_GROUP;
|
|
11
10
|
const ENEMY_MASK = FRIEND_GROUP | NEUTRAL_GROUP | BORDER_GROUP;
|
|
12
11
|
const NEUTRAL_MASK = FRIEND_GROUP | ENEMY_GROUP | NEUTRAL_GROUP | BORDER_GROUP;
|
|
13
12
|
var PhysicsBodyGroup;
|
|
14
|
-
(
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
13
|
+
(PhysicsBodyGroup => {
|
|
14
|
+
PhysicsBodyGroup[(PhysicsBodyGroup['none'] = 0)] = 'none';
|
|
15
|
+
PhysicsBodyGroup[(PhysicsBodyGroup['border'] = 1)] = 'border';
|
|
16
|
+
PhysicsBodyGroup[(PhysicsBodyGroup['friend'] = 2)] = 'friend';
|
|
17
|
+
PhysicsBodyGroup[(PhysicsBodyGroup['enemy'] = 3)] = 'enemy';
|
|
18
|
+
PhysicsBodyGroup[(PhysicsBodyGroup['neutral'] = 4)] = 'neutral';
|
|
20
19
|
})(PhysicsBodyGroup || (exports.PhysicsBodyGroup = PhysicsBodyGroup = {}));
|
|
21
20
|
class PhysicsBodyGroups {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}
|
|
21
|
+
static getGroupConstant(group) {
|
|
22
|
+
switch (group) {
|
|
23
|
+
case PhysicsBodyGroup.none:
|
|
24
|
+
return 0;
|
|
25
|
+
case PhysicsBodyGroup.border:
|
|
26
|
+
return BORDER_GROUP;
|
|
27
|
+
case PhysicsBodyGroup.friend:
|
|
28
|
+
return FRIEND_GROUP;
|
|
29
|
+
case PhysicsBodyGroup.enemy:
|
|
30
|
+
return ENEMY_GROUP;
|
|
31
|
+
case PhysicsBodyGroup.neutral:
|
|
32
|
+
return NEUTRAL_GROUP;
|
|
35
33
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}
|
|
50
|
-
static canCollide(group1, group2) {
|
|
51
|
-
return (PhysicsBodyGroups.getMaskConstant(group1) & PhysicsBodyGroups.getGroupConstant(group2)) !== 0;
|
|
34
|
+
}
|
|
35
|
+
static getMaskConstant(group) {
|
|
36
|
+
switch (group) {
|
|
37
|
+
case PhysicsBodyGroup.none:
|
|
38
|
+
return 0;
|
|
39
|
+
case PhysicsBodyGroup.border:
|
|
40
|
+
return BORDER_MASK;
|
|
41
|
+
case PhysicsBodyGroup.friend:
|
|
42
|
+
return FRIEND_MASK;
|
|
43
|
+
case PhysicsBodyGroup.enemy:
|
|
44
|
+
return ENEMY_MASK;
|
|
45
|
+
case PhysicsBodyGroup.neutral:
|
|
46
|
+
return NEUTRAL_MASK;
|
|
52
47
|
}
|
|
48
|
+
}
|
|
49
|
+
static canCollide(group1, group2) {
|
|
50
|
+
return (PhysicsBodyGroups.getMaskConstant(group1) & PhysicsBodyGroups.getGroupConstant(group2)) !== 0;
|
|
51
|
+
}
|
|
53
52
|
}
|
|
54
53
|
exports.PhysicsBodyGroups = PhysicsBodyGroups;
|
|
55
|
-
//# sourceMappingURL=physics-body-groups.js.map
|
|
54
|
+
//# sourceMappingURL=physics-body-groups.js.map
|