@vworlds/vecs 1.0.3 → 1.0.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/world.d.ts CHANGED
@@ -1,19 +1,22 @@
1
1
  import { Component, ComponentClassOrType, ComponentMeta, Hook } from "./component.js";
2
2
  import { Entity } from "./entity.js";
3
+ import { Query } from "./query.js";
3
4
  import { System } from "./system.js";
5
+ import { Filter } from "./filter.js";
6
+ import { type QueryDSL, type ExtractRequired } from "./dsl.js";
4
7
  import { IPhase } from "./phase.js";
5
8
  /**
6
9
  * The central ECS container.
7
10
  *
8
- * A `World` owns all entities, components, systems, and the update pipeline.
9
- * Typical lifecycle:
11
+ * A `World` owns all entities, components, systems, queries, and the update
12
+ * pipeline. Typical lifecycle:
10
13
  *
11
14
  * 1. **Register components** — call {@link registerComponent} (and optionally
12
15
  * {@link registerComponentType}) for every component class.
13
- * 2. **Register systems** — call {@link system} (or {@link addSystem}) to
14
- * create and configure {@link System | systems}.
15
- * 3. **Start** — call {@link start} to freeze registration and sort systems
16
- * into their phases.
16
+ * 2. **Register systems and queries** — call {@link system} and {@link query}
17
+ * to create and configure them.
18
+ * 3. **Start** — call {@link start} to freeze component registration and
19
+ * distribute systems into their phases.
17
20
  * 4. **Run loop** — call {@link runPhase} once per frame for each phase.
18
21
  *
19
22
  * ```ts
@@ -37,14 +40,12 @@ export declare class World {
37
40
  private componentNameTypeMap;
38
41
  private archChangeQueue;
39
42
  private destroyedEntities;
40
- private pendingSystems;
41
- private allSystems;
43
+ private allQueries;
42
44
  private Class2Meta;
43
45
  private Type2Meta;
44
46
  private updatedComponents;
45
47
  private localComponentCounter;
46
48
  private componentRegistrationDisabled;
47
- private systemRegistrationDisabled;
48
49
  private pipeline;
49
50
  private eidCounter;
50
51
  constructor();
@@ -96,7 +97,6 @@ export declare class World {
96
97
  * @throws If called after registration has been disabled.
97
98
  */
98
99
  setEntityIdRange(min: number): void;
99
- private getComponentInstance;
100
100
  /**
101
101
  * Retrieve the {@link ComponentMeta} record for a registered component.
102
102
  *
@@ -167,22 +167,15 @@ export declare class World {
167
167
  * @param type - The numeric type id assigned by the server.
168
168
  */
169
169
  registerComponentType(componentName: string, type: number): void;
170
- /**
171
- * Register a pre-built {@link System} with the world.
172
- *
173
- * In most cases it is more convenient to use {@link system} which both
174
- * creates and registers in one call. Use `addSystem` when you need to
175
- * subclass `System` directly.
176
- *
177
- * @param s - The system to add.
178
- * @throws If system registration is disabled (after {@link start}).
179
- */
180
- addSystem(s: System): void;
170
+ /** @internal Called by the {@link Query} constructor to register itself. */
171
+ _addQuery(q: Query): void;
172
+ /** @internal Called by {@link Query.destroy} to unregister a query and remove it from all entities. */
173
+ _removeQuery(q: Query): void;
174
+ /** @internal Iterate over all entities currently in the world. */
175
+ _forEachEntity(callback: (e: Entity) => void): void;
181
176
  /**
182
177
  * Create a new {@link System}, register it, and return it for configuration.
183
178
  *
184
- * This is the primary way to define systems:
185
- *
186
179
  * ```ts
187
180
  * world.system("Render")
188
181
  * .phase("update")
@@ -195,6 +188,57 @@ export declare class World {
195
188
  * @returns The new `System` instance.
196
189
  */
197
190
  system(name: string): System<[]>;
191
+ /**
192
+ * Create a standalone {@link Query}, register it, and return it for
193
+ * configuration.
194
+ *
195
+ * Unlike a {@link System}, a standalone query has no phase and no per-tick
196
+ * callbacks — it is a reactive, always-updated entity set that can be read
197
+ * at any time after {@link start}. Standalone queries can also be created
198
+ * after {@link start}; existing matched entities are backfilled immediately.
199
+ *
200
+ * ```ts
201
+ * const enemies = world.query("Enemies")
202
+ * .requires(Enemy, Health)
203
+ * .enter((e) => console.log("enemy spawned", e.eid));
204
+ *
205
+ * world.start();
206
+ * // enemies.entities is kept up-to-date automatically
207
+ * ```
208
+ *
209
+ * @param name - A unique display name for the query.
210
+ * @returns The new `Query` instance.
211
+ */
212
+ query(name: string): Query<[]>;
213
+ /**
214
+ * Create a non-reactive {@link Filter} that matches entities satisfying `q`.
215
+ *
216
+ * Unlike {@link query}, the returned filter holds no tracked entity set and
217
+ * registers nothing with the world. Each call to {@link Filter.forEach} walks
218
+ * all current world entities and invokes the callback for matching ones.
219
+ *
220
+ * Component classes guaranteed present on every matched entity are inferred
221
+ * automatically from the DSL where possible (plain arrays, `HAS`, `HAS_ONLY`,
222
+ * and `AND` of those forms). For cases the type extractor cannot see through
223
+ * (`OR`, `NOT`, `PARENT`, custom `EntityTestFunc`), pass a `_guaranteed`
224
+ * tuple as a type-level override:
225
+ *
226
+ * ```ts
227
+ * // Auto-deduced — pos and vel are non-nullable
228
+ * world.filter([Position, Velocity])
229
+ * .forEach([Position, Velocity], (e, [pos, vel]) => { ... });
230
+ *
231
+ * // Manual override for an opaque query
232
+ * world.filter(myTestFunc, [Position])
233
+ * .forEach([Position], (e, [pos]) => pos.x);
234
+ * ```
235
+ *
236
+ * @param q - A {@link QueryDSL} expression.
237
+ * @param _guaranteed - Optional type hint declaring which components are
238
+ * guaranteed present (not validated at runtime).
239
+ */
240
+ filter<Q extends QueryDSL>(q: Q): Filter<ExtractRequired<Q>>;
241
+ filter<T extends (typeof Component)[]>(q: QueryDSL, _guaranteed: readonly [...T]): Filter<T>;
198
242
  /**
199
243
  * Prevent any further calls to {@link registerComponent}.
200
244
  *
@@ -203,14 +247,14 @@ export declare class World {
203
247
  */
204
248
  disableComponentRegistration(): void;
205
249
  /**
206
- * Freeze registration and prepare the world for running.
250
+ * Freeze component registration and prepare the world for running.
207
251
  *
208
- * Disables both component and system registration, then distributes all
209
- * pending systems into their assigned pipeline phases (defaulting to
210
- * `"update"`). Logs the resulting phase system order to the console.
252
+ * Distributes all systems registered so far into their pipeline phases
253
+ * (defaulting to `"update"`) and logs the phase system order to the
254
+ * console. Systems and queries can still be created after this call —
255
+ * standalone queries will immediately backfill existing matched entities.
211
256
  *
212
- * Call this once, after all components and systems are registered but before
213
- * the first {@link runPhase} call.
257
+ * Call this once before the first {@link runPhase} call.
214
258
  */
215
259
  start(): void;
216
260
  private reindexSystems;
@@ -269,6 +313,21 @@ export declare class World {
269
313
  * @param delta - Milliseconds elapsed since the previous tick.
270
314
  */
271
315
  progress(now: number, delta: number): void;
316
+ /**
317
+ * Declare a group of mutually exclusive components.
318
+ *
319
+ * After this call, adding any component in the group to an entity that
320
+ * already has another component from the same group will throw.
321
+ *
322
+ * ```ts
323
+ * world.setExclusiveComponents(Walking, Running, Idle);
324
+ * // entity.add(Running) throws if entity already has Walking or Idle
325
+ * ```
326
+ *
327
+ * @param components - Two or more component classes that cannot coexist.
328
+ * @throws If any class has not been registered.
329
+ */
330
+ setExclusiveComponents(...components: (typeof Component)[]): void;
272
331
  /**
273
332
  * Destroy every entity currently tracked by the world.
274
333
  *
package/dist/world.js CHANGED
@@ -1,21 +1,23 @@
1
1
  import { ComponentMeta, } from "./component.js";
2
2
  import { Entity } from "./entity.js";
3
+ import { Query } from "./query.js";
3
4
  import { System } from "./system.js";
5
+ import { Filter } from "./filter.js";
4
6
  import { ArrayMap } from "./util/array_map.js";
5
7
  import { Phase } from "./phase.js";
6
8
  const LOCAL_COMPONENT_MIN = 256;
7
9
  /**
8
10
  * The central ECS container.
9
11
  *
10
- * A `World` owns all entities, components, systems, and the update pipeline.
11
- * Typical lifecycle:
12
+ * A `World` owns all entities, components, systems, queries, and the update
13
+ * pipeline. Typical lifecycle:
12
14
  *
13
15
  * 1. **Register components** — call {@link registerComponent} (and optionally
14
16
  * {@link registerComponentType}) for every component class.
15
- * 2. **Register systems** — call {@link system} (or {@link addSystem}) to
16
- * create and configure {@link System | systems}.
17
- * 3. **Start** — call {@link start} to freeze registration and sort systems
18
- * into their phases.
17
+ * 2. **Register systems and queries** — call {@link system} and {@link query}
18
+ * to create and configure them.
19
+ * 3. **Start** — call {@link start} to freeze component registration and
20
+ * distribute systems into their phases.
19
21
  * 4. **Run loop** — call {@link runPhase} once per frame for each phase.
20
22
  *
21
23
  * ```ts
@@ -40,14 +42,12 @@ export class World {
40
42
  this.componentNameTypeMap = new Map();
41
43
  this.archChangeQueue = [];
42
44
  this.destroyedEntities = [];
43
- this.pendingSystems = [];
44
- this.allSystems = [];
45
+ this.allQueries = [];
45
46
  this.Class2Meta = new Map();
46
47
  this.Type2Meta = new ArrayMap();
47
48
  this.updatedComponents = [];
48
49
  this.localComponentCounter = LOCAL_COMPONENT_MIN;
49
50
  this.componentRegistrationDisabled = false;
50
- this.systemRegistrationDisabled = false;
51
51
  this.pipeline = new Map();
52
52
  this.eidCounter = 0;
53
53
  }
@@ -119,14 +119,6 @@ export class World {
119
119
  throw "setEntityIdRange must be called before component registration is disabled";
120
120
  this.eidCounter = min;
121
121
  }
122
- getComponentInstance(typeOrClass, entity) {
123
- const meta = this.getComponentMeta(typeOrClass);
124
- const c = new meta.Class(entity, meta);
125
- const hook = meta["onAddHandler"];
126
- if (hook)
127
- hook(c);
128
- return c;
129
- }
130
122
  /**
131
123
  * Retrieve the {@link ComponentMeta} record for a registered component.
132
124
  *
@@ -197,13 +189,13 @@ export class World {
197
189
  }
198
190
  updateArchetypes() {
199
191
  if (this.archChangeQueue.length > 0) {
200
- this.allSystems.forEach((s) => {
192
+ this.allQueries.forEach((q) => {
201
193
  this.archChangeQueue.forEach((e) => {
202
- if (s.belongs(e)) {
203
- e._addSystem(s);
194
+ if (q.belongs(e)) {
195
+ e._addQuery(q);
204
196
  }
205
197
  else {
206
- e._removeSystem(s);
198
+ e._removeQuery(q);
207
199
  }
208
200
  });
209
201
  });
@@ -223,7 +215,7 @@ export class World {
223
215
  c["dirty"] = false;
224
216
  });
225
217
  this.archChangeQueue.forEach((e) => {
226
- e._updateSystems();
218
+ e._updateQueries();
227
219
  e._archetypeChanged = false;
228
220
  });
229
221
  this.archChangeQueue.length = 0;
@@ -285,26 +277,24 @@ export class World {
285
277
  registerComponentType(componentName, type) {
286
278
  this.componentNameTypeMap.set(componentName, type);
287
279
  }
288
- /**
289
- * Register a pre-built {@link System} with the world.
290
- *
291
- * In most cases it is more convenient to use {@link system} which both
292
- * creates and registers in one call. Use `addSystem` when you need to
293
- * subclass `System` directly.
294
- *
295
- * @param s - The system to add.
296
- * @throws If system registration is disabled (after {@link start}).
297
- */
298
- addSystem(s) {
299
- if (this.systemRegistrationDisabled)
300
- throw "System registration is disabled";
301
- this.pendingSystems.push(s);
280
+ /** @internal Called by the {@link Query} constructor to register itself. */
281
+ _addQuery(q) {
282
+ this.allQueries.push(q);
283
+ }
284
+ /** @internal Called by {@link Query.destroy} to unregister a query and remove it from all entities. */
285
+ _removeQuery(q) {
286
+ const idx = this.allQueries.indexOf(q);
287
+ if (idx !== -1)
288
+ this.allQueries.splice(idx, 1);
289
+ this.entities.forEach((e) => e._purgeQuery(q));
290
+ }
291
+ /** @internal Iterate over all entities currently in the world. */
292
+ _forEachEntity(callback) {
293
+ this.entities.forEach(callback);
302
294
  }
303
295
  /**
304
296
  * Create a new {@link System}, register it, and return it for configuration.
305
297
  *
306
- * This is the primary way to define systems:
307
- *
308
298
  * ```ts
309
299
  * world.system("Render")
310
300
  * .phase("update")
@@ -317,9 +307,34 @@ export class World {
317
307
  * @returns The new `System` instance.
318
308
  */
319
309
  system(name) {
320
- const system = new System(name, this);
321
- this.addSystem(system);
322
- return system;
310
+ return new System(name, this);
311
+ }
312
+ /**
313
+ * Create a standalone {@link Query}, register it, and return it for
314
+ * configuration.
315
+ *
316
+ * Unlike a {@link System}, a standalone query has no phase and no per-tick
317
+ * callbacks — it is a reactive, always-updated entity set that can be read
318
+ * at any time after {@link start}. Standalone queries can also be created
319
+ * after {@link start}; existing matched entities are backfilled immediately.
320
+ *
321
+ * ```ts
322
+ * const enemies = world.query("Enemies")
323
+ * .requires(Enemy, Health)
324
+ * .enter((e) => console.log("enemy spawned", e.eid));
325
+ *
326
+ * world.start();
327
+ * // enemies.entities is kept up-to-date automatically
328
+ * ```
329
+ *
330
+ * @param name - A unique display name for the query.
331
+ * @returns The new `Query` instance.
332
+ */
333
+ query(name) {
334
+ return new Query(name, this);
335
+ }
336
+ filter(q, _guaranteed) {
337
+ return new Filter(this, q);
323
338
  }
324
339
  /**
325
340
  * Prevent any further calls to {@link registerComponent}.
@@ -331,18 +346,17 @@ export class World {
331
346
  this.componentRegistrationDisabled = true;
332
347
  }
333
348
  /**
334
- * Freeze registration and prepare the world for running.
349
+ * Freeze component registration and prepare the world for running.
335
350
  *
336
- * Disables both component and system registration, then distributes all
337
- * pending systems into their assigned pipeline phases (defaulting to
338
- * `"update"`). Logs the resulting phase system order to the console.
351
+ * Distributes all systems registered so far into their pipeline phases
352
+ * (defaulting to `"update"`) and logs the phase system order to the
353
+ * console. Systems and queries can still be created after this call —
354
+ * standalone queries will immediately backfill existing matched entities.
339
355
  *
340
- * Call this once, after all components and systems are registered but before
341
- * the first {@link runPhase} call.
356
+ * Call this once before the first {@link runPhase} call.
342
357
  */
343
358
  start() {
344
359
  this.componentRegistrationDisabled = true;
345
- this.systemRegistrationDisabled = true;
346
360
  this.reindexSystems();
347
361
  }
348
362
  reindexSystems() {
@@ -352,18 +366,17 @@ export class World {
352
366
  this.pipeline.set(_defaultPhase.name, _defaultPhase);
353
367
  }
354
368
  const defaultPhase = _defaultPhase;
355
- this.pendingSystems.forEach((s) => {
356
- let phase = s._phase;
369
+ this.allQueries.forEach((q) => {
370
+ if (!(q instanceof System))
371
+ return;
372
+ let phase = q._phase;
357
373
  if (typeof phase === "string") {
358
374
  phase = this.pipeline.get(phase);
359
375
  }
360
376
  phase = phase || defaultPhase;
361
- phase.systems.push(s);
377
+ phase.systems.push(q);
362
378
  });
363
- this.pendingSystems.length = 0;
364
- this.allSystems.length = 0;
365
379
  this.pipeline.forEach((phase) => {
366
- this.allSystems.push(...phase.systems);
367
380
  console.log("Phase %s : %s", phase.name, phase.systems.map((s) => s.name).join(" -> "));
368
381
  });
369
382
  }
@@ -437,6 +450,26 @@ export class World {
437
450
  this.runPhase(phase, now, delta);
438
451
  });
439
452
  }
453
+ /**
454
+ * Declare a group of mutually exclusive components.
455
+ *
456
+ * After this call, adding any component in the group to an entity that
457
+ * already has another component from the same group will throw.
458
+ *
459
+ * ```ts
460
+ * world.setExclusiveComponents(Walking, Running, Idle);
461
+ * // entity.add(Running) throws if entity already has Walking or Idle
462
+ * ```
463
+ *
464
+ * @param components - Two or more component classes that cannot coexist.
465
+ * @throws If any class has not been registered.
466
+ */
467
+ setExclusiveComponents(...components) {
468
+ const types = components.map((C) => this.getComponentType(C));
469
+ for (let i = 0; i < components.length; i++) {
470
+ this.getComponentMeta(components[i]).exclusive = types.filter((_, j) => j !== i);
471
+ }
472
+ }
440
473
  /**
441
474
  * Destroy every entity currently tracked by the world.
442
475
  *
package/dist/world.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"world.js","sourceRoot":"","sources":["../src/world.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"world.js","sourceRoot":"","sources":["../src/world.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vworlds/vecs",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "type": "module",