dino-ge 1.7.0 → 1.8.3
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.d.ts +41 -7
- package/dist/Engine.js +208 -180
- package/dist/Engine.js.map +1 -1
- package/dist/GameObject.d.ts +2 -0
- package/dist/GameObject.js +2 -0
- package/dist/GameObject.js.map +1 -1
- package/dist/Group.d.ts +8 -0
- package/dist/Group.js +12 -0
- package/dist/Group.js.map +1 -0
- package/dist/Input.d.ts +2 -0
- package/dist/Input.js +33 -15
- package/dist/Input.js.map +1 -1
- package/dist/LineComponent.js +5 -5
- package/dist/LineComponent.js.map +1 -1
- package/dist/Physics.js +8 -6
- package/dist/Physics.js.map +1 -1
- package/dist/RenderingSystem.js +7 -6
- package/dist/RenderingSystem.js.map +1 -1
- package/dist/ShapeComponent.js +5 -5
- package/dist/ShapeComponent.js.map +1 -1
- package/dist/SpriteComponent.js +5 -5
- package/dist/SpriteComponent.js.map +1 -1
- package/dist/Text.js +8 -8
- package/dist/Text.js.map +1 -1
- package/dist/TextComponent.js +5 -5
- package/dist/TextComponent.js.map +1 -1
- package/dist/TilemapComponent.js +5 -5
- package/dist/TilemapComponent.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +2 -1
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 System from './System.js';
|
|
4
5
|
import RenderingSystem from './RenderingSystem.js';
|
|
5
6
|
/**
|
|
6
7
|
* Options for initializing the Engine.
|
|
@@ -20,7 +21,7 @@ export interface EngineOpts {
|
|
|
20
21
|
*/
|
|
21
22
|
export interface EngineCallbacks {
|
|
22
23
|
/** Called once after the engine is initialized. */
|
|
23
|
-
onLoad
|
|
24
|
+
onLoad?: () => void;
|
|
24
25
|
/** Called every frame for game logic and rendering. */
|
|
25
26
|
update: () => void;
|
|
26
27
|
/** Optional callback for physics or fixed-step logic. */
|
|
@@ -34,13 +35,29 @@ export declare class ObjectSet extends Set<GameObject> {
|
|
|
34
35
|
* Find all objects with a specific tag.
|
|
35
36
|
* @param tag The tag to search for.
|
|
36
37
|
*/
|
|
37
|
-
findAll: (tag
|
|
38
|
+
findAll: (tag?: string) => GameObject[];
|
|
39
|
+
constructor();
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Interface for the shared global state of the Engine.
|
|
43
|
+
*/
|
|
44
|
+
export interface EngineState {
|
|
45
|
+
objects: ObjectSet;
|
|
46
|
+
paused: boolean;
|
|
47
|
+
debug: boolean;
|
|
48
|
+
selectedObject: GameObject | null;
|
|
49
|
+
camera: Camera;
|
|
50
|
+
systems: System[];
|
|
51
|
+
renderingSystem?: RenderingSystem;
|
|
52
|
+
events: EventTarget;
|
|
53
|
+
currentScene: Scene | null;
|
|
38
54
|
}
|
|
39
55
|
/**
|
|
40
56
|
* The core singleton class that manages the game loop, rendering, and scene state.
|
|
41
57
|
*/
|
|
42
58
|
export default class Engine {
|
|
43
|
-
|
|
59
|
+
/** Internal helper to access the global shared state. */
|
|
60
|
+
private static get _state();
|
|
44
61
|
/**
|
|
45
62
|
* Global set of game objects if no scene is active.
|
|
46
63
|
*/
|
|
@@ -95,15 +112,18 @@ export default class Engine {
|
|
|
95
112
|
* The global camera instance.
|
|
96
113
|
*/
|
|
97
114
|
static get camera(): Camera;
|
|
98
|
-
private static _currentScene;
|
|
99
115
|
/**
|
|
100
116
|
* Gets the currently active scene.
|
|
101
117
|
*/
|
|
102
|
-
static get currentScene(): Scene;
|
|
118
|
+
static get currentScene(): Scene | null;
|
|
103
119
|
/**
|
|
104
120
|
* Sets the active scene, resetting the camera and calling the scene's onLoad.
|
|
105
121
|
*/
|
|
106
|
-
static set currentScene(scene: Scene);
|
|
122
|
+
static set currentScene(scene: Scene | null);
|
|
123
|
+
private _canvas;
|
|
124
|
+
private _ctx;
|
|
125
|
+
private _window;
|
|
126
|
+
private _title;
|
|
107
127
|
/** Current background colour. */
|
|
108
128
|
backgroundColour: string;
|
|
109
129
|
/** Registered engine callbacks. */
|
|
@@ -116,9 +136,23 @@ export default class Engine {
|
|
|
116
136
|
get mouseX(): number;
|
|
117
137
|
/** Current mouse y position in world space. */
|
|
118
138
|
get mouseY(): number;
|
|
119
|
-
/** Current frames per second. */
|
|
139
|
+
/** Current frames per second (rolling average). */
|
|
120
140
|
fps: number;
|
|
141
|
+
/** Current frame time in milliseconds. */
|
|
142
|
+
frameTime: number;
|
|
143
|
+
private _oldTimestamp;
|
|
144
|
+
private _secondsPassed;
|
|
145
|
+
private _accumulator;
|
|
146
|
+
private _fixedDelta;
|
|
147
|
+
private _fpsValues;
|
|
121
148
|
constructor(callbacks: EngineCallbacks, opts?: Partial<EngineOpts>);
|
|
149
|
+
private _onLoad;
|
|
150
|
+
private _update;
|
|
151
|
+
private _fixedUpdate;
|
|
152
|
+
private _setBackground;
|
|
153
|
+
private _draw;
|
|
154
|
+
private _drawDebug;
|
|
155
|
+
private _findAllObjects;
|
|
122
156
|
/**
|
|
123
157
|
* Promisified setTimeout.
|
|
124
158
|
* @param timeoutFn The function to run after the timeout.
|
package/dist/Engine.js
CHANGED
|
@@ -7,18 +7,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
11
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
12
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
13
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
14
|
-
};
|
|
15
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
16
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
17
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
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
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
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;
|
|
22
10
|
import Canvas from './Canvas.js';
|
|
23
11
|
import Input from './Input.js';
|
|
24
12
|
import Camera from './Camera.js';
|
|
@@ -30,68 +18,72 @@ import PhysicsComponent from './PhysicsComponent.js';
|
|
|
30
18
|
*/
|
|
31
19
|
export class ObjectSet extends Set {
|
|
32
20
|
constructor() {
|
|
33
|
-
super(
|
|
34
|
-
/**
|
|
35
|
-
* Find all objects with a specific tag.
|
|
36
|
-
* @param tag The tag to search for.
|
|
37
|
-
*/
|
|
21
|
+
super();
|
|
38
22
|
this.findAll = () => [];
|
|
39
23
|
}
|
|
40
24
|
}
|
|
41
25
|
/**
|
|
42
26
|
* Shared state for the engine to ensure singletons work across different module loads.
|
|
43
27
|
*/
|
|
44
|
-
const
|
|
28
|
+
const INITIAL_STATE = {
|
|
45
29
|
objects: new ObjectSet(),
|
|
46
30
|
paused: false,
|
|
47
31
|
debug: false,
|
|
48
32
|
selectedObject: null,
|
|
49
33
|
camera: new Camera(),
|
|
50
34
|
systems: [new PhysicsSystem()],
|
|
51
|
-
events: new EventTarget()
|
|
35
|
+
events: new EventTarget(),
|
|
36
|
+
currentScene: null
|
|
52
37
|
};
|
|
53
|
-
globalThis.__DINO_ENGINE_STATE__ = _globalState;
|
|
54
38
|
/**
|
|
55
39
|
* The core singleton class that manages the game loop, rendering, and scene state.
|
|
56
40
|
*/
|
|
57
|
-
class Engine {
|
|
41
|
+
export default class Engine {
|
|
42
|
+
/** Internal helper to access the global shared state. */
|
|
43
|
+
static get _state() {
|
|
44
|
+
const global = globalThis;
|
|
45
|
+
if (!global.__DINO_ENGINE_STATE__) {
|
|
46
|
+
global.__DINO_ENGINE_STATE__ = INITIAL_STATE;
|
|
47
|
+
}
|
|
48
|
+
return global.__DINO_ENGINE_STATE__;
|
|
49
|
+
}
|
|
58
50
|
/**
|
|
59
51
|
* Global set of game objects if no scene is active.
|
|
60
52
|
*/
|
|
61
|
-
static get objects() { return
|
|
53
|
+
static get objects() { return this._state.objects; }
|
|
62
54
|
/**
|
|
63
55
|
* Global list of systems that process game objects.
|
|
64
56
|
*/
|
|
65
|
-
static get _systems() { return
|
|
57
|
+
static get _systems() { return this._state.systems; }
|
|
66
58
|
/**
|
|
67
59
|
* The global rendering system.
|
|
68
60
|
*/
|
|
69
|
-
static get renderingSystem() { return
|
|
70
|
-
static set renderingSystem(val) {
|
|
61
|
+
static get renderingSystem() { return this._state.renderingSystem; }
|
|
62
|
+
static set renderingSystem(val) { this._state.renderingSystem = val; }
|
|
71
63
|
/**
|
|
72
64
|
* Whether the game loop is currently paused.
|
|
73
65
|
*/
|
|
74
|
-
static get paused() { return
|
|
66
|
+
static get paused() { return this._state.paused; }
|
|
75
67
|
static set paused(val) {
|
|
76
|
-
if (
|
|
77
|
-
|
|
68
|
+
if (this._state.paused !== val) {
|
|
69
|
+
this._state.paused = val;
|
|
78
70
|
this.emit('paused', val);
|
|
79
71
|
}
|
|
80
72
|
}
|
|
81
73
|
/**
|
|
82
74
|
* Toggle for visual debug mode (hitboxes and stats).
|
|
83
75
|
*/
|
|
84
|
-
static get debug() { return
|
|
76
|
+
static get debug() { return this._state.debug; }
|
|
85
77
|
static set debug(val) {
|
|
86
|
-
if (
|
|
87
|
-
|
|
78
|
+
if (this._state.debug !== val) {
|
|
79
|
+
this._state.debug = val;
|
|
88
80
|
this.emit('debug', val);
|
|
89
81
|
}
|
|
90
82
|
}
|
|
91
83
|
/**
|
|
92
84
|
* Internal event bus for engine events.
|
|
93
85
|
*/
|
|
94
|
-
static get events() { return
|
|
86
|
+
static get events() { return this._state.events; }
|
|
95
87
|
/**
|
|
96
88
|
* Listens for an event on the global engine bus.
|
|
97
89
|
* @param type The event type (e.g., 'paused', 'PLAYER_DIED').
|
|
@@ -119,25 +111,27 @@ class Engine {
|
|
|
119
111
|
/**
|
|
120
112
|
* The currently selected object in debug mode.
|
|
121
113
|
*/
|
|
122
|
-
static get selectedObject() { return
|
|
123
|
-
static set selectedObject(val) {
|
|
114
|
+
static get selectedObject() { return this._state.selectedObject; }
|
|
115
|
+
static set selectedObject(val) { this._state.selectedObject = val; }
|
|
124
116
|
/**
|
|
125
117
|
* The global camera instance.
|
|
126
118
|
*/
|
|
127
|
-
static get camera() { return
|
|
119
|
+
static get camera() { return this._state.camera; }
|
|
128
120
|
/**
|
|
129
121
|
* Gets the currently active scene.
|
|
130
122
|
*/
|
|
131
123
|
static get currentScene() {
|
|
132
|
-
return this.
|
|
124
|
+
return this._state.currentScene;
|
|
133
125
|
}
|
|
134
126
|
/**
|
|
135
127
|
* Sets the active scene, resetting the camera and calling the scene's onLoad.
|
|
136
128
|
*/
|
|
137
129
|
static set currentScene(scene) {
|
|
138
|
-
this.
|
|
139
|
-
|
|
140
|
-
|
|
130
|
+
this._state.currentScene = scene;
|
|
131
|
+
if (scene) {
|
|
132
|
+
this.camera.reset();
|
|
133
|
+
scene.onLoad();
|
|
134
|
+
}
|
|
141
135
|
}
|
|
142
136
|
/** Current mouse x position in world space. */
|
|
143
137
|
get mouseX() {
|
|
@@ -148,53 +142,186 @@ class Engine {
|
|
|
148
142
|
return Input.mouseY;
|
|
149
143
|
}
|
|
150
144
|
constructor(callbacks, opts = {}) {
|
|
151
|
-
|
|
152
|
-
_Engine_canvas.set(this, void 0);
|
|
153
|
-
_Engine_ctx.set(this, void 0);
|
|
154
|
-
_Engine_window.set(this, void 0);
|
|
155
|
-
_Engine_title.set(this, void 0);
|
|
156
|
-
/** Current frames per second. */
|
|
145
|
+
/** Current frames per second (rolling average). */
|
|
157
146
|
this.fps = 0;
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
147
|
+
/** Current frame time in milliseconds. */
|
|
148
|
+
this.frameTime = 0;
|
|
149
|
+
this._oldTimestamp = 0;
|
|
150
|
+
this._secondsPassed = 0;
|
|
151
|
+
this._accumulator = 0;
|
|
152
|
+
this._fixedDelta = 1 / 60;
|
|
153
|
+
this._fpsValues = [];
|
|
162
154
|
const defaultedOpts = Object.assign({ width: '100%', height: '100%', title: 'Example', backgroundColour: 'white' }, opts);
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
document.getElementsByTagName('head')
|
|
155
|
+
Engine.objects.findAll = this._findAllObjects.bind(this);
|
|
156
|
+
this._title = document.createElement('title');
|
|
157
|
+
this._title.innerHTML = defaultedOpts.title;
|
|
158
|
+
const heads = document.getElementsByTagName('head');
|
|
159
|
+
if (heads.length > 0) {
|
|
160
|
+
heads[0].appendChild(this._title);
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
document.documentElement.appendChild(document.createElement('head')).appendChild(this._title);
|
|
164
|
+
}
|
|
167
165
|
this.backgroundColour = defaultedOpts.backgroundColour;
|
|
168
166
|
this.callbacks = {
|
|
169
167
|
onLoad: () => {
|
|
170
|
-
|
|
171
|
-
|
|
168
|
+
var _a;
|
|
169
|
+
(_a = callbacks.onLoad) === null || _a === void 0 ? void 0 : _a.call(callbacks);
|
|
170
|
+
this._onLoad();
|
|
172
171
|
},
|
|
173
172
|
update: callbacks.update,
|
|
173
|
+
fixedUpdate: callbacks.fixedUpdate,
|
|
174
174
|
};
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
this.width =
|
|
178
|
-
this.height =
|
|
179
|
-
if (
|
|
180
|
-
|
|
175
|
+
this._canvas = new Canvas();
|
|
176
|
+
this._ctx = this._canvas.canvas.getContext('2d');
|
|
177
|
+
this.width = this._canvas.canvas.width;
|
|
178
|
+
this.height = this._canvas.canvas.height;
|
|
179
|
+
if (Engine.renderingSystem) {
|
|
180
|
+
Engine.renderingSystem.setContext(this._ctx);
|
|
181
181
|
}
|
|
182
182
|
else {
|
|
183
|
-
|
|
183
|
+
Engine.renderingSystem = new RenderingSystem(this._ctx);
|
|
184
184
|
}
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
185
|
+
this._window = document.createElement('div');
|
|
186
|
+
this._window.id = 'canvas-container';
|
|
187
|
+
this._window.style.width = defaultedOpts.width;
|
|
188
|
+
this._window.style.height = defaultedOpts.height;
|
|
189
189
|
Input.init();
|
|
190
190
|
window.addEventListener('resize', () => {
|
|
191
|
-
|
|
192
|
-
this.width =
|
|
193
|
-
this.height =
|
|
191
|
+
this._canvas.resize();
|
|
192
|
+
this.width = this._canvas.canvas.width;
|
|
193
|
+
this.height = this._canvas.canvas.height;
|
|
194
|
+
});
|
|
195
|
+
const bodies = document.getElementsByTagName('body');
|
|
196
|
+
if (bodies.length > 0) {
|
|
197
|
+
bodies[0].appendChild(this._window);
|
|
198
|
+
}
|
|
199
|
+
this._window.appendChild(this._canvas.canvas);
|
|
200
|
+
setTimeout(() => { var _a, _b; return (_b = (_a = this.callbacks).onLoad) === null || _b === void 0 ? void 0 : _b.call(_a); }, 0);
|
|
201
|
+
}
|
|
202
|
+
_onLoad() {
|
|
203
|
+
this._draw();
|
|
204
|
+
window.requestAnimationFrame(this._update.bind(this));
|
|
205
|
+
}
|
|
206
|
+
_update(timestamp) {
|
|
207
|
+
if (this._oldTimestamp === 0)
|
|
208
|
+
this._oldTimestamp = timestamp;
|
|
209
|
+
if (!Engine.paused) {
|
|
210
|
+
this._secondsPassed = (timestamp - this._oldTimestamp) / 1000;
|
|
211
|
+
this._oldTimestamp = timestamp;
|
|
212
|
+
// Avoid division by zero on first frame
|
|
213
|
+
if (this._secondsPassed > 0) {
|
|
214
|
+
// Smooth FPS calculation
|
|
215
|
+
const currentFps = 1 / this._secondsPassed;
|
|
216
|
+
this._fpsValues.push(currentFps);
|
|
217
|
+
if (this._fpsValues.length > 30)
|
|
218
|
+
this._fpsValues.shift();
|
|
219
|
+
this.fps = Math.round(this._fpsValues.reduce((a, b) => a + b, 0) / this._fpsValues.length);
|
|
220
|
+
this.frameTime = parseFloat((this._secondsPassed * 1000).toFixed(2));
|
|
221
|
+
}
|
|
222
|
+
// Fixed update loop
|
|
223
|
+
this._accumulator += this._secondsPassed;
|
|
224
|
+
while (this._accumulator >= this._fixedDelta) {
|
|
225
|
+
this._fixedUpdate();
|
|
226
|
+
this._accumulator -= this._fixedDelta;
|
|
227
|
+
}
|
|
228
|
+
if (Engine.currentScene) {
|
|
229
|
+
Engine.currentScene.update();
|
|
230
|
+
}
|
|
231
|
+
this.callbacks.update();
|
|
232
|
+
this._draw();
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
// Still allow drawing in paused mode if debug is on or for initial frame
|
|
236
|
+
this._draw();
|
|
237
|
+
}
|
|
238
|
+
window.requestAnimationFrame(this._update.bind(this));
|
|
239
|
+
}
|
|
240
|
+
_fixedUpdate() {
|
|
241
|
+
const objects = Engine.currentScene ? Engine.currentScene.objects : Engine.objects;
|
|
242
|
+
Engine._systems.forEach((system) => {
|
|
243
|
+
if (system.fixedUpdate) {
|
|
244
|
+
system.fixedUpdate(objects, this._fixedDelta);
|
|
245
|
+
}
|
|
194
246
|
});
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
247
|
+
if (this.callbacks.fixedUpdate) {
|
|
248
|
+
this.callbacks.fixedUpdate();
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
_setBackground() {
|
|
252
|
+
if (this._ctx) {
|
|
253
|
+
this._ctx.fillStyle = this.backgroundColour;
|
|
254
|
+
this._ctx.fillRect(0, 0, this._canvas.canvas.width, this._canvas.canvas.height);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
_draw() {
|
|
258
|
+
this._setBackground();
|
|
259
|
+
const objects = Engine.currentScene ? Engine.currentScene.objects : Engine.objects;
|
|
260
|
+
if (Engine.renderingSystem) {
|
|
261
|
+
Engine.renderingSystem.update(objects, 0, Engine.debug);
|
|
262
|
+
}
|
|
263
|
+
if (Engine.debug) {
|
|
264
|
+
this._drawDebug(objects);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
_drawDebug(objects) {
|
|
268
|
+
var _a, _b, _c, _d;
|
|
269
|
+
// Draw Stats Overlay (Top Right)
|
|
270
|
+
this._ctx.save();
|
|
271
|
+
this._ctx.setTransform(1, 0, 0, 1, 0, 0); // Reset transform for UI
|
|
272
|
+
const overlayWidth = 180;
|
|
273
|
+
const statsHeight = 95;
|
|
274
|
+
const padding = 10;
|
|
275
|
+
const x = this._canvas.canvas.width - overlayWidth - padding;
|
|
276
|
+
let y = padding;
|
|
277
|
+
// Background for Stats
|
|
278
|
+
this._ctx.fillStyle = 'rgba(0, 0, 0, 0.7)';
|
|
279
|
+
this._ctx.fillRect(x, y, overlayWidth, statsHeight);
|
|
280
|
+
this._ctx.fillStyle = 'white';
|
|
281
|
+
this._ctx.textAlign = 'left';
|
|
282
|
+
this._ctx.textBaseline = 'top';
|
|
283
|
+
this._ctx.fillText(`FPS: ${this.fps}`, x + 10, y + 10);
|
|
284
|
+
this._ctx.fillText(`Frame: ${this.frameTime}ms`, x + 10, y + 25);
|
|
285
|
+
this._ctx.fillText(`Objects: ${objects.size}`, x + 10, y + 40);
|
|
286
|
+
this._ctx.fillText(`Mouse X: ${Math.round(this.mouseX)}`, x + 10, y + 60);
|
|
287
|
+
this._ctx.fillText(`Mouse Y: ${Math.round(this.mouseY)}`, x + 10, y + 75);
|
|
288
|
+
// Inspector Panel (If object selected)
|
|
289
|
+
if (Engine.selectedObject) {
|
|
290
|
+
y += statsHeight + 10;
|
|
291
|
+
const obj = Engine.selectedObject;
|
|
292
|
+
const properties = [
|
|
293
|
+
['Pos', `${Math.round(obj.transform.position.x)}, ${Math.round(obj.transform.position.y)}`],
|
|
294
|
+
['Size', `${Math.round((_b = (_a = obj.bounds) === null || _a === void 0 ? void 0 : _a.width) !== null && _b !== void 0 ? _b : 0)}x${Math.round((_d = (_c = obj.bounds) === null || _c === void 0 ? void 0 : _c.height) !== null && _d !== void 0 ? _d : 0)}`]
|
|
295
|
+
];
|
|
296
|
+
const tagComp = obj.metadata;
|
|
297
|
+
if (tagComp) {
|
|
298
|
+
properties.unshift(['Tag', tagComp.tag]);
|
|
299
|
+
properties.push(['Z-Index', tagComp.zIndex]);
|
|
300
|
+
}
|
|
301
|
+
const physComp = obj.getComponent(PhysicsComponent);
|
|
302
|
+
if (physComp) {
|
|
303
|
+
properties.push(['Vel', `${Math.round(physComp.velocity.x)}, ${Math.round(physComp.velocity.y)}`]);
|
|
304
|
+
properties.push(['Acc', `${Math.round(physComp.acceleration.x)}, ${Math.round(physComp.acceleration.y)}`]);
|
|
305
|
+
}
|
|
306
|
+
const inspectorHeight = 20 + (properties.length * 15);
|
|
307
|
+
this._ctx.fillStyle = 'rgba(0, 0, 0, 0.7)';
|
|
308
|
+
this._ctx.fillRect(x, y, overlayWidth, inspectorHeight);
|
|
309
|
+
this._ctx.strokeStyle = '#00ff00';
|
|
310
|
+
this._ctx.strokeRect(x, y, overlayWidth, inspectorHeight);
|
|
311
|
+
this._ctx.fillStyle = '#00ff00';
|
|
312
|
+
this._ctx.fillText('INSPECTOR', x + 10, y + 5);
|
|
313
|
+
this._ctx.fillStyle = 'white';
|
|
314
|
+
properties.forEach(([key, val], i) => {
|
|
315
|
+
this._ctx.fillText(`${key}: ${val}`, x + 10, y + 20 + (i * 15));
|
|
316
|
+
});
|
|
317
|
+
}
|
|
318
|
+
this._ctx.restore();
|
|
319
|
+
}
|
|
320
|
+
_findAllObjects(tag = '') {
|
|
321
|
+
if (!tag) {
|
|
322
|
+
return Array.from(Engine.objects);
|
|
323
|
+
}
|
|
324
|
+
return Array.from(Engine.objects).filter((obj) => obj.metadata.tag === tag);
|
|
198
325
|
}
|
|
199
326
|
/**
|
|
200
327
|
* Promisified setTimeout.
|
|
@@ -234,8 +361,8 @@ class Engine {
|
|
|
234
361
|
* @param object The object to register.
|
|
235
362
|
*/
|
|
236
363
|
static registerObject(object) {
|
|
237
|
-
if (
|
|
238
|
-
|
|
364
|
+
if (Engine.currentScene) {
|
|
365
|
+
Engine.currentScene.add(object);
|
|
239
366
|
}
|
|
240
367
|
else {
|
|
241
368
|
this.objects.add(object);
|
|
@@ -246,8 +373,11 @@ class Engine {
|
|
|
246
373
|
* @param object The object to destroy.
|
|
247
374
|
*/
|
|
248
375
|
static destroyObject(object) {
|
|
249
|
-
if (
|
|
250
|
-
|
|
376
|
+
if (this.selectedObject === object) {
|
|
377
|
+
this.selectedObject = null;
|
|
378
|
+
}
|
|
379
|
+
if (Engine.currentScene) {
|
|
380
|
+
Engine.currentScene.remove(object);
|
|
251
381
|
}
|
|
252
382
|
else {
|
|
253
383
|
this.objects.delete(object);
|
|
@@ -255,114 +385,12 @@ class Engine {
|
|
|
255
385
|
}
|
|
256
386
|
/** Destroy all objects in the active scene or global engine. */
|
|
257
387
|
static destroyAll() {
|
|
258
|
-
if (
|
|
259
|
-
|
|
388
|
+
if (Engine.currentScene) {
|
|
389
|
+
Engine.currentScene.clear();
|
|
260
390
|
}
|
|
261
391
|
else {
|
|
262
392
|
this.objects.clear();
|
|
263
393
|
}
|
|
264
394
|
}
|
|
265
395
|
}
|
|
266
|
-
_a = Engine, _Engine_canvas = new WeakMap(), _Engine_ctx = new WeakMap(), _Engine_window = new WeakMap(), _Engine_title = new WeakMap(), _Engine_oldTimestamp = new WeakMap(), _Engine_secondsPassed = new WeakMap(), _Engine_accumulator = new WeakMap(), _Engine_fixedDelta = new WeakMap(), _Engine_instances = new WeakSet(), _Engine_onLoad = function _Engine_onLoad() {
|
|
267
|
-
__classPrivateFieldGet(this, _Engine_instances, "m", _Engine_draw).call(this);
|
|
268
|
-
window.requestAnimationFrame(__classPrivateFieldGet(this, _Engine_instances, "m", _Engine_update).bind(this));
|
|
269
|
-
}, _Engine_update = function _Engine_update(timestamp) {
|
|
270
|
-
if (!_a.paused) {
|
|
271
|
-
__classPrivateFieldSet(this, _Engine_secondsPassed, (timestamp - __classPrivateFieldGet(this, _Engine_oldTimestamp, "f")) / 1000, "f");
|
|
272
|
-
__classPrivateFieldSet(this, _Engine_oldTimestamp, timestamp, "f");
|
|
273
|
-
this.fps = Math.round(1 / __classPrivateFieldGet(this, _Engine_secondsPassed, "f"));
|
|
274
|
-
// Fixed update loop
|
|
275
|
-
__classPrivateFieldSet(this, _Engine_accumulator, __classPrivateFieldGet(this, _Engine_accumulator, "f") + __classPrivateFieldGet(this, _Engine_secondsPassed, "f"), "f");
|
|
276
|
-
while (__classPrivateFieldGet(this, _Engine_accumulator, "f") >= __classPrivateFieldGet(this, _Engine_fixedDelta, "f")) {
|
|
277
|
-
__classPrivateFieldGet(this, _Engine_instances, "m", _Engine_fixedUpdate).call(this);
|
|
278
|
-
__classPrivateFieldSet(this, _Engine_accumulator, __classPrivateFieldGet(this, _Engine_accumulator, "f") - __classPrivateFieldGet(this, _Engine_fixedDelta, "f"), "f");
|
|
279
|
-
}
|
|
280
|
-
if (_a.currentScene) {
|
|
281
|
-
_a.currentScene.update();
|
|
282
|
-
}
|
|
283
|
-
this.callbacks.update();
|
|
284
|
-
__classPrivateFieldGet(this, _Engine_instances, "m", _Engine_draw).call(this);
|
|
285
|
-
}
|
|
286
|
-
else {
|
|
287
|
-
// Still allow drawing in paused mode if debug is on or for initial frame
|
|
288
|
-
__classPrivateFieldGet(this, _Engine_instances, "m", _Engine_draw).call(this);
|
|
289
|
-
}
|
|
290
|
-
window.requestAnimationFrame(__classPrivateFieldGet(this, _Engine_instances, "m", _Engine_update).bind(this));
|
|
291
|
-
}, _Engine_fixedUpdate = function _Engine_fixedUpdate() {
|
|
292
|
-
const objects = _a.currentScene ? _a.currentScene.objects : _a.objects;
|
|
293
|
-
_a._systems.forEach((system) => {
|
|
294
|
-
if (system.fixedUpdate) {
|
|
295
|
-
system.fixedUpdate(objects, __classPrivateFieldGet(this, _Engine_fixedDelta, "f"));
|
|
296
|
-
}
|
|
297
|
-
});
|
|
298
|
-
if (this.callbacks.fixedUpdate) {
|
|
299
|
-
this.callbacks.fixedUpdate();
|
|
300
|
-
}
|
|
301
|
-
}, _Engine_setBackground = function _Engine_setBackground() {
|
|
302
|
-
__classPrivateFieldGet(this, _Engine_ctx, "f").fillStyle = this.backgroundColour;
|
|
303
|
-
__classPrivateFieldGet(this, _Engine_ctx, "f").fillRect(0, 0, __classPrivateFieldGet(this, _Engine_canvas, "f").canvas.width, __classPrivateFieldGet(this, _Engine_canvas, "f").canvas.height);
|
|
304
|
-
}, _Engine_draw = function _Engine_draw() {
|
|
305
|
-
__classPrivateFieldGet(this, _Engine_instances, "m", _Engine_setBackground).call(this);
|
|
306
|
-
const objects = _a.currentScene ? _a.currentScene.objects : _a.objects;
|
|
307
|
-
if (_a.renderingSystem) {
|
|
308
|
-
_a.renderingSystem.update(objects, 0, _a.debug);
|
|
309
|
-
}
|
|
310
|
-
if (_a.debug) {
|
|
311
|
-
__classPrivateFieldGet(this, _Engine_instances, "m", _Engine_drawDebug).call(this, objects);
|
|
312
|
-
}
|
|
313
|
-
}, _Engine_drawDebug = function _Engine_drawDebug(objects) {
|
|
314
|
-
var _b, _c, _d, _e;
|
|
315
|
-
// Draw Stats Overlay (Top Right)
|
|
316
|
-
__classPrivateFieldGet(this, _Engine_ctx, "f").save();
|
|
317
|
-
__classPrivateFieldGet(this, _Engine_ctx, "f").setTransform(1, 0, 0, 1, 0, 0); // Reset transform for UI
|
|
318
|
-
const overlayWidth = 180;
|
|
319
|
-
const statsHeight = 80;
|
|
320
|
-
const padding = 10;
|
|
321
|
-
const x = __classPrivateFieldGet(this, _Engine_canvas, "f").canvas.width - overlayWidth - padding;
|
|
322
|
-
let y = padding;
|
|
323
|
-
// Background for Stats
|
|
324
|
-
__classPrivateFieldGet(this, _Engine_ctx, "f").fillStyle = 'rgba(0, 0, 0, 0.7)';
|
|
325
|
-
__classPrivateFieldGet(this, _Engine_ctx, "f").fillRect(x, y, overlayWidth, statsHeight);
|
|
326
|
-
__classPrivateFieldGet(this, _Engine_ctx, "f").fillStyle = 'white';
|
|
327
|
-
__classPrivateFieldGet(this, _Engine_ctx, "f").textAlign = 'left';
|
|
328
|
-
__classPrivateFieldGet(this, _Engine_ctx, "f").textBaseline = 'top';
|
|
329
|
-
__classPrivateFieldGet(this, _Engine_ctx, "f").fillText(`FPS: ${this.fps}`, x + 10, y + 10);
|
|
330
|
-
__classPrivateFieldGet(this, _Engine_ctx, "f").fillText(`Objects: ${objects.size}`, x + 10, y + 25);
|
|
331
|
-
__classPrivateFieldGet(this, _Engine_ctx, "f").fillText(`Mouse X: ${Math.round(this.mouseX)}`, x + 10, y + 45);
|
|
332
|
-
__classPrivateFieldGet(this, _Engine_ctx, "f").fillText(`Mouse Y: ${Math.round(this.mouseY)}`, x + 10, y + 60);
|
|
333
|
-
// Inspector Panel (If object selected)
|
|
334
|
-
if (_a.selectedObject) {
|
|
335
|
-
y += statsHeight + 10;
|
|
336
|
-
const obj = _a.selectedObject;
|
|
337
|
-
const properties = [
|
|
338
|
-
['Pos', `${Math.round(obj.transform.position.x)}, ${Math.round(obj.transform.position.y)}`],
|
|
339
|
-
['Size', `${Math.round((_c = (_b = obj.bounds) === null || _b === void 0 ? void 0 : _b.width) !== null && _c !== void 0 ? _c : 0)}x${Math.round((_e = (_d = obj.bounds) === null || _d === void 0 ? void 0 : _d.height) !== null && _e !== void 0 ? _e : 0)}`]
|
|
340
|
-
];
|
|
341
|
-
const tagComp = obj.metadata;
|
|
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
|
-
}
|
|
351
|
-
const inspectorHeight = 20 + (properties.length * 15);
|
|
352
|
-
__classPrivateFieldGet(this, _Engine_ctx, "f").fillStyle = 'rgba(0, 0, 0, 0.7)';
|
|
353
|
-
__classPrivateFieldGet(this, _Engine_ctx, "f").fillRect(x, y, overlayWidth, inspectorHeight);
|
|
354
|
-
__classPrivateFieldGet(this, _Engine_ctx, "f").strokeStyle = '#00ff00';
|
|
355
|
-
__classPrivateFieldGet(this, _Engine_ctx, "f").strokeRect(x, y, overlayWidth, inspectorHeight);
|
|
356
|
-
__classPrivateFieldGet(this, _Engine_ctx, "f").fillStyle = '#00ff00';
|
|
357
|
-
__classPrivateFieldGet(this, _Engine_ctx, "f").fillText('INSPECTOR', x + 10, y + 5);
|
|
358
|
-
__classPrivateFieldGet(this, _Engine_ctx, "f").fillStyle = 'white';
|
|
359
|
-
properties.forEach(([key, val], i) => {
|
|
360
|
-
__classPrivateFieldGet(this, _Engine_ctx, "f").fillText(`${key}: ${val}`, x + 10, y + 20 + (i * 15));
|
|
361
|
-
});
|
|
362
|
-
}
|
|
363
|
-
__classPrivateFieldGet(this, _Engine_ctx, "f").restore();
|
|
364
|
-
}, _Engine_findAllObjects = function _Engine_findAllObjects(tag = '') {
|
|
365
|
-
return Array.from(_a.objects).filter((obj) => obj.metadata.tag === tag);
|
|
366
|
-
};
|
|
367
|
-
export default Engine;
|
|
368
396
|
//# 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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"}
|