@vworlds/vecs 1.0.5 → 1.0.7
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/.husky/pre-commit +1 -0
- package/.prettierrc +7 -0
- package/README.md +100 -78
- package/dist/component.d.ts +9 -7
- package/dist/component.js +7 -8
- package/dist/component.js.map +1 -1
- package/dist/dsl.d.ts +4 -1
- package/dist/dsl.js +1 -2
- package/dist/dsl.js.map +1 -1
- package/dist/entity.d.ts +49 -15
- package/dist/entity.js +37 -13
- package/dist/entity.js.map +1 -1
- package/dist/filter.js +5 -3
- package/dist/filter.js.map +1 -1
- package/dist/package.json +16 -2
- package/dist/query.js +11 -6
- package/dist/query.js.map +1 -1
- package/dist/system.js +14 -7
- package/dist/system.js.map +1 -1
- package/dist/util/bitset.d.ts +2 -1
- package/dist/util/bitset.js +18 -17
- package/dist/util/bitset.js.map +1 -1
- package/dist/util/events.js.map +1 -1
- package/dist/world.d.ts +5 -4
- package/dist/world.js +58 -39
- package/dist/world.js.map +1 -1
- package/eslint.config.js +17 -0
- package/package.json +16 -2
package/dist/world.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ComponentMeta
|
|
1
|
+
import { ComponentMeta } from "./component.js";
|
|
2
2
|
import { Entity } from "./entity.js";
|
|
3
3
|
import { Query } from "./query.js";
|
|
4
4
|
import { System } from "./system.js";
|
|
@@ -48,7 +48,8 @@ export class World {
|
|
|
48
48
|
this.updatedComponents = [];
|
|
49
49
|
this.localComponentCounter = LOCAL_COMPONENT_MIN;
|
|
50
50
|
this.componentRegistrationDisabled = false;
|
|
51
|
-
|
|
51
|
+
/** @internal */
|
|
52
|
+
this._pipeline = new Map();
|
|
52
53
|
this.eidCounter = 0;
|
|
53
54
|
}
|
|
54
55
|
/**
|
|
@@ -60,7 +61,7 @@ export class World {
|
|
|
60
61
|
* const e = world.getOrCreateEntity(snapshot.eid, (e) => {
|
|
61
62
|
* networkEntities.add(e);
|
|
62
63
|
* });
|
|
63
|
-
*
|
|
64
|
+
* e.add(snapshot.type, false);
|
|
64
65
|
* ```
|
|
65
66
|
*
|
|
66
67
|
* @param eid - The entity id to look up or create.
|
|
@@ -74,8 +75,9 @@ export class World {
|
|
|
74
75
|
if (!e) {
|
|
75
76
|
e = new Entity(this, eid);
|
|
76
77
|
this.entities.set(eid, e);
|
|
77
|
-
if (onCreateCallback)
|
|
78
|
+
if (onCreateCallback) {
|
|
78
79
|
onCreateCallback(e);
|
|
80
|
+
}
|
|
79
81
|
}
|
|
80
82
|
return e;
|
|
81
83
|
}
|
|
@@ -115,8 +117,9 @@ export class World {
|
|
|
115
117
|
* @throws If called after registration has been disabled.
|
|
116
118
|
*/
|
|
117
119
|
setEntityIdRange(min) {
|
|
118
|
-
if (this.componentRegistrationDisabled)
|
|
120
|
+
if (this.componentRegistrationDisabled) {
|
|
119
121
|
throw "setEntityIdRange must be called before component registration is disabled";
|
|
122
|
+
}
|
|
120
123
|
this.eidCounter = min;
|
|
121
124
|
}
|
|
122
125
|
/**
|
|
@@ -134,8 +137,9 @@ export class World {
|
|
|
134
137
|
else {
|
|
135
138
|
meta = this.Type2Meta.get(typeOrClass);
|
|
136
139
|
}
|
|
137
|
-
if (!meta)
|
|
140
|
+
if (!meta) {
|
|
138
141
|
throw `unregistered component meta for component type or class '${typeOrClass}'`;
|
|
142
|
+
}
|
|
139
143
|
return meta;
|
|
140
144
|
}
|
|
141
145
|
/**
|
|
@@ -161,8 +165,9 @@ export class World {
|
|
|
161
165
|
* {@link Entity.remove}.
|
|
162
166
|
*/
|
|
163
167
|
archetypeChanged(e) {
|
|
164
|
-
if (e._archetypeChanged)
|
|
168
|
+
if (e._archetypeChanged) {
|
|
165
169
|
return;
|
|
170
|
+
}
|
|
166
171
|
e._archetypeChanged = true;
|
|
167
172
|
this.archChangeQueue.push(e);
|
|
168
173
|
e.children.forEach((child) => this.archetypeChanged(child));
|
|
@@ -173,15 +178,17 @@ export class World {
|
|
|
173
178
|
}
|
|
174
179
|
/** @internal */
|
|
175
180
|
_notifyComponentRemoved(e, c) {
|
|
176
|
-
const hook = c.meta
|
|
177
|
-
if (hook)
|
|
181
|
+
const hook = c.meta._onRemoveHandler;
|
|
182
|
+
if (hook) {
|
|
178
183
|
hook(c);
|
|
184
|
+
}
|
|
179
185
|
this.archetypeChanged(e);
|
|
180
186
|
}
|
|
181
187
|
/** @internal */
|
|
182
188
|
_notifyEntityDestroyed(e) {
|
|
183
|
-
if (!this.entities.delete(e.eid))
|
|
189
|
+
if (!this.entities.delete(e.eid)) {
|
|
184
190
|
return;
|
|
191
|
+
}
|
|
185
192
|
e.forEachComponent((c) => {
|
|
186
193
|
e.remove(c.type);
|
|
187
194
|
});
|
|
@@ -203,29 +210,37 @@ export class World {
|
|
|
203
210
|
e.clearDeletedComponents();
|
|
204
211
|
});
|
|
205
212
|
}
|
|
206
|
-
this.destroyedEntities.
|
|
207
|
-
e
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
213
|
+
if (this.destroyedEntities.length > 0) {
|
|
214
|
+
this.destroyedEntities.forEach((e) => {
|
|
215
|
+
e._destroy();
|
|
216
|
+
});
|
|
217
|
+
this.destroyedEntities.length = 0;
|
|
218
|
+
}
|
|
219
|
+
if (this.updatedComponents.length > 0) {
|
|
220
|
+
this.updatedComponents.forEach((c) => {
|
|
221
|
+
const hook = c.meta._onSetHandler;
|
|
222
|
+
if (hook) {
|
|
223
|
+
hook(c);
|
|
224
|
+
}
|
|
225
|
+
c.entity._notifyModified(c);
|
|
226
|
+
c._dirty = false;
|
|
227
|
+
});
|
|
228
|
+
this.updatedComponents.length = 0;
|
|
229
|
+
}
|
|
230
|
+
if (this.archChangeQueue.length > 0) {
|
|
231
|
+
this.archChangeQueue.forEach((e) => {
|
|
232
|
+
e._updateQueries();
|
|
233
|
+
e._archetypeChanged = false;
|
|
234
|
+
});
|
|
235
|
+
this.archChangeQueue.length = 0;
|
|
236
|
+
}
|
|
223
237
|
}
|
|
224
238
|
/** @internal Queues a component for onSet / update delivery. */
|
|
225
239
|
_queueUpdatedComponent(c) {
|
|
226
|
-
if (c
|
|
240
|
+
if (c._dirty) {
|
|
227
241
|
return;
|
|
228
|
-
|
|
242
|
+
}
|
|
243
|
+
c._dirty = true;
|
|
229
244
|
this.updatedComponents.push(c);
|
|
230
245
|
}
|
|
231
246
|
registerComponent(ComponentClass, typeOrComponentName, componentName) {
|
|
@@ -252,8 +267,9 @@ export class World {
|
|
|
252
267
|
}
|
|
253
268
|
let meta = this.Class2Meta.get(ComponentClass);
|
|
254
269
|
if (meta) {
|
|
255
|
-
if (local)
|
|
270
|
+
if (local) {
|
|
256
271
|
this.localComponentCounter--;
|
|
272
|
+
}
|
|
257
273
|
throw `Trying to register ${componentName} with type=${type} which is already registered to ${meta.componentName}`;
|
|
258
274
|
}
|
|
259
275
|
this.registerComponentType(componentName, type);
|
|
@@ -284,8 +300,9 @@ export class World {
|
|
|
284
300
|
/** @internal Called by {@link Query.destroy} to unregister a query and remove it from all entities. */
|
|
285
301
|
_removeQuery(q) {
|
|
286
302
|
const idx = this.allQueries.indexOf(q);
|
|
287
|
-
if (idx !== -1)
|
|
303
|
+
if (idx !== -1) {
|
|
288
304
|
this.allQueries.splice(idx, 1);
|
|
305
|
+
}
|
|
289
306
|
this.entities.forEach((e) => e._purgeQuery(q));
|
|
290
307
|
}
|
|
291
308
|
/** @internal Iterate over all entities currently in the world. */
|
|
@@ -360,23 +377,24 @@ export class World {
|
|
|
360
377
|
this.reindexSystems();
|
|
361
378
|
}
|
|
362
379
|
reindexSystems() {
|
|
363
|
-
let _defaultPhase = this.
|
|
380
|
+
let _defaultPhase = this._pipeline.get("update");
|
|
364
381
|
if (!_defaultPhase) {
|
|
365
382
|
_defaultPhase = new Phase("update", this);
|
|
366
|
-
this.
|
|
383
|
+
this._pipeline.set(_defaultPhase.name, _defaultPhase);
|
|
367
384
|
}
|
|
368
385
|
const defaultPhase = _defaultPhase;
|
|
369
386
|
this.allQueries.forEach((q) => {
|
|
370
|
-
if (!(q instanceof System))
|
|
387
|
+
if (!(q instanceof System)) {
|
|
371
388
|
return;
|
|
389
|
+
}
|
|
372
390
|
let phase = q._phase;
|
|
373
391
|
if (typeof phase === "string") {
|
|
374
|
-
phase = this.
|
|
392
|
+
phase = this._pipeline.get(phase);
|
|
375
393
|
}
|
|
376
394
|
phase = phase || defaultPhase;
|
|
377
395
|
phase.systems.push(q);
|
|
378
396
|
});
|
|
379
|
-
this.
|
|
397
|
+
this._pipeline.forEach((phase) => {
|
|
380
398
|
console.log("Phase %s : %s", phase.name, phase.systems.map((s) => s.name).join(" -> "));
|
|
381
399
|
});
|
|
382
400
|
}
|
|
@@ -417,7 +435,7 @@ export class World {
|
|
|
417
435
|
*/
|
|
418
436
|
addPhase(name) {
|
|
419
437
|
const phase = new Phase(name, this);
|
|
420
|
-
this.
|
|
438
|
+
this._pipeline.set(name, phase);
|
|
421
439
|
return phase;
|
|
422
440
|
}
|
|
423
441
|
/**
|
|
@@ -446,7 +464,8 @@ export class World {
|
|
|
446
464
|
* @param delta - Milliseconds elapsed since the previous tick.
|
|
447
465
|
*/
|
|
448
466
|
progress(now, delta) {
|
|
449
|
-
this.
|
|
467
|
+
this.updateArchetypes();
|
|
468
|
+
this._pipeline.forEach((phase) => {
|
|
450
469
|
this.runPhase(phase, now, delta);
|
|
451
470
|
});
|
|
452
471
|
}
|
|
@@ -454,7 +473,7 @@ export class World {
|
|
|
454
473
|
* Declare a group of mutually exclusive components.
|
|
455
474
|
*
|
|
456
475
|
* After this call, adding any component in the group to an entity that
|
|
457
|
-
* already has another component from the same group will
|
|
476
|
+
* already has another component from the same group will remove the other component
|
|
458
477
|
*
|
|
459
478
|
* ```ts
|
|
460
479
|
* world.setExclusiveComponents(Walking, Running, Idle);
|
package/dist/world.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"world.js","sourceRoot":"","sources":["../src/world.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"world.js","sourceRoot":"","sources":["../src/world.ts"],"names":[],"mappings":"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"}
|
package/eslint.config.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import tsParser from "@typescript-eslint/parser";
|
|
2
|
+
import tsPlugin from "@typescript-eslint/eslint-plugin";
|
|
3
|
+
|
|
4
|
+
export default [
|
|
5
|
+
{
|
|
6
|
+
files: ["src/**/*.ts", "tests/**/*.ts"],
|
|
7
|
+
languageOptions: {
|
|
8
|
+
parser: tsParser,
|
|
9
|
+
},
|
|
10
|
+
plugins: {
|
|
11
|
+
"@typescript-eslint": tsPlugin,
|
|
12
|
+
},
|
|
13
|
+
rules: {
|
|
14
|
+
curly: ["error", "all"],
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vworlds/vecs",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.7",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"type": "module",
|
|
@@ -10,10 +10,18 @@
|
|
|
10
10
|
"build": "yarn clean && yarn compile",
|
|
11
11
|
"compile": "tsc --build && cp \"./package.json\" ./dist/",
|
|
12
12
|
"test": "vitest run",
|
|
13
|
-
"test:watch": "vitest"
|
|
13
|
+
"test:watch": "vitest",
|
|
14
|
+
"lint": "eslint src/ tests/",
|
|
15
|
+
"prepare": "husky"
|
|
14
16
|
},
|
|
15
17
|
"devDependencies": {
|
|
16
18
|
"@types/node": "^20.0.0",
|
|
19
|
+
"@typescript-eslint/eslint-plugin": "^8.59.1",
|
|
20
|
+
"@typescript-eslint/parser": "^8.59.1",
|
|
21
|
+
"eslint": "^10.2.1",
|
|
22
|
+
"husky": "^9.1.7",
|
|
23
|
+
"lint-staged": "^16.4.0",
|
|
24
|
+
"prettier": "^3.8.3",
|
|
17
25
|
"rimraf": "^5.0.0",
|
|
18
26
|
"typescript": "^4.8.4",
|
|
19
27
|
"vitest": "^1.6.0"
|
|
@@ -25,5 +33,11 @@
|
|
|
25
33
|
"repository": {
|
|
26
34
|
"type": "git",
|
|
27
35
|
"url": "https://github.com/vworlds/vecs"
|
|
36
|
+
},
|
|
37
|
+
"lint-staged": {
|
|
38
|
+
"*.ts": [
|
|
39
|
+
"prettier --write",
|
|
40
|
+
"eslint --fix"
|
|
41
|
+
]
|
|
28
42
|
}
|
|
29
43
|
}
|