dino-ge 1.2.2 → 1.2.5
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 -2
- package/dist/Circle.js +2 -11
- package/dist/Circle.js.map +1 -1
- package/dist/Engine.d.ts +18 -5
- package/dist/Engine.js +59 -63
- package/dist/Engine.js.map +1 -1
- package/dist/GameObject.d.ts +4 -9
- package/dist/GameObject.js +7 -0
- package/dist/GameObject.js.map +1 -1
- package/dist/Line.d.ts +0 -2
- package/dist/Line.js +2 -9
- package/dist/Line.js.map +1 -1
- package/dist/LineComponent.d.ts +19 -0
- package/dist/LineComponent.js +25 -0
- package/dist/LineComponent.js.map +1 -0
- package/dist/PhysicsSystem.d.ts +14 -0
- package/dist/PhysicsSystem.js +27 -0
- package/dist/PhysicsSystem.js.map +1 -0
- package/dist/Rectangle.d.ts +0 -2
- package/dist/Rectangle.js +2 -7
- package/dist/Rectangle.js.map +1 -1
- package/dist/RenderComponent.d.ts +13 -0
- package/dist/RenderComponent.js +12 -0
- package/dist/RenderComponent.js.map +1 -0
- package/dist/RenderingSystem.d.ts +22 -0
- package/dist/RenderingSystem.js +66 -0
- package/dist/RenderingSystem.js.map +1 -0
- package/dist/ShapeComponent.d.ts +24 -0
- package/dist/ShapeComponent.js +35 -0
- package/dist/ShapeComponent.js.map +1 -0
- package/dist/Sprite.d.ts +20 -17
- package/dist/Sprite.js +37 -80
- package/dist/Sprite.js.map +1 -1
- package/dist/SpriteComponent.d.ts +35 -0
- package/dist/SpriteComponent.js +90 -0
- package/dist/SpriteComponent.js.map +1 -0
- package/dist/System.d.ts +20 -0
- package/dist/System.js +7 -0
- package/dist/System.js.map +1 -0
- package/dist/Text.d.ts +18 -10
- package/dist/Text.js +37 -26
- package/dist/Text.js.map +1 -1
- package/dist/TextComponent.d.ts +29 -0
- package/dist/TextComponent.js +38 -0
- package/dist/TextComponent.js.map +1 -0
- package/dist/Tilemap.d.ts +0 -5
- package/dist/Tilemap.js +2 -18
- package/dist/Tilemap.js.map +1 -1
- package/dist/TilemapComponent.d.ts +20 -0
- package/dist/TilemapComponent.js +33 -0
- package/dist/TilemapComponent.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/Circle.ts +3 -11
- package/src/Engine.ts +60 -58
- package/src/GameObject.ts +12 -8
- package/src/Line.ts +3 -9
- package/src/LineComponent.ts +34 -0
- package/src/PhysicsSystem.ts +29 -0
- package/src/Rectangle.ts +3 -12
- package/src/RenderComponent.ts +15 -0
- package/src/RenderingSystem.ts +84 -0
- package/src/ShapeComponent.ts +50 -0
- package/src/Sprite.ts +45 -102
- package/src/SpriteComponent.ts +124 -0
- package/src/System.ts +22 -0
- package/src/Text.ts +53 -43
- package/src/TextComponent.ts +75 -0
- package/src/Tilemap.ts +8 -29
- package/src/TilemapComponent.ts +55 -0
- package/src/index.ts +9 -0
package/dist/Circle.d.ts
CHANGED
package/dist/Circle.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import Vector2 from './Vector2.js';
|
|
2
2
|
import GameObject from './GameObject.js';
|
|
3
|
+
import ShapeComponent from './ShapeComponent.js';
|
|
3
4
|
const defaultProps = {
|
|
4
5
|
tag: 'circle',
|
|
5
6
|
colour: 'black',
|
|
@@ -31,18 +32,8 @@ export default class Circle extends GameObject {
|
|
|
31
32
|
this.radius = defaultedProps.radius;
|
|
32
33
|
this.colour = defaultedProps.colour;
|
|
33
34
|
this.zIndex = defaultedProps.zIndex;
|
|
35
|
+
this.addComponent(new ShapeComponent('circle', this.colour, this.radius));
|
|
34
36
|
this.registerSelf();
|
|
35
37
|
}
|
|
36
|
-
/** Draws the circle onto the provided rendering context. */
|
|
37
|
-
draw(ctx) {
|
|
38
|
-
if (!this.visible)
|
|
39
|
-
return;
|
|
40
|
-
ctx.beginPath();
|
|
41
|
-
ctx.fillStyle = this.colour;
|
|
42
|
-
const center = this.center;
|
|
43
|
-
ctx.arc(center.x, center.y, this.radius, 0, Math.PI * 2);
|
|
44
|
-
ctx.fill();
|
|
45
|
-
ctx.closePath();
|
|
46
|
-
}
|
|
47
38
|
}
|
|
48
39
|
//# sourceMappingURL=Circle.js.map
|
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;
|
|
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;AACzC,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAkBjD,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,CAAC,IAAI,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAE1E,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;CACF"}
|
package/dist/Engine.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import GameObject from './GameObject.js';
|
|
2
2
|
import Scene from './Scene.js';
|
|
3
3
|
import Camera from './Camera.js';
|
|
4
|
+
import RenderingSystem from './RenderingSystem.js';
|
|
4
5
|
/**
|
|
5
6
|
* Options for initializing the Engine.
|
|
6
7
|
*/
|
|
@@ -43,23 +44,35 @@ export default class Engine {
|
|
|
43
44
|
/**
|
|
44
45
|
* Global set of game objects if no scene is active.
|
|
45
46
|
*/
|
|
46
|
-
static objects: ObjectSet;
|
|
47
|
+
static get objects(): ObjectSet;
|
|
48
|
+
/**
|
|
49
|
+
* Global list of systems that process game objects.
|
|
50
|
+
*/
|
|
51
|
+
private static get _systems();
|
|
52
|
+
/**
|
|
53
|
+
* The global rendering system.
|
|
54
|
+
*/
|
|
55
|
+
static get renderingSystem(): RenderingSystem | undefined;
|
|
56
|
+
static set renderingSystem(val: RenderingSystem | undefined);
|
|
47
57
|
/**
|
|
48
58
|
* Whether the game loop is currently paused.
|
|
49
59
|
*/
|
|
50
|
-
static paused: boolean;
|
|
60
|
+
static get paused(): boolean;
|
|
61
|
+
static set paused(val: boolean);
|
|
51
62
|
/**
|
|
52
63
|
* Toggle for visual debug mode (hitboxes and stats).
|
|
53
64
|
*/
|
|
54
|
-
static debug: boolean;
|
|
65
|
+
static get debug(): boolean;
|
|
66
|
+
static set debug(val: boolean);
|
|
55
67
|
/**
|
|
56
68
|
* The currently selected object in debug mode.
|
|
57
69
|
*/
|
|
58
|
-
static selectedObject: GameObject | null;
|
|
70
|
+
static get selectedObject(): GameObject | null;
|
|
71
|
+
static set selectedObject(val: GameObject | null);
|
|
59
72
|
/**
|
|
60
73
|
* The global camera instance.
|
|
61
74
|
*/
|
|
62
|
-
static camera: Camera;
|
|
75
|
+
static get camera(): Camera;
|
|
63
76
|
private static _currentScene;
|
|
64
77
|
/**
|
|
65
78
|
* Gets the currently active scene.
|
package/dist/Engine.js
CHANGED
|
@@ -18,11 +18,12 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
|
|
|
18
18
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
19
19
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
20
20
|
};
|
|
21
|
-
var _Engine_instances, _a, _Engine_canvas, _Engine_ctx, _Engine_window, _Engine_title, _Engine_oldTimestamp, _Engine_secondsPassed, _Engine_accumulator, _Engine_fixedDelta, _Engine_onLoad, _Engine_update, _Engine_fixedUpdate, _Engine_setBackground, _Engine_draw, _Engine_drawDebug, _Engine_findAllObjects
|
|
21
|
+
var _Engine_instances, _a, _Engine_canvas, _Engine_ctx, _Engine_window, _Engine_title, _Engine_oldTimestamp, _Engine_secondsPassed, _Engine_accumulator, _Engine_fixedDelta, _Engine_onLoad, _Engine_update, _Engine_fixedUpdate, _Engine_setBackground, _Engine_draw, _Engine_drawDebug, _Engine_findAllObjects;
|
|
22
22
|
import Canvas from './Canvas.js';
|
|
23
23
|
import Input from './Input.js';
|
|
24
24
|
import Camera from './Camera.js';
|
|
25
|
-
import
|
|
25
|
+
import PhysicsSystem from './PhysicsSystem.js';
|
|
26
|
+
import RenderingSystem from './RenderingSystem.js';
|
|
26
27
|
/**
|
|
27
28
|
* Specialized Set for managing game objects with helper methods.
|
|
28
29
|
*/
|
|
@@ -36,10 +37,54 @@ export class ObjectSet extends Set {
|
|
|
36
37
|
this.findAll = () => [];
|
|
37
38
|
}
|
|
38
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Shared state for the engine to ensure singletons work across different module loads.
|
|
42
|
+
*/
|
|
43
|
+
const _globalState = globalThis.__DINO_ENGINE_STATE__ || {
|
|
44
|
+
objects: new ObjectSet(),
|
|
45
|
+
paused: false,
|
|
46
|
+
debug: false,
|
|
47
|
+
selectedObject: null,
|
|
48
|
+
camera: new Camera(),
|
|
49
|
+
systems: [new PhysicsSystem()]
|
|
50
|
+
};
|
|
51
|
+
globalThis.__DINO_ENGINE_STATE__ = _globalState;
|
|
39
52
|
/**
|
|
40
53
|
* The core singleton class that manages the game loop, rendering, and scene state.
|
|
41
54
|
*/
|
|
42
55
|
class Engine {
|
|
56
|
+
/**
|
|
57
|
+
* Global set of game objects if no scene is active.
|
|
58
|
+
*/
|
|
59
|
+
static get objects() { return _globalState.objects; }
|
|
60
|
+
/**
|
|
61
|
+
* Global list of systems that process game objects.
|
|
62
|
+
*/
|
|
63
|
+
static get _systems() { return _globalState.systems; }
|
|
64
|
+
/**
|
|
65
|
+
* The global rendering system.
|
|
66
|
+
*/
|
|
67
|
+
static get renderingSystem() { return _globalState.renderingSystem; }
|
|
68
|
+
static set renderingSystem(val) { _globalState.renderingSystem = val; }
|
|
69
|
+
/**
|
|
70
|
+
* Whether the game loop is currently paused.
|
|
71
|
+
*/
|
|
72
|
+
static get paused() { return _globalState.paused; }
|
|
73
|
+
static set paused(val) { _globalState.paused = val; }
|
|
74
|
+
/**
|
|
75
|
+
* Toggle for visual debug mode (hitboxes and stats).
|
|
76
|
+
*/
|
|
77
|
+
static get debug() { return _globalState.debug; }
|
|
78
|
+
static set debug(val) { _globalState.debug = val; }
|
|
79
|
+
/**
|
|
80
|
+
* The currently selected object in debug mode.
|
|
81
|
+
*/
|
|
82
|
+
static get selectedObject() { return _globalState.selectedObject; }
|
|
83
|
+
static set selectedObject(val) { _globalState.selectedObject = val; }
|
|
84
|
+
/**
|
|
85
|
+
* The global camera instance.
|
|
86
|
+
*/
|
|
87
|
+
static get camera() { return _globalState.camera; }
|
|
43
88
|
/**
|
|
44
89
|
* Gets the currently active scene.
|
|
45
90
|
*/
|
|
@@ -91,6 +136,12 @@ class Engine {
|
|
|
91
136
|
__classPrivateFieldSet(this, _Engine_ctx, __classPrivateFieldGet(this, _Engine_canvas, "f").canvas.getContext('2d'), "f");
|
|
92
137
|
this.width = __classPrivateFieldGet(this, _Engine_canvas, "f").canvas.width;
|
|
93
138
|
this.height = __classPrivateFieldGet(this, _Engine_canvas, "f").canvas.height;
|
|
139
|
+
if (_a.renderingSystem) {
|
|
140
|
+
_a.renderingSystem.setContext(__classPrivateFieldGet(this, _Engine_ctx, "f"));
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
_a.renderingSystem = new RenderingSystem(__classPrivateFieldGet(this, _Engine_ctx, "f"));
|
|
144
|
+
}
|
|
94
145
|
__classPrivateFieldSet(this, _Engine_window, document.createElement('div'), "f");
|
|
95
146
|
__classPrivateFieldGet(this, _Engine_window, "f").id = 'canvas-container';
|
|
96
147
|
__classPrivateFieldGet(this, _Engine_window, "f").style.width = defaultedOpts.width;
|
|
@@ -199,15 +250,9 @@ _a = Engine, _Engine_canvas = new WeakMap(), _Engine_ctx = new WeakMap(), _Engin
|
|
|
199
250
|
window.requestAnimationFrame(__classPrivateFieldGet(this, _Engine_instances, "m", _Engine_update).bind(this));
|
|
200
251
|
}, _Engine_fixedUpdate = function _Engine_fixedUpdate() {
|
|
201
252
|
const objects = _a.currentScene ? _a.currentScene.objects : _a.objects;
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
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");
|
|
253
|
+
_a._systems.forEach((system) => {
|
|
254
|
+
if (system.fixedUpdate) {
|
|
255
|
+
system.fixedUpdate(objects, __classPrivateFieldGet(this, _Engine_fixedDelta, "f"));
|
|
211
256
|
}
|
|
212
257
|
});
|
|
213
258
|
if (this.callbacks.fixedUpdate) {
|
|
@@ -219,38 +264,13 @@ _a = Engine, _Engine_canvas = new WeakMap(), _Engine_ctx = new WeakMap(), _Engin
|
|
|
219
264
|
}, _Engine_draw = function _Engine_draw() {
|
|
220
265
|
__classPrivateFieldGet(this, _Engine_instances, "m", _Engine_setBackground).call(this);
|
|
221
266
|
const objects = _a.currentScene ? _a.currentScene.objects : _a.objects;
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
__classPrivateFieldGet(this, _Engine_ctx, "f").scale(_a.camera.zoom, _a.camera.zoom);
|
|
226
|
-
__classPrivateFieldGet(this, _Engine_ctx, "f").translate(-_a.camera.position.x, -_a.camera.position.y);
|
|
227
|
-
__classPrivateFieldGet(_a, _a, "m", _Engine_getSortedArray).call(_a, objects).forEach((object) => {
|
|
228
|
-
// Frustum Culling
|
|
229
|
-
if (object.position.x < bounds.x + bounds.width &&
|
|
230
|
-
object.position.x + object.width > bounds.x &&
|
|
231
|
-
object.position.y < bounds.y + bounds.height &&
|
|
232
|
-
object.position.y + object.height > bounds.y) {
|
|
233
|
-
object.draw(__classPrivateFieldGet(this, _Engine_ctx, "f"));
|
|
234
|
-
}
|
|
235
|
-
});
|
|
267
|
+
if (_a.renderingSystem) {
|
|
268
|
+
_a.renderingSystem.update(objects, 0, _a.debug);
|
|
269
|
+
}
|
|
236
270
|
if (_a.debug) {
|
|
237
271
|
__classPrivateFieldGet(this, _Engine_instances, "m", _Engine_drawDebug).call(this, objects);
|
|
238
272
|
}
|
|
239
|
-
__classPrivateFieldGet(this, _Engine_ctx, "f").restore();
|
|
240
273
|
}, _Engine_drawDebug = function _Engine_drawDebug(objects) {
|
|
241
|
-
__classPrivateFieldGet(this, _Engine_ctx, "f").strokeStyle = 'red';
|
|
242
|
-
__classPrivateFieldGet(this, _Engine_ctx, "f").lineWidth = 1;
|
|
243
|
-
__classPrivateFieldGet(this, _Engine_ctx, "f").font = '12px monospace';
|
|
244
|
-
__classPrivateFieldGet(this, _Engine_ctx, "f").fillStyle = 'red';
|
|
245
|
-
objects.forEach((obj) => {
|
|
246
|
-
// Draw hitbox
|
|
247
|
-
__classPrivateFieldGet(this, _Engine_ctx, "f").strokeStyle = obj === _a.selectedObject ? '#00ff00' : 'red';
|
|
248
|
-
__classPrivateFieldGet(this, _Engine_ctx, "f").lineWidth = obj === _a.selectedObject ? 2 : 1;
|
|
249
|
-
__classPrivateFieldGet(this, _Engine_ctx, "f").strokeRect(obj.position.x, obj.position.y, obj.width, obj.height);
|
|
250
|
-
// Draw tag
|
|
251
|
-
__classPrivateFieldGet(this, _Engine_ctx, "f").fillStyle = __classPrivateFieldGet(this, _Engine_ctx, "f").strokeStyle;
|
|
252
|
-
__classPrivateFieldGet(this, _Engine_ctx, "f").fillText(obj.tag || 'obj', obj.position.x, obj.position.y - 5);
|
|
253
|
-
});
|
|
254
274
|
// Draw Stats Overlay (Top Right)
|
|
255
275
|
__classPrivateFieldGet(this, _Engine_ctx, "f").save();
|
|
256
276
|
__classPrivateFieldGet(this, _Engine_ctx, "f").setTransform(1, 0, 0, 1, 0, 0); // Reset transform for UI
|
|
@@ -296,30 +316,6 @@ _a = Engine, _Engine_canvas = new WeakMap(), _Engine_ctx = new WeakMap(), _Engin
|
|
|
296
316
|
__classPrivateFieldGet(this, _Engine_ctx, "f").restore();
|
|
297
317
|
}, _Engine_findAllObjects = function _Engine_findAllObjects(tag = '') {
|
|
298
318
|
return Array.from(_a.objects).filter((obj) => obj.tag === tag);
|
|
299
|
-
}, _Engine_getSortedArray = function _Engine_getSortedArray(objects = _a.objects) {
|
|
300
|
-
const arr = Array.from(objects);
|
|
301
|
-
arr.sort((a, b) => (a.zIndex > b.zIndex ? 1 : -1));
|
|
302
|
-
return arr;
|
|
303
319
|
};
|
|
304
|
-
/**
|
|
305
|
-
* Global set of game objects if no scene is active.
|
|
306
|
-
*/
|
|
307
|
-
Engine.objects = new ObjectSet();
|
|
308
|
-
/**
|
|
309
|
-
* Whether the game loop is currently paused.
|
|
310
|
-
*/
|
|
311
|
-
Engine.paused = false;
|
|
312
|
-
/**
|
|
313
|
-
* Toggle for visual debug mode (hitboxes and stats).
|
|
314
|
-
*/
|
|
315
|
-
Engine.debug = false;
|
|
316
|
-
/**
|
|
317
|
-
* The currently selected object in debug mode.
|
|
318
|
-
*/
|
|
319
|
-
Engine.selectedObject = null;
|
|
320
|
-
/**
|
|
321
|
-
* The global camera instance.
|
|
322
|
-
*/
|
|
323
|
-
Engine.camera = new Camera();
|
|
324
320
|
export default Engine;
|
|
325
321
|
//# sourceMappingURL=Engine.js.map
|
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
|
@@ -78,24 +78,19 @@ export default abstract class GameObject {
|
|
|
78
78
|
* Checks if this entity has a component of the specified class.
|
|
79
79
|
* @param componentClass The class of the component to check for.
|
|
80
80
|
*/
|
|
81
|
-
hasComponent<T extends Component>(componentClass: {
|
|
82
|
-
|
|
81
|
+
hasComponent<T extends Component>(componentClass: Function & {
|
|
82
|
+
prototype: T;
|
|
83
83
|
}): boolean;
|
|
84
84
|
/** Gets a component from this entity by its class.
|
|
85
85
|
* @param componentClass The class of the component to retrieve.
|
|
86
86
|
*/
|
|
87
|
-
getComponent<T extends Component>(componentClass: {
|
|
88
|
-
|
|
87
|
+
getComponent<T extends Component>(componentClass: Function & {
|
|
88
|
+
prototype: T;
|
|
89
89
|
}): T | undefined;
|
|
90
90
|
/** The width of the object in pixels. */
|
|
91
91
|
abstract get width(): number;
|
|
92
92
|
/** The height of the object in pixels. */
|
|
93
93
|
abstract get height(): number;
|
|
94
|
-
/**
|
|
95
|
-
* Main rendering method for the object.
|
|
96
|
-
* @param ctx The canvas 2D rendering context.
|
|
97
|
-
*/
|
|
98
|
-
abstract draw(ctx: CanvasRenderingContext2D): void;
|
|
99
94
|
/**
|
|
100
95
|
* Registers the object with the active scene or global engine loop.
|
|
101
96
|
*/
|
package/dist/GameObject.js
CHANGED
|
@@ -78,6 +78,11 @@ export default class GameObject {
|
|
|
78
78
|
addComponent(component) {
|
|
79
79
|
const key = component.constructor.name;
|
|
80
80
|
this._components.set(key, component);
|
|
81
|
+
// Also index by RenderComponent if it is one, to allow abstract querying.
|
|
82
|
+
// Use flag instead of instanceof to work across potential module duplications.
|
|
83
|
+
if (component.isRenderComponent) {
|
|
84
|
+
this._components.set('RenderComponent', component);
|
|
85
|
+
}
|
|
81
86
|
component.gameObject = this;
|
|
82
87
|
}
|
|
83
88
|
/**
|
|
@@ -91,12 +96,14 @@ export default class GameObject {
|
|
|
91
96
|
* Checks if this entity has a component of the specified class.
|
|
92
97
|
* @param componentClass The class of the component to check for.
|
|
93
98
|
*/
|
|
99
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
|
|
94
100
|
hasComponent(componentClass) {
|
|
95
101
|
return this._components.has(componentClass.name);
|
|
96
102
|
}
|
|
97
103
|
/** Gets a component from this entity by its class.
|
|
98
104
|
* @param componentClass The class of the component to retrieve.
|
|
99
105
|
*/
|
|
106
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
|
|
100
107
|
getComponent(componentClass) {
|
|
101
108
|
return this._components.get(componentClass.name);
|
|
102
109
|
}
|
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,mBAAmB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"GameObject.js","sourceRoot":"","sources":["../src/GameObject.ts"],"names":[],"mappings":"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"}
|
package/dist/Line.d.ts
CHANGED
|
@@ -36,6 +36,4 @@ export default class Line extends GameObject {
|
|
|
36
36
|
/** Gets the bounding box height of the line. */
|
|
37
37
|
get height(): number;
|
|
38
38
|
constructor(props: LineProperties);
|
|
39
|
-
/** Draws the line onto the provided rendering context. */
|
|
40
|
-
draw(ctx: CanvasRenderingContext2D): void;
|
|
41
39
|
}
|
package/dist/Line.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import GameObject from './GameObject.js';
|
|
2
2
|
import Vector2 from './Vector2.js';
|
|
3
|
+
import LineComponent from './LineComponent.js';
|
|
3
4
|
const defaultProps = {
|
|
4
5
|
tag: 'line',
|
|
5
6
|
width: 1,
|
|
@@ -25,16 +26,8 @@ export default class Line extends GameObject {
|
|
|
25
26
|
this.y1 = defaultedProps.p1.y;
|
|
26
27
|
this.x2 = defaultedProps.p2.x;
|
|
27
28
|
this.y2 = defaultedProps.p2.y;
|
|
29
|
+
this.addComponent(new LineComponent(this.strokeWidth, defaultedProps.p1, defaultedProps.p2));
|
|
28
30
|
this.registerSelf();
|
|
29
31
|
}
|
|
30
|
-
/** Draws the line onto the provided rendering context. */
|
|
31
|
-
draw(ctx) {
|
|
32
|
-
if (!this.visible)
|
|
33
|
-
return;
|
|
34
|
-
ctx.lineWidth = this.strokeWidth;
|
|
35
|
-
ctx.moveTo(this.x1, this.y1);
|
|
36
|
-
ctx.lineTo(this.x2, this.y2);
|
|
37
|
-
ctx.stroke();
|
|
38
|
-
}
|
|
39
32
|
}
|
|
40
33
|
//# sourceMappingURL=Line.js.map
|
package/dist/Line.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Line.js","sourceRoot":"","sources":["../src/Line.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,iBAAiB,CAAC;AACzC,OAAO,OAAO,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"Line.js","sourceRoot":"","sources":["../src/Line.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,iBAAiB,CAAC;AACzC,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAkB/C,MAAM,YAAY,GAAG;IACnB,GAAG,EAAE,MAAM;IACX,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,CAAC;IACT,EAAE,EAAE,IAAI,OAAO,EAAE;IACjB,EAAE,EAAE,IAAI,OAAO,EAAE;CAClB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,UAAU;IAY1C,8CAA8C;IAC9C,IAAI,QAAQ,KAAK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxD,+CAA+C;IAC/C,IAAI,KAAK,KAAK,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACnD,gDAAgD;IAChD,IAAI,MAAM,KAAK,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAEpD,YAAY,KAAqB;QAC/B,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,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC;QACxC,IAAI,CAAC,EAAE,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,EAAE,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,EAAE,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,EAAE,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;QAE9B,IAAI,CAAC,YAAY,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;QAE7F,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;CACF"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import RenderComponent from './RenderComponent.js';
|
|
2
|
+
import Vector2 from './Vector2.js';
|
|
3
|
+
/**
|
|
4
|
+
* Component that holds data for rendering a line.
|
|
5
|
+
*/
|
|
6
|
+
export default class LineComponent extends RenderComponent {
|
|
7
|
+
/** Stroke width of the line. */
|
|
8
|
+
strokeWidth: number;
|
|
9
|
+
/** Start point of the line. */
|
|
10
|
+
p1: Vector2;
|
|
11
|
+
/** End point of the line. */
|
|
12
|
+
p2: Vector2;
|
|
13
|
+
constructor(strokeWidth: number, p1: Vector2, p2: Vector2);
|
|
14
|
+
/**
|
|
15
|
+
* Draws the line to the canvas.
|
|
16
|
+
* @param ctx The canvas 2D rendering context.
|
|
17
|
+
*/
|
|
18
|
+
draw(ctx: CanvasRenderingContext2D): void;
|
|
19
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import RenderComponent from './RenderComponent.js';
|
|
2
|
+
/**
|
|
3
|
+
* Component that holds data for rendering a line.
|
|
4
|
+
*/
|
|
5
|
+
export default class LineComponent extends RenderComponent {
|
|
6
|
+
constructor(strokeWidth, p1, p2) {
|
|
7
|
+
super();
|
|
8
|
+
this.strokeWidth = strokeWidth;
|
|
9
|
+
this.p1 = p1;
|
|
10
|
+
this.p2 = p2;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Draws the line to the canvas.
|
|
14
|
+
* @param ctx The canvas 2D rendering context.
|
|
15
|
+
*/
|
|
16
|
+
draw(ctx) {
|
|
17
|
+
ctx.beginPath();
|
|
18
|
+
ctx.lineWidth = this.strokeWidth;
|
|
19
|
+
ctx.moveTo(this.p1.x, this.p1.y);
|
|
20
|
+
ctx.lineTo(this.p2.x, this.p2.y);
|
|
21
|
+
ctx.stroke();
|
|
22
|
+
ctx.closePath();
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=LineComponent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LineComponent.js","sourceRoot":"","sources":["../src/LineComponent.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,sBAAsB,CAAC;AAGnD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,eAAe;IAQxD,YAAY,WAAmB,EAAE,EAAW,EAAE,EAAW;QACvD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAED;;;OAGG;IACH,IAAI,CAAC,GAA6B;QAChC,GAAG,CAAC,SAAS,EAAE,CAAC;QAChB,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC;QACjC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACjC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACjC,GAAG,CAAC,MAAM,EAAE,CAAC;QACb,GAAG,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC;CACF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import System from './System.js';
|
|
2
|
+
import type GameObject from './GameObject.js';
|
|
3
|
+
/**
|
|
4
|
+
* A system that processes entities with PhysicsComponents.
|
|
5
|
+
* Handles movement, velocity, and acceleration.
|
|
6
|
+
*/
|
|
7
|
+
export default class PhysicsSystem extends System {
|
|
8
|
+
/**
|
|
9
|
+
* Updates the position of entities based on their velocity and acceleration.
|
|
10
|
+
* @param entities All game objects.
|
|
11
|
+
* @param fixedDelta The fixed time step.
|
|
12
|
+
*/
|
|
13
|
+
fixedUpdate(entities: Set<GameObject>, fixedDelta: number): void;
|
|
14
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import System from './System.js';
|
|
2
|
+
import PhysicsComponent from './PhysicsComponent.js';
|
|
3
|
+
/**
|
|
4
|
+
* A system that processes entities with PhysicsComponents.
|
|
5
|
+
* Handles movement, velocity, and acceleration.
|
|
6
|
+
*/
|
|
7
|
+
export default class PhysicsSystem extends System {
|
|
8
|
+
/**
|
|
9
|
+
* Updates the position of entities based on their velocity and acceleration.
|
|
10
|
+
* @param entities All game objects.
|
|
11
|
+
* @param fixedDelta The fixed time step.
|
|
12
|
+
*/
|
|
13
|
+
fixedUpdate(entities, fixedDelta) {
|
|
14
|
+
entities.forEach((object) => {
|
|
15
|
+
const physics = object.getComponent(PhysicsComponent);
|
|
16
|
+
if (physics) {
|
|
17
|
+
// Apply acceleration to velocity
|
|
18
|
+
physics.velocity.x += physics.acceleration.x * fixedDelta;
|
|
19
|
+
physics.velocity.y += physics.acceleration.y * fixedDelta;
|
|
20
|
+
// Apply velocity to position
|
|
21
|
+
object.position.x += physics.velocity.x * fixedDelta;
|
|
22
|
+
object.position.y += physics.velocity.y * fixedDelta;
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=PhysicsSystem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PhysicsSystem.js","sourceRoot":"","sources":["../src/PhysicsSystem.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AAErD;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,MAAM;IAC/C;;;;OAIG;IACa,WAAW,CAAC,QAAyB,EAAE,UAAkB;QACvE,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAC1B,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;YACtD,IAAI,OAAO,EAAE,CAAC;gBACZ,iCAAiC;gBACjC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,UAAU,CAAC;gBAC1D,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,UAAU,CAAC;gBAE1D,6BAA6B;gBAC7B,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,UAAU,CAAC;gBACrD,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,UAAU,CAAC;YACvD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|
package/dist/Rectangle.d.ts
CHANGED
package/dist/Rectangle.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import Vector2 from './Vector2.js';
|
|
2
2
|
import GameObject from './GameObject.js';
|
|
3
|
+
import ShapeComponent from './ShapeComponent.js';
|
|
3
4
|
const defaultProps = {
|
|
4
5
|
tag: 'rect', colour: 'black', zIndex: 0,
|
|
5
6
|
};
|
|
@@ -28,14 +29,8 @@ export default class Rectangle extends GameObject {
|
|
|
28
29
|
this._height = defaultedProps.height;
|
|
29
30
|
this.colour = defaultedProps.colour;
|
|
30
31
|
this.zIndex = defaultedProps.zIndex;
|
|
32
|
+
this.addComponent(new ShapeComponent('rect', this.colour, this._width, this._height));
|
|
31
33
|
this.registerSelf();
|
|
32
34
|
}
|
|
33
|
-
/** Draws the rectangle onto the provided rendering context. */
|
|
34
|
-
draw(ctx) {
|
|
35
|
-
if (!this.visible)
|
|
36
|
-
return;
|
|
37
|
-
ctx.fillStyle = this.colour;
|
|
38
|
-
ctx.fillRect(this.position.x, this.position.y, this.width, this.height);
|
|
39
|
-
}
|
|
40
35
|
}
|
|
41
36
|
//# sourceMappingURL=Rectangle.js.map
|
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;
|
|
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;AACzC,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAoBjD,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,CAAC,IAAI,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAEtF,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;CACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import Component from './Component.js';
|
|
2
|
+
/**
|
|
3
|
+
* Base class for all rendering-related components.
|
|
4
|
+
*/
|
|
5
|
+
export default abstract class RenderComponent extends Component {
|
|
6
|
+
/** Internal flag to identify rendering components across module instances. */
|
|
7
|
+
readonly isRenderComponent: boolean;
|
|
8
|
+
/**
|
|
9
|
+
* The actual rendering logic moved from GameObject.
|
|
10
|
+
* @param ctx The canvas 2D rendering context.
|
|
11
|
+
*/
|
|
12
|
+
abstract draw(ctx: CanvasRenderingContext2D): void;
|
|
13
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import Component from './Component.js';
|
|
2
|
+
/**
|
|
3
|
+
* Base class for all rendering-related components.
|
|
4
|
+
*/
|
|
5
|
+
export default class RenderComponent extends Component {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
8
|
+
/** Internal flag to identify rendering components across module instances. */
|
|
9
|
+
this.isRenderComponent = true;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=RenderComponent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RenderComponent.js","sourceRoot":"","sources":["../src/RenderComponent.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAEvC;;GAEG;AACH,MAAM,CAAC,OAAO,OAAgB,eAAgB,SAAQ,SAAS;IAA/D;;QACE,8EAA8E;QAC9D,sBAAiB,GAAY,IAAI,CAAC;IAOpD,CAAC;CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import System from './System.js';
|
|
2
|
+
import type GameObject from './GameObject.js';
|
|
3
|
+
/**
|
|
4
|
+
* A system that processes entities with RenderComponents.
|
|
5
|
+
* Handles camera transforms, frustum culling, and drawing.
|
|
6
|
+
*/
|
|
7
|
+
export default class RenderingSystem extends System {
|
|
8
|
+
private ctx;
|
|
9
|
+
constructor(ctx: CanvasRenderingContext2D);
|
|
10
|
+
/**
|
|
11
|
+
* Updates the rendering context (used when the engine is re-initialized).
|
|
12
|
+
* @param ctx The new canvas rendering context.
|
|
13
|
+
*/
|
|
14
|
+
setContext(ctx: CanvasRenderingContext2D): void;
|
|
15
|
+
/**
|
|
16
|
+
* Main rendering loop.
|
|
17
|
+
* @param entities The set of entities to process.
|
|
18
|
+
* @param deltaTime Time passed since the last frame (optional).
|
|
19
|
+
* @param debug Whether to draw debug overlays (hitboxes/tags).
|
|
20
|
+
*/
|
|
21
|
+
update(entities: Set<GameObject>, deltaTime?: number, debug?: boolean): void;
|
|
22
|
+
}
|