@vworlds/vecs 1.0.30 → 1.0.32
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/filter.d.ts +10 -9
- package/dist/filter.js +6 -7
- package/dist/filter.js.map +1 -1
- package/dist/inject.d.ts +20 -9
- package/dist/inject.js +33 -18
- package/dist/inject.js.map +1 -1
- package/dist/package.json +1 -1
- package/dist/query/callbacks.d.ts +9 -9
- package/dist/query/callbacks.js +52 -28
- package/dist/query/callbacks.js.map +1 -1
- package/dist/query/group.d.ts +3 -2
- package/dist/query/group.js +2 -2
- package/dist/query/group.js.map +1 -1
- package/dist/query/options.d.ts +29 -0
- package/dist/query/options.js +2 -0
- package/dist/query/options.js.map +1 -0
- package/dist/query/query.d.ts +34 -19
- package/dist/query/query.js +29 -13
- package/dist/query/query.js.map +1 -1
- package/dist/system.d.ts +10 -9
- package/dist/system.js +15 -20
- package/dist/system.js.map +1 -1
- package/docs/README.md +2 -2
- package/docs/design-guide.md +4 -4
- package/docs/queries-and-filters.md +7 -6
- package/docs/systems.md +35 -17
- package/package.json +1 -1
package/dist/query/query.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import { Iter, type FanInjectTuple, type InjectTuple, type MaybeResolvedInjectTu
|
|
|
5
5
|
import { TermConsumer, TermEventKind, type Term } from "../terms/term.js";
|
|
6
6
|
import { type World } from "../world/index.js";
|
|
7
7
|
import { type GroupedQuery } from "./grouped_query.js";
|
|
8
|
+
import type { CascadeOptions, EntityCursorOption, FanInjectCallbackOptions, GroupByOptions, InjectCallbackOptions, IterCursorOption, OrderByOptions, UpdateCallbackOptions } from "./options.js";
|
|
8
9
|
/**
|
|
9
10
|
* A reactive, always-up-to-date set of entities matching a {@link QueryDSL}
|
|
10
11
|
* predicate.
|
|
@@ -48,47 +49,61 @@ export declare class Query<R extends ComponentType[] = []> implements TermConsum
|
|
|
48
49
|
has(e: Entity): boolean;
|
|
49
50
|
forEach(callback: (e: Entity) => void): this;
|
|
50
51
|
forEach<J extends FanInjectTuple>(components: readonly [...J], callback: (e: Entity, resolved: MaybeResolvedInjectTuple<J, R>) => void): this;
|
|
51
|
-
forEach<J extends FanInjectTuple>(
|
|
52
|
-
forEach<J extends FanInjectTuple>(
|
|
52
|
+
forEach<J extends FanInjectTuple>(options: EntityCursorOption & FanInjectCallbackOptions<J>, callback: (e: Entity, resolved: MaybeResolvedInjectTuple<J, R>) => void): this;
|
|
53
|
+
forEach<J extends FanInjectTuple>(options: IterCursorOption & FanInjectCallbackOptions<J>, callback: (it: Iter, resolved: MaybeResolvedInjectTuple<J, R>) => void): this;
|
|
53
54
|
toString(): string;
|
|
54
55
|
with<const S extends readonly QuerySpec[]>(...specs: [...S]): Query<[...R, ...ExtractSpecsRequired<S>]>;
|
|
55
56
|
without(dsl: QueryDSL): this;
|
|
56
57
|
track(): this;
|
|
57
58
|
orderBy<J extends InjectTuple>(components: readonly [...J], compare: (entityA: Entity, a: MaybeResolvedInjectTuple<J, R>, entityB: Entity, b: MaybeResolvedInjectTuple<J, R>) => number): this;
|
|
58
|
-
orderBy<J extends InjectTuple>(
|
|
59
|
-
orderBy<J extends InjectTuple>(
|
|
59
|
+
orderBy<J extends InjectTuple>(options: EntityCursorOption & OrderByOptions<J>, compare: (entityA: Entity, a: MaybeResolvedInjectTuple<J, R>, entityB: Entity, b: MaybeResolvedInjectTuple<J, R>) => number): this;
|
|
60
|
+
orderBy<J extends InjectTuple>(options: IterCursorOption & OrderByOptions<J>, compare: (a: Iter, aResolved: MaybeResolvedInjectTuple<J, R>, b: Iter, bResolved: MaybeResolvedInjectTuple<J, R>) => number): this;
|
|
60
61
|
cascade(rel: ComponentRef): this;
|
|
62
|
+
cascade(options: CascadeOptions): this;
|
|
61
63
|
cascade(rel: ComponentRef, compare: (a: Entity, b: Entity) => number): this;
|
|
64
|
+
cascade(options: CascadeOptions, compare: (a: Entity, b: Entity) => number): this;
|
|
62
65
|
groupBy<K, J extends FanInjectTuple>(components: readonly [...J], key: (e: Entity, resolved: MaybeResolvedInjectTuple<J, R>) => K): GroupedQuery<K, R>;
|
|
66
|
+
groupBy<K, J extends FanInjectTuple>(options: GroupByOptions<J>, key: (e: Entity, resolved: MaybeResolvedInjectTuple<J, R>) => K): GroupedQuery<K, R>;
|
|
63
67
|
groupBy(relationship: ComponentRef): GroupedQuery<Entity, R>;
|
|
68
|
+
groupBy(options: {
|
|
69
|
+
relationship: ComponentRef;
|
|
70
|
+
}): GroupedQuery<Entity, R>;
|
|
64
71
|
ignoreSource(source: QueryDSL | Query): this;
|
|
65
72
|
enter<J extends InjectTuple>(inject: readonly [...J], callback: (e: Entity, injected: RequiredResolvedInjectTuple<J>) => void): this;
|
|
66
|
-
enter<J extends InjectTuple>(
|
|
67
|
-
enter<J extends InjectTuple>(
|
|
73
|
+
enter<J extends InjectTuple>(options: EntityCursorOption & InjectCallbackOptions<J>, callback: (e: Entity, injected: RequiredResolvedInjectTuple<J>) => void): this;
|
|
74
|
+
enter<J extends InjectTuple>(options: IterCursorOption & InjectCallbackOptions<J>, callback: (it: Iter, injected: RequiredResolvedInjectTuple<J>) => void): this;
|
|
68
75
|
enter(callback: (e: Entity) => void): this;
|
|
69
76
|
exit<J extends InjectTuple>(inject: readonly [...J], callback: (e: Entity, injected: RequiredResolvedInjectTuple<J>) => void): this;
|
|
70
|
-
exit<J extends InjectTuple>(
|
|
71
|
-
exit<J extends InjectTuple>(
|
|
77
|
+
exit<J extends InjectTuple>(options: EntityCursorOption & InjectCallbackOptions<J>, callback: (e: Entity, injected: RequiredResolvedInjectTuple<J>) => void): this;
|
|
78
|
+
exit<J extends InjectTuple>(options: IterCursorOption & InjectCallbackOptions<J>, callback: (it: Iter, injected: RequiredResolvedInjectTuple<J>) => void): this;
|
|
72
79
|
exit(callback: (e: Entity) => void): this;
|
|
73
80
|
/**
|
|
74
81
|
* Register one update callback for a watched component.
|
|
75
82
|
*
|
|
76
|
-
* `update(ComponentClass,
|
|
77
|
-
*
|
|
78
|
-
*
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
*
|
|
82
|
-
*
|
|
83
|
+
* `update(ComponentClass, callback)` keeps the common component-only form.
|
|
84
|
+
* Use `update({ watch, inject, cursor }, callback)` when the callback
|
|
85
|
+
* needs injected components or an {@link Iter} cursor.
|
|
86
|
+
*
|
|
87
|
+
* `update` also adds the watched component to the query predicate, so the
|
|
88
|
+
* callback only observes entities that carry it. The callback fires when the
|
|
89
|
+
* component is set or marked modified on a matched entity, and when a matched
|
|
90
|
+
* entity enters with the watched component already present. Calling `update`
|
|
91
|
+
* more than once for the same component on one query or system is rejected
|
|
92
|
+
* instead of replacing the previous callback.
|
|
83
93
|
*
|
|
84
94
|
* @throws When this query has already been built, when `ComponentClass`
|
|
85
95
|
* already has an update callback on this query.
|
|
86
96
|
*/
|
|
87
97
|
update<C extends ComponentType>(ComponentClass: C, callback: (e: Entity, c: InstanceType<C>) => void): this;
|
|
88
|
-
update<C extends ComponentType, J extends InjectTuple>(
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
update<C extends ComponentType, J extends InjectTuple>(
|
|
98
|
+
update<C extends ComponentType, J extends InjectTuple>(options: EntityCursorOption & UpdateCallbackOptions<C, J> & {
|
|
99
|
+
inject: readonly [...J];
|
|
100
|
+
}, callback: (e: Entity, c: InstanceType<C>, injected: MaybeResolvedInjectTuple<J, R>) => void): this;
|
|
101
|
+
update<C extends ComponentType, J extends InjectTuple>(options: IterCursorOption & UpdateCallbackOptions<C, J> & {
|
|
102
|
+
inject: readonly [...J];
|
|
103
|
+
}, callback: (it: Iter, c: InstanceType<C>, injected: MaybeResolvedInjectTuple<J, R>) => void): this;
|
|
104
|
+
update<C extends ComponentType>(options: EntityCursorOption & UpdateCallbackOptions<C, []>, callback: (e: Entity, c: InstanceType<C>) => void): this;
|
|
105
|
+
update<C extends ComponentType>(options: IterCursorOption & UpdateCallbackOptions<C, []>, callback: (it: Iter, c: InstanceType<C>) => void): this;
|
|
106
|
+
update<C extends ComponentType>(arg0: C | UpdateCallbackOptions<C, InjectTuple>, callback: (e: Entity, c: InstanceType<C>) => void): this;
|
|
92
107
|
build(): this;
|
|
93
108
|
destroy(): void;
|
|
94
109
|
/** Extension hook for subclasses that need to observe query membership entry. */
|
package/dist/query/query.js
CHANGED
|
@@ -103,9 +103,9 @@ export class Query {
|
|
|
103
103
|
}
|
|
104
104
|
return this._entities?.has(e) ?? this.rootTerm?.has(e) ?? false;
|
|
105
105
|
}
|
|
106
|
-
forEach(arg0, arg1
|
|
106
|
+
forEach(arg0, arg1) {
|
|
107
107
|
this.changed = false;
|
|
108
|
-
this._forEach(arg0, arg1
|
|
108
|
+
this._forEach(arg0, arg1);
|
|
109
109
|
return this;
|
|
110
110
|
}
|
|
111
111
|
/**
|
|
@@ -114,8 +114,8 @@ export class Query {
|
|
|
114
114
|
* tick and must not reset `changed` (that flag tracks whether membership or
|
|
115
115
|
* watched data changed since the caller last read it).
|
|
116
116
|
*/
|
|
117
|
-
_forEach(arg0, arg1
|
|
118
|
-
forEachInjected(this.world, this._matchedEntities(), arg0, arg1
|
|
117
|
+
_forEach(arg0, arg1) {
|
|
118
|
+
forEachInjected(this.world, this._matchedEntities(), arg0, arg1);
|
|
119
119
|
}
|
|
120
120
|
toString() {
|
|
121
121
|
return this.name ?? "";
|
|
@@ -157,16 +157,17 @@ export class Query {
|
|
|
157
157
|
this._tracking = true;
|
|
158
158
|
return this;
|
|
159
159
|
}
|
|
160
|
-
orderBy(arg0, arg1
|
|
160
|
+
orderBy(arg0, arg1) {
|
|
161
161
|
this._assertConfigurable();
|
|
162
162
|
this._tracking = true;
|
|
163
|
-
const { set, watchEids } = makeSortedEntitySet(this.world, arg0, arg1
|
|
163
|
+
const { set, watchEids } = makeSortedEntitySet(this.world, arg0, arg1);
|
|
164
164
|
this._entities = set;
|
|
165
165
|
this._watchOrderBy(watchEids);
|
|
166
166
|
return this;
|
|
167
167
|
}
|
|
168
|
-
cascade(
|
|
168
|
+
cascade(arg0, compare) {
|
|
169
169
|
this._assertConfigurable();
|
|
170
|
+
const rel = isRelationshipOptions(arg0) ? arg0.relationship : arg0;
|
|
170
171
|
const relEntity = this.world.entity(rel);
|
|
171
172
|
const relMeta = relEntity.meta;
|
|
172
173
|
if (!relMeta.isRelationship) {
|
|
@@ -188,6 +189,12 @@ export class Query {
|
|
|
188
189
|
groupBy(arg0, arg1) {
|
|
189
190
|
this._assertConfigurable();
|
|
190
191
|
Object.setPrototypeOf(this, getGroupedQueryPrototype());
|
|
192
|
+
if (isGroupByInjectOptions(arg0)) {
|
|
193
|
+
return this._initialize(arg0.inject, arg1);
|
|
194
|
+
}
|
|
195
|
+
if (isRelationshipOptions(arg0)) {
|
|
196
|
+
return this._initialize(arg0.relationship, arg1);
|
|
197
|
+
}
|
|
191
198
|
return this._initialize(arg0, arg1);
|
|
192
199
|
}
|
|
193
200
|
ignoreSource(source) {
|
|
@@ -199,23 +206,23 @@ export class Query {
|
|
|
199
206
|
this._silenceQuery = query;
|
|
200
207
|
return this;
|
|
201
208
|
}
|
|
202
|
-
enter(arg0, arg1
|
|
209
|
+
enter(arg0, arg1) {
|
|
203
210
|
this._assertConfigurable();
|
|
204
|
-
const enter = makeEnterCallback(this.world, arg0, arg1
|
|
211
|
+
const enter = makeEnterCallback(this.world, arg0, arg1);
|
|
205
212
|
this._enterCallback = enter.callback;
|
|
206
213
|
this._enterSnapshotTypes = enter.snapshotTypes;
|
|
207
214
|
return this;
|
|
208
215
|
}
|
|
209
|
-
exit(arg0, arg1
|
|
216
|
+
exit(arg0, arg1) {
|
|
210
217
|
this._assertConfigurable();
|
|
211
|
-
const exit = makeExitCallback(this.world, arg0, arg1
|
|
218
|
+
const exit = makeExitCallback(this.world, arg0, arg1);
|
|
212
219
|
this._exitCallback = exit.callback;
|
|
213
220
|
this._exitSnapshotTypes = exit.snapshotTypes;
|
|
214
221
|
return this;
|
|
215
222
|
}
|
|
216
|
-
update(arg0, arg1
|
|
223
|
+
update(arg0, arg1) {
|
|
217
224
|
this._assertConfigurable();
|
|
218
|
-
const { componentEid, callback } = makeUpdateRegistration(this.world, arg0, arg1
|
|
225
|
+
const { componentEid, callback } = makeUpdateRegistration(this.world, arg0, arg1);
|
|
219
226
|
if (this._componentUpdateCallbacks.has(componentEid)) {
|
|
220
227
|
const componentName = this.world.entity(componentEid).meta.Class.name;
|
|
221
228
|
throw new Error(`query '${this.name}' already has an update callback for component ${componentName}`);
|
|
@@ -397,4 +404,13 @@ export class Query {
|
|
|
397
404
|
}
|
|
398
405
|
}
|
|
399
406
|
}
|
|
407
|
+
function isOptionsObject(value) {
|
|
408
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
409
|
+
}
|
|
410
|
+
function isGroupByInjectOptions(value) {
|
|
411
|
+
return isOptionsObject(value) && "inject" in value;
|
|
412
|
+
}
|
|
413
|
+
function isRelationshipOptions(value) {
|
|
414
|
+
return isOptionsObject(value) && "relationship" in value;
|
|
415
|
+
}
|
|
400
416
|
//# sourceMappingURL=query.js.map
|
package/dist/query/query.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/query/query.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/query/query.ts"],"names":[],"mappings":"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"}
|
package/dist/system.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type ComponentType } from "./component.js";
|
|
2
2
|
import { Iter, type FanInjectTuple, type MaybeResolvedInjectTuple } from "./inject.js";
|
|
3
3
|
import { Query } from "./query/index.js";
|
|
4
|
+
import type { EntityCursorOption, FanInjectCallbackOptions, IterCursorOption } from "./query/options.js";
|
|
4
5
|
import { type ExtractSpecsRequired, type QuerySpec } from "./dsl.js";
|
|
5
6
|
import { Entity } from "./entity/index.js";
|
|
6
7
|
import { type World } from "./world/index.js";
|
|
@@ -166,18 +167,18 @@ export declare class System<R extends ComponentType[] = []> extends Query<R> imp
|
|
|
166
167
|
*/
|
|
167
168
|
each<J extends FanInjectTuple>(components: readonly [...J], callback: (e: Entity, resolved: MaybeResolvedInjectTuple<J, R>) => void): this;
|
|
168
169
|
/**
|
|
169
|
-
* As above, but pass `Entity`
|
|
170
|
-
* explicit. Identical behavior to the
|
|
170
|
+
* As above, but pass `{ cursor: Entity, inject: [...] }` to make the
|
|
171
|
+
* entity-first signature explicit. Identical behavior to the array form.
|
|
171
172
|
*/
|
|
172
|
-
each<J extends FanInjectTuple>(
|
|
173
|
+
each<J extends FanInjectTuple>(options: EntityCursorOption & FanInjectCallbackOptions<J>, callback: (e: Entity, resolved: MaybeResolvedInjectTuple<J, R>) => void): this;
|
|
173
174
|
/**
|
|
174
|
-
* As above, but pass `Iter`
|
|
175
|
-
* cursor instead of the bare entity. The cursor exposes the
|
|
176
|
-
* (`it.entity`) and, in `it.src`, the source entity each
|
|
177
|
-
* was read from (the visited entity for direct components,
|
|
178
|
-
* target for `target`-injected ones).
|
|
175
|
+
* As above, but pass `{ cursor: Iter, inject: [...] }` to receive a reused
|
|
176
|
+
* {@link Iter} cursor instead of the bare entity. The cursor exposes the
|
|
177
|
+
* visited entity (`it.entity`) and, in `it.src`, the source entity each
|
|
178
|
+
* resolved component was read from (the visited entity for direct components,
|
|
179
|
+
* the relationship target for `target`-injected ones).
|
|
179
180
|
*/
|
|
180
|
-
each<J extends FanInjectTuple>(
|
|
181
|
+
each<J extends FanInjectTuple>(options: IterCursorOption & FanInjectCallbackOptions<J>, callback: (it: Iter, resolved: MaybeResolvedInjectTuple<J, R>) => void): this;
|
|
181
182
|
/**
|
|
182
183
|
* Add entity-membership predicates using {@link QuerySpec} expressions.
|
|
183
184
|
*
|
package/dist/system.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { makeInjectedInvoker, normalizeFanInjectCallbackArgs, } from "./inject.js";
|
|
2
2
|
import { SOURCE_TRACKED_QUERY_ERROR, Query } from "./query/index.js";
|
|
3
3
|
import { containsDownTerm, } from "./dsl.js";
|
|
4
4
|
import { ON_UPDATE, Phase } from "./modules/pipeline.js";
|
|
5
5
|
import { DependsOn } from "./modules/relationships.js";
|
|
6
6
|
import { OrderedSet } from "./util/ordered_set.js";
|
|
7
7
|
import { ALWAYS_TICK_SOURCE, IntervalTickSource, RateTickSource, } from "./timer.js";
|
|
8
|
-
import { ArrayMap } from "./util/array_map.js";
|
|
9
8
|
/**
|
|
10
9
|
* A reactive processor running over a filtered subset of world entities.
|
|
11
10
|
*
|
|
@@ -93,13 +92,7 @@ export class System extends Query {
|
|
|
93
92
|
// the inbox drains — otherwise the injected read would crash on `undefined`.
|
|
94
93
|
let enterSnapshot;
|
|
95
94
|
if (this._enterSnapshotTypes && this._enterSnapshotTypes.length > 0) {
|
|
96
|
-
enterSnapshot =
|
|
97
|
-
for (const ceid of this._enterSnapshotTypes) {
|
|
98
|
-
const c = e._get(ceid);
|
|
99
|
-
if (c) {
|
|
100
|
-
enterSnapshot.set(ceid, c);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
95
|
+
enterSnapshot = snapshotDirectInjects(e, this._enterSnapshotTypes);
|
|
103
96
|
}
|
|
104
97
|
this._inbox.push({ kind: 0 /* InboxCommand.Enter */, entity: e, snapshot: enterSnapshot });
|
|
105
98
|
}
|
|
@@ -134,13 +127,7 @@ export class System extends Query {
|
|
|
134
127
|
if (this._exitCallback !== undefined) {
|
|
135
128
|
let exitSnapshot;
|
|
136
129
|
if (this._exitSnapshotTypes && this._exitSnapshotTypes.length > 0) {
|
|
137
|
-
exitSnapshot =
|
|
138
|
-
for (const ceid of this._exitSnapshotTypes) {
|
|
139
|
-
const c = e._get(ceid);
|
|
140
|
-
if (c) {
|
|
141
|
-
exitSnapshot.set(ceid, c);
|
|
142
|
-
}
|
|
143
|
-
}
|
|
130
|
+
exitSnapshot = snapshotDirectInjects(e, this._exitSnapshotTypes);
|
|
144
131
|
}
|
|
145
132
|
this._inbox.push({ kind: 1 /* InboxCommand.Exit */, entity: e, snapshot: exitSnapshot });
|
|
146
133
|
}
|
|
@@ -341,15 +328,14 @@ export class System extends Query {
|
|
|
341
328
|
this._runCallback = callback;
|
|
342
329
|
return this;
|
|
343
330
|
}
|
|
344
|
-
each(arg0, arg1
|
|
331
|
+
each(arg0, arg1) {
|
|
345
332
|
this._assertConfigurable();
|
|
346
333
|
if (this._eachCallback) {
|
|
347
334
|
throw new Error(`each already registered for system '${this.name}'`);
|
|
348
335
|
}
|
|
349
336
|
this.track();
|
|
350
|
-
const useIter =
|
|
351
|
-
const
|
|
352
|
-
const callback = (isCursorMarker(arg0) ? arg2 : arg1);
|
|
337
|
+
const { components, useIter } = normalizeFanInjectCallbackArgs(arg0);
|
|
338
|
+
const callback = arg1;
|
|
353
339
|
this._eachCallback = makeInjectedInvoker(this.world, components, useIter, callback);
|
|
354
340
|
return this;
|
|
355
341
|
}
|
|
@@ -430,4 +416,13 @@ export class System extends Query {
|
|
|
430
416
|
super.destroy();
|
|
431
417
|
}
|
|
432
418
|
}
|
|
419
|
+
function snapshotDirectInjects(e, snapshotTypes) {
|
|
420
|
+
const snapshot = new Array(snapshotTypes.length);
|
|
421
|
+
snapshotTypes.forEach((ceid, index) => {
|
|
422
|
+
if (ceid !== undefined) {
|
|
423
|
+
snapshot[index] = e._get(ceid);
|
|
424
|
+
}
|
|
425
|
+
});
|
|
426
|
+
return snapshot;
|
|
427
|
+
}
|
|
433
428
|
//# sourceMappingURL=system.js.map
|
package/dist/system.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system.js","sourceRoot":"","sources":["../src/system.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"system.js","sourceRoot":"","sources":["../src/system.ts"],"names":[],"mappings":"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"}
|
package/docs/README.md
CHANGED
|
@@ -17,7 +17,7 @@ Read in this order the first time through:
|
|
|
17
17
|
- [Components](./components.md) — registration, hooks, exclusivity, cleanup policies,
|
|
18
18
|
interfaces, singletons.
|
|
19
19
|
- [Entities](./entities.md) — creation, lookup, the component API, lifecycle.
|
|
20
|
-
- [Systems](./systems.md) — membership, reactive callbacks, `each`/`run`, cadence, injection.
|
|
20
|
+
- [Systems](./systems.md) — membership, reactive callbacks, callback options, `each`/`run`, cadence, injection.
|
|
21
21
|
- [Queries and filters](./queries-and-filters.md) — the query DSL, live queries, one-shot
|
|
22
22
|
filters, grouped queries, `Bitset`.
|
|
23
23
|
- [Relationships](./relationships.md) — entity-to-entity links, hierarchy, cleanup cascades.
|
|
@@ -38,7 +38,7 @@ Keep the [Glossary](./glossary.md) at hand for terminology.
|
|
|
38
38
|
| [execution-model.md](./execution-model.md) | `world.progress`, the 8 built-in phases, deferred commands, flush boundaries, event routing. |
|
|
39
39
|
| [components.md](./components.md) | `world.component`, hooks, exclusive groups, `CleanupPolicy`, `Implements`, `Singleton`. |
|
|
40
40
|
| [entities.md](./entities.md) | `world.entity`, `add`/`set`/`get`/`remove`/`destroy`, deferred read semantics. |
|
|
41
|
-
| [systems.md](./systems.md) | `world.system`, `with`/`without`, `enter`/`update`/`exit`,
|
|
41
|
+
| [systems.md](./systems.md) | `world.system`, `with`/`without`, `enter`/`update`/`exit`, callback options, tick sources. |
|
|
42
42
|
| [queries-and-filters.md](./queries-and-filters.md) | `QueryDSL`, `Query`, `Filter`, `groupBy`, `ignoreSource`. |
|
|
43
43
|
| [relationships.md](./relationships.md) | `Relationship`, `ChildOf`/`DependsOn`, `parent`/`children`, `Traversable`, cascades. |
|
|
44
44
|
| [modules.md](./modules.md) | `Module<Config>`, `world.module`, composition, built-in modules. |
|
package/docs/design-guide.md
CHANGED
|
@@ -213,10 +213,10 @@ classes or DSL objects (`{ all: [...] }`, `{ any: [...] }`, `{ parent: X }`, `{
|
|
|
213
213
|
```ts
|
|
214
214
|
// ❌ redundant
|
|
215
215
|
.enter([Rotation, VGameObject], (_e, [r, vgo]) => vgo.obj.setRotation(coords.rot(r.angle)))
|
|
216
|
-
.update(Rotation, [VGameObject], (_e, r, [vgo]) => vgo.obj.setRotation(coords.rot(r.angle)));
|
|
216
|
+
.update({ watch: Rotation, inject: [VGameObject] }, (_e, r, [vgo]) => vgo.obj.setRotation(coords.rot(r.angle)));
|
|
217
217
|
|
|
218
218
|
// ✅ update fires on entry too
|
|
219
|
-
.update(Rotation, [VGameObject], (_e, r, [vgo]) => vgo.obj.setRotation(coords.rot(r.angle)));
|
|
219
|
+
.update({ watch: Rotation, inject: [VGameObject] }, (_e, r, [vgo]) => vgo.obj.setRotation(coords.rot(r.angle)));
|
|
220
220
|
```
|
|
221
221
|
|
|
222
222
|
### Injection
|
|
@@ -225,7 +225,7 @@ Pull components into the callback instead of `entity.get()`-ing them by hand:
|
|
|
225
225
|
|
|
226
226
|
```ts
|
|
227
227
|
.enter([Arc], (entity, [arc]) => { /* … */ })
|
|
228
|
-
.update(Arc, [VGameObject], (entity, arc, [vgo]) => { /* … */ })
|
|
228
|
+
.update({ watch: Arc, inject: [VGameObject] }, (entity, arc, [vgo]) => { /* … */ })
|
|
229
229
|
.exit([Arc, VGameObject], (entity, [arc, vgo]) => { /* … */ })
|
|
230
230
|
.each([Position, Velocity], (entity, [pos, vel]) => { /* … */ })
|
|
231
231
|
```
|
|
@@ -382,7 +382,7 @@ world
|
|
|
382
382
|
.system("render.arc")
|
|
383
383
|
.with(Arc, VGameObject)
|
|
384
384
|
.phase(ON_STORE)
|
|
385
|
-
.update(Arc, [VGameObject], (e, arc, [vgo]) =>
|
|
385
|
+
.update({ watch: Arc, inject: [VGameObject] }, (e, arc, [vgo]) =>
|
|
386
386
|
(vgo.obj as ArcObject).setRadius(coords.len(arc.radius))
|
|
387
387
|
);
|
|
388
388
|
|
|
@@ -79,6 +79,7 @@ projectiles.count; // kept up to date automatically
|
|
|
79
79
|
projectiles.has(e);
|
|
80
80
|
for (const e of projectiles) { ... }
|
|
81
81
|
projectiles.forEach([Position], (e, [pos]) => { ... });
|
|
82
|
+
projectiles.forEach({ inject: [Position] }, (e, [pos]) => { ... });
|
|
82
83
|
```
|
|
83
84
|
|
|
84
85
|
The crucial difference from systems: **standalone query callbacks fire synchronously** while the
|
|
@@ -131,19 +132,19 @@ interest management, any "find members in bucket K" — without re-scanning:
|
|
|
131
132
|
const ballsByCell = world
|
|
132
133
|
.query("ByCell")
|
|
133
134
|
.with(Ball, Position)
|
|
134
|
-
.groupBy([Position], (_e, [p]) => cellIndex(p)); // re-buckets reactively as Position changes
|
|
135
|
+
.groupBy({ inject: [Position] }, (_e, [p]) => cellIndex(p)); // re-buckets reactively as Position changes
|
|
135
136
|
|
|
136
|
-
ballsByCell.group(key)?.forEach([Position], (e, [p]) => { ... });
|
|
137
|
+
ballsByCell.group(key)?.forEach({ inject: [Position] }, (e, [p]) => { ... });
|
|
137
138
|
ballsByCell.group(key)?.count;
|
|
138
139
|
for (const group of ballsByCell.groups()) { ... }
|
|
139
140
|
```
|
|
140
141
|
|
|
141
142
|
Two forms (`lib/vecs/src/query/grouped_query.ts`):
|
|
142
143
|
|
|
143
|
-
- `groupBy([components], keyFn)`
|
|
144
|
-
changing them re-keys the entity.
|
|
145
|
-
- `groupBy(RelationshipClass)`
|
|
146
|
-
buckets is a retarget, a plain data change (see
|
|
144
|
+
- `groupBy([components], keyFn)` / `groupBy({ inject: [components] }, keyFn)` — bucket by a
|
|
145
|
+
computed key; injected components are watched, so changing them re-keys the entity.
|
|
146
|
+
- `groupBy(RelationshipClass)` / `groupBy({ relationship: RelationshipClass })` — bucket by the
|
|
147
|
+
relationship's target entity. Moving between buckets is a retarget, a plain data change (see
|
|
147
148
|
[Relationships](./relationships.md#retargeting)).
|
|
148
149
|
|
|
149
150
|
The result is a `GroupedQuery<K, R>` adding `group(key)`, `groups()`, `groupKeys()`, `groupCount`,
|