dino-ge 1.2.15 → 1.3.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/Engine.js +13 -5
- package/dist/Engine.js.map +1 -1
- package/dist/GameObject.d.ts +0 -31
- package/dist/GameObject.js +0 -35
- package/dist/GameObject.js.map +1 -1
- package/dist/Physics.js +15 -11
- package/dist/Physics.js.map +1 -1
- package/dist/RenderingSystem.js +4 -1
- package/dist/RenderingSystem.js.map +1 -1
- package/package.json +1 -1
- package/src/Engine.ts +16 -6
- package/src/GameObject.ts +4 -46
- package/src/Physics.ts +15 -11
- package/src/RenderingSystem.ts +5 -1
package/dist/Engine.js
CHANGED
|
@@ -24,6 +24,8 @@ import Input from './Input.js';
|
|
|
24
24
|
import Camera from './Camera.js';
|
|
25
25
|
import PhysicsSystem from './PhysicsSystem.js';
|
|
26
26
|
import RenderingSystem from './RenderingSystem.js';
|
|
27
|
+
import PhysicsComponent from './PhysicsComponent.js';
|
|
28
|
+
import TagComponent from './TagComponent.js';
|
|
27
29
|
/**
|
|
28
30
|
* Specialized Set for managing game objects with helper methods.
|
|
29
31
|
*/
|
|
@@ -333,13 +335,19 @@ _a = Engine, _Engine_canvas = new WeakMap(), _Engine_ctx = new WeakMap(), _Engin
|
|
|
333
335
|
y += statsHeight + 10;
|
|
334
336
|
const obj = _a.selectedObject;
|
|
335
337
|
const properties = [
|
|
336
|
-
['Tag', obj.tag],
|
|
337
338
|
['Pos', `${Math.round(obj.position.x)}, ${Math.round(obj.position.y)}`],
|
|
338
|
-
['Size', `${Math.round(obj.width)}x${Math.round(obj.height)}`]
|
|
339
|
-
['Vel', `${Math.round(obj.velocity.x)}, ${Math.round(obj.velocity.y)}`],
|
|
340
|
-
['Acc', `${Math.round(obj.acceleration.x)}, ${Math.round(obj.acceleration.y)}`],
|
|
341
|
-
['Z-Index', obj.zIndex]
|
|
339
|
+
['Size', `${Math.round(obj.width)}x${Math.round(obj.height)}`]
|
|
342
340
|
];
|
|
341
|
+
const tagComp = obj.getComponent(TagComponent);
|
|
342
|
+
if (tagComp) {
|
|
343
|
+
properties.unshift(['Tag', tagComp.tag]);
|
|
344
|
+
properties.push(['Z-Index', tagComp.zIndex]);
|
|
345
|
+
}
|
|
346
|
+
const physComp = obj.getComponent(PhysicsComponent);
|
|
347
|
+
if (physComp) {
|
|
348
|
+
properties.push(['Vel', `${Math.round(physComp.velocity.x)}, ${Math.round(physComp.velocity.y)}`]);
|
|
349
|
+
properties.push(['Acc', `${Math.round(physComp.acceleration.x)}, ${Math.round(physComp.acceleration.y)}`]);
|
|
350
|
+
}
|
|
343
351
|
const inspectorHeight = 20 + (properties.length * 15);
|
|
344
352
|
__classPrivateFieldGet(this, _Engine_ctx, "f").fillStyle = 'rgba(0, 0, 0, 0.7)';
|
|
345
353
|
__classPrivateFieldGet(this, _Engine_ctx, "f").fillRect(x, y, overlayWidth, inspectorHeight);
|
package/dist/Engine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Engine.js","sourceRoot":"","sources":["../src/Engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Engine.js","sourceRoot":"","sources":["../src/Engine.ts"],"names":[],"mappings":"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"}
|
package/dist/GameObject.d.ts
CHANGED
|
@@ -12,7 +12,6 @@ export default abstract class GameObject {
|
|
|
12
12
|
private _physics;
|
|
13
13
|
private _transform;
|
|
14
14
|
private _tag;
|
|
15
|
-
private _visibility;
|
|
16
15
|
private _eventBus;
|
|
17
16
|
constructor(tag: string, zIndex: number);
|
|
18
17
|
/**
|
|
@@ -45,12 +44,6 @@ export default abstract class GameObject {
|
|
|
45
44
|
*/
|
|
46
45
|
get zIndex(): number;
|
|
47
46
|
set zIndex(val: number);
|
|
48
|
-
/**
|
|
49
|
-
* Whether the object should be rendered.
|
|
50
|
-
* @deprecated Use getComponent(VisibilityComponent).visible
|
|
51
|
-
*/
|
|
52
|
-
get visible(): boolean;
|
|
53
|
-
set visible(val: boolean);
|
|
54
47
|
/**
|
|
55
48
|
* The world-space position of the object.
|
|
56
49
|
* Getter returns world position, setter sets local position.
|
|
@@ -92,30 +85,6 @@ export default abstract class GameObject {
|
|
|
92
85
|
*/
|
|
93
86
|
get parent(): GameObject | undefined;
|
|
94
87
|
set parent(val: GameObject | undefined);
|
|
95
|
-
/**
|
|
96
|
-
* Current velocity in pixels per second.
|
|
97
|
-
* @deprecated Use getComponent(PhysicsComponent).velocity
|
|
98
|
-
*/
|
|
99
|
-
get velocity(): Vector2;
|
|
100
|
-
set velocity(val: Vector2);
|
|
101
|
-
/**
|
|
102
|
-
* Current acceleration in pixels per second squared.
|
|
103
|
-
* @deprecated Use getComponent(PhysicsComponent).acceleration
|
|
104
|
-
*/
|
|
105
|
-
get acceleration(): Vector2;
|
|
106
|
-
set acceleration(val: Vector2);
|
|
107
|
-
/**
|
|
108
|
-
* Mass of the object (used for physics resolution).
|
|
109
|
-
* @deprecated Use getComponent(PhysicsComponent).mass
|
|
110
|
-
*/
|
|
111
|
-
get mass(): number;
|
|
112
|
-
set mass(val: number);
|
|
113
|
-
/**
|
|
114
|
-
* Whether the object is immovable (e.g., walls).
|
|
115
|
-
* @deprecated Use getComponent(PhysicsComponent).isStatic
|
|
116
|
-
*/
|
|
117
|
-
get isStatic(): boolean;
|
|
118
|
-
set isStatic(val: boolean);
|
|
119
88
|
/**
|
|
120
89
|
* Adds a component to this entity.
|
|
121
90
|
* @param component The component to add.
|
package/dist/GameObject.js
CHANGED
|
@@ -2,7 +2,6 @@ import Engine from './Engine.js';
|
|
|
2
2
|
import PhysicsComponent from './PhysicsComponent.js';
|
|
3
3
|
import TransformComponent from './TransformComponent.js';
|
|
4
4
|
import TagComponent from './TagComponent.js';
|
|
5
|
-
import VisibilityComponent from './VisibilityComponent.js';
|
|
6
5
|
import EventBusComponent from './EventBusComponent.js';
|
|
7
6
|
/**
|
|
8
7
|
* Base class for all entities in the game world.
|
|
@@ -13,12 +12,8 @@ export default class GameObject {
|
|
|
13
12
|
constructor(tag, zIndex) {
|
|
14
13
|
/** Collection of components attached to this entity. */
|
|
15
14
|
this._components = new Map();
|
|
16
|
-
// Initialize with core components for now to maintain backward compatibility.
|
|
17
|
-
// In a pure ECS, components would be added as needed.
|
|
18
15
|
this._tag = new TagComponent(tag, zIndex);
|
|
19
16
|
this.addComponent(this._tag);
|
|
20
|
-
this._visibility = new VisibilityComponent();
|
|
21
|
-
this.addComponent(this._visibility);
|
|
22
17
|
this._physics = new PhysicsComponent();
|
|
23
18
|
this.addComponent(this._physics);
|
|
24
19
|
this._transform = new TransformComponent();
|
|
@@ -62,12 +57,6 @@ export default class GameObject {
|
|
|
62
57
|
*/
|
|
63
58
|
get zIndex() { return this._tag.zIndex; }
|
|
64
59
|
set zIndex(val) { this._tag.zIndex = val; }
|
|
65
|
-
/**
|
|
66
|
-
* Whether the object should be rendered.
|
|
67
|
-
* @deprecated Use getComponent(VisibilityComponent).visible
|
|
68
|
-
*/
|
|
69
|
-
get visible() { return this._visibility.visible; }
|
|
70
|
-
set visible(val) { this._visibility.visible = val; }
|
|
71
60
|
/**
|
|
72
61
|
* The world-space position of the object.
|
|
73
62
|
* Getter returns world position, setter sets local position.
|
|
@@ -126,30 +115,6 @@ export default class GameObject {
|
|
|
126
115
|
this._transform.parent = val === null || val === void 0 ? void 0 : val._transform;
|
|
127
116
|
val === null || val === void 0 ? void 0 : val._transform.children.add(this._transform);
|
|
128
117
|
}
|
|
129
|
-
/**
|
|
130
|
-
* Current velocity in pixels per second.
|
|
131
|
-
* @deprecated Use getComponent(PhysicsComponent).velocity
|
|
132
|
-
*/
|
|
133
|
-
get velocity() { return this._physics.velocity; }
|
|
134
|
-
set velocity(val) { this._physics.velocity = val; }
|
|
135
|
-
/**
|
|
136
|
-
* Current acceleration in pixels per second squared.
|
|
137
|
-
* @deprecated Use getComponent(PhysicsComponent).acceleration
|
|
138
|
-
*/
|
|
139
|
-
get acceleration() { return this._physics.acceleration; }
|
|
140
|
-
set acceleration(val) { this._physics.acceleration = val; }
|
|
141
|
-
/**
|
|
142
|
-
* Mass of the object (used for physics resolution).
|
|
143
|
-
* @deprecated Use getComponent(PhysicsComponent).mass
|
|
144
|
-
*/
|
|
145
|
-
get mass() { return this._physics.mass; }
|
|
146
|
-
set mass(val) { this._physics.mass = val; }
|
|
147
|
-
/**
|
|
148
|
-
* Whether the object is immovable (e.g., walls).
|
|
149
|
-
* @deprecated Use getComponent(PhysicsComponent).isStatic
|
|
150
|
-
*/
|
|
151
|
-
get isStatic() { return this._physics.isStatic; }
|
|
152
|
-
set isStatic(val) { this._physics.isStatic = val; }
|
|
153
118
|
/**
|
|
154
119
|
* Adds a component to this entity.
|
|
155
120
|
* @param component The component to add.
|
package/dist/GameObject.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GameObject.js","sourceRoot":"","sources":["../src/GameObject.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AAGjC,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AACzD,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAC7C,OAAO,
|
|
1
|
+
{"version":3,"file":"GameObject.js","sourceRoot":"","sources":["../src/GameObject.ts"],"names":[],"mappings":"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"}
|
package/dist/Physics.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import Vector2 from './Vector2.js';
|
|
2
2
|
import Circle from './Circle.js';
|
|
3
|
+
import PhysicsComponent from './PhysicsComponent.js';
|
|
3
4
|
/**
|
|
4
5
|
* Utility class for collision detection between game objects.
|
|
5
6
|
*/
|
|
@@ -13,6 +14,7 @@ export default class Physics {
|
|
|
13
14
|
* @returns True if the objects are colliding.
|
|
14
15
|
*/
|
|
15
16
|
static checkCollision(obj1, obj2) {
|
|
17
|
+
var _a, _b, _c, _d;
|
|
16
18
|
const isCircle1 = obj1 instanceof Circle;
|
|
17
19
|
const isCircle2 = obj2 instanceof Circle;
|
|
18
20
|
let isColliding = false;
|
|
@@ -34,41 +36,43 @@ export default class Physics {
|
|
|
34
36
|
obj1.position.y < obj2.position.y + obj2.height &&
|
|
35
37
|
obj1.position.y + obj1.height > obj2.position.y);
|
|
36
38
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
+
const obj1Static = (_b = (_a = obj1.getComponent(PhysicsComponent)) === null || _a === void 0 ? void 0 : _a.isStatic) !== null && _b !== void 0 ? _b : false;
|
|
40
|
+
const obj2Static = (_d = (_c = obj2.getComponent(PhysicsComponent)) === null || _c === void 0 ? void 0 : _c.isStatic) !== null && _d !== void 0 ? _d : false;
|
|
41
|
+
if (isColliding && (!obj1Static || !obj2Static)) {
|
|
42
|
+
this.resolveCollision(obj1, obj2, obj1Static, obj2Static);
|
|
39
43
|
}
|
|
40
44
|
return isColliding;
|
|
41
45
|
}
|
|
42
|
-
static resolveCollision(obj1, obj2) {
|
|
46
|
+
static resolveCollision(obj1, obj2, obj1Static, obj2Static) {
|
|
43
47
|
// Calculate overlap
|
|
44
48
|
const overlapX = Math.min(obj1.position.x + obj1.width - obj2.position.x, obj2.position.x + obj2.width - obj1.position.x);
|
|
45
49
|
const overlapY = Math.min(obj1.position.y + obj1.height - obj2.position.y, obj2.position.y + obj2.height - obj1.position.y);
|
|
46
50
|
// Push apart
|
|
47
51
|
if (overlapX < overlapY) {
|
|
48
52
|
if (obj1.position.x < obj2.position.x) {
|
|
49
|
-
if (!
|
|
53
|
+
if (!obj1Static)
|
|
50
54
|
obj1.localPosition.x -= overlapX / 2;
|
|
51
|
-
if (!
|
|
55
|
+
if (!obj2Static)
|
|
52
56
|
obj2.localPosition.x += overlapX / 2;
|
|
53
57
|
}
|
|
54
58
|
else {
|
|
55
|
-
if (!
|
|
59
|
+
if (!obj1Static)
|
|
56
60
|
obj1.localPosition.x += overlapX / 2;
|
|
57
|
-
if (!
|
|
61
|
+
if (!obj2Static)
|
|
58
62
|
obj2.localPosition.x -= overlapX / 2;
|
|
59
63
|
}
|
|
60
64
|
}
|
|
61
65
|
else {
|
|
62
66
|
if (obj1.position.y < obj2.position.y) {
|
|
63
|
-
if (!
|
|
67
|
+
if (!obj1Static)
|
|
64
68
|
obj1.localPosition.y -= overlapY / 2;
|
|
65
|
-
if (!
|
|
69
|
+
if (!obj2Static)
|
|
66
70
|
obj2.localPosition.y += overlapY / 2;
|
|
67
71
|
}
|
|
68
72
|
else {
|
|
69
|
-
if (!
|
|
73
|
+
if (!obj1Static)
|
|
70
74
|
obj1.localPosition.y += overlapY / 2;
|
|
71
|
-
if (!
|
|
75
|
+
if (!obj2Static)
|
|
72
76
|
obj2.localPosition.y -= overlapY / 2;
|
|
73
77
|
}
|
|
74
78
|
}
|
package/dist/Physics.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Physics.js","sourceRoot":"","sources":["../src/Physics.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,OAAO,MAAM,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"Physics.js","sourceRoot":"","sources":["../src/Physics.ts"],"names":[],"mappings":"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"}
|
package/dist/RenderingSystem.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import System from './System.js';
|
|
2
2
|
import RenderComponent from './RenderComponent.js';
|
|
3
|
+
import VisibilityComponent from './VisibilityComponent.js';
|
|
3
4
|
import Engine from './Engine.js';
|
|
4
5
|
/**
|
|
5
6
|
* A system that processes entities with RenderComponents.
|
|
@@ -39,7 +40,9 @@ export default class RenderingSystem extends System {
|
|
|
39
40
|
object.position.y + object.height > bounds.y) {
|
|
40
41
|
// Find any RenderComponent on the entity
|
|
41
42
|
const renderable = object.getComponent(RenderComponent);
|
|
42
|
-
|
|
43
|
+
const visibility = object.getComponent(VisibilityComponent);
|
|
44
|
+
const isVisible = visibility ? visibility.visible : true;
|
|
45
|
+
if (renderable && isVisible) {
|
|
43
46
|
renderable.draw(this.ctx);
|
|
44
47
|
}
|
|
45
48
|
// Backward compatibility: call draw() if it exists on the object itself
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderingSystem.js","sourceRoot":"","sources":["../src/RenderingSystem.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,OAAO,eAAe,MAAM,sBAAsB,CAAC;AACnD,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,MAAM;IAGjD,YAAY,GAA6B;QACvC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED;;;OAGG;IACI,UAAU,CAAC,GAA6B;QAC7C,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACa,MAAM,CAAC,QAAyB,EAAE,SAAkB,EAAE,QAAiB,KAAK;QAC1F,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAC3C,IAAI,CAAC,GAAG,CAAC,MAA4B,CAAC,KAAK,EAC3C,IAAI,CAAC,GAAG,CAAC,MAA4B,CAAC,MAAM,CAC9C,CAAC;QAEF,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAEhB,yBAAyB;QACzB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAEzE,iDAAiD;QACjD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEnF,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YACxB,kBAAkB;YAClB,IACE,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK;gBAC3C,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC;gBAC3C,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM;gBAC5C,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,EAC5C,CAAC;gBACD,yCAAyC;gBACzC,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;gBACxD,
|
|
1
|
+
{"version":3,"file":"RenderingSystem.js","sourceRoot":"","sources":["../src/RenderingSystem.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/Engine.ts
CHANGED
|
@@ -6,6 +6,8 @@ import Camera from './Camera.js';
|
|
|
6
6
|
import System from './System.js';
|
|
7
7
|
import PhysicsSystem from './PhysicsSystem.js';
|
|
8
8
|
import RenderingSystem from './RenderingSystem.js';
|
|
9
|
+
import PhysicsComponent from './PhysicsComponent.js';
|
|
10
|
+
import TagComponent from './TagComponent.js';
|
|
9
11
|
|
|
10
12
|
/**
|
|
11
13
|
* Options for initializing the Engine.
|
|
@@ -357,15 +359,23 @@ export default class Engine {
|
|
|
357
359
|
if (Engine.selectedObject) {
|
|
358
360
|
y += statsHeight + 10;
|
|
359
361
|
const obj = Engine.selectedObject;
|
|
360
|
-
const properties = [
|
|
361
|
-
['Tag', obj.tag],
|
|
362
|
+
const properties: [string, string | number][] = [
|
|
362
363
|
['Pos', `${Math.round(obj.position.x)}, ${Math.round(obj.position.y)}`],
|
|
363
|
-
['Size', `${Math.round(obj.width)}x${Math.round(obj.height)}`]
|
|
364
|
-
['Vel', `${Math.round(obj.velocity.x)}, ${Math.round(obj.velocity.y)}`],
|
|
365
|
-
['Acc', `${Math.round(obj.acceleration.x)}, ${Math.round(obj.acceleration.y)}`],
|
|
366
|
-
['Z-Index', obj.zIndex]
|
|
364
|
+
['Size', `${Math.round(obj.width)}x${Math.round(obj.height)}`]
|
|
367
365
|
];
|
|
368
366
|
|
|
367
|
+
const tagComp = obj.getComponent(TagComponent);
|
|
368
|
+
if (tagComp) {
|
|
369
|
+
properties.unshift(['Tag', tagComp.tag]);
|
|
370
|
+
properties.push(['Z-Index', tagComp.zIndex]);
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
const physComp = obj.getComponent(PhysicsComponent);
|
|
374
|
+
if (physComp) {
|
|
375
|
+
properties.push(['Vel', `${Math.round(physComp.velocity.x)}, ${Math.round(physComp.velocity.y)}`]);
|
|
376
|
+
properties.push(['Acc', `${Math.round(physComp.acceleration.x)}, ${Math.round(physComp.acceleration.y)}`]);
|
|
377
|
+
}
|
|
378
|
+
|
|
369
379
|
const inspectorHeight = 20 + (properties.length * 15);
|
|
370
380
|
this.#ctx.fillStyle = 'rgba(0, 0, 0, 0.7)';
|
|
371
381
|
this.#ctx.fillRect(x, y, overlayWidth, inspectorHeight);
|
package/src/GameObject.ts
CHANGED
|
@@ -4,7 +4,6 @@ import Component from './Component.js';
|
|
|
4
4
|
import PhysicsComponent from './PhysicsComponent.js';
|
|
5
5
|
import TransformComponent from './TransformComponent.js';
|
|
6
6
|
import TagComponent from './TagComponent.js';
|
|
7
|
-
import VisibilityComponent from './VisibilityComponent.js';
|
|
8
7
|
import EventBusComponent from './EventBusComponent.js';
|
|
9
8
|
|
|
10
9
|
/**
|
|
@@ -20,18 +19,12 @@ export default abstract class GameObject {
|
|
|
20
19
|
private _physics: PhysicsComponent;
|
|
21
20
|
private _transform: TransformComponent;
|
|
22
21
|
private _tag: TagComponent;
|
|
23
|
-
private _visibility: VisibilityComponent;
|
|
24
22
|
private _eventBus: EventBusComponent;
|
|
25
23
|
|
|
26
24
|
constructor(tag: string, zIndex: number) {
|
|
27
|
-
// Initialize with core components for now to maintain backward compatibility.
|
|
28
|
-
// In a pure ECS, components would be added as needed.
|
|
29
25
|
this._tag = new TagComponent(tag, zIndex);
|
|
30
26
|
this.addComponent(this._tag);
|
|
31
27
|
|
|
32
|
-
this._visibility = new VisibilityComponent();
|
|
33
|
-
this.addComponent(this._visibility);
|
|
34
|
-
|
|
35
28
|
this._physics = new PhysicsComponent();
|
|
36
29
|
this.addComponent(this._physics);
|
|
37
30
|
|
|
@@ -83,13 +76,6 @@ export default abstract class GameObject {
|
|
|
83
76
|
get zIndex(): number { return this._tag.zIndex; }
|
|
84
77
|
set zIndex(val: number) { this._tag.zIndex = val; }
|
|
85
78
|
|
|
86
|
-
/**
|
|
87
|
-
* Whether the object should be rendered.
|
|
88
|
-
* @deprecated Use getComponent(VisibilityComponent).visible
|
|
89
|
-
*/
|
|
90
|
-
get visible(): boolean { return this._visibility.visible; }
|
|
91
|
-
set visible(val: boolean) { this._visibility.visible = val; }
|
|
92
|
-
|
|
93
79
|
/**
|
|
94
80
|
* The world-space position of the object.
|
|
95
81
|
* Getter returns world position, setter sets local position.
|
|
@@ -155,34 +141,6 @@ export default abstract class GameObject {
|
|
|
155
141
|
val?._transform.children.add(this._transform);
|
|
156
142
|
}
|
|
157
143
|
|
|
158
|
-
/**
|
|
159
|
-
* Current velocity in pixels per second.
|
|
160
|
-
* @deprecated Use getComponent(PhysicsComponent).velocity
|
|
161
|
-
*/
|
|
162
|
-
get velocity(): Vector2 { return this._physics.velocity; }
|
|
163
|
-
set velocity(val: Vector2) { this._physics.velocity = val; }
|
|
164
|
-
|
|
165
|
-
/**
|
|
166
|
-
* Current acceleration in pixels per second squared.
|
|
167
|
-
* @deprecated Use getComponent(PhysicsComponent).acceleration
|
|
168
|
-
*/
|
|
169
|
-
get acceleration(): Vector2 { return this._physics.acceleration; }
|
|
170
|
-
set acceleration(val: Vector2) { this._physics.acceleration = val; }
|
|
171
|
-
|
|
172
|
-
/**
|
|
173
|
-
* Mass of the object (used for physics resolution).
|
|
174
|
-
* @deprecated Use getComponent(PhysicsComponent).mass
|
|
175
|
-
*/
|
|
176
|
-
get mass(): number { return this._physics.mass; }
|
|
177
|
-
set mass(val: number) { this._physics.mass = val; }
|
|
178
|
-
|
|
179
|
-
/**
|
|
180
|
-
* Whether the object is immovable (e.g., walls).
|
|
181
|
-
* @deprecated Use getComponent(PhysicsComponent).isStatic
|
|
182
|
-
*/
|
|
183
|
-
get isStatic(): boolean { return this._physics.isStatic; }
|
|
184
|
-
set isStatic(val: boolean) { this._physics.isStatic = val; }
|
|
185
|
-
|
|
186
144
|
/**
|
|
187
145
|
* Adds a component to this entity.
|
|
188
146
|
* @param component The component to add.
|
|
@@ -193,7 +151,7 @@ export default abstract class GameObject {
|
|
|
193
151
|
|
|
194
152
|
// Also index by RenderComponent if it is one, to allow abstract querying.
|
|
195
153
|
// Use flag instead of instanceof to work across potential module duplications.
|
|
196
|
-
if ((component as unknown as { isRenderComponent: boolean }).isRenderComponent) {
|
|
154
|
+
if ((component as unknown as { isRenderComponent: boolean; }).isRenderComponent) {
|
|
197
155
|
this._components.set('RenderComponent', component);
|
|
198
156
|
}
|
|
199
157
|
|
|
@@ -204,7 +162,7 @@ export default abstract class GameObject {
|
|
|
204
162
|
* Removes a component from this entity by its class.
|
|
205
163
|
* @param componentClass The class of the component to remove.
|
|
206
164
|
*/
|
|
207
|
-
removeComponent<T extends Component>(componentClass: { new
|
|
165
|
+
removeComponent<T extends Component>(componentClass: { new(...args: unknown[]): T; }) {
|
|
208
166
|
this._components.delete(componentClass.name);
|
|
209
167
|
}
|
|
210
168
|
|
|
@@ -213,7 +171,7 @@ export default abstract class GameObject {
|
|
|
213
171
|
* @param componentClass The class of the component to check for.
|
|
214
172
|
*/
|
|
215
173
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
|
|
216
|
-
hasComponent<T extends Component>(componentClass: Function & { prototype: T }): boolean {
|
|
174
|
+
hasComponent<T extends Component>(componentClass: Function & { prototype: T; }): boolean {
|
|
217
175
|
return this._components.has(componentClass.name);
|
|
218
176
|
}
|
|
219
177
|
|
|
@@ -221,7 +179,7 @@ export default abstract class GameObject {
|
|
|
221
179
|
* @param componentClass The class of the component to retrieve.
|
|
222
180
|
*/
|
|
223
181
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
|
|
224
|
-
getComponent<T extends Component>(componentClass: Function & { prototype: T }): T | undefined {
|
|
182
|
+
getComponent<T extends Component>(componentClass: Function & { prototype: T; }): T | undefined {
|
|
225
183
|
return this._components.get(componentClass.name) as T;
|
|
226
184
|
}
|
|
227
185
|
|
package/src/Physics.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import Vector2 from './Vector2.js';
|
|
2
2
|
import GameObject from './GameObject.js';
|
|
3
3
|
import Circle from './Circle.js';
|
|
4
|
+
import PhysicsComponent from './PhysicsComponent.js';
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* Utility class for collision detection between game objects.
|
|
@@ -38,13 +39,16 @@ export default class Physics {
|
|
|
38
39
|
);
|
|
39
40
|
}
|
|
40
41
|
|
|
41
|
-
|
|
42
|
-
|
|
42
|
+
const obj1Static = obj1.getComponent(PhysicsComponent)?.isStatic ?? false;
|
|
43
|
+
const obj2Static = obj2.getComponent(PhysicsComponent)?.isStatic ?? false;
|
|
44
|
+
|
|
45
|
+
if (isColliding && (!obj1Static || !obj2Static)) {
|
|
46
|
+
this.resolveCollision(obj1, obj2, obj1Static, obj2Static);
|
|
43
47
|
}
|
|
44
48
|
|
|
45
49
|
return isColliding;
|
|
46
50
|
}
|
|
47
|
-
private static resolveCollision(obj1: GameObject, obj2: GameObject) {
|
|
51
|
+
private static resolveCollision(obj1: GameObject, obj2: GameObject, obj1Static: boolean, obj2Static: boolean) {
|
|
48
52
|
// Calculate overlap
|
|
49
53
|
const overlapX = Math.min(
|
|
50
54
|
obj1.position.x + obj1.width - obj2.position.x,
|
|
@@ -58,19 +62,19 @@ export default class Physics {
|
|
|
58
62
|
// Push apart
|
|
59
63
|
if (overlapX < overlapY) {
|
|
60
64
|
if (obj1.position.x < obj2.position.x) {
|
|
61
|
-
if (!
|
|
62
|
-
if (!
|
|
65
|
+
if (!obj1Static) obj1.localPosition.x -= overlapX / 2;
|
|
66
|
+
if (!obj2Static) obj2.localPosition.x += overlapX / 2;
|
|
63
67
|
} else {
|
|
64
|
-
if (!
|
|
65
|
-
if (!
|
|
68
|
+
if (!obj1Static) obj1.localPosition.x += overlapX / 2;
|
|
69
|
+
if (!obj2Static) obj2.localPosition.x -= overlapX / 2;
|
|
66
70
|
}
|
|
67
71
|
} else {
|
|
68
72
|
if (obj1.position.y < obj2.position.y) {
|
|
69
|
-
if (!
|
|
70
|
-
if (!
|
|
73
|
+
if (!obj1Static) obj1.localPosition.y -= overlapY / 2;
|
|
74
|
+
if (!obj2Static) obj2.localPosition.y += overlapY / 2;
|
|
71
75
|
} else {
|
|
72
|
-
if (!
|
|
73
|
-
if (!
|
|
76
|
+
if (!obj1Static) obj1.localPosition.y += overlapY / 2;
|
|
77
|
+
if (!obj2Static) obj2.localPosition.y -= overlapY / 2;
|
|
74
78
|
}
|
|
75
79
|
}
|
|
76
80
|
}
|
package/src/RenderingSystem.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import System from './System.js';
|
|
2
2
|
import type GameObject from './GameObject.js';
|
|
3
3
|
import RenderComponent from './RenderComponent.js';
|
|
4
|
+
import VisibilityComponent from './VisibilityComponent.js';
|
|
4
5
|
import Engine from './Engine.js';
|
|
5
6
|
|
|
6
7
|
/**
|
|
@@ -54,7 +55,10 @@ export default class RenderingSystem extends System {
|
|
|
54
55
|
) {
|
|
55
56
|
// Find any RenderComponent on the entity
|
|
56
57
|
const renderable = object.getComponent(RenderComponent);
|
|
57
|
-
|
|
58
|
+
const visibility = object.getComponent(VisibilityComponent);
|
|
59
|
+
const isVisible = visibility ? visibility.visible : true;
|
|
60
|
+
|
|
61
|
+
if (renderable && isVisible) {
|
|
58
62
|
renderable.draw(this.ctx);
|
|
59
63
|
}
|
|
60
64
|
|