bard-legends-framework 0.1.1 → 0.1.2
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.js +2 -1
- package/dist/game-entities/attachable/attachable.js +17 -13
- package/dist/game-entities/attachable/attachable.js.map +1 -1
- package/dist/game-entities/attachable/attachable.spec.js.map +1 -1
- package/dist/game-entities/attachable/helpers/decorate-actions-lib.js +18 -14
- package/dist/game-entities/attachable/helpers/decorate-actions-lib.js.map +1 -1
- package/dist/game-entities/controller/controller.js +10 -5
- package/dist/game-entities/controller/controller.js.map +1 -1
- package/dist/game-entities/controller/controller.spec.js.map +1 -1
- package/dist/game-entities/entity/entity.js +24 -19
- package/dist/game-entities/entity/entity.js.map +1 -1
- package/dist/game-entities/entity/entity.spec.js.map +1 -1
- package/dist/game-entities/entity/helpers/entity-store.helper.js +9 -5
- package/dist/game-entities/entity/helpers/entity-store.helper.js.map +1 -1
- package/dist/game-entities/entity/helpers/view-creation.helper.js +11 -7
- package/dist/game-entities/entity/helpers/view-creation.helper.js.map +1 -1
- package/dist/game-entities/index.js +20 -6
- package/dist/game-entities/index.js.map +1 -1
- package/dist/game-entities/scene/scene.js +15 -10
- package/dist/game-entities/scene/scene.js.map +1 -1
- package/dist/game-entities/scene/scene.spec.js.map +1 -1
- package/dist/game-entities/service/service.js +10 -5
- package/dist/game-entities/service/service.js.map +1 -1
- package/dist/game-entities/service/service.spec.js.map +1 -1
- package/dist/game-entities/view/view.js +17 -12
- package/dist/game-entities/view/view.js.map +1 -1
- package/dist/game-entities/view/view.spec.js.map +1 -1
- package/dist/index.js +31 -9
- package/dist/index.js.map +1 -1
- package/dist/lib/animator/animations.js +20 -12
- package/dist/lib/animator/animations.js.map +1 -1
- package/dist/lib/animator/animator.js +18 -14
- package/dist/lib/animator/animator.js.map +1 -1
- package/dist/lib/animator/animator.spec.js.map +1 -1
- package/dist/lib/animator/index.js +18 -2
- package/dist/lib/animator/index.js.map +1 -1
- package/dist/lib/path-finder/path-finder.js +7 -3
- package/dist/lib/path-finder/path-finder.js.map +1 -1
- package/dist/lib/update-loop.js +11 -7
- package/dist/lib/update-loop.js.map +1 -1
- package/dist/physics/entitity-types/immovable-physics-entity.js +8 -4
- package/dist/physics/entitity-types/immovable-physics-entity.js.map +1 -1
- package/dist/physics/entitity-types/movable-entity.js +11 -7
- package/dist/physics/entitity-types/movable-entity.js.map +1 -1
- package/dist/physics/entitity-types/movable-physics-entity.js +15 -11
- package/dist/physics/entitity-types/movable-physics-entity.js.map +1 -1
- package/dist/physics/entitity-types/physics-entity.js +14 -10
- package/dist/physics/entitity-types/physics-entity.js.map +1 -1
- package/dist/physics/helpers/closest-available-space.helper.js +7 -3
- package/dist/physics/helpers/closest-available-space.helper.js.map +1 -1
- package/dist/physics/helpers/closest-available-space.helper.spec.js.map +1 -1
- package/dist/physics/helpers/p2js.helper.js +5 -1
- package/dist/physics/helpers/p2js.helper.js.map +1 -1
- package/dist/physics/helpers/shape-factory.js +29 -22
- package/dist/physics/helpers/shape-factory.js.map +1 -1
- package/dist/physics/index.js +34 -9
- package/dist/physics/index.js.map +1 -1
- package/dist/physics/interfaces.js +6 -3
- package/dist/physics/interfaces.js.map +1 -1
- package/dist/physics/physics-world.js +29 -23
- package/dist/physics/physics-world.js.map +1 -1
- package/dist/physics/sub-elements/physics-body-groups.js +7 -3
- package/dist/physics/sub-elements/physics-body-groups.js.map +1 -1
- package/dist/physics/sub-elements/physics-collision.js +24 -20
- package/dist/physics/sub-elements/physics-collision.js.map +1 -1
- package/dist/physics/sub-elements/physics-materials.js +17 -10
- package/dist/physics/sub-elements/physics-materials.js.map +1 -1
- package/dist/services/keyboard/keyboard.js +9 -6
- package/dist/services/keyboard/keyboard.js.map +1 -1
- package/dist/services/mouse/mouse.service.js +13 -10
- package/dist/services/mouse/mouse.service.js.map +1 -1
- package/dist/services/mouse/mouser-target-focus.service.js +15 -12
- package/dist/services/mouse/mouser-target-focus.service.js.map +1 -1
- package/package.json +1 -2
- package/tsconfig.json +1 -1
|
@@ -1,26 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ShapeFactory = void 0;
|
|
7
|
+
const p2_1 = __importDefault(require("p2"));
|
|
8
|
+
const interfaces_1 = require("../interfaces");
|
|
9
|
+
const physics_body_groups_1 = require("../sub-elements/physics-body-groups");
|
|
4
10
|
const POINT_MASS = 100;
|
|
5
|
-
|
|
11
|
+
class ShapeFactory {
|
|
6
12
|
static createBody(physicsEntityDefinition, material, materialDefinition, type) {
|
|
7
13
|
switch (physicsEntityDefinition.shapeDefinition.shapeType) {
|
|
8
|
-
case PhysicsShapeType.point:
|
|
14
|
+
case interfaces_1.PhysicsShapeType.point:
|
|
9
15
|
return this.createPointBody(material, materialDefinition, physicsEntityDefinition.shapeDefinition.group, type);
|
|
10
|
-
case PhysicsShapeType.polygon:
|
|
16
|
+
case interfaces_1.PhysicsShapeType.polygon:
|
|
11
17
|
return this.createPolygonBody(physicsEntityDefinition.shapeDefinition.shapeData, material, materialDefinition, physicsEntityDefinition.shapeDefinition.group, type);
|
|
12
|
-
case PhysicsShapeType.rectangle:
|
|
18
|
+
case interfaces_1.PhysicsShapeType.rectangle:
|
|
13
19
|
return this.createRectangleBody(physicsEntityDefinition.shapeDefinition.shapeData, material, materialDefinition, physicsEntityDefinition.shapeDefinition.group, type);
|
|
14
20
|
}
|
|
15
21
|
}
|
|
16
22
|
static createPointBody(material, materialDefinition, group, type) {
|
|
17
|
-
let shape = new
|
|
18
|
-
collisionGroup: PhysicsBodyGroups.getGroupConstant(group),
|
|
19
|
-
collisionMask: PhysicsBodyGroups.getMaskConstant(group)
|
|
23
|
+
let shape = new p2_1.default.Circle({
|
|
24
|
+
collisionGroup: physics_body_groups_1.PhysicsBodyGroups.getGroupConstant(group),
|
|
25
|
+
collisionMask: physics_body_groups_1.PhysicsBodyGroups.getMaskConstant(group)
|
|
20
26
|
});
|
|
21
27
|
shape.material = material;
|
|
22
|
-
let p2Body = new
|
|
23
|
-
type: type === 'dynamic' ?
|
|
28
|
+
let p2Body = new p2_1.default.Body({
|
|
29
|
+
type: type === 'dynamic' ? p2_1.default.Body.DYNAMIC : p2_1.default.Body.STATIC,
|
|
24
30
|
mass: POINT_MASS,
|
|
25
31
|
damping: materialDefinition.velocityDrag,
|
|
26
32
|
angularDamping: materialDefinition.angularDrag
|
|
@@ -30,21 +36,21 @@ export class ShapeFactory {
|
|
|
30
36
|
}
|
|
31
37
|
static createPolygonBody(polygonShapeData, material, materialDefinition, group, type) {
|
|
32
38
|
let shapes = polygonShapeData.boundingShapeVertices
|
|
33
|
-
.map(vertices => new
|
|
39
|
+
.map(vertices => new p2_1.default.Convex({
|
|
34
40
|
vertices: vertices.map(vertex => [
|
|
35
41
|
(vertex.x - polygonShapeData.size.x * polygonShapeData.anchor.x) * polygonShapeData.scale,
|
|
36
42
|
(vertex.y - polygonShapeData.size.y * polygonShapeData.anchor.y) * polygonShapeData.scale
|
|
37
43
|
]),
|
|
38
|
-
collisionGroup: PhysicsBodyGroups.getGroupConstant(group),
|
|
39
|
-
collisionMask: PhysicsBodyGroups.getMaskConstant(group)
|
|
44
|
+
collisionGroup: physics_body_groups_1.PhysicsBodyGroups.getGroupConstant(group),
|
|
45
|
+
collisionMask: physics_body_groups_1.PhysicsBodyGroups.getMaskConstant(group)
|
|
40
46
|
}))
|
|
41
47
|
.map(shape => {
|
|
42
48
|
shape.material = material;
|
|
43
49
|
return shape;
|
|
44
50
|
});
|
|
45
51
|
let area = shapes.reduce((acc, shape) => acc + shape.area, 0);
|
|
46
|
-
let p2Body = new
|
|
47
|
-
type: type === 'dynamic' ?
|
|
52
|
+
let p2Body = new p2_1.default.Body({
|
|
53
|
+
type: type === 'dynamic' ? p2_1.default.Body.DYNAMIC : p2_1.default.Body.STATIC,
|
|
48
54
|
mass: area,
|
|
49
55
|
damping: materialDefinition.velocityDrag,
|
|
50
56
|
angularDamping: materialDefinition.angularDrag
|
|
@@ -54,16 +60,16 @@ export class ShapeFactory {
|
|
|
54
60
|
return p2Body;
|
|
55
61
|
}
|
|
56
62
|
static createRectangleBody(rectangleShapeData, material, materialDefinition, group, type) {
|
|
57
|
-
let shape = new
|
|
63
|
+
let shape = new p2_1.default.Box({
|
|
58
64
|
width: rectangleShapeData.size.x,
|
|
59
65
|
height: rectangleShapeData.size.y,
|
|
60
|
-
collisionGroup: PhysicsBodyGroups.getGroupConstant(group),
|
|
61
|
-
collisionMask: PhysicsBodyGroups.getMaskConstant(group)
|
|
66
|
+
collisionGroup: physics_body_groups_1.PhysicsBodyGroups.getGroupConstant(group),
|
|
67
|
+
collisionMask: physics_body_groups_1.PhysicsBodyGroups.getMaskConstant(group)
|
|
62
68
|
});
|
|
63
69
|
shape.material = material;
|
|
64
70
|
let area = rectangleShapeData.size.x * rectangleShapeData.size.y;
|
|
65
|
-
let p2Body = new
|
|
66
|
-
type: type === 'dynamic' ?
|
|
71
|
+
let p2Body = new p2_1.default.Body({
|
|
72
|
+
type: type === 'dynamic' ? p2_1.default.Body.DYNAMIC : p2_1.default.Body.STATIC,
|
|
67
73
|
mass: area,
|
|
68
74
|
damping: materialDefinition.velocityDrag,
|
|
69
75
|
angularDamping: materialDefinition.angularDrag
|
|
@@ -73,4 +79,5 @@ export class ShapeFactory {
|
|
|
73
79
|
return p2Body;
|
|
74
80
|
}
|
|
75
81
|
}
|
|
82
|
+
exports.ShapeFactory = ShapeFactory;
|
|
76
83
|
//# sourceMappingURL=shape-factory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shape-factory.js","sourceRoot":"","sources":["../../../src/physics/helpers/shape-factory.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"shape-factory.js","sourceRoot":"","sources":["../../../src/physics/helpers/shape-factory.ts"],"names":[],"mappings":"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"}
|
package/dist/physics/index.js
CHANGED
|
@@ -1,10 +1,35 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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.PhysicsMaterials = exports.PhysicsCollision = exports.PhysicsBodyGroup = exports.PhysicsEntity = exports.ImmovablePhysicsEntity = exports.MovablePhysicsEntity = exports.MovableEntity = exports.PhysicsWorld = void 0;
|
|
18
|
+
var physics_world_1 = require("./physics-world");
|
|
19
|
+
Object.defineProperty(exports, "PhysicsWorld", { enumerable: true, get: function () { return physics_world_1.PhysicsWorld; } });
|
|
20
|
+
var movable_entity_1 = require("./entitity-types/movable-entity");
|
|
21
|
+
Object.defineProperty(exports, "MovableEntity", { enumerable: true, get: function () { return movable_entity_1.MovableEntity; } });
|
|
22
|
+
var movable_physics_entity_1 = require("./entitity-types/movable-physics-entity");
|
|
23
|
+
Object.defineProperty(exports, "MovablePhysicsEntity", { enumerable: true, get: function () { return movable_physics_entity_1.MovablePhysicsEntity; } });
|
|
24
|
+
var immovable_physics_entity_1 = require("./entitity-types/immovable-physics-entity");
|
|
25
|
+
Object.defineProperty(exports, "ImmovablePhysicsEntity", { enumerable: true, get: function () { return immovable_physics_entity_1.ImmovablePhysicsEntity; } });
|
|
26
|
+
var physics_entity_1 = require("./entitity-types/physics-entity");
|
|
27
|
+
Object.defineProperty(exports, "PhysicsEntity", { enumerable: true, get: function () { return physics_entity_1.PhysicsEntity; } });
|
|
28
|
+
var physics_body_groups_1 = require("./sub-elements/physics-body-groups");
|
|
29
|
+
Object.defineProperty(exports, "PhysicsBodyGroup", { enumerable: true, get: function () { return physics_body_groups_1.PhysicsBodyGroup; } });
|
|
30
|
+
var physics_collision_1 = require("./sub-elements/physics-collision");
|
|
31
|
+
Object.defineProperty(exports, "PhysicsCollision", { enumerable: true, get: function () { return physics_collision_1.PhysicsCollision; } });
|
|
32
|
+
var physics_materials_1 = require("./sub-elements/physics-materials");
|
|
33
|
+
Object.defineProperty(exports, "PhysicsMaterials", { enumerable: true, get: function () { return physics_materials_1.PhysicsMaterials; } });
|
|
34
|
+
__exportStar(require("./interfaces"), exports);
|
|
10
35
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/physics/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/physics/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AACrB,kEAAgE;AAAvD,+GAAA,aAAa,OAAA;AACtB,kFAA+E;AAAtE,8HAAA,oBAAoB,OAAA;AAC7B,sFAAmF;AAA1E,kIAAA,sBAAsB,OAAA;AAC/B,kEAAgE;AAAvD,+GAAA,aAAa,OAAA;AACtB,0EAAsE;AAA7D,uHAAA,gBAAgB,OAAA;AACzB,sEAAoE;AAA3D,qHAAA,gBAAgB,OAAA;AACzB,sEAAoE;AAA3D,qHAAA,gBAAgB,OAAA;AACzB,+CAA6B"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PhysicsShapeType = exports.BorderMaterialName = void 0;
|
|
4
|
+
exports.BorderMaterialName = 'border';
|
|
5
|
+
var PhysicsShapeType;
|
|
3
6
|
(function (PhysicsShapeType) {
|
|
4
7
|
PhysicsShapeType["point"] = "point";
|
|
5
8
|
PhysicsShapeType["polygon"] = "polygon";
|
|
6
9
|
PhysicsShapeType["rectangle"] = "rectangle";
|
|
7
|
-
})(PhysicsShapeType || (PhysicsShapeType = {}));
|
|
10
|
+
})(PhysicsShapeType || (exports.PhysicsShapeType = PhysicsShapeType = {}));
|
|
8
11
|
//# sourceMappingURL=interfaces.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/physics/interfaces.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/physics/interfaces.ts"],"names":[],"mappings":";;;AAKa,QAAA,kBAAkB,GAAG,QAAQ,CAAC;AAuD3C,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IAC1B,mCAAe,CAAA;IACf,uCAAmB,CAAA;IACnB,2CAAuB,CAAA;AACzB,CAAC,EAJW,gBAAgB,gCAAhB,gBAAgB,QAI3B"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
3
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
4
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -7,22 +8,27 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
10
|
};
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.BorderEntity = exports.PhysicsWorld = void 0;
|
|
16
|
+
const actions_lib_1 = require("actions-lib");
|
|
17
|
+
const p2_1 = __importDefault(require("p2"));
|
|
18
|
+
const physics_materials_1 = require("./sub-elements/physics-materials");
|
|
19
|
+
const physics_collision_1 = require("./sub-elements/physics-collision");
|
|
20
|
+
const physics_body_groups_1 = require("./sub-elements/physics-body-groups");
|
|
21
|
+
const interfaces_1 = require("./interfaces");
|
|
22
|
+
const immovable_physics_entity_1 = require("./entitity-types/immovable-physics-entity");
|
|
23
|
+
const game_entities_1 = require("../game-entities");
|
|
24
|
+
let PhysicsWorld = class PhysicsWorld extends game_entities_1.Entity {
|
|
19
25
|
constructor(mapSize, borderProperties, materialDefinitions, materialContactDefinitions) {
|
|
20
26
|
super();
|
|
21
|
-
this.onPhysicsStep = new Action();
|
|
27
|
+
this.onPhysicsStep = new actions_lib_1.Action();
|
|
22
28
|
this.mapSize = mapSize;
|
|
23
|
-
this.p2World = new
|
|
24
|
-
this.physicsMaterials = new PhysicsMaterials(this.p2World, borderProperties, materialDefinitions, materialContactDefinitions);
|
|
25
|
-
this.physicsCollision = new PhysicsCollision(this.p2World, mapSize);
|
|
29
|
+
this.p2World = new p2_1.default.World({ gravity: [0, 0] });
|
|
30
|
+
this.physicsMaterials = new physics_materials_1.PhysicsMaterials(this.p2World, borderProperties, materialDefinitions, materialContactDefinitions);
|
|
31
|
+
this.physicsCollision = new physics_collision_1.PhysicsCollision(this.p2World, mapSize);
|
|
26
32
|
this.createBorders();
|
|
27
33
|
}
|
|
28
34
|
step(time, delta) {
|
|
@@ -66,9 +72,9 @@ let PhysicsWorld = class PhysicsWorld extends Entity {
|
|
|
66
72
|
createBorder(position, size) {
|
|
67
73
|
return new BorderEntity(this, {
|
|
68
74
|
shapeDefinition: {
|
|
69
|
-
materialName: BorderMaterialName,
|
|
70
|
-
group: PhysicsBodyGroup.border,
|
|
71
|
-
shapeType: PhysicsShapeType.rectangle,
|
|
75
|
+
materialName: interfaces_1.BorderMaterialName,
|
|
76
|
+
group: physics_body_groups_1.PhysicsBodyGroup.border,
|
|
77
|
+
shapeType: interfaces_1.PhysicsShapeType.rectangle,
|
|
72
78
|
shapeData: { size }
|
|
73
79
|
},
|
|
74
80
|
position,
|
|
@@ -77,20 +83,20 @@ let PhysicsWorld = class PhysicsWorld extends Entity {
|
|
|
77
83
|
}).attach(this);
|
|
78
84
|
}
|
|
79
85
|
};
|
|
80
|
-
PhysicsWorld =
|
|
81
|
-
|
|
86
|
+
exports.PhysicsWorld = PhysicsWorld;
|
|
87
|
+
exports.PhysicsWorld = PhysicsWorld = __decorate([
|
|
88
|
+
(0, game_entities_1.EntityDecorator)() // TODO: Remove this decorator
|
|
82
89
|
,
|
|
83
90
|
__metadata("design:paramtypes", [Object, Object, Array, Array])
|
|
84
91
|
], PhysicsWorld);
|
|
85
|
-
|
|
86
|
-
let BorderEntity = class BorderEntity extends ImmovablePhysicsEntity {
|
|
92
|
+
let BorderEntity = class BorderEntity extends immovable_physics_entity_1.ImmovablePhysicsEntity {
|
|
87
93
|
constructor(physicsWorld, physicsEntityDefinition) {
|
|
88
94
|
super(physicsWorld, physicsEntityDefinition);
|
|
89
95
|
}
|
|
90
96
|
};
|
|
91
|
-
BorderEntity =
|
|
92
|
-
|
|
97
|
+
exports.BorderEntity = BorderEntity;
|
|
98
|
+
exports.BorderEntity = BorderEntity = __decorate([
|
|
99
|
+
(0, game_entities_1.EntityDecorator)(),
|
|
93
100
|
__metadata("design:paramtypes", [PhysicsWorld, Object])
|
|
94
101
|
], BorderEntity);
|
|
95
|
-
export { BorderEntity };
|
|
96
102
|
//# sourceMappingURL=physics-world.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"physics-world.js","sourceRoot":"","sources":["../../src/physics/physics-world.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"physics-world.js","sourceRoot":"","sources":["../../src/physics/physics-world.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PhysicsBodyGroups = exports.PhysicsBodyGroup = void 0;
|
|
1
4
|
/* eslint-disable no-bitwise */
|
|
2
5
|
const BORDER_GROUP = Math.pow(2, 0); // 0b0001;
|
|
3
6
|
const FRIEND_GROUP = Math.pow(2, 1); // 0b0010;
|
|
@@ -7,14 +10,14 @@ const BORDER_MASK = FRIEND_GROUP | ENEMY_GROUP | NEUTRAL_GROUP; // Borders only
|
|
|
7
10
|
const FRIEND_MASK = ENEMY_GROUP | NEUTRAL_GROUP | BORDER_GROUP;
|
|
8
11
|
const ENEMY_MASK = FRIEND_GROUP | NEUTRAL_GROUP | BORDER_GROUP;
|
|
9
12
|
const NEUTRAL_MASK = FRIEND_GROUP | ENEMY_GROUP | NEUTRAL_GROUP | BORDER_GROUP;
|
|
10
|
-
|
|
13
|
+
var PhysicsBodyGroup;
|
|
11
14
|
(function (PhysicsBodyGroup) {
|
|
12
15
|
PhysicsBodyGroup[PhysicsBodyGroup["border"] = 0] = "border";
|
|
13
16
|
PhysicsBodyGroup[PhysicsBodyGroup["friend"] = 1] = "friend";
|
|
14
17
|
PhysicsBodyGroup[PhysicsBodyGroup["enemy"] = 2] = "enemy";
|
|
15
18
|
PhysicsBodyGroup[PhysicsBodyGroup["neutral"] = 3] = "neutral";
|
|
16
|
-
})(PhysicsBodyGroup || (PhysicsBodyGroup = {}));
|
|
17
|
-
|
|
19
|
+
})(PhysicsBodyGroup || (exports.PhysicsBodyGroup = PhysicsBodyGroup = {}));
|
|
20
|
+
class PhysicsBodyGroups {
|
|
18
21
|
static getGroupConstant(group) {
|
|
19
22
|
switch (group) {
|
|
20
23
|
case PhysicsBodyGroup.border:
|
|
@@ -40,4 +43,5 @@ export class PhysicsBodyGroups {
|
|
|
40
43
|
}
|
|
41
44
|
}
|
|
42
45
|
}
|
|
46
|
+
exports.PhysicsBodyGroups = PhysicsBodyGroups;
|
|
43
47
|
//# sourceMappingURL=physics-body-groups.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"physics-body-groups.js","sourceRoot":"","sources":["../../../src/physics/sub-elements/physics-body-groups.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU;AAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU;AAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU;AAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU;AAEhD,MAAM,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,aAAa,CAAC,CAAC,mCAAmC;AACnG,MAAM,WAAW,GAAG,WAAW,GAAG,aAAa,GAAG,YAAY,CAAC;AAC/D,MAAM,UAAU,GAAG,YAAY,GAAG,aAAa,GAAG,YAAY,CAAC;AAC/D,MAAM,YAAY,GAAG,YAAY,GAAG,WAAW,GAAG,aAAa,GAAG,YAAY,CAAC;AAE/E,
|
|
1
|
+
{"version":3,"file":"physics-body-groups.js","sourceRoot":"","sources":["../../../src/physics/sub-elements/physics-body-groups.ts"],"names":[],"mappings":";;;AAAA,+BAA+B;AAC/B,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU;AAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU;AAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU;AAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU;AAEhD,MAAM,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,aAAa,CAAC,CAAC,mCAAmC;AACnG,MAAM,WAAW,GAAG,WAAW,GAAG,aAAa,GAAG,YAAY,CAAC;AAC/D,MAAM,UAAU,GAAG,YAAY,GAAG,aAAa,GAAG,YAAY,CAAC;AAC/D,MAAM,YAAY,GAAG,YAAY,GAAG,WAAW,GAAG,aAAa,GAAG,YAAY,CAAC;AAE/E,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,2DAAU,CAAA;IACV,2DAAU,CAAA;IACV,yDAAS,CAAA;IACT,6DAAW,CAAA;AACb,CAAC,EALW,gBAAgB,gCAAhB,gBAAgB,QAK3B;AAED,MAAa,iBAAiB;IAC5B,MAAM,CAAC,gBAAgB,CAAC,KAAuB;QAC7C,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,gBAAgB,CAAC,MAAM;gBAC1B,OAAO,YAAY,CAAC;YACtB,KAAK,gBAAgB,CAAC,MAAM;gBAC1B,OAAO,YAAY,CAAC;YACtB,KAAK,gBAAgB,CAAC,KAAK;gBACzB,OAAO,WAAW,CAAC;YACrB,KAAK,gBAAgB,CAAC,OAAO;gBAC3B,OAAO,aAAa,CAAC;QACzB,CAAC;IACH,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,KAAuB;QAC5C,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,gBAAgB,CAAC,MAAM;gBAC1B,OAAO,WAAW,CAAC;YACrB,KAAK,gBAAgB,CAAC,MAAM;gBAC1B,OAAO,WAAW,CAAC;YACrB,KAAK,gBAAgB,CAAC,KAAK;gBACzB,OAAO,UAAU,CAAC;YACpB,KAAK,gBAAgB,CAAC,OAAO;gBAC3B,OAAO,YAAY,CAAC;QACxB,CAAC;IACH,CAAC;CACF;AA1BD,8CA0BC"}
|
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PhysicsCollision = void 0;
|
|
4
|
+
const helpers_lib_1 = require("helpers-lib");
|
|
5
|
+
const p2js_helper_1 = require("../helpers/p2js.helper");
|
|
6
|
+
const closest_available_space_helper_1 = require("../helpers/closest-available-space.helper");
|
|
7
|
+
const movable_physics_entity_1 = require("../entitity-types/movable-physics-entity");
|
|
5
8
|
const GRID_SIZE = 80;
|
|
6
9
|
const HALF_DAMAGE_STIFFNESS = 100;
|
|
7
10
|
const SPEED_LIMIT = 0.8;
|
|
8
11
|
const ANGULAR_SPEED_LIMIT = 0.01;
|
|
9
|
-
|
|
12
|
+
class PhysicsCollision {
|
|
10
13
|
constructor(p2World, mapsize) {
|
|
11
14
|
this.p2BodyIdtoOnCollisionCallback = new Map();
|
|
12
15
|
this.p2World = p2World;
|
|
@@ -15,7 +18,7 @@ export class PhysicsCollision {
|
|
|
15
18
|
let bodyA = event.bodyA;
|
|
16
19
|
let bodyB = event.bodyB;
|
|
17
20
|
let { contactPointA, contactPointB } = this.getContactPointsOfCollision(event);
|
|
18
|
-
let relativeVelocity = Vector.getLength({
|
|
21
|
+
let relativeVelocity = helpers_lib_1.Vector.getLength({
|
|
19
22
|
x: bodyA.velocity[0] - bodyB.velocity[0],
|
|
20
23
|
y: bodyA.velocity[1] - bodyB.velocity[1]
|
|
21
24
|
});
|
|
@@ -42,7 +45,7 @@ export class PhysicsCollision {
|
|
|
42
45
|
}
|
|
43
46
|
body.aabbNeedsUpdate = true;
|
|
44
47
|
body.updateAABB();
|
|
45
|
-
let changeVector = this.closestAvailableSpaceHelper?.findClosestAvailableSpace(P2JSHelper.aabbToBoundingBox(body.aabb));
|
|
48
|
+
let changeVector = this.closestAvailableSpaceHelper?.findClosestAvailableSpace(p2js_helper_1.P2JSHelper.aabbToBoundingBox(body.aabb));
|
|
46
49
|
return changeVector;
|
|
47
50
|
}
|
|
48
51
|
onBodyAdded(body, onCollisionCallback, markOnGrid) {
|
|
@@ -50,42 +53,42 @@ export class PhysicsCollision {
|
|
|
50
53
|
if (markOnGrid && this.closestAvailableSpaceHelper) {
|
|
51
54
|
body.aabbNeedsUpdate = true;
|
|
52
55
|
body.updateAABB();
|
|
53
|
-
this.closestAvailableSpaceHelper.markObjectOnGrid(P2JSHelper.aabbToBoundingBox(body.aabb));
|
|
56
|
+
this.closestAvailableSpaceHelper.markObjectOnGrid(p2js_helper_1.P2JSHelper.aabbToBoundingBox(body.aabb));
|
|
54
57
|
}
|
|
55
58
|
}
|
|
56
59
|
onBodyRemoved(body) {
|
|
57
60
|
this.p2BodyIdtoOnCollisionCallback.delete(body.id);
|
|
58
61
|
}
|
|
59
62
|
createClosestAvailableSpaceHelper() {
|
|
60
|
-
let closestAvailableSpaceHelper = new ClosestAvailableSpaceHelper(this.mapSize.x, this.mapSize.y, GRID_SIZE);
|
|
63
|
+
let closestAvailableSpaceHelper = new closest_available_space_helper_1.ClosestAvailableSpaceHelper(this.mapSize.x, this.mapSize.y, GRID_SIZE);
|
|
61
64
|
this.p2World.bodies.forEach(body => {
|
|
62
|
-
closestAvailableSpaceHelper.markObjectOnGrid(P2JSHelper.aabbToBoundingBox(body.aabb));
|
|
65
|
+
closestAvailableSpaceHelper.markObjectOnGrid(p2js_helper_1.P2JSHelper.aabbToBoundingBox(body.aabb));
|
|
63
66
|
});
|
|
64
67
|
this.closestAvailableSpaceHelper = closestAvailableSpaceHelper;
|
|
65
68
|
}
|
|
66
69
|
handleSpeedLimit(body) {
|
|
67
|
-
let velocity = P2JSHelper.arrayToVec2(body.velocity);
|
|
68
|
-
if (Vector.getLength(velocity) > SPEED_LIMIT) {
|
|
69
|
-
velocity = Vector.normalize(velocity, SPEED_LIMIT);
|
|
70
|
-
body.velocity = P2JSHelper.vec2ToArray(velocity);
|
|
70
|
+
let velocity = p2js_helper_1.P2JSHelper.arrayToVec2(body.velocity);
|
|
71
|
+
if (helpers_lib_1.Vector.getLength(velocity) > SPEED_LIMIT) {
|
|
72
|
+
velocity = helpers_lib_1.Vector.normalize(velocity, SPEED_LIMIT);
|
|
73
|
+
body.velocity = p2js_helper_1.P2JSHelper.vec2ToArray(velocity);
|
|
71
74
|
}
|
|
72
75
|
body.angularVelocity = Math.min(Math.max(body.angularVelocity, -ANGULAR_SPEED_LIMIT), ANGULAR_SPEED_LIMIT);
|
|
73
76
|
}
|
|
74
77
|
handleCollision(objectA, objectB, relativeVelocity, stiffness) {
|
|
75
78
|
let callbackA = this.p2BodyIdtoOnCollisionCallback.get(objectA.body.id);
|
|
76
79
|
let callbackB = this.p2BodyIdtoOnCollisionCallback.get(objectB.body.id);
|
|
77
|
-
let bodyA = MovablePhysicsEntity.getFromP2BodyId(objectA.body.id);
|
|
78
|
-
let bodyB = MovablePhysicsEntity.getFromP2BodyId(objectB.body.id);
|
|
80
|
+
let bodyA = movable_physics_entity_1.MovablePhysicsEntity.getFromP2BodyId(objectA.body.id);
|
|
81
|
+
let bodyB = movable_physics_entity_1.MovablePhysicsEntity.getFromP2BodyId(objectB.body.id);
|
|
79
82
|
if ((callbackA || callbackB) && bodyA && bodyB) {
|
|
80
83
|
let objectACollisionDetails = {
|
|
81
84
|
body: bodyA.convertToDTO(),
|
|
82
|
-
getPositionReletiveToObject: () => Vector.rotate(objectA.contactPoint, Radian.radianToVector(-objectA.rotation)),
|
|
85
|
+
getPositionReletiveToObject: () => helpers_lib_1.Vector.rotate(objectA.contactPoint, helpers_lib_1.Radian.radianToVector(-objectA.rotation)),
|
|
83
86
|
getSeverity: () => this.calculateImpactSeverity(relativeVelocity, stiffness, objectA.mass, objectB.mass),
|
|
84
87
|
position: objectA.contactPoint
|
|
85
88
|
};
|
|
86
89
|
let objectBCollisionDetails = {
|
|
87
90
|
body: bodyB.convertToDTO(),
|
|
88
|
-
getPositionReletiveToObject: () => Vector.rotate(objectB.contactPoint, Radian.radianToVector(-objectB.rotation)),
|
|
91
|
+
getPositionReletiveToObject: () => helpers_lib_1.Vector.rotate(objectB.contactPoint, helpers_lib_1.Radian.radianToVector(-objectB.rotation)),
|
|
89
92
|
getSeverity: () => this.calculateImpactSeverity(relativeVelocity, stiffness, objectB.mass, objectA.mass),
|
|
90
93
|
position: objectB.contactPoint
|
|
91
94
|
};
|
|
@@ -117,14 +120,15 @@ export class PhysicsCollision {
|
|
|
117
120
|
}
|
|
118
121
|
getContactPointOfCollision(event, bodyId) {
|
|
119
122
|
if (event.contactEquations[0].bodyA.id === bodyId) {
|
|
120
|
-
return P2JSHelper.arrayToVec2(event.contactEquations[0].contactPointA);
|
|
123
|
+
return p2js_helper_1.P2JSHelper.arrayToVec2(event.contactEquations[0].contactPointA);
|
|
121
124
|
}
|
|
122
125
|
else if (event.contactEquations[0].bodyB.id === bodyId) {
|
|
123
|
-
return P2JSHelper.arrayToVec2(event.contactEquations[0].contactPointB);
|
|
126
|
+
return p2js_helper_1.P2JSHelper.arrayToVec2(event.contactEquations[0].contactPointB);
|
|
124
127
|
}
|
|
125
128
|
else {
|
|
126
129
|
throw new Error('Collision bodyA are not matching contact equations.');
|
|
127
130
|
}
|
|
128
131
|
}
|
|
129
132
|
}
|
|
133
|
+
exports.PhysicsCollision = PhysicsCollision;
|
|
130
134
|
//# sourceMappingURL=physics-collision.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"physics-collision.js","sourceRoot":"","sources":["../../../src/physics/sub-elements/physics-collision.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"physics-collision.js","sourceRoot":"","sources":["../../../src/physics/sub-elements/physics-collision.ts"],"names":[],"mappings":";;;AAAA,6CAAmD;AAEnD,wDAAoD;AACpD,8FAAwF;AACxF,qFAAgF;AAGhF,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAClC,MAAM,WAAW,GAAG,GAAG,CAAC;AACxB,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAIjC,MAAa,gBAAgB;IAO3B,YAAY,OAAiB,EAAE,OAAa;QANpC,kCAA6B,GAAG,IAAI,GAAG,EAAuC,CAAC;QAOrF,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,KAAU,EAAE,EAAE;YAC7C,IAAI,KAAK,GAAY,KAAK,CAAC,KAAK,CAAC;YACjC,IAAI,KAAK,GAAY,KAAK,CAAC,KAAK,CAAC;YACjC,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC;YAE/E,IAAI,gBAAgB,GAAG,oBAAM,CAAC,SAAS,CAAC;gBACtC,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACxC,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;aACzC,CAAC,CAAC;YACH,IAAI,SAAS,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAEpD,IAAI,CAAC,eAAe,CAClB,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EACrF,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EACrF,gBAAgB,EAChB,SAAS,CACV,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,KAAU,EAAE,EAAE;YAC3C,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,IAAY,EAAE,KAAa;QAChC,IAAI,CAAC,2BAA2B,GAAG,SAAS,CAAC;IAC/C,CAAC;IAED,uBAAuB,CAAC,MAAe;QACrC,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9B,MAAM,CAAC,UAAU,EAAE,CAAC;QAEpB,IAAI,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACrF,OAAO,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC;IACpC,CAAC;IAED,yBAAyB,CAAC,IAAa;QACrC,IAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACtC,IAAI,CAAC,iCAAiC,EAAE,CAAC;QAC3C,CAAC;QAED,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,IAAI,YAAY,GAAG,IAAI,CAAC,2BAA2B,EAAE,yBAAyB,CAAC,wBAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACxH,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,WAAW,CAAC,IAAa,EAAE,mBAAgD,EAAE,UAAmB;QAC9F,IAAI,CAAC,6BAA6B,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,mBAAmB,CAAC,CAAC;QACrE,IAAI,UAAU,IAAI,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACnD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,2BAA2B,CAAC,gBAAgB,CAAC,wBAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC;IAED,aAAa,CAAC,IAAa;QACzB,IAAI,CAAC,6BAA6B,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrD,CAAC;IAEO,iCAAiC;QACvC,IAAI,2BAA2B,GAAG,IAAI,4DAA2B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAC7G,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACjC,2BAA2B,CAAC,gBAAgB,CAAC,wBAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACxF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,2BAA2B,GAAG,2BAA2B,CAAC;IACjE,CAAC;IAEO,gBAAgB,CAAC,IAAa;QACpC,IAAI,QAAQ,GAAG,wBAAU,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrD,IAAI,oBAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,WAAW,EAAE,CAAC;YAC7C,QAAQ,GAAG,oBAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YACnD,IAAI,CAAC,QAAQ,GAAG,wBAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC,CAAC;IAC7G,CAAC;IAEO,eAAe,CACrB,OAKC,EACD,OAKC,EACD,gBAAwB,EACxB,SAAiB;QAEjB,IAAI,SAAS,GAAG,IAAI,CAAC,6BAA6B,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxE,IAAI,SAAS,GAAG,IAAI,CAAC,6BAA6B,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAExE,IAAI,KAAK,GAAG,6CAAoB,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClE,IAAI,KAAK,GAAG,6CAAoB,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAElE,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;YAC/C,IAAI,uBAAuB,GAAG;gBAC5B,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE;gBAC1B,2BAA2B,EAAE,GAAG,EAAE,CAAC,oBAAM,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,oBAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAChH,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,EAAE,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC;gBACxG,QAAQ,EAAE,OAAO,CAAC,YAAY;aAC/B,CAAC;YAEF,IAAI,uBAAuB,GAAG;gBAC5B,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE;gBAC1B,2BAA2B,EAAE,GAAG,EAAE,CAAC,oBAAM,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,oBAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAChH,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,EAAE,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC;gBACxG,QAAQ,EAAE,OAAO,CAAC,YAAY;aAC/B,CAAC;YAEF,IAAI,SAAS,EAAE,CAAC;gBACd,SAAS,CAAC;oBACR,IAAI,EAAE,uBAAuB;oBAC7B,MAAM,EAAE,uBAAuB;iBAChC,CAAC,CAAC;YACL,CAAC;YAED,IAAI,SAAS,EAAE,CAAC;gBACd,SAAS,CAAC;oBACR,IAAI,EAAE,uBAAuB;oBAC7B,MAAM,EAAE,uBAAuB;iBAChC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAEO,uBAAuB,CAAC,gBAAwB,EAAE,SAAiB,EAAE,UAAkB,EAAE,UAAkB;QACjH,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,UAAU,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAE3E,IAAI,cAAc,GAAG,CAAC,CAAC,GAAG,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;QAC1E,IAAI,mBAAmB,GAAG,SAAS,GAAG,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAAC;QAE1E,OAAO,cAAc,GAAG,mBAAmB,CAAC;IAC9C,CAAC;IAEO,2BAA2B,CAAC,KAA2B;QAC7D,OAAO;YACL,aAAa,EAAE,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACrE,aAAa,EAAE,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;SACtE,CAAC;IACJ,CAAC;IAEO,0BAA0B,CAAC,KAA2B,EAAE,MAAc;QAC5E,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;YAClD,OAAO,wBAAU,CAAC,WAAW,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;QACzE,CAAC;aAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;YACzD,OAAO,wBAAU,CAAC,WAAW,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;QACzE,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;CACF;AAzKD,4CAyKC"}
|
|
@@ -1,12 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.PhysicsMaterials = void 0;
|
|
7
|
+
const p2_1 = __importDefault(require("p2"));
|
|
8
|
+
const interfaces_1 = require("../interfaces");
|
|
9
|
+
class PhysicsMaterials {
|
|
4
10
|
constructor(p2World, borderProperties, materialDefinitions, materialContactDefinitions) {
|
|
5
|
-
this.borderMaterial = new
|
|
11
|
+
this.borderMaterial = new p2_1.default.Material();
|
|
6
12
|
this.materials = new Map();
|
|
7
13
|
this.materialDefinitions = new Map();
|
|
8
14
|
materialDefinitions.forEach(materialDefinition => {
|
|
9
|
-
this.materials.set(materialDefinition.name, new
|
|
15
|
+
this.materials.set(materialDefinition.name, new p2_1.default.Material());
|
|
10
16
|
this.materialDefinitions.set(materialDefinition.name, materialDefinition);
|
|
11
17
|
});
|
|
12
18
|
this.addContactMaterials(p2World, borderProperties, materialDefinitions, materialContactDefinitions);
|
|
@@ -15,7 +21,7 @@ export class PhysicsMaterials {
|
|
|
15
21
|
return this.borderMaterial;
|
|
16
22
|
}
|
|
17
23
|
getMaterial(name) {
|
|
18
|
-
if (name === BorderMaterialName) {
|
|
24
|
+
if (name === interfaces_1.BorderMaterialName) {
|
|
19
25
|
return this.borderMaterial;
|
|
20
26
|
}
|
|
21
27
|
else {
|
|
@@ -27,9 +33,9 @@ export class PhysicsMaterials {
|
|
|
27
33
|
}
|
|
28
34
|
}
|
|
29
35
|
getMaterialDefinition(name) {
|
|
30
|
-
if (name === BorderMaterialName) {
|
|
36
|
+
if (name === interfaces_1.BorderMaterialName) {
|
|
31
37
|
return {
|
|
32
|
-
name: BorderMaterialName,
|
|
38
|
+
name: interfaces_1.BorderMaterialName,
|
|
33
39
|
density: Number.MAX_SAFE_INTEGER,
|
|
34
40
|
velocityDrag: 1,
|
|
35
41
|
angularDrag: 1
|
|
@@ -47,7 +53,7 @@ export class PhysicsMaterials {
|
|
|
47
53
|
this.getFullListOfMaterialContactDefinitions(materialDefinitions.map(definition => definition.name), materialContactDefinitions).forEach(contactDefinition => {
|
|
48
54
|
let materialA = this.getMaterial(contactDefinition.materialA);
|
|
49
55
|
let materialB = this.getMaterial(contactDefinition.materialB);
|
|
50
|
-
p2World.addContactMaterial(new
|
|
56
|
+
p2World.addContactMaterial(new p2_1.default.ContactMaterial(materialA, materialB, {
|
|
51
57
|
friction: contactDefinition.friction,
|
|
52
58
|
restitution: contactDefinition.bounciness,
|
|
53
59
|
stiffness: contactDefinition.stiffness
|
|
@@ -89,7 +95,7 @@ export class PhysicsMaterials {
|
|
|
89
95
|
addContactMaterialsWithBorder(p2World, borderProperties, materialDefinitions) {
|
|
90
96
|
materialDefinitions.forEach(materialDefinition => {
|
|
91
97
|
let materialA = this.getMaterial(materialDefinition.name);
|
|
92
|
-
p2World.addContactMaterial(new
|
|
98
|
+
p2World.addContactMaterial(new p2_1.default.ContactMaterial(materialA, this.borderMaterial, {
|
|
93
99
|
friction: borderProperties.friction,
|
|
94
100
|
restitution: borderProperties.bounciness,
|
|
95
101
|
stiffness: borderProperties.stiffness
|
|
@@ -97,4 +103,5 @@ export class PhysicsMaterials {
|
|
|
97
103
|
});
|
|
98
104
|
}
|
|
99
105
|
}
|
|
106
|
+
exports.PhysicsMaterials = PhysicsMaterials;
|
|
100
107
|
//# sourceMappingURL=physics-materials.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"physics-materials.js","sourceRoot":"","sources":["../../../src/physics/sub-elements/physics-materials.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"physics-materials.js","sourceRoot":"","sources":["../../../src/physics/sub-elements/physics-materials.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
3
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
4
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -7,11 +8,13 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
10
|
};
|
|
10
|
-
|
|
11
|
-
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.KeyboardService = void 0;
|
|
13
|
+
const actions_lib_1 = require("actions-lib");
|
|
14
|
+
const service_1 = require("../../game-entities/service/service");
|
|
12
15
|
let KeyboardService = class KeyboardService {
|
|
13
16
|
constructor() {
|
|
14
|
-
this.keyPressed = new Action();
|
|
17
|
+
this.keyPressed = new actions_lib_1.Action();
|
|
15
18
|
this.listOfPressedKeys = new Set();
|
|
16
19
|
document.addEventListener('keydown', event => {
|
|
17
20
|
this.listOfPressedKeys.add(event.key);
|
|
@@ -25,9 +28,9 @@ let KeyboardService = class KeyboardService {
|
|
|
25
28
|
return this.listOfPressedKeys.has(key);
|
|
26
29
|
}
|
|
27
30
|
};
|
|
28
|
-
KeyboardService =
|
|
29
|
-
|
|
31
|
+
exports.KeyboardService = KeyboardService;
|
|
32
|
+
exports.KeyboardService = KeyboardService = __decorate([
|
|
33
|
+
(0, service_1.ServiceDecorator)(),
|
|
30
34
|
__metadata("design:paramtypes", [])
|
|
31
35
|
], KeyboardService);
|
|
32
|
-
export { KeyboardService };
|
|
33
36
|
//# sourceMappingURL=keyboard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyboard.js","sourceRoot":"","sources":["../../../src/services/keyboard/keyboard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"keyboard.js","sourceRoot":"","sources":["../../../src/services/keyboard/keyboard.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAqC;AAErC,iEAAuE;AAGhE,IAAM,eAAe,GAArB,MAAM,eAAe;IAK1B;QAJS,eAAU,GAAG,IAAI,oBAAM,EAAU,CAAC;QAEnC,sBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;QAG5C,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;YAC3C,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtC,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;YACzC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,SAAS,CAAC,GAAW;QAC1B,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;CACF,CAAA;AAnBY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,0BAAgB,GAAE;;GACN,eAAe,CAmB3B"}
|