bard-legends-framework 0.3.3 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/dist/game-entities/service/service.test.js +24 -8
  2. package/dist/game-entities/service/service.test.js.map +1 -1
  3. package/dist/physics/entity-types/immovable-physics-entity.d.ts +12 -0
  4. package/dist/physics/entity-types/immovable-physics-entity.js +28 -0
  5. package/dist/physics/entity-types/immovable-physics-entity.js.map +1 -0
  6. package/dist/physics/entity-types/movable-entity.d.ts +11 -0
  7. package/dist/physics/entity-types/movable-entity.js +26 -0
  8. package/dist/physics/entity-types/movable-entity.js.map +1 -0
  9. package/dist/physics/entity-types/movable-physics-entity.d.ts +20 -0
  10. package/dist/physics/entity-types/movable-physics-entity.js +96 -0
  11. package/dist/physics/entity-types/movable-physics-entity.js.map +1 -0
  12. package/dist/physics/entity-types/physics-entity.d.ts +31 -0
  13. package/dist/physics/entity-types/physics-entity.js +91 -0
  14. package/dist/physics/entity-types/physics-entity.js.map +1 -0
  15. package/dist/physics/index.d.ts +6 -9
  16. package/dist/physics/index.js +7 -14
  17. package/dist/physics/index.js.map +1 -1
  18. package/dist/physics/interfaces.d.ts +1 -35
  19. package/dist/physics/interfaces.js +1 -2
  20. package/dist/physics/interfaces.js.map +1 -1
  21. package/dist/physics/libs/p2js.helper.d.ts +8 -0
  22. package/dist/physics/libs/p2js.helper.js +31 -0
  23. package/dist/physics/libs/p2js.helper.js.map +1 -0
  24. package/dist/physics/libs/physics-body-groups.d.ts +15 -0
  25. package/dist/physics/libs/physics-body-groups.js +76 -0
  26. package/dist/physics/libs/physics-body-groups.js.map +1 -0
  27. package/dist/physics/libs/position-to-grid-position-converter.d.ts +6 -0
  28. package/dist/physics/libs/position-to-grid-position-converter.js +17 -0
  29. package/dist/physics/libs/position-to-grid-position-converter.js.map +1 -0
  30. package/dist/physics/module//342/232/234/357/270/217gateways/controllers/physics-internal.controller.d.ts +23 -0
  31. package/dist/physics/module//342/232/234/357/270/217gateways/controllers/physics-internal.controller.js +50 -0
  32. package/dist/physics/module//342/232/234/357/270/217gateways/controllers/physics-internal.controller.js.map +1 -0
  33. package/dist/physics/module//342/232/234/357/270/217gateways/controllers/physics.controller.d.ts +28 -0
  34. package/dist/physics/module//342/232/234/357/270/217gateways/controllers/physics.controller.js +59 -0
  35. package/dist/physics/module//342/232/234/357/270/217gateways/controllers/physics.controller.js.map +1 -0
  36. package/dist/physics/module//342/232/234/357/270/217gateways/dtos/requests.dto.d.ts +15 -0
  37. package/dist/physics/module//342/232/234/357/270/217gateways/dtos/requests.dto.js +3 -0
  38. package/dist/physics/module//342/232/234/357/270/217gateways/dtos/requests.dto.js.map +1 -0
  39. package/dist/physics/module//342/232/234/357/270/217gateways/dtos/responses.dto.d.ts +30 -0
  40. package/dist/physics/module//342/232/234/357/270/217gateways/dtos/responses.dto.js +3 -0
  41. package/dist/physics/module//342/232/234/357/270/217gateways/dtos/responses.dto.js.map +1 -0
  42. package/dist/physics/module//342/232/234/357/270/217gateways/dtos/shared-interfaces.dto.d.ts +21 -0
  43. package/dist/physics/module//342/232/234/357/270/217gateways/dtos/shared-interfaces.dto.js +7 -0
  44. package/dist/physics/module//342/232/234/357/270/217gateways/dtos/shared-interfaces.dto.js.map +1 -0
  45. package/dist/physics/module//342/232/234/357/270/217gateways/index.d.ts +4 -0
  46. package/dist/physics/module//342/232/234/357/270/217gateways/index.js +26 -0
  47. package/dist/physics/module//342/232/234/357/270/217gateways/index.js.map +1 -0
  48. package/dist/physics/module//342/232/234/357/270/217gateways/physics-internal.gateway.d.ts +18 -0
  49. package/dist/physics/module//342/232/234/357/270/217gateways/physics-internal.gateway.js +36 -0
  50. package/dist/physics/module//342/232/234/357/270/217gateways/physics-internal.gateway.js.map +1 -0
  51. package/dist/physics/module//342/232/234/357/270/217gateways/physics.gateway.d.ts +19 -0
  52. package/dist/physics/module//342/232/234/357/270/217gateways/physics.gateway.js +40 -0
  53. package/dist/physics/module//342/232/234/357/270/217gateways/physics.gateway.js.map +1 -0
  54. package/dist/physics/module//360/237/223/220services/availability-grid.service.d.ts +12 -0
  55. package/dist/physics/module//360/237/223/220services/availability-grid.service.js +63 -0
  56. package/dist/physics/module//360/237/223/220services/availability-grid.service.js.map +1 -0
  57. package/dist/physics/module//360/237/223/220services/border.service.d.ts +5 -0
  58. package/dist/physics/module//360/237/223/220services/border.service.js +42 -0
  59. package/dist/physics/module//360/237/223/220services/border.service.js.map +1 -0
  60. package/dist/physics/module//360/237/223/220services/collisions.service.d.ts +10 -0
  61. package/dist/physics/module//360/237/223/220services/collisions.service.js +106 -0
  62. package/dist/physics/module//360/237/223/220services/collisions.service.js.map +1 -0
  63. package/dist/physics/module//360/237/223/220services/debug-visuals.service.d.ts +14 -0
  64. package/dist/physics/module//360/237/223/220services/debug-visuals.service.js +95 -0
  65. package/dist/physics/module//360/237/223/220services/debug-visuals.service.js.map +1 -0
  66. package/dist/physics/module//360/237/223/220services/eliptic-explosion.service.d.ts +14 -0
  67. package/dist/physics/module//360/237/223/220services/eliptic-explosion.service.js +99 -0
  68. package/dist/physics/module//360/237/223/220services/eliptic-explosion.service.js.map +1 -0
  69. package/dist/physics/module//360/237/223/220services/explosion.service.d.ts +14 -0
  70. package/dist/physics/module//360/237/223/220services/explosion.service.js +88 -0
  71. package/dist/physics/module//360/237/223/220services/explosion.service.js.map +1 -0
  72. package/dist/physics/module//360/237/223/220services/helpers/ray-cast-hit-converter.d.ts +5 -0
  73. package/dist/physics/module//360/237/223/220services/helpers/ray-cast-hit-converter.js +71 -0
  74. package/dist/physics/module//360/237/223/220services/helpers/ray-cast-hit-converter.js.map +1 -0
  75. package/dist/physics/module//360/237/223/220services/materials.service.d.ts +15 -0
  76. package/dist/physics/module//360/237/223/220services/materials.service.js +120 -0
  77. package/dist/physics/module//360/237/223/220services/materials.service.js.map +1 -0
  78. package/dist/physics/module//360/237/223/220services/path-finder.service.d.ts +15 -0
  79. package/dist/physics/module//360/237/223/220services/path-finder.service.js +92 -0
  80. package/dist/physics/module//360/237/223/220services/path-finder.service.js.map +1 -0
  81. package/dist/physics/module//360/237/223/220services/physics-world.service.d.ts +26 -0
  82. package/dist/physics/module//360/237/223/220services/physics-world.service.js +112 -0
  83. package/dist/physics/module//360/237/223/220services/physics-world.service.js.map +1 -0
  84. package/dist/physics/module//360/237/223/220services/ray-casting.service.d.ts +9 -0
  85. package/dist/physics/module//360/237/223/220services/ray-casting.service.js +92 -0
  86. package/dist/physics/module//360/237/223/220services/ray-casting.service.js.map +1 -0
  87. package/dist/physics/module//360/237/223/220services/shape-creation.service.d.ts +9 -0
  88. package/dist/physics/module//360/237/223/220services/shape-creation.service.js +95 -0
  89. package/dist/physics/module//360/237/223/220services/shape-creation.service.js.map +1 -0
  90. package/dist/physics/module//360/237/247/212entities/border.entity.d.ts +5 -0
  91. package/dist/physics/module//360/237/247/212entities/border.entity.js +25 -0
  92. package/dist/physics/module//360/237/247/212entities/border.entity.js.map +1 -0
  93. package/dist/physics/module//360/237/247/212entities/data-structures/availability-grid-cache.d.ts +12 -0
  94. package/dist/physics/module//360/237/247/212entities/data-structures/availability-grid-cache.js +40 -0
  95. package/dist/physics/module//360/237/247/212entities/data-structures/availability-grid-cache.js.map +1 -0
  96. package/dist/physics/module//360/237/247/212entities/physics-world.entity.d.ts +30 -0
  97. package/dist/physics/module//360/237/247/212entities/physics-world.entity.js +45 -0
  98. package/dist/physics/module//360/237/247/212entities/physics-world.entity.js.map +1 -0
  99. package/dist/pixi/display-object/objects/graphics.d.ts +1 -0
  100. package/dist/pixi/display-object/objects/graphics.js +7 -0
  101. package/dist/pixi/display-object/objects/graphics.js.map +1 -1
  102. package/dist/pixi/game.d.ts +4 -0
  103. package/dist/pixi/game.js +12 -0
  104. package/dist/pixi/game.js.map +1 -1
  105. package/dist/pixi/helpers/screen-position-to-stage.helper.d.ts +4 -0
  106. package/dist/pixi/helpers/screen-position-to-stage.helper.js +17 -0
  107. package/dist/pixi/helpers/screen-position-to-stage.helper.js.map +1 -0
  108. package/dist/pixi/helpers/screen-position-to-stage.helper.test.d.ts +1 -0
  109. package/dist/pixi/helpers/screen-position-to-stage.helper.test.js +83 -0
  110. package/dist/pixi/helpers/screen-position-to-stage.helper.test.js.map +1 -0
  111. package/dist/pixi/index.d.ts +3 -0
  112. package/dist/pixi/index.js +7 -1
  113. package/dist/pixi/index.js.map +1 -1
  114. package/dist/pixi/services/keyboard/keyboard.d.ts +7 -0
  115. package/dist/pixi/services/keyboard/keyboard.js +39 -0
  116. package/dist/pixi/services/keyboard/keyboard.js.map +1 -0
  117. package/dist/pixi/services/mouse/mouse-target-focus.service.d.ts +20 -0
  118. package/dist/pixi/services/mouse/mouse-target-focus.service.js +85 -0
  119. package/dist/pixi/services/mouse/mouse-target-focus.service.js.map +1 -0
  120. package/dist/pixi/services/mouse/mouse.service.d.ts +10 -0
  121. package/dist/pixi/services/mouse/mouse.service.js +68 -0
  122. package/dist/pixi/services/mouse/mouse.service.js.map +1 -0
  123. package/dist/utilities/index.d.ts +4 -4
  124. package/dist/utilities/index.js +7 -7
  125. package/dist/utilities/index.js.map +1 -1
  126. package/dist/utilities/libraries/grid-algorithms/closest-available-space/closest-available-space.helper.js +3 -2
  127. package/dist/utilities/libraries/grid-algorithms/closest-available-space/closest-available-space.helper.js.map +1 -1
  128. package/package.json +2 -2
  129. package/package.json.bak +2 -2
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PhysicsBodyGroups = exports.PhysicsBodyGroup = void 0;
4
+ /* eslint-disable no-bitwise */
5
+ const BORDER_GROUP = 1 << 0; // 0b0001;
6
+ const FRIEND_GROUP = 1 << 1; // 0b0010;
7
+ const FRIEND_PROJECTILE_GROUP = 1 << 2; // 0b0100;
8
+ const ENEMY_GROUP = 1 << 3; // 0b1000;
9
+ const ENEMY_PROJECTILE_GROUP = 1 << 4;
10
+ const NEUTRAL_GROUP = 1 << 5;
11
+ const EXPLOSION_GROUP = 1 << 6;
12
+ const BORDER_MASK = FRIEND_GROUP | FRIEND_PROJECTILE_GROUP | ENEMY_GROUP | ENEMY_PROJECTILE_GROUP | NEUTRAL_GROUP;
13
+ const FRIEND_MASK = ENEMY_GROUP | ENEMY_PROJECTILE_GROUP | NEUTRAL_GROUP | BORDER_GROUP | EXPLOSION_GROUP;
14
+ const FRIEND_PROJECTILE_MASK = ENEMY_GROUP | NEUTRAL_GROUP | BORDER_GROUP;
15
+ const ENEMY_MASK = FRIEND_GROUP | FRIEND_PROJECTILE_GROUP | NEUTRAL_GROUP | BORDER_GROUP | EXPLOSION_GROUP;
16
+ const ENEMY_PROJECTILE_MASK = FRIEND_GROUP | NEUTRAL_GROUP | BORDER_GROUP;
17
+ const NEUTRAL_MASK = FRIEND_GROUP | FRIEND_PROJECTILE_GROUP | ENEMY_GROUP | ENEMY_PROJECTILE_GROUP | NEUTRAL_GROUP | BORDER_GROUP | EXPLOSION_GROUP;
18
+ const EXPLOSION_MASK = FRIEND_GROUP | ENEMY_GROUP | NEUTRAL_GROUP;
19
+ var PhysicsBodyGroup;
20
+ (function (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
+ })(PhysicsBodyGroup || (exports.PhysicsBodyGroup = PhysicsBodyGroup = {}));
30
+ class PhysicsBodyGroups {
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;
49
+ }
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;
69
+ }
70
+ }
71
+ static canCollide(group1, group2) {
72
+ return (PhysicsBodyGroups.getMaskConstant(group1) & PhysicsBodyGroups.getGroupConstant(group2)) !== 0;
73
+ }
74
+ }
75
+ exports.PhysicsBodyGroups = PhysicsBodyGroups;
76
+ //# sourceMappingURL=physics-body-groups.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"physics-body-groups.js","sourceRoot":"","sources":["../../../src/physics/libs/physics-body-groups.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { Rectangle, Vector } from 'helpers-lib';
2
+ export declare class PositionToGridPositionConverter {
3
+ static areaToGridArea(boundingBox: Rectangle, cellSize: number): Rectangle;
4
+ static positionToGridPosition(point: Vector, cellSize: number): Vector;
5
+ static gridPositionToPosition(gridPosition: Vector, cellSize: number): Vector;
6
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PositionToGridPositionConverter = void 0;
4
+ const helpers_lib_1 = require("helpers-lib");
5
+ class PositionToGridPositionConverter {
6
+ static areaToGridArea(boundingBox, cellSize) {
7
+ return new helpers_lib_1.Rectangle(this.positionToGridPosition(boundingBox.topLeft, cellSize), this.positionToGridPosition(boundingBox.bottomRight, cellSize));
8
+ }
9
+ static positionToGridPosition(point, cellSize) {
10
+ return point.divide(cellSize).floor();
11
+ }
12
+ static gridPositionToPosition(gridPosition, cellSize) {
13
+ return gridPosition.add(new helpers_lib_1.Vector(0.5, 0.5)).multiply(cellSize);
14
+ }
15
+ }
16
+ exports.PositionToGridPositionConverter = PositionToGridPositionConverter;
17
+ //# sourceMappingURL=position-to-grid-position-converter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"position-to-grid-position-converter.js","sourceRoot":"","sources":["../../../src/physics/libs/position-to-grid-position-converter.ts"],"names":[],"mappings":";;;AAAA,6CAAgD;AAEhD,MAAa,+BAA+B;IAC1C,MAAM,CAAC,cAAc,CAAC,WAAsB,EAAE,QAAgB;QAC5D,OAAO,IAAI,uBAAS,CAClB,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,EAC1D,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,WAAW,EAAE,QAAQ,CAAC,CAC/D,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,sBAAsB,CAAC,KAAa,EAAE,QAAgB;QAC3D,OAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;IACxC,CAAC;IAED,MAAM,CAAC,sBAAsB,CAAC,YAAoB,EAAE,QAAgB;QAClE,OAAO,YAAY,CAAC,GAAG,CAAC,IAAI,oBAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACnE,CAAC;CACF;AAfD,0EAeC"}
@@ -0,0 +1,23 @@
1
+ /// <reference types="p2" />
2
+ import { ActionListenerCallbackFunction, ActionSubscription } from 'actions-lib';
3
+ import { PhysicsEntityDefinition } from '../../../interfaces';
4
+ import { PhysicsBodyGroup } from '../../../libs/physics-body-groups';
5
+ import { MaterialsService } from '../../📐services/materials.service';
6
+ import { PhysicsWorldService } from '../../📐services/physics-world.service';
7
+ import { ShapeCreationService } from '../../📐services/shape-creation.service';
8
+ import { MaterialDefinition } from '../dtos/shared-interfaces.dto';
9
+ export declare class PhysicsInternalController {
10
+ private physicsWorldService;
11
+ private physicsMaterialsService;
12
+ private shapeCreationService;
13
+ constructor(physicsWorldService: PhysicsWorldService, physicsMaterialsService: MaterialsService, shapeCreationService: ShapeCreationService);
14
+ createBody(physicsEntityDefinition: PhysicsEntityDefinition, material: p2.Material, materialDefinition: MaterialDefinition, type: 'dynamic' | 'static'): p2.Body;
15
+ getMaterial(physicsWorldId: string, name: string): p2.Material;
16
+ getMaterialDefinition(physicsWorldId: string, name: string): MaterialDefinition;
17
+ addBody(physicsWorldId: string, body: p2.Body, addInEmptySpace: boolean, physicsBodyGroup: PhysicsBodyGroup, includeOnPathfinding: boolean): boolean;
18
+ removeBody(physicsWorldId: string, p2Body: p2.Body): void;
19
+ subscribeToPhysicsStep(physicsWorldId: string, callback: ActionListenerCallbackFunction<{
20
+ time: number;
21
+ delta: number;
22
+ }>): ActionSubscription;
23
+ }
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.PhysicsInternalController = void 0;
13
+ const materials_service_1 = require("../../\uD83D\uDCD0services/materials.service");
14
+ const physics_world_service_1 = require("../../\uD83D\uDCD0services/physics-world.service");
15
+ const shape_creation_service_1 = require("../../\uD83D\uDCD0services/shape-creation.service");
16
+ const game_entities_1 = require("../../../../game-entities");
17
+ const physics_internal_gateway_1 = require("../physics-internal.gateway");
18
+ let PhysicsInternalController = class PhysicsInternalController {
19
+ constructor(physicsWorldService, physicsMaterialsService, shapeCreationService) {
20
+ this.physicsWorldService = physicsWorldService;
21
+ this.physicsMaterialsService = physicsMaterialsService;
22
+ this.shapeCreationService = shapeCreationService;
23
+ }
24
+ createBody(physicsEntityDefinition, material, materialDefinition, type) {
25
+ return this.shapeCreationService.createBody(physicsEntityDefinition, material, materialDefinition, type);
26
+ }
27
+ getMaterial(physicsWorldId, name) {
28
+ return this.physicsMaterialsService.getMaterial(physicsWorldId, name);
29
+ }
30
+ getMaterialDefinition(physicsWorldId, name) {
31
+ return this.physicsMaterialsService.getMaterialDefinition(physicsWorldId, name);
32
+ }
33
+ addBody(physicsWorldId, body, addInEmptySpace, physicsBodyGroup, includeOnPathfinding) {
34
+ return this.physicsWorldService.addBody(physicsWorldId, body, addInEmptySpace, physicsBodyGroup, includeOnPathfinding);
35
+ }
36
+ removeBody(physicsWorldId, p2Body) {
37
+ this.physicsWorldService.removeBody(physicsWorldId, p2Body);
38
+ }
39
+ subscribeToPhysicsStep(physicsWorldId, callback) {
40
+ return this.physicsWorldService.subscribeToPhysicsStep(physicsWorldId, callback);
41
+ }
42
+ };
43
+ exports.PhysicsInternalController = PhysicsInternalController;
44
+ exports.PhysicsInternalController = PhysicsInternalController = __decorate([
45
+ (0, game_entities_1.ControllerDecorator)({ controllerLink: physics_internal_gateway_1.PhysicsInternalControllerLink }),
46
+ __metadata("design:paramtypes", [physics_world_service_1.PhysicsWorldService,
47
+ materials_service_1.MaterialsService,
48
+ shape_creation_service_1.ShapeCreationService])
49
+ ], PhysicsInternalController);
50
+ //# sourceMappingURL=physics-internal.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"physics-internal.controller.js","sourceRoot":"","sources":["../../../../../src/physics/module/⚜️gateways/controllers/physics-internal.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAIA,oFAAsE;AACtE,4FAA6E;AAC7E,8FAA+E;AAC/E,6DAAgE;AAChE,0EAA4E;AAIrE,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;IACpC,YACU,mBAAwC,EACxC,uBAAyC,EACzC,oBAA0C;QAF1C,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,4BAAuB,GAAvB,uBAAuB,CAAkB;QACzC,yBAAoB,GAApB,oBAAoB,CAAsB;IACjD,CAAC;IAEJ,UAAU,CACR,uBAAgD,EAChD,QAAqB,EACrB,kBAAsC,EACtC,IAA0B;QAE1B,OAAO,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,uBAAuB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAC;IAC3G,CAAC;IAED,WAAW,CAAC,cAAsB,EAAE,IAAY;QAC9C,OAAO,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IACxE,CAAC;IAED,qBAAqB,CAAC,cAAsB,EAAE,IAAY;QACxD,OAAO,IAAI,CAAC,uBAAuB,CAAC,qBAAqB,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IAClF,CAAC;IAED,OAAO,CACL,cAAsB,EACtB,IAAa,EACb,eAAwB,EACxB,gBAAkC,EAClC,oBAA6B;QAE7B,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,gBAAgB,EAAE,oBAAoB,CAAC,CAAC;IACzH,CAAC;IAED,UAAU,CAAC,cAAsB,EAAE,MAAe;QAChD,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;IAED,sBAAsB,CACpB,cAAsB,EACtB,QAAyE;QAEzE,OAAO,IAAI,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IACnF,CAAC;CACF,CAAA;AA5CY,8DAAyB;oCAAzB,yBAAyB;IADrC,IAAA,mCAAmB,EAAC,EAAE,cAAc,EAAE,wDAA6B,EAAE,CAAC;qCAGtC,2CAAmB;QACf,oCAAgB;QACnB,6CAAoB;GAJzC,yBAAyB,CA4CrC"}
@@ -0,0 +1,28 @@
1
+ import { Rectangle, Vector } from 'helpers-lib';
2
+ import { PhysicsWorldService } from '../../📐services/physics-world.service';
3
+ import { CreatePhysicsWorldRequestDTO, PhysicsExplosionOptions } from '../dtos/requests.dto';
4
+ import { PhysicsBodyGroup } from '../../../libs/physics-body-groups';
5
+ import { PathFinderResult } from '../../../../utilities/libraries/grid-algorithms/path-finder/path-finder';
6
+ import { PathFinderService } from '../../📐services/path-finder.service';
7
+ import { DebugVisualsService } from '../../📐services/debug-visuals.service';
8
+ import { ExplosionHit, MapSizeDTO } from '../dtos/responses.dto';
9
+ import { ExplosionService } from '../../📐services/explosion.service';
10
+ import { ElipticExplosionService } from '../../📐services/eliptic-explosion.service';
11
+ export declare class PhysicsController {
12
+ private physicsWorldService;
13
+ private pathFinderService;
14
+ private debugVisualsService;
15
+ private explosionService;
16
+ private elipticExplosionService;
17
+ constructor(physicsWorldService: PhysicsWorldService, pathFinderService: PathFinderService, debugVisualsService: DebugVisualsService, explosionService: ExplosionService, elipticExplosionService: ElipticExplosionService);
18
+ createPhysicsWorld(request: CreatePhysicsWorldRequestDTO): string;
19
+ getMapSize(physicsWorldId: string): MapSizeDTO;
20
+ findPath(physicsWorldId: string, startingPosition: Vector, target: Vector | string, options?: {
21
+ includeDiagonals?: boolean;
22
+ collidableWithGroup?: PhysicsBodyGroup;
23
+ }): PathFinderResult;
24
+ findPathDirection(physicsWorldId: string, startingPosition: Vector, target: Vector | string, collidableWithGroup: PhysicsBodyGroup): number | undefined;
25
+ createExplosion(physicsWorldId: string, explosionCenter: Vector, radius: number, physicsBodyGroup: PhysicsBodyGroup, severity: number, options?: PhysicsExplosionOptions): ExplosionHit[];
26
+ createElipticExplosion(physicsWorldId: string, explosionCenter: Vector, rotation: number, size: Vector, physicsBodyGroup: PhysicsBodyGroup, severity: number, options?: PhysicsExplosionOptions): ExplosionHit[];
27
+ printPathfindingTestGrid(physicsWorldId: string, testLayerId: string, target: Vector | string, physicsBodyGroup: PhysicsBodyGroup, area: Rectangle, gridCellSize: number): void;
28
+ }
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.PhysicsController = void 0;
13
+ const game_entities_1 = require("../../../../game-entities");
14
+ const physics_world_service_1 = require("../../\uD83D\uDCD0services/physics-world.service");
15
+ const physics_gateway_1 = require("../physics.gateway");
16
+ const path_finder_service_1 = require("../../\uD83D\uDCD0services/path-finder.service");
17
+ const debug_visuals_service_1 = require("../../\uD83D\uDCD0services/debug-visuals.service");
18
+ const explosion_service_1 = require("../../\uD83D\uDCD0services/explosion.service");
19
+ const eliptic_explosion_service_1 = require("../../\uD83D\uDCD0services/eliptic-explosion.service");
20
+ let PhysicsController = class PhysicsController {
21
+ constructor(physicsWorldService, pathFinderService, debugVisualsService, explosionService, elipticExplosionService) {
22
+ this.physicsWorldService = physicsWorldService;
23
+ this.pathFinderService = pathFinderService;
24
+ this.debugVisualsService = debugVisualsService;
25
+ this.explosionService = explosionService;
26
+ this.elipticExplosionService = elipticExplosionService;
27
+ }
28
+ createPhysicsWorld(request) {
29
+ return this.physicsWorldService.createPhysicsWorld(request);
30
+ }
31
+ getMapSize(physicsWorldId) {
32
+ return this.physicsWorldService.getMapSize(physicsWorldId);
33
+ }
34
+ findPath(physicsWorldId, startingPosition, target, options) {
35
+ return this.pathFinderService.findPathAStar(physicsWorldId, startingPosition, target, options);
36
+ }
37
+ findPathDirection(physicsWorldId, startingPosition, target, collidableWithGroup) {
38
+ return this.pathFinderService.findPathDirection(physicsWorldId, startingPosition, target, collidableWithGroup);
39
+ }
40
+ createExplosion(physicsWorldId, explosionCenter, radius, physicsBodyGroup, severity, options) {
41
+ return this.explosionService.createExplosion(physicsWorldId, explosionCenter, radius, physicsBodyGroup, severity, options);
42
+ }
43
+ createElipticExplosion(physicsWorldId, explosionCenter, rotation, size, physicsBodyGroup, severity, options) {
44
+ return this.elipticExplosionService.createElipticExplosion(physicsWorldId, explosionCenter, rotation, size, physicsBodyGroup, severity, options);
45
+ }
46
+ printPathfindingTestGrid(physicsWorldId, testLayerId, target, physicsBodyGroup, area, gridCellSize) {
47
+ this.debugVisualsService.printPathfindingTestGrid(physicsWorldId, testLayerId, target, physicsBodyGroup, area, gridCellSize);
48
+ }
49
+ };
50
+ exports.PhysicsController = PhysicsController;
51
+ exports.PhysicsController = PhysicsController = __decorate([
52
+ (0, game_entities_1.ControllerDecorator)({ controllerLink: physics_gateway_1.PhysicsControllerLink }),
53
+ __metadata("design:paramtypes", [physics_world_service_1.PhysicsWorldService,
54
+ path_finder_service_1.PathFinderService,
55
+ debug_visuals_service_1.DebugVisualsService,
56
+ explosion_service_1.ExplosionService,
57
+ eliptic_explosion_service_1.ElipticExplosionService])
58
+ ], PhysicsController);
59
+ //# sourceMappingURL=physics.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"physics.controller.js","sourceRoot":"","sources":["../../../../../src/physics/module/⚜️gateways/controllers/physics.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,6DAAgE;AAChE,4FAA6E;AAE7E,wDAA2D;AAG3D,wFAAyE;AACzE,4FAA6E;AAE7E,oFAAsE;AACtE,oGAAqF;AAG9E,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAC5B,YACU,mBAAwC,EACxC,iBAAoC,EACpC,mBAAwC,EACxC,gBAAkC,EAClC,uBAAgD;QAJhD,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,4BAAuB,GAAvB,uBAAuB,CAAyB;IACvD,CAAC;IAEJ,kBAAkB,CAAC,OAAqC;QACtD,OAAO,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC9D,CAAC;IAED,UAAU,CAAC,cAAsB;QAC/B,OAAO,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IAC7D,CAAC;IAED,QAAQ,CACN,cAAsB,EACtB,gBAAwB,EACxB,MAAuB,EACvB,OAAgF;QAEhF,OAAO,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,cAAc,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACjG,CAAC;IAED,iBAAiB,CACf,cAAsB,EACtB,gBAAwB,EACxB,MAAuB,EACvB,mBAAqC;QAErC,OAAO,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,cAAc,EAAE,gBAAgB,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACjH,CAAC;IAED,eAAe,CACb,cAAsB,EACtB,eAAuB,EACvB,MAAc,EACd,gBAAkC,EAClC,QAAgB,EAChB,OAAiC;QAEjC,OAAO,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,cAAc,EAAE,eAAe,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC7H,CAAC;IAED,sBAAsB,CACpB,cAAsB,EACtB,eAAuB,EACvB,QAAgB,EAChB,IAAY,EACZ,gBAAkC,EAClC,QAAgB,EAChB,OAAiC;QAEjC,OAAO,IAAI,CAAC,uBAAuB,CAAC,sBAAsB,CACxD,cAAc,EACd,eAAe,EACf,QAAQ,EACR,IAAI,EACJ,gBAAgB,EAChB,QAAQ,EACR,OAAO,CACR,CAAC;IACJ,CAAC;IAED,wBAAwB,CACtB,cAAsB,EACtB,WAAmB,EACnB,MAAuB,EACvB,gBAAkC,EAClC,IAAe,EACf,YAAoB;QAEpB,IAAI,CAAC,mBAAmB,CAAC,wBAAwB,CAAC,cAAc,EAAE,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IAC/H,CAAC;CACF,CAAA;AA5EY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mCAAmB,EAAC,EAAE,cAAc,EAAE,uCAAqB,EAAE,CAAC;qCAG9B,2CAAmB;QACrB,uCAAiB;QACf,2CAAmB;QACtB,oCAAgB;QACT,mDAAuB;GAN/C,iBAAiB,CA4E7B"}
@@ -0,0 +1,15 @@
1
+ import { Vector } from 'helpers-lib';
2
+ import { BorderProperties, MaterialContactDefinition, MaterialDefinition } from './shared-interfaces.dto';
3
+ export interface CreatePhysicsWorldRequestDTO {
4
+ readonly attachTo: string;
5
+ readonly mapSize: Vector;
6
+ readonly modifyUpdateCycle: boolean;
7
+ readonly borderProperties: BorderProperties;
8
+ readonly materialDefinitions: ReadonlyArray<MaterialDefinition>;
9
+ readonly materialContactDefinitions: ReadonlyArray<MaterialContactDefinition>;
10
+ }
11
+ export interface PhysicsExplosionOptions {
12
+ readonly testLayerId?: string;
13
+ readonly debugRayDuration?: number;
14
+ readonly hitOnlyClosest?: boolean;
15
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=requests.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requests.dto.js","sourceRoot":"","sources":["../../../../../src/physics/module/⚜️gateways/dtos/requests.dto.ts"],"names":[],"mappings":""}
@@ -0,0 +1,30 @@
1
+ /// <reference types="p2" />
2
+ import { Line, Vector } from 'helpers-lib';
3
+ import { PhysicsEntity } from '../../../entity-types/physics-entity';
4
+ export interface RayCast {
5
+ line: Line;
6
+ hits: RayCastHit[];
7
+ }
8
+ export interface RayCastHit {
9
+ readonly body: p2.Body;
10
+ readonly hitPosition: () => Vector;
11
+ readonly hitDistance: () => number;
12
+ readonly isExternal: () => boolean;
13
+ readonly normal: Vector;
14
+ readonly fraction: number;
15
+ readonly line: Line;
16
+ }
17
+ export interface ExplosionHit {
18
+ body: PhysicsEntity;
19
+ isExternal: boolean;
20
+ normal: Vector;
21
+ fraction: number;
22
+ ratioOfHits: number;
23
+ raycastResults: ReadonlyArray<RayCastHit>;
24
+ getHitPosition: () => Vector;
25
+ getHitDistance: () => number;
26
+ }
27
+ export interface MapSizeDTO {
28
+ readonly dimentions: Vector;
29
+ readonly center: Vector;
30
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=responses.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responses.dto.js","sourceRoot":"","sources":["../../../../../src/physics/module/⚜️gateways/dtos/responses.dto.ts"],"names":[],"mappings":""}
@@ -0,0 +1,21 @@
1
+ export declare const BORDER_MATERIAL_NAME = "border";
2
+ export declare const SPEED_LIMIT = 0.8;
3
+ export declare const ROTATIONAL_SPEED_LIMIT = 0.01;
4
+ export interface MaterialDefinition {
5
+ readonly name: string;
6
+ readonly density: number;
7
+ readonly velocityDrag: number;
8
+ readonly rotationalDrag: number;
9
+ }
10
+ export interface MaterialContactDefinition {
11
+ readonly materialA: string;
12
+ readonly materialB: string;
13
+ readonly friction: number;
14
+ readonly bounciness: number;
15
+ readonly stiffness: number;
16
+ }
17
+ export interface BorderProperties {
18
+ readonly friction: number;
19
+ readonly bounciness: number;
20
+ readonly stiffness: number;
21
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ROTATIONAL_SPEED_LIMIT = exports.SPEED_LIMIT = exports.BORDER_MATERIAL_NAME = void 0;
4
+ exports.BORDER_MATERIAL_NAME = 'border';
5
+ exports.SPEED_LIMIT = 0.8;
6
+ exports.ROTATIONAL_SPEED_LIMIT = 0.01;
7
+ //# sourceMappingURL=shared-interfaces.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-interfaces.dto.js","sourceRoot":"","sources":["../../../../../src/physics/module/⚜️gateways/dtos/shared-interfaces.dto.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG,QAAQ,CAAC;AAChC,QAAA,WAAW,GAAG,GAAG,CAAC;AAClB,QAAA,sBAAsB,GAAG,IAAI,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { PhysicsGateway } from './physics.gateway';
2
+ export * from './dtos/requests.dto';
3
+ export * from './dtos/responses.dto';
4
+ export * from './dtos/shared-interfaces.dto';
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.PhysicsGateway = void 0;
18
+ var physics_gateway_1 = require("./physics.gateway");
19
+ Object.defineProperty(exports, "PhysicsGateway", { enumerable: true, get: function () { return physics_gateway_1.PhysicsGateway; } });
20
+ __exportStar(require("./dtos/requests.dto"), exports);
21
+ __exportStar(require("./dtos/responses.dto"), exports);
22
+ __exportStar(require("./dtos/shared-interfaces.dto"), exports);
23
+ const physics_internal_controller_1 = require("./controllers/physics-internal.controller");
24
+ const physics_controller_1 = require("./controllers/physics.controller");
25
+ physics_internal_controller_1.PhysicsInternalController && physics_controller_1.PhysicsController;
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/physics/module/⚜️gateways/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AAEvB,sDAAoC;AACpC,uDAAqC;AACrC,+DAA6C;AAE7C,2FAAsF;AACtF,yEAAqE;AACrE,uDAAyB,IAAI,sCAAiB,CAAC"}
@@ -0,0 +1,18 @@
1
+ /// <reference types="p2" />
2
+ import { ActionListenerCallbackFunction, ActionSubscription } from 'actions-lib';
3
+ import { ControllerLink } from '../../../game-entities';
4
+ import { PhysicsBodyGroup } from '../../libs/physics-body-groups';
5
+ import { PhysicsEntityDefinition } from '../../interfaces';
6
+ import { MaterialDefinition } from './dtos/shared-interfaces.dto';
7
+ export declare const PhysicsInternalControllerLink: ControllerLink;
8
+ export declare class PhysicsInternalGateway {
9
+ createBody(physicsEntityDefinition: PhysicsEntityDefinition, material: p2.Material, materialDefinition: MaterialDefinition, type: 'dynamic' | 'static'): p2.Body;
10
+ getMaterial(physicsWorldId: string, name: string): p2.Material;
11
+ getMaterialDefinition(physicsWorldId: string, name: string): MaterialDefinition;
12
+ addBody(physicsWorldId: string, body: p2.Body, addInEmptySpace: boolean, physicsBodyGroup: PhysicsBodyGroup, includeOnPathfinding: boolean): boolean;
13
+ removeBody(physicsWorldId: string, p2Body: p2.Body): void;
14
+ subscribeToPhysicsStep(physicsWorldId: string, callback: ActionListenerCallbackFunction<{
15
+ time: number;
16
+ delta: number;
17
+ }>): ActionSubscription;
18
+ }
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.PhysicsInternalGateway = exports.PhysicsInternalControllerLink = void 0;
10
+ const game_entities_1 = require("../../../game-entities");
11
+ exports.PhysicsInternalControllerLink = new game_entities_1.ControllerLink();
12
+ let PhysicsInternalGateway = class PhysicsInternalGateway {
13
+ createBody(physicsEntityDefinition, material, materialDefinition, type) {
14
+ return exports.PhysicsInternalControllerLink.trigger('createBody', physicsEntityDefinition, material, materialDefinition, type);
15
+ }
16
+ getMaterial(physicsWorldId, name) {
17
+ return exports.PhysicsInternalControllerLink.trigger('getMaterial', physicsWorldId, name);
18
+ }
19
+ getMaterialDefinition(physicsWorldId, name) {
20
+ return exports.PhysicsInternalControllerLink.trigger('getMaterialDefinition', physicsWorldId, name);
21
+ }
22
+ addBody(physicsWorldId, body, addInEmptySpace, physicsBodyGroup, includeOnPathfinding) {
23
+ return exports.PhysicsInternalControllerLink.trigger('addBody', physicsWorldId, body, addInEmptySpace, physicsBodyGroup, includeOnPathfinding);
24
+ }
25
+ removeBody(physicsWorldId, p2Body) {
26
+ return exports.PhysicsInternalControllerLink.trigger('removeBody', physicsWorldId, p2Body);
27
+ }
28
+ subscribeToPhysicsStep(physicsWorldId, callback) {
29
+ return exports.PhysicsInternalControllerLink.trigger('subscribeToPhysicsStep', physicsWorldId, callback);
30
+ }
31
+ };
32
+ exports.PhysicsInternalGateway = PhysicsInternalGateway;
33
+ exports.PhysicsInternalGateway = PhysicsInternalGateway = __decorate([
34
+ (0, game_entities_1.ServiceDecorator)()
35
+ ], PhysicsInternalGateway);
36
+ //# sourceMappingURL=physics-internal.gateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"physics-internal.gateway.js","sourceRoot":"","sources":["../../../../src/physics/module/⚜️gateways/physics-internal.gateway.ts"],"names":[],"mappings":";;;;;;;;;AAEA,0DAA0E;AAK7D,QAAA,6BAA6B,GAAG,IAAI,8BAAc,EAAE,CAAC;AAG3D,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IACjC,UAAU,CACR,uBAAgD,EAChD,QAAqB,EACrB,kBAAsC,EACtC,IAA0B;QAE1B,OAAO,qCAA6B,CAAC,OAAO,CAC1C,YAAY,EACZ,uBAAuB,EACvB,QAAQ,EACR,kBAAkB,EAClB,IAAI,CACL,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,cAAsB,EAAE,IAAY;QAC9C,OAAO,qCAA6B,CAAC,OAAO,CAAc,aAAa,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IACjG,CAAC;IAED,qBAAqB,CAAC,cAAsB,EAAE,IAAY;QACxD,OAAO,qCAA6B,CAAC,OAAO,CAAqB,uBAAuB,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IAClH,CAAC;IAED,OAAO,CACL,cAAsB,EACtB,IAAa,EACb,eAAwB,EACxB,gBAAkC,EAClC,oBAA6B;QAE7B,OAAO,qCAA6B,CAAC,OAAO,CAC1C,SAAS,EACT,cAAc,EACd,IAAI,EACJ,eAAe,EACf,gBAAgB,EAChB,oBAAoB,CACrB,CAAC;IACJ,CAAC;IAED,UAAU,CAAC,cAAsB,EAAE,MAAe;QAChD,OAAO,qCAA6B,CAAC,OAAO,CAAO,YAAY,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;IAC3F,CAAC;IAED,sBAAsB,CACpB,cAAsB,EACtB,QAAyE;QAEzE,OAAO,qCAA6B,CAAC,OAAO,CAAqB,wBAAwB,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;IACvH,CAAC;CACF,CAAA;AAnDY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,gCAAgB,GAAE;GACN,sBAAsB,CAmDlC"}
@@ -0,0 +1,19 @@
1
+ import { Rectangle, Vector } from 'helpers-lib';
2
+ import { ControllerLink } from '../../../game-entities';
3
+ import { CreatePhysicsWorldRequestDTO, PhysicsExplosionOptions } from './dtos/requests.dto';
4
+ import { PhysicsBodyGroup } from '../../libs/physics-body-groups';
5
+ import { PathFinderResult } from '../../../utilities/libraries/grid-algorithms/path-finder/path-finder';
6
+ import { ExplosionHit, MapSizeDTO } from './dtos/responses.dto';
7
+ export declare const PhysicsControllerLink: ControllerLink;
8
+ export declare class PhysicsGateway {
9
+ createPhysicsWorld(request: CreatePhysicsWorldRequestDTO): string;
10
+ getMapSize(physicsWorldId: string): MapSizeDTO;
11
+ findPath(physicsWorldId: string, startingPosition: Vector, target: Vector | string, options?: {
12
+ includeDiagonals?: boolean;
13
+ collidableWithGroup?: PhysicsBodyGroup;
14
+ }): PathFinderResult;
15
+ findPathDirection(physicsWorldId: string, startingPosition: Vector, target: Vector | string, collidableWithGroup: PhysicsBodyGroup): number | undefined;
16
+ createExplosion(physicsWorldId: string, explosionCenter: Vector, radius: number, physicsBodyGroup: PhysicsBodyGroup, severity: number, options?: PhysicsExplosionOptions): ExplosionHit[];
17
+ createElipticExplosion(physicsWorldId: string, explosionCenter: Vector, rotation: number, size: Vector, physicsBodyGroup: PhysicsBodyGroup, severity: number, options?: PhysicsExplosionOptions): ExplosionHit[];
18
+ printPathfindingTestGrid(physicsWorldId: string, testLayerId: string, target: Vector | string, physicsBodyGroup: PhysicsBodyGroup, area: Rectangle, gridCellSize?: number): void;
19
+ }
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.PhysicsGateway = exports.PhysicsControllerLink = void 0;
10
+ const game_entities_1 = require("../../../game-entities");
11
+ const path_finder_service_1 = require("../\uD83D\uDCD0services/path-finder.service");
12
+ exports.PhysicsControllerLink = new game_entities_1.ControllerLink();
13
+ let PhysicsGateway = class PhysicsGateway {
14
+ createPhysicsWorld(request) {
15
+ return exports.PhysicsControllerLink.trigger('createPhysicsWorld', request);
16
+ }
17
+ getMapSize(physicsWorldId) {
18
+ return exports.PhysicsControllerLink.trigger('getMapSize', physicsWorldId);
19
+ }
20
+ findPath(physicsWorldId, startingPosition, target, options) {
21
+ return exports.PhysicsControllerLink.trigger('findPath', physicsWorldId, startingPosition, target, options);
22
+ }
23
+ findPathDirection(physicsWorldId, startingPosition, target, collidableWithGroup) {
24
+ return exports.PhysicsControllerLink.trigger('findPathDirection', physicsWorldId, startingPosition, target, collidableWithGroup);
25
+ }
26
+ createExplosion(physicsWorldId, explosionCenter, radius, physicsBodyGroup, severity, options) {
27
+ return exports.PhysicsControllerLink.trigger('createExplosion', physicsWorldId, explosionCenter, radius, physicsBodyGroup, severity, options);
28
+ }
29
+ createElipticExplosion(physicsWorldId, explosionCenter, rotation, size, physicsBodyGroup, severity, options) {
30
+ return exports.PhysicsControllerLink.trigger('createElipticExplosion', physicsWorldId, explosionCenter, rotation, size, physicsBodyGroup, severity, options);
31
+ }
32
+ printPathfindingTestGrid(physicsWorldId, testLayerId, target, physicsBodyGroup, area, gridCellSize = path_finder_service_1.DEFAULT_GRID_CELL_SIZE) {
33
+ return exports.PhysicsControllerLink.trigger('printPathfindingTestGrid', physicsWorldId, testLayerId, target, physicsBodyGroup, area, gridCellSize);
34
+ }
35
+ };
36
+ exports.PhysicsGateway = PhysicsGateway;
37
+ exports.PhysicsGateway = PhysicsGateway = __decorate([
38
+ (0, game_entities_1.ServiceDecorator)()
39
+ ], PhysicsGateway);
40
+ //# sourceMappingURL=physics.gateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"physics.gateway.js","sourceRoot":"","sources":["../../../../src/physics/module/⚜️gateways/physics.gateway.ts"],"names":[],"mappings":";;;;;;;;;AAEA,0DAA0E;AAI1E,qFAA2E;AAG9D,QAAA,qBAAqB,GAAG,IAAI,8BAAc,EAAE,CAAC;AAGnD,IAAM,cAAc,GAApB,MAAM,cAAc;IACzB,kBAAkB,CAAC,OAAqC;QACtD,OAAO,6BAAqB,CAAC,OAAO,CAAS,oBAAoB,EAAE,OAAO,CAAC,CAAC;IAC9E,CAAC;IAED,UAAU,CAAC,cAAsB;QAC/B,OAAO,6BAAqB,CAAC,OAAO,CAAa,YAAY,EAAE,cAAc,CAAC,CAAC;IACjF,CAAC;IAED,QAAQ,CACN,cAAsB,EACtB,gBAAwB,EACxB,MAAuB,EACvB,OAAgF;QAEhF,OAAO,6BAAqB,CAAC,OAAO,CAAmB,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACxH,CAAC;IAED,iBAAiB,CACf,cAAsB,EACtB,gBAAwB,EACxB,MAAuB,EACvB,mBAAqC;QAErC,OAAO,6BAAqB,CAAC,OAAO,CAClC,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,MAAM,EACN,mBAAmB,CACpB,CAAC;IACJ,CAAC;IAED,eAAe,CACb,cAAsB,EACtB,eAAuB,EACvB,MAAc,EACd,gBAAkC,EAClC,QAAgB,EAChB,OAAiC;QAEjC,OAAO,6BAAqB,CAAC,OAAO,CAClC,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,MAAM,EACN,gBAAgB,EAChB,QAAQ,EACR,OAAO,CACR,CAAC;IACJ,CAAC;IAED,sBAAsB,CACpB,cAAsB,EACtB,eAAuB,EACvB,QAAgB,EAChB,IAAY,EACZ,gBAAkC,EAClC,QAAgB,EAChB,OAAiC;QAEjC,OAAO,6BAAqB,CAAC,OAAO,CAClC,wBAAwB,EACxB,cAAc,EACd,eAAe,EACf,QAAQ,EACR,IAAI,EACJ,gBAAgB,EAChB,QAAQ,EACR,OAAO,CACR,CAAC;IACJ,CAAC;IAED,wBAAwB,CACtB,cAAsB,EACtB,WAAmB,EACnB,MAAuB,EACvB,gBAAkC,EAClC,IAAe,EACf,eAAuB,4CAAsB;QAE7C,OAAO,6BAAqB,CAAC,OAAO,CAClC,0BAA0B,EAC1B,cAAc,EACd,WAAW,EACX,MAAM,EACN,gBAAgB,EAChB,IAAI,EACJ,YAAY,CACb,CAAC;IACJ,CAAC;CACF,CAAA;AA3FY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,gCAAgB,GAAE;GACN,cAAc,CA2F1B"}
@@ -0,0 +1,12 @@
1
+ /// <reference types="p2" />
2
+ import { Vector } from 'helpers-lib';
3
+ import { PhysicsBodyGroup } from '../../libs/physics-body-groups';
4
+ import { PhysicsWorldEntity } from '../🧊entities/physics-world.entity';
5
+ import { Grid } from '../../../utilities/libraries/data-structures/grid/grid';
6
+ export declare class AvailabilityGridService {
7
+ onBodyAdded(physicsWorld: PhysicsWorldEntity, body: p2.Body, physicsBodyGroup: PhysicsBodyGroup): void;
8
+ findClosestAvailableSpace(physicsWorld: PhysicsWorldEntity, body: p2.Body, physicsBodyGroup: PhysicsBodyGroup, gridCellSize?: number): Vector | undefined;
9
+ getAvilabilityGrid(physicsWorld: PhysicsWorldEntity, cellSize: number, physicsBodyGroup?: PhysicsBodyGroup): Grid<boolean>;
10
+ private createGrid;
11
+ private getGridSpaceBoundingBox;
12
+ }