dino-ge 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Circle.d.ts +0 -4
- package/dist/Circle.js +1 -4
- package/dist/Circle.js.map +1 -1
- package/dist/Component.d.ts +9 -0
- package/dist/Component.js +7 -0
- package/dist/Component.js.map +1 -0
- package/dist/Engine.js +10 -6
- package/dist/Engine.js.map +1 -1
- package/dist/GameObject.d.ts +48 -10
- package/dist/GameObject.js +56 -9
- package/dist/GameObject.js.map +1 -1
- package/dist/PhysicsComponent.d.ts +15 -0
- package/dist/PhysicsComponent.js +19 -0
- package/dist/PhysicsComponent.js.map +1 -0
- package/dist/Rectangle.d.ts +0 -4
- package/dist/Rectangle.js +1 -4
- package/dist/Rectangle.js.map +1 -1
- package/dist/Sprite.d.ts +0 -2
- package/dist/Sprite.js.map +1 -1
- package/dist/Text.d.ts +0 -2
- package/dist/Text.js.map +1 -1
- package/dist/Tilemap.d.ts +0 -2
- package/dist/Tilemap.js.map +1 -1
- package/dist/TransformComponent.d.ts +13 -0
- package/dist/TransformComponent.js +17 -0
- package/dist/TransformComponent.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/Circle.ts +1 -6
- package/src/Component.ts +10 -0
- package/src/Engine.ts +11 -7
- package/src/GameObject.ts +71 -10
- package/src/PhysicsComponent.ts +16 -0
- package/src/Rectangle.ts +1 -5
- package/src/Sprite.ts +0 -2
- package/src/Text.ts +0 -2
- package/src/Tilemap.ts +0 -2
- package/src/TransformComponent.ts +14 -0
- package/src/index.ts +3 -0
package/dist/Circle.d.ts
CHANGED
|
@@ -19,14 +19,10 @@ export interface CircleProps {
|
|
|
19
19
|
* A basic circle shape that can be drawn to the screen.
|
|
20
20
|
*/
|
|
21
21
|
export default class Circle extends GameObject {
|
|
22
|
-
private _position;
|
|
23
22
|
/** Radius of the circle. */
|
|
24
23
|
radius: number;
|
|
25
24
|
/** Fill colour. */
|
|
26
25
|
colour: string;
|
|
27
|
-
/** Gets or sets the position of the circle. */
|
|
28
|
-
get position(): Vector2;
|
|
29
|
-
set position(val: Vector2);
|
|
30
26
|
/** Width of the circle (radius * 2). */
|
|
31
27
|
get width(): number;
|
|
32
28
|
/** Height of the circle (radius * 2). */
|
package/dist/Circle.js
CHANGED
|
@@ -9,9 +9,6 @@ const defaultProps = {
|
|
|
9
9
|
* A basic circle shape that can be drawn to the screen.
|
|
10
10
|
*/
|
|
11
11
|
export default class Circle extends GameObject {
|
|
12
|
-
/** Gets or sets the position of the circle. */
|
|
13
|
-
get position() { return this._position; }
|
|
14
|
-
set position(val) { this._position = val; }
|
|
15
12
|
/** Width of the circle (radius * 2). */
|
|
16
13
|
get width() { return this.radius * 2; }
|
|
17
14
|
/** Height of the circle (radius * 2). */
|
|
@@ -30,7 +27,7 @@ export default class Circle extends GameObject {
|
|
|
30
27
|
throw new Error('You must provide a radius for Circle');
|
|
31
28
|
}
|
|
32
29
|
this.tag = defaultedProps.tag;
|
|
33
|
-
this.
|
|
30
|
+
this.position = defaultedProps.position;
|
|
34
31
|
this.radius = defaultedProps.radius;
|
|
35
32
|
this.colour = defaultedProps.colour;
|
|
36
33
|
this.zIndex = defaultedProps.zIndex;
|
package/dist/Circle.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Circle.js","sourceRoot":"","sources":["../src/Circle.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,UAAU,MAAM,iBAAiB,CAAC;AAkBzC,MAAM,YAAY,GAAG;IACnB,GAAG,EAAE,QAAQ;IACb,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,CAAC;CACV,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,UAAU;
|
|
1
|
+
{"version":3,"file":"Circle.js","sourceRoot":"","sources":["../src/Circle.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,UAAU,MAAM,iBAAiB,CAAC;AAkBzC,MAAM,YAAY,GAAG;IACnB,GAAG,EAAE,QAAQ;IACb,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,CAAC;CACV,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,UAAU;IAM5C,wCAAwC;IACxC,IAAI,KAAK,KAAK,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IACvC,yCAAyC;IACzC,IAAI,MAAM,KAAK,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAExC,kCAAkC;IAClC,IAAI,MAAM;QACR,OAAO,IAAI,OAAO,CAChB,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAC7B,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAC9B,CAAC;IACJ,CAAC;IAED,YAAY,KAAkB;QAC5B,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;QAE1E,MAAM,cAAc,mCACf,YAAY,GACZ,KAAK,CACT,CAAC;QAEF,IAAI,CAAC,CAAC,cAAc,CAAC,QAAQ,YAAY,OAAO,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,CAAC,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;QAEpC,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED,4DAA4D;IAC5D,IAAI,CAAC,GAA6B;QAChC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,GAAG,CAAC,SAAS,EAAE,CAAC;QAChB,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QACzD,GAAG,CAAC,IAAI,EAAE,CAAC;QACX,GAAG,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC;CACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type GameObject from './GameObject.js';
|
|
2
|
+
/**
|
|
3
|
+
* Base class for all components in the Entity Component System.
|
|
4
|
+
* Components are pure data containers that can be attached to GameObjects.
|
|
5
|
+
*/
|
|
6
|
+
export default abstract class Component {
|
|
7
|
+
/** Reference to the GameObject this component is attached to. */
|
|
8
|
+
gameObject?: GameObject;
|
|
9
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Component.js","sourceRoot":"","sources":["../src/Component.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAgB,SAAS;CAGtC"}
|
package/dist/Engine.js
CHANGED
|
@@ -22,6 +22,7 @@ var _Engine_instances, _a, _Engine_canvas, _Engine_ctx, _Engine_window, _Engine_
|
|
|
22
22
|
import Canvas from './Canvas.js';
|
|
23
23
|
import Input from './Input.js';
|
|
24
24
|
import Camera from './Camera.js';
|
|
25
|
+
import PhysicsComponent from './PhysicsComponent.js';
|
|
25
26
|
/**
|
|
26
27
|
* Specialized Set for managing game objects with helper methods.
|
|
27
28
|
*/
|
|
@@ -199,12 +200,15 @@ _a = Engine, _Engine_canvas = new WeakMap(), _Engine_ctx = new WeakMap(), _Engin
|
|
|
199
200
|
}, _Engine_fixedUpdate = function _Engine_fixedUpdate() {
|
|
200
201
|
const objects = _a.currentScene ? _a.currentScene.objects : _a.objects;
|
|
201
202
|
objects.forEach((object) => {
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
203
|
+
const physics = object.getComponent(PhysicsComponent);
|
|
204
|
+
if (physics) {
|
|
205
|
+
// Apply acceleration to velocity
|
|
206
|
+
physics.velocity.x += physics.acceleration.x * __classPrivateFieldGet(this, _Engine_fixedDelta, "f");
|
|
207
|
+
physics.velocity.y += physics.acceleration.y * __classPrivateFieldGet(this, _Engine_fixedDelta, "f");
|
|
208
|
+
// Apply velocity to position
|
|
209
|
+
object.position.x += physics.velocity.x * __classPrivateFieldGet(this, _Engine_fixedDelta, "f");
|
|
210
|
+
object.position.y += physics.velocity.y * __classPrivateFieldGet(this, _Engine_fixedDelta, "f");
|
|
211
|
+
}
|
|
208
212
|
});
|
|
209
213
|
if (this.callbacks.fixedUpdate) {
|
|
210
214
|
this.callbacks.fixedUpdate();
|
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
|
@@ -1,26 +1,64 @@
|
|
|
1
1
|
import Vector2 from './Vector2.js';
|
|
2
|
+
import Component from './Component.js';
|
|
2
3
|
/**
|
|
3
4
|
* Base class for all entities in the game world.
|
|
4
5
|
* Provides properties for physics, rendering, and lifecycle management.
|
|
6
|
+
* Acts as the 'Entity' in our evolving Entity Component System.
|
|
5
7
|
*/
|
|
6
8
|
export default abstract class GameObject {
|
|
7
9
|
/** A unique identifier for the object type. */
|
|
8
10
|
tag: string;
|
|
9
11
|
/** Rendering order (lower is background, higher is foreground). */
|
|
10
12
|
zIndex: number;
|
|
11
|
-
/**
|
|
12
|
-
|
|
13
|
-
/** Current acceleration in pixels per second squared. */
|
|
14
|
-
acceleration: Vector2;
|
|
15
|
-
/** Mass of the object (used for physics resolution). */
|
|
16
|
-
mass: number;
|
|
17
|
-
/** Whether the object is immovable (e.g., walls). */
|
|
18
|
-
isStatic: boolean;
|
|
13
|
+
/** Collection of components attached to this entity. */
|
|
14
|
+
private _components;
|
|
19
15
|
/** Whether the object should be rendered. */
|
|
20
16
|
visible: boolean;
|
|
17
|
+
/** Internal components for backward compatibility and core logic. */
|
|
18
|
+
private _physics;
|
|
19
|
+
private _transform;
|
|
21
20
|
constructor(tag: string, zIndex: number);
|
|
22
|
-
/**
|
|
23
|
-
|
|
21
|
+
/**
|
|
22
|
+
* The world-space position of the object.
|
|
23
|
+
* Proxies to the TransformComponent.
|
|
24
|
+
*/
|
|
25
|
+
get position(): Vector2;
|
|
26
|
+
set position(val: Vector2);
|
|
27
|
+
/**
|
|
28
|
+
* Current velocity in pixels per second.
|
|
29
|
+
* @deprecated Use getComponent(PhysicsComponent).velocity
|
|
30
|
+
*/
|
|
31
|
+
get velocity(): Vector2;
|
|
32
|
+
set velocity(val: Vector2);
|
|
33
|
+
/**
|
|
34
|
+
* Current acceleration in pixels per second squared.
|
|
35
|
+
* @deprecated Use getComponent(PhysicsComponent).acceleration
|
|
36
|
+
*/
|
|
37
|
+
get acceleration(): Vector2;
|
|
38
|
+
set acceleration(val: Vector2);
|
|
39
|
+
/**
|
|
40
|
+
* Mass of the object (used for physics resolution).
|
|
41
|
+
* @deprecated Use getComponent(PhysicsComponent).mass
|
|
42
|
+
*/
|
|
43
|
+
get mass(): number;
|
|
44
|
+
set mass(val: number);
|
|
45
|
+
/**
|
|
46
|
+
* Whether the object is immovable (e.g., walls).
|
|
47
|
+
* @deprecated Use getComponent(PhysicsComponent).isStatic
|
|
48
|
+
*/
|
|
49
|
+
get isStatic(): boolean;
|
|
50
|
+
set isStatic(val: boolean);
|
|
51
|
+
/**
|
|
52
|
+
* Adds a component to this entity.
|
|
53
|
+
* @param component The component to add.
|
|
54
|
+
*/
|
|
55
|
+
addComponent(component: Component): void;
|
|
56
|
+
/** Gets a component from this entity by its class.
|
|
57
|
+
* @param componentClass The class of the component to retrieve.
|
|
58
|
+
*/
|
|
59
|
+
getComponent<T extends Component>(componentClass: {
|
|
60
|
+
new (...args: any[]): T;
|
|
61
|
+
}): T | undefined;
|
|
24
62
|
/** The width of the object in pixels. */
|
|
25
63
|
abstract get width(): number;
|
|
26
64
|
/** The height of the object in pixels. */
|
package/dist/GameObject.js
CHANGED
|
@@ -1,23 +1,70 @@
|
|
|
1
1
|
import Engine from './Engine.js';
|
|
2
|
-
import
|
|
2
|
+
import PhysicsComponent from './PhysicsComponent.js';
|
|
3
|
+
import TransformComponent from './TransformComponent.js';
|
|
3
4
|
/**
|
|
4
5
|
* Base class for all entities in the game world.
|
|
5
6
|
* Provides properties for physics, rendering, and lifecycle management.
|
|
7
|
+
* Acts as the 'Entity' in our evolving Entity Component System.
|
|
6
8
|
*/
|
|
7
9
|
export default class GameObject {
|
|
8
10
|
constructor(tag, zIndex) {
|
|
9
|
-
/**
|
|
10
|
-
this.
|
|
11
|
-
/** Current acceleration in pixels per second squared. */
|
|
12
|
-
this.acceleration = new Vector2(0, 0);
|
|
13
|
-
/** Mass of the object (used for physics resolution). */
|
|
14
|
-
this.mass = 1;
|
|
15
|
-
/** Whether the object is immovable (e.g., walls). */
|
|
16
|
-
this.isStatic = false;
|
|
11
|
+
/** Collection of components attached to this entity. */
|
|
12
|
+
this._components = new Map();
|
|
17
13
|
/** Whether the object should be rendered. */
|
|
18
14
|
this.visible = true;
|
|
19
15
|
this.tag = tag;
|
|
20
16
|
this.zIndex = zIndex;
|
|
17
|
+
// Initialize with core components for now to maintain backward compatibility.
|
|
18
|
+
// In a pure ECS, components would be added as needed.
|
|
19
|
+
this._physics = new PhysicsComponent();
|
|
20
|
+
this.addComponent(this._physics);
|
|
21
|
+
this._transform = new TransformComponent();
|
|
22
|
+
this.addComponent(this._transform);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* The world-space position of the object.
|
|
26
|
+
* Proxies to the TransformComponent.
|
|
27
|
+
*/
|
|
28
|
+
get position() { return this._transform.position; }
|
|
29
|
+
set position(val) { this._transform.position = val; }
|
|
30
|
+
/**
|
|
31
|
+
* Current velocity in pixels per second.
|
|
32
|
+
* @deprecated Use getComponent(PhysicsComponent).velocity
|
|
33
|
+
*/
|
|
34
|
+
get velocity() { return this._physics.velocity; }
|
|
35
|
+
set velocity(val) { this._physics.velocity = val; }
|
|
36
|
+
/**
|
|
37
|
+
* Current acceleration in pixels per second squared.
|
|
38
|
+
* @deprecated Use getComponent(PhysicsComponent).acceleration
|
|
39
|
+
*/
|
|
40
|
+
get acceleration() { return this._physics.acceleration; }
|
|
41
|
+
set acceleration(val) { this._physics.acceleration = val; }
|
|
42
|
+
/**
|
|
43
|
+
* Mass of the object (used for physics resolution).
|
|
44
|
+
* @deprecated Use getComponent(PhysicsComponent).mass
|
|
45
|
+
*/
|
|
46
|
+
get mass() { return this._physics.mass; }
|
|
47
|
+
set mass(val) { this._physics.mass = val; }
|
|
48
|
+
/**
|
|
49
|
+
* Whether the object is immovable (e.g., walls).
|
|
50
|
+
* @deprecated Use getComponent(PhysicsComponent).isStatic
|
|
51
|
+
*/
|
|
52
|
+
get isStatic() { return this._physics.isStatic; }
|
|
53
|
+
set isStatic(val) { this._physics.isStatic = val; }
|
|
54
|
+
/**
|
|
55
|
+
* Adds a component to this entity.
|
|
56
|
+
* @param component The component to add.
|
|
57
|
+
*/
|
|
58
|
+
addComponent(component) {
|
|
59
|
+
const key = component.constructor.name;
|
|
60
|
+
this._components.set(key, component);
|
|
61
|
+
component.gameObject = this;
|
|
62
|
+
}
|
|
63
|
+
/** Gets a component from this entity by its class.
|
|
64
|
+
* @param componentClass The class of the component to retrieve.
|
|
65
|
+
*/
|
|
66
|
+
getComponent(componentClass) {
|
|
67
|
+
return this._components.get(componentClass.name);
|
|
21
68
|
}
|
|
22
69
|
/**
|
|
23
70
|
* Registers the object with the active scene or global engine loop.
|
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;
|
|
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;AAEzD;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAgB,UAAU;IAgBtC,YAAY,GAAW,EAAE,MAAc;QAVvC,wDAAwD;QAChD,gBAAW,GAA2B,IAAI,GAAG,EAAE,CAAC;QAExD,6CAA6C;QAC7C,YAAO,GAAY,IAAI,CAAC;QAOtB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,8EAA8E;QAC9E,sDAAsD;QACtD,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACvC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEjC,IAAI,CAAC,UAAU,GAAG,IAAI,kBAAkB,EAAE,CAAC;QAC3C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAED;;;OAGG;IACH,IAAI,QAAQ,KAAc,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5D,IAAI,QAAQ,CAAC,GAAY,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC;IAE9D;;;OAGG;IACH,IAAI,QAAQ,KAAc,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1D,IAAI,QAAQ,CAAC,GAAY,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC;IAE5D;;;OAGG;IACH,IAAI,YAAY,KAAc,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;IAClE,IAAI,YAAY,CAAC,GAAY,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC;IAEpE;;;OAGG;IACH,IAAI,IAAI,KAAa,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACjD,IAAI,IAAI,CAAC,GAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;IAEnD;;;OAGG;IACH,IAAI,QAAQ,KAAc,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1D,IAAI,QAAQ,CAAC,GAAY,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC;IAE5D;;;OAGG;IACH,YAAY,CAAC,SAAoB;QAC/B,MAAM,GAAG,GAAG,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC;QACvC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACrC,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,YAAY,CAAsB,cAA2C;QAC3E,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAM,CAAC;IACxD,CAAC;IAaD;;OAEG;IACH,YAAY;QACV,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,WAAW;QACT,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;CACF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import Component from './Component.js';
|
|
2
|
+
import Vector2 from './Vector2.js';
|
|
3
|
+
/**
|
|
4
|
+
* Component that holds physics-related data for a GameObject.
|
|
5
|
+
*/
|
|
6
|
+
export default class PhysicsComponent extends Component {
|
|
7
|
+
/** Current velocity in pixels per second. */
|
|
8
|
+
velocity: Vector2;
|
|
9
|
+
/** Current acceleration in pixels per second squared. */
|
|
10
|
+
acceleration: Vector2;
|
|
11
|
+
/** Mass of the object (used for physics resolution). */
|
|
12
|
+
mass: number;
|
|
13
|
+
/** Whether the object is immovable (e.g., walls). */
|
|
14
|
+
isStatic: boolean;
|
|
15
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import Component from './Component.js';
|
|
2
|
+
import Vector2 from './Vector2.js';
|
|
3
|
+
/**
|
|
4
|
+
* Component that holds physics-related data for a GameObject.
|
|
5
|
+
*/
|
|
6
|
+
export default class PhysicsComponent extends Component {
|
|
7
|
+
constructor() {
|
|
8
|
+
super(...arguments);
|
|
9
|
+
/** Current velocity in pixels per second. */
|
|
10
|
+
this.velocity = new Vector2(0, 0);
|
|
11
|
+
/** Current acceleration in pixels per second squared. */
|
|
12
|
+
this.acceleration = new Vector2(0, 0);
|
|
13
|
+
/** Mass of the object (used for physics resolution). */
|
|
14
|
+
this.mass = 1;
|
|
15
|
+
/** Whether the object is immovable (e.g., walls). */
|
|
16
|
+
this.isStatic = false;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=PhysicsComponent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PhysicsComponent.js","sourceRoot":"","sources":["../src/PhysicsComponent.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,SAAS;IAAvD;;QACE,6CAA6C;QAC7C,aAAQ,GAAY,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtC,yDAAyD;QACzD,iBAAY,GAAY,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1C,wDAAwD;QACxD,SAAI,GAAW,CAAC,CAAC;QACjB,qDAAqD;QACrD,aAAQ,GAAY,KAAK,CAAC;IAC5B,CAAC;CAAA"}
|
package/dist/Rectangle.d.ts
CHANGED
|
@@ -21,14 +21,10 @@ export interface RectProps {
|
|
|
21
21
|
* A basic rectangle shape that can be drawn to the screen.
|
|
22
22
|
*/
|
|
23
23
|
export default class Rectangle extends GameObject {
|
|
24
|
-
private _position;
|
|
25
24
|
private _width;
|
|
26
25
|
private _height;
|
|
27
26
|
/** Fill colour. */
|
|
28
27
|
colour: string;
|
|
29
|
-
/** Gets or sets the top-left position. */
|
|
30
|
-
get position(): Vector2;
|
|
31
|
-
set position(val: Vector2);
|
|
32
28
|
/** Gets or sets the width. */
|
|
33
29
|
get width(): number;
|
|
34
30
|
set width(val: number);
|
package/dist/Rectangle.js
CHANGED
|
@@ -7,9 +7,6 @@ const defaultProps = {
|
|
|
7
7
|
* A basic rectangle shape that can be drawn to the screen.
|
|
8
8
|
*/
|
|
9
9
|
export default class Rectangle extends GameObject {
|
|
10
|
-
/** Gets or sets the top-left position. */
|
|
11
|
-
get position() { return this._position; }
|
|
12
|
-
set position(val) { this._position = val; }
|
|
13
10
|
/** Gets or sets the width. */
|
|
14
11
|
get width() { return this._width; }
|
|
15
12
|
set width(val) { this._width = val; }
|
|
@@ -26,7 +23,7 @@ export default class Rectangle extends GameObject {
|
|
|
26
23
|
throw new Error('You must provide a width and height for Rectangle');
|
|
27
24
|
}
|
|
28
25
|
this.tag = defaultedProps.tag;
|
|
29
|
-
this.
|
|
26
|
+
this.position = defaultedProps.position;
|
|
30
27
|
this._width = defaultedProps.width;
|
|
31
28
|
this._height = defaultedProps.height;
|
|
32
29
|
this.colour = defaultedProps.colour;
|
package/dist/Rectangle.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Rectangle.js","sourceRoot":"","sources":["../src/Rectangle.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,UAAU,MAAM,iBAAiB,CAAC;AAoBzC,MAAM,YAAY,GAAG;IACnB,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;CACxC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,UAAU;
|
|
1
|
+
{"version":3,"file":"Rectangle.js","sourceRoot":"","sources":["../src/Rectangle.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,UAAU,MAAM,iBAAiB,CAAC;AAoBzC,MAAM,YAAY,GAAG;IACnB,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;CACxC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,UAAU;IAM/C,8BAA8B;IAC9B,IAAI,KAAK,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACnC,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;IACrC,+BAA+B;IAC/B,IAAI,MAAM,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACrC,IAAI,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC;IAEvC,YAAY,KAAgB;QAC1B,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;QAE1E,MAAM,cAAc,mCACf,YAAY,GACZ,KAAK,CACT,CAAA;QAED,IAAI,CAAC,CAAC,cAAc,CAAC,QAAQ,YAAY,OAAO,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC;QAED,IAAI,CAAC,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;QAEpC,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED,+DAA+D;IAC/D,IAAI,CAAC,GAA6B;QAChC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;QAC5B,GAAG,CAAC,QAAQ,CACV,IAAI,CAAC,QAAQ,CAAC,CAAC,EACf,IAAI,CAAC,QAAQ,CAAC,CAAC,EACf,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,CACZ,CAAC;IACJ,CAAC;CACF"}
|
package/dist/Sprite.d.ts
CHANGED
|
@@ -32,8 +32,6 @@ export default class Sprite extends GameObject {
|
|
|
32
32
|
rows: number;
|
|
33
33
|
/** Number of columns in the spritesheet. */
|
|
34
34
|
cols: number;
|
|
35
|
-
/** The world position of the sprite. */
|
|
36
|
-
position: Vector2;
|
|
37
35
|
/** The starting column for the current animation loop. */
|
|
38
36
|
startCol: number;
|
|
39
37
|
/** The ending column for the current animation loop. */
|
package/dist/Sprite.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sprite.js","sourceRoot":"","sources":["../src/Sprite.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,UAAU,MAAM,iBAAiB,CAAC;AAEzC,OAAO,cAAc,MAAM,aAAa,CAAC;AAwBzC;;GAEG;AACH,MAAqB,MAAO,SAAQ,UAAU;
|
|
1
|
+
{"version":3,"file":"Sprite.js","sourceRoot":"","sources":["../src/Sprite.ts"],"names":[],"mappings":"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"}
|
package/dist/Text.d.ts
CHANGED
|
@@ -58,8 +58,6 @@ export default class Text extends GameObject {
|
|
|
58
58
|
horizontalAlign: HorizontalAlign;
|
|
59
59
|
/** Vertical alignment. */
|
|
60
60
|
verticalAlign: VerticalAlign;
|
|
61
|
-
/** Anchor position. */
|
|
62
|
-
position: Vector2;
|
|
63
61
|
/** Width of the background box or interaction area. */
|
|
64
62
|
width: number;
|
|
65
63
|
/** Height of the background box or interaction area. */
|
package/dist/Text.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Text.js","sourceRoot":"","sources":["../src/Text.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,UAAU,MAAM,iBAAiB,CAAC;AACzC,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,KAAK,MAAM,YAAY,CAAC;AA+C/B,MAAM,YAAY,GAAG;IACnB,GAAG,EAAE,MAAM;IACX,MAAM,EAAE,OAAO;IACf,QAAQ,EAAE,IAAI,EAAE,KAAK;IACrB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,EAAE;IACR,eAAe,EAAE,QAAQ;IACzB,aAAa,EAAE,QAAQ;IACvB,QAAQ,EAAE,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAC3B,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;CAClB,CAAC;AAEF;;GAEG;AACH,MAAqB,IAAK,SAAQ,UAAU;
|
|
1
|
+
{"version":3,"file":"Text.js","sourceRoot":"","sources":["../src/Text.ts"],"names":[],"mappings":"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"}
|
package/dist/Tilemap.d.ts
CHANGED
|
@@ -31,8 +31,6 @@ export default class Tilemap extends GameObject {
|
|
|
31
31
|
tileSize: number;
|
|
32
32
|
/** Number of columns in the tileset image. */
|
|
33
33
|
tilesetCols: number;
|
|
34
|
-
/** The world position of the tilemap. */
|
|
35
|
-
position: Vector2;
|
|
36
34
|
/** Gets the width of the tilemap in pixels. */
|
|
37
35
|
get width(): number;
|
|
38
36
|
/** Gets the height of the tilemap in pixels. */
|
package/dist/Tilemap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tilemap.js","sourceRoot":"","sources":["../src/Tilemap.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,iBAAiB,CAAC;AAEzC,OAAO,cAAc,MAAM,aAAa,CAAC;AAsBzC;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,UAAU;
|
|
1
|
+
{"version":3,"file":"Tilemap.js","sourceRoot":"","sources":["../src/Tilemap.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,iBAAiB,CAAC;AAEzC,OAAO,cAAc,MAAM,aAAa,CAAC;AAsBzC;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,UAAU;IAU7C,+CAA+C;IAC/C,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC7C,CAAC;IAED,gDAAgD;IAChD,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC1C,CAAC;IAED,YAAY,KAAmB;QAC7B,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAE/B,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACtC,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,IAAI,CAAC,GAA6B;QAChC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAE1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClC,IAAI,SAAS,KAAK,CAAC,CAAC;oBAAE,SAAS,CAAC,aAAa;gBAE7C,MAAM,OAAO,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAEzE,GAAG,CAAC,SAAS,CACX,IAAI,CAAC,OAAO,EACZ,OAAO,EACP,OAAO,EACP,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,EACnC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,EACnC,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,QAAQ,CACd,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import Component from './Component.js';
|
|
2
|
+
import Vector2 from './Vector2.js';
|
|
3
|
+
/**
|
|
4
|
+
* Component that holds the world-space position and potentially rotation/scale.
|
|
5
|
+
*/
|
|
6
|
+
export default class TransformComponent extends Component {
|
|
7
|
+
/** The world-space position. */
|
|
8
|
+
position: Vector2;
|
|
9
|
+
/** The rotation in radians. */
|
|
10
|
+
rotation: number;
|
|
11
|
+
/** The scale of the object. */
|
|
12
|
+
scale: Vector2;
|
|
13
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import Component from './Component.js';
|
|
2
|
+
import Vector2 from './Vector2.js';
|
|
3
|
+
/**
|
|
4
|
+
* Component that holds the world-space position and potentially rotation/scale.
|
|
5
|
+
*/
|
|
6
|
+
export default class TransformComponent extends Component {
|
|
7
|
+
constructor() {
|
|
8
|
+
super(...arguments);
|
|
9
|
+
/** The world-space position. */
|
|
10
|
+
this.position = new Vector2(0, 0);
|
|
11
|
+
/** The rotation in radians. */
|
|
12
|
+
this.rotation = 0;
|
|
13
|
+
/** The scale of the object. */
|
|
14
|
+
this.scale = new Vector2(1, 1);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=TransformComponent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TransformComponent.js","sourceRoot":"","sources":["../src/TransformComponent.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,SAAS;IAAzD;;QACE,gCAAgC;QAChC,aAAQ,GAAY,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtC,+BAA+B;QAC/B,aAAQ,GAAW,CAAC,CAAC;QACrB,+BAA+B;QAC/B,UAAK,GAAY,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrC,CAAC;CAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
export { default as Engine } from './Engine.js';
|
|
2
2
|
export { default as Scene } from './Scene.js';
|
|
3
3
|
export { default as GameObject } from './GameObject.js';
|
|
4
|
+
export { default as Component } from './Component.js';
|
|
5
|
+
export { default as PhysicsComponent } from './PhysicsComponent.js';
|
|
6
|
+
export { default as TransformComponent } from './TransformComponent.js';
|
|
4
7
|
export { default as Sprite } from './Sprite.js';
|
|
5
8
|
export { default as Vector2 } from './Vector2.js';
|
|
6
9
|
export { default as Camera } from './Camera.js';
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
export { default as Engine } from './Engine.js';
|
|
2
2
|
export { default as Scene } from './Scene.js';
|
|
3
3
|
export { default as GameObject } from './GameObject.js';
|
|
4
|
+
export { default as Component } from './Component.js';
|
|
5
|
+
export { default as PhysicsComponent } from './PhysicsComponent.js';
|
|
6
|
+
export { default as TransformComponent } from './TransformComponent.js';
|
|
4
7
|
export { default as Sprite } from './Sprite.js';
|
|
5
8
|
export { default as Vector2 } from './Vector2.js';
|
|
6
9
|
export { default as Camera } from './Camera.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC"}
|
package/package.json
CHANGED
package/src/Circle.ts
CHANGED
|
@@ -27,16 +27,11 @@ const defaultProps = {
|
|
|
27
27
|
* A basic circle shape that can be drawn to the screen.
|
|
28
28
|
*/
|
|
29
29
|
export default class Circle extends GameObject {
|
|
30
|
-
private _position: Vector2;
|
|
31
30
|
/** Radius of the circle. */
|
|
32
31
|
radius: number;
|
|
33
32
|
/** Fill colour. */
|
|
34
33
|
colour: string;
|
|
35
34
|
|
|
36
|
-
/** Gets or sets the position of the circle. */
|
|
37
|
-
get position() { return this._position; }
|
|
38
|
-
set position(val) { this._position = val; }
|
|
39
|
-
|
|
40
35
|
/** Width of the circle (radius * 2). */
|
|
41
36
|
get width() { return this.radius * 2; }
|
|
42
37
|
/** Height of the circle (radius * 2). */
|
|
@@ -67,7 +62,7 @@ export default class Circle extends GameObject {
|
|
|
67
62
|
}
|
|
68
63
|
|
|
69
64
|
this.tag = defaultedProps.tag;
|
|
70
|
-
this.
|
|
65
|
+
this.position = defaultedProps.position;
|
|
71
66
|
this.radius = defaultedProps.radius;
|
|
72
67
|
this.colour = defaultedProps.colour;
|
|
73
68
|
this.zIndex = defaultedProps.zIndex;
|
package/src/Component.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type GameObject from './GameObject.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Base class for all components in the Entity Component System.
|
|
5
|
+
* Components are pure data containers that can be attached to GameObjects.
|
|
6
|
+
*/
|
|
7
|
+
export default abstract class Component {
|
|
8
|
+
/** Reference to the GameObject this component is attached to. */
|
|
9
|
+
public gameObject?: GameObject;
|
|
10
|
+
}
|
package/src/Engine.ts
CHANGED
|
@@ -3,6 +3,7 @@ import GameObject from './GameObject.js';
|
|
|
3
3
|
import Input from './Input.js';
|
|
4
4
|
import Scene from './Scene.js';
|
|
5
5
|
import Camera from './Camera.js';
|
|
6
|
+
import PhysicsComponent from './PhysicsComponent.js';
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* Options for initializing the Engine.
|
|
@@ -208,13 +209,16 @@ export default class Engine {
|
|
|
208
209
|
const objects = Engine.currentScene ? Engine.currentScene.objects : Engine.objects;
|
|
209
210
|
|
|
210
211
|
objects.forEach((object) => {
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
212
|
+
const physics = object.getComponent(PhysicsComponent);
|
|
213
|
+
if (physics) {
|
|
214
|
+
// Apply acceleration to velocity
|
|
215
|
+
physics.velocity.x += physics.acceleration.x * this.#fixedDelta;
|
|
216
|
+
physics.velocity.y += physics.acceleration.y * this.#fixedDelta;
|
|
217
|
+
|
|
218
|
+
// Apply velocity to position
|
|
219
|
+
object.position.x += physics.velocity.x * this.#fixedDelta;
|
|
220
|
+
object.position.y += physics.velocity.y * this.#fixedDelta;
|
|
221
|
+
}
|
|
218
222
|
});
|
|
219
223
|
|
|
220
224
|
if (this.callbacks.fixedUpdate) {
|
package/src/GameObject.ts
CHANGED
|
@@ -1,34 +1,95 @@
|
|
|
1
1
|
import Engine from './Engine.js';
|
|
2
2
|
import Vector2 from './Vector2.js';
|
|
3
|
+
import Component from './Component.js';
|
|
4
|
+
import PhysicsComponent from './PhysicsComponent.js';
|
|
5
|
+
import TransformComponent from './TransformComponent.js';
|
|
3
6
|
|
|
4
7
|
/**
|
|
5
8
|
* Base class for all entities in the game world.
|
|
6
9
|
* Provides properties for physics, rendering, and lifecycle management.
|
|
10
|
+
* Acts as the 'Entity' in our evolving Entity Component System.
|
|
7
11
|
*/
|
|
8
12
|
export default abstract class GameObject {
|
|
9
13
|
/** A unique identifier for the object type. */
|
|
10
14
|
tag: string;
|
|
11
15
|
/** Rendering order (lower is background, higher is foreground). */
|
|
12
16
|
zIndex: number;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
acceleration: Vector2 = new Vector2(0, 0);
|
|
17
|
-
/** Mass of the object (used for physics resolution). */
|
|
18
|
-
mass: number = 1;
|
|
19
|
-
/** Whether the object is immovable (e.g., walls). */
|
|
20
|
-
isStatic: boolean = false;
|
|
17
|
+
|
|
18
|
+
/** Collection of components attached to this entity. */
|
|
19
|
+
private _components: Map<string, Component> = new Map();
|
|
21
20
|
|
|
22
21
|
/** Whether the object should be rendered. */
|
|
23
22
|
visible: boolean = true;
|
|
24
23
|
|
|
24
|
+
/** Internal components for backward compatibility and core logic. */
|
|
25
|
+
private _physics: PhysicsComponent;
|
|
26
|
+
private _transform: TransformComponent;
|
|
27
|
+
|
|
25
28
|
constructor(tag: string, zIndex: number) {
|
|
26
29
|
this.tag = tag;
|
|
27
30
|
this.zIndex = zIndex;
|
|
31
|
+
|
|
32
|
+
// Initialize with core components for now to maintain backward compatibility.
|
|
33
|
+
// In a pure ECS, components would be added as needed.
|
|
34
|
+
this._physics = new PhysicsComponent();
|
|
35
|
+
this.addComponent(this._physics);
|
|
36
|
+
|
|
37
|
+
this._transform = new TransformComponent();
|
|
38
|
+
this.addComponent(this._transform);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* The world-space position of the object.
|
|
43
|
+
* Proxies to the TransformComponent.
|
|
44
|
+
*/
|
|
45
|
+
get position(): Vector2 { return this._transform.position; }
|
|
46
|
+
set position(val: Vector2) { this._transform.position = val; }
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Current velocity in pixels per second.
|
|
50
|
+
* @deprecated Use getComponent(PhysicsComponent).velocity
|
|
51
|
+
*/
|
|
52
|
+
get velocity(): Vector2 { return this._physics.velocity; }
|
|
53
|
+
set velocity(val: Vector2) { this._physics.velocity = val; }
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Current acceleration in pixels per second squared.
|
|
57
|
+
* @deprecated Use getComponent(PhysicsComponent).acceleration
|
|
58
|
+
*/
|
|
59
|
+
get acceleration(): Vector2 { return this._physics.acceleration; }
|
|
60
|
+
set acceleration(val: Vector2) { this._physics.acceleration = val; }
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Mass of the object (used for physics resolution).
|
|
64
|
+
* @deprecated Use getComponent(PhysicsComponent).mass
|
|
65
|
+
*/
|
|
66
|
+
get mass(): number { return this._physics.mass; }
|
|
67
|
+
set mass(val: number) { this._physics.mass = val; }
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Whether the object is immovable (e.g., walls).
|
|
71
|
+
* @deprecated Use getComponent(PhysicsComponent).isStatic
|
|
72
|
+
*/
|
|
73
|
+
get isStatic(): boolean { return this._physics.isStatic; }
|
|
74
|
+
set isStatic(val: boolean) { this._physics.isStatic = val; }
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Adds a component to this entity.
|
|
78
|
+
* @param component The component to add.
|
|
79
|
+
*/
|
|
80
|
+
addComponent(component: Component) {
|
|
81
|
+
const key = component.constructor.name;
|
|
82
|
+
this._components.set(key, component);
|
|
83
|
+
component.gameObject = this;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/** Gets a component from this entity by its class.
|
|
87
|
+
* @param componentClass The class of the component to retrieve.
|
|
88
|
+
*/
|
|
89
|
+
getComponent<T extends Component>(componentClass: { new (...args: any[]): T }): T | undefined {
|
|
90
|
+
return this._components.get(componentClass.name) as T;
|
|
28
91
|
}
|
|
29
92
|
|
|
30
|
-
/** The world-space position of the object. */
|
|
31
|
-
abstract get position(): Vector2;
|
|
32
93
|
/** The width of the object in pixels. */
|
|
33
94
|
abstract get width(): number;
|
|
34
95
|
/** The height of the object in pixels. */
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import Component from './Component.js';
|
|
2
|
+
import Vector2 from './Vector2.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Component that holds physics-related data for a GameObject.
|
|
6
|
+
*/
|
|
7
|
+
export default class PhysicsComponent extends Component {
|
|
8
|
+
/** Current velocity in pixels per second. */
|
|
9
|
+
velocity: Vector2 = new Vector2(0, 0);
|
|
10
|
+
/** Current acceleration in pixels per second squared. */
|
|
11
|
+
acceleration: Vector2 = new Vector2(0, 0);
|
|
12
|
+
/** Mass of the object (used for physics resolution). */
|
|
13
|
+
mass: number = 1;
|
|
14
|
+
/** Whether the object is immovable (e.g., walls). */
|
|
15
|
+
isStatic: boolean = false;
|
|
16
|
+
}
|
package/src/Rectangle.ts
CHANGED
|
@@ -27,15 +27,11 @@ const defaultProps = {
|
|
|
27
27
|
* A basic rectangle shape that can be drawn to the screen.
|
|
28
28
|
*/
|
|
29
29
|
export default class Rectangle extends GameObject {
|
|
30
|
-
private _position: Vector2;
|
|
31
30
|
private _width: number;
|
|
32
31
|
private _height: number;
|
|
33
32
|
/** Fill colour. */
|
|
34
33
|
colour: string;
|
|
35
34
|
|
|
36
|
-
/** Gets or sets the top-left position. */
|
|
37
|
-
get position() { return this._position; }
|
|
38
|
-
set position(val) { this._position = val; }
|
|
39
35
|
/** Gets or sets the width. */
|
|
40
36
|
get width() { return this._width; }
|
|
41
37
|
set width(val) { this._width = val; }
|
|
@@ -60,7 +56,7 @@ export default class Rectangle extends GameObject {
|
|
|
60
56
|
}
|
|
61
57
|
|
|
62
58
|
this.tag = defaultedProps.tag;
|
|
63
|
-
this.
|
|
59
|
+
this.position = defaultedProps.position;
|
|
64
60
|
this._width = defaultedProps.width;
|
|
65
61
|
this._height = defaultedProps.height;
|
|
66
62
|
this.colour = defaultedProps.colour;
|
package/src/Sprite.ts
CHANGED
|
@@ -35,8 +35,6 @@ export default class Sprite extends GameObject {
|
|
|
35
35
|
rows: number;
|
|
36
36
|
/** Number of columns in the spritesheet. */
|
|
37
37
|
cols: number;
|
|
38
|
-
/** The world position of the sprite. */
|
|
39
|
-
position: Vector2;
|
|
40
38
|
/** The starting column for the current animation loop. */
|
|
41
39
|
startCol: number;
|
|
42
40
|
/** The ending column for the current animation loop. */
|
package/src/Text.ts
CHANGED
|
@@ -83,8 +83,6 @@ export default class Text extends GameObject {
|
|
|
83
83
|
horizontalAlign: HorizontalAlign;
|
|
84
84
|
/** Vertical alignment. */
|
|
85
85
|
verticalAlign: VerticalAlign;
|
|
86
|
-
/** Anchor position. */
|
|
87
|
-
position: Vector2;
|
|
88
86
|
/** Width of the background box or interaction area. */
|
|
89
87
|
width: number;
|
|
90
88
|
/** Height of the background box or interaction area. */
|
package/src/Tilemap.ts
CHANGED
|
@@ -34,8 +34,6 @@ export default class Tilemap extends GameObject {
|
|
|
34
34
|
tileSize: number;
|
|
35
35
|
/** Number of columns in the tileset image. */
|
|
36
36
|
tilesetCols: number;
|
|
37
|
-
/** The world position of the tilemap. */
|
|
38
|
-
position: Vector2;
|
|
39
37
|
|
|
40
38
|
/** Gets the width of the tilemap in pixels. */
|
|
41
39
|
get width(): number {
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import Component from './Component.js';
|
|
2
|
+
import Vector2 from './Vector2.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Component that holds the world-space position and potentially rotation/scale.
|
|
6
|
+
*/
|
|
7
|
+
export default class TransformComponent extends Component {
|
|
8
|
+
/** The world-space position. */
|
|
9
|
+
position: Vector2 = new Vector2(0, 0);
|
|
10
|
+
/** The rotation in radians. */
|
|
11
|
+
rotation: number = 0;
|
|
12
|
+
/** The scale of the object. */
|
|
13
|
+
scale: Vector2 = new Vector2(1, 1);
|
|
14
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
export { default as Engine } from './Engine.js';
|
|
2
2
|
export { default as Scene } from './Scene.js';
|
|
3
3
|
export { default as GameObject } from './GameObject.js';
|
|
4
|
+
export { default as Component } from './Component.js';
|
|
5
|
+
export { default as PhysicsComponent } from './PhysicsComponent.js';
|
|
6
|
+
export { default as TransformComponent } from './TransformComponent.js';
|
|
4
7
|
export { default as Sprite } from './Sprite.js';
|
|
5
8
|
export { default as Vector2 } from './Vector2.js';
|
|
6
9
|
export { default as Camera } from './Camera.js';
|