@vworlds/vecs 1.0.32 → 1.0.34

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vworlds/vecs",
3
- "version": "1.0.32",
3
+ "version": "1.0.34",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "type": "module",
@@ -21,4 +21,5 @@ export declare function makeSortedEntitySet(world: World, arg0: readonly InjectE
21
21
  export declare function makeUpdateRegistration<C extends ComponentType>(world: World, arg0: C | UpdateCallbackOptions<C, InjectTuple>, arg1: (...args: any[]) => void): {
22
22
  componentEid: EID;
23
23
  callback: ComponentCallback;
24
+ onEnter: boolean;
24
25
  };
@@ -89,7 +89,7 @@ export function makeSortedEntitySet(world, arg0, arg1) {
89
89
  }
90
90
  export function makeUpdateRegistration(world, arg0, arg1) {
91
91
  const normalized = normalizeUpdateCallbackArgs(arg0);
92
- const { ComponentClass, components, useIter } = normalized;
92
+ const { ComponentClass, components, onEnter, useIter } = normalized;
93
93
  const componentEid = world.entity(ComponentClass).eid;
94
94
  if (components === undefined) {
95
95
  const fn = arg1;
@@ -97,13 +97,14 @@ export function makeUpdateRegistration(world, arg0, arg1) {
97
97
  const it = new Iter(0);
98
98
  return {
99
99
  componentEid,
100
+ onEnter,
100
101
  callback: (e, c) => {
101
102
  it.entity = e;
102
103
  fn(it, c);
103
104
  },
104
105
  };
105
106
  }
106
- return { componentEid, callback: arg1 };
107
+ return { componentEid, onEnter, callback: arg1 };
107
108
  }
108
109
  const callback = arg1;
109
110
  const inject = mapInject(world, components);
@@ -116,13 +117,13 @@ export function makeUpdateRegistration(world, arg0, arg1) {
116
117
  getInjectedWithSrc(e, inject, injected, it.src);
117
118
  callback(it, c, injected);
118
119
  };
119
- return { componentEid, callback: cb };
120
+ return { componentEid, onEnter, callback: cb };
120
121
  }
121
122
  const cb = (e, c) => {
122
123
  getInjected(e, inject, false, injected);
123
124
  callback(e, c, injected);
124
125
  };
125
- return { componentEid, callback: cb };
126
+ return { componentEid, onEnter, callback: cb };
126
127
  }
127
128
  function isOptionsObject(value) {
128
129
  return typeof value === "object" && value !== null && !Array.isArray(value);
@@ -141,9 +142,10 @@ function normalizeUpdateCallbackArgs(arg0) {
141
142
  return {
142
143
  ComponentClass: arg0.watch,
143
144
  components: arg0.inject,
145
+ onEnter: arg0.onEnter === true,
144
146
  useIter: wantsIter(arg0.cursor),
145
147
  };
146
148
  }
147
- return { ComponentClass: arg0, components: undefined, useIter: false };
149
+ return { ComponentClass: arg0, components: undefined, onEnter: false, useIter: false };
148
150
  }
149
151
  //# sourceMappingURL=callbacks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"callbacks.js","sourceRoot":"","sources":["../../src/query/callbacks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"callbacks.js","sourceRoot":"","sources":["../../src/query/callbacks.ts"],"names":[],"mappings":"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"}
@@ -17,12 +17,15 @@ type FanInjectOption<J extends FanInjectTuple> = {
17
17
  type WatchOption<C extends ComponentType> = {
18
18
  watch: C;
19
19
  };
20
+ type OnEnterUpdateOption = {
21
+ onEnter?: boolean;
22
+ };
20
23
  type RelationshipOption<R extends ComponentRef = ComponentRef> = {
21
24
  relationship: R;
22
25
  };
23
26
  export type InjectCallbackOptions<J extends InjectTuple> = CursorOption & InjectOption<J>;
24
27
  export type FanInjectCallbackOptions<J extends FanInjectTuple> = CursorOption & FanInjectOption<J>;
25
- export type UpdateCallbackOptions<C extends ComponentType, J extends InjectTuple> = CursorOption & WatchOption<C> & Partial<InjectOption<J>>;
28
+ export type UpdateCallbackOptions<C extends ComponentType, J extends InjectTuple> = CursorOption & WatchOption<C> & OnEnterUpdateOption & Partial<InjectOption<J>>;
26
29
  export type OrderByOptions<J extends InjectTuple> = CursorOption & InjectOption<J>;
27
30
  export type GroupByOptions<J extends FanInjectTuple> = FanInjectOption<J>;
28
31
  export type CascadeOptions = RelationshipOption;
@@ -86,10 +86,11 @@ export declare class Query<R extends ComponentType[] = []> implements TermConsum
86
86
  *
87
87
  * `update` also adds the watched component to the query predicate, so the
88
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.
89
+ * component is set or marked modified on a matched entity. Pass
90
+ * `{ watch: ComponentClass, onEnter: true }` when the callback should also fire
91
+ * when a matched entity enters with the watched component already present.
92
+ * Calling `update` more than once for the same component on one query or
93
+ * system is rejected instead of replacing the previous callback.
93
94
  *
94
95
  * @throws When this query has already been built, when `ComponentClass`
95
96
  * already has an update callback on this query.
@@ -50,6 +50,8 @@ export class Query {
50
50
  this._tracking = false;
51
51
  /** @internal Bitmask of component eids this query reacts to via `update`. */
52
52
  this._watchlistBitmask = new Bitset();
53
+ /** @internal Update callback eids opted into entry-time dispatch. */
54
+ this._onEnterUpdateEids = [];
53
55
  /** @internal `true` once this query has been registered with its world. */
54
56
  this._built = false;
55
57
  /** @internal Guards destroy hooks against recursive removal. */
@@ -222,13 +224,16 @@ export class Query {
222
224
  }
223
225
  update(arg0, arg1) {
224
226
  this._assertConfigurable();
225
- const { componentEid, callback } = makeUpdateRegistration(this.world, arg0, arg1);
227
+ const { componentEid, callback, onEnter } = makeUpdateRegistration(this.world, arg0, arg1);
226
228
  if (this._componentUpdateCallbacks.has(componentEid)) {
227
229
  const componentName = this.world.entity(componentEid).meta.Class.name;
228
230
  throw new Error(`query '${this.name}' already has an update callback for component ${componentName}`);
229
231
  }
230
232
  this._componentUpdateCallbacks.set(componentEid, callback);
231
233
  this._watchlistBitmask.add(componentEid);
234
+ if (onEnter) {
235
+ this._onEnterUpdateEids.push(componentEid);
236
+ }
232
237
  return this.with(componentEid);
233
238
  }
234
239
  /* -------------------------------------------------------------------------
@@ -293,12 +298,12 @@ export class Query {
293
298
  this._entities?.add(e);
294
299
  e._addQueryMembership(this);
295
300
  this._enterCallback?.(e);
296
- e.components.forEach((c, ceid) => {
297
- if (!this._watchlistBitmask.has(ceid)) {
298
- return;
301
+ for (const ceid of this._onEnterUpdateEids) {
302
+ const c = e._get(ceid);
303
+ if (c !== undefined) {
304
+ this._notifyModified(e, ceid, c);
299
305
  }
300
- this._notifyModified(e, ceid, c);
301
- });
306
+ }
302
307
  }
303
308
  /** Extension hook for subclasses that need to observe query membership exit. */
304
309
  _exit(e) {
@@ -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.js CHANGED
@@ -73,8 +73,8 @@ export class System extends Query {
73
73
  /**
74
74
  * @internal Routing entry: register query membership for `e`, push an
75
75
  * inbox `enter` event when an `enter` callback is registered, and bridge
76
- * watched components through {@link _notifyModified} to surface them as
77
- * inbox `update` events on entry.
76
+ * update callbacks that opted into entry-time dispatch into inbox `update`
77
+ * events on entry.
78
78
  *
79
79
  * Target relationship reactivity is handled by `TargetTerm`; systems only
80
80
  * translate root-term membership events into inbox commands here.
@@ -96,17 +96,18 @@ export class System extends Query {
96
96
  }
97
97
  this._inbox.push({ kind: 0 /* InboxCommand.Enter */, entity: e, snapshot: enterSnapshot });
98
98
  }
99
- e.components.forEach((c, ceid) => {
100
- if (!this._watchlistBitmask.has(ceid)) {
101
- return;
99
+ for (const ceid of this._onEnterUpdateEids) {
100
+ const c = e._get(ceid);
101
+ if (c === undefined) {
102
+ continue;
102
103
  }
103
104
  if (this._componentUpdateCallbacks.get(ceid) === undefined) {
104
- return;
105
+ continue;
105
106
  }
106
107
  // Entry-time initialization bypasses the silence filter: an entity
107
108
  // introduced by an ignored source must still initialize in this system.
108
109
  this._pushUpdate(e, ceid, c);
109
- });
110
+ }
110
111
  }
111
112
  /**
112
113
  * @internal Routing entry: deregister query membership for `e` and push an
@@ -1 +1 @@
1
- {"version":3,"file":"system.js","sourceRoot":"","sources":["../src/system.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"system.js","sourceRoot":"","sources":["../src/system.ts"],"names":[],"mappings":"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"}
@@ -203,20 +203,33 @@ classes or DSL objects (`{ all: [...] }`, `{ any: [...] }`, `{ parent: X }`, `{
203
203
  - **`enter`** — fires once when an entity _becomes_ a member. Use it for one-time setup
204
204
  (create the resource).
205
205
  - **`update(C, …)`** — adds `C` to the predicate and fires when watched component `C` is modified.
206
- **It also fires on entry for every already-present watched component** (`System._enter` re-pushes
207
- update events for watched components). So `.update(C)` initializes on entry _and_ reacts to
208
- changes — **don't write a separate `.enter` that duplicates the same logic.**
206
+ Pass `{ onEnter: true }` when it should also fire on entry for an already-present watched
207
+ component. Use that to initialize on entry _and_ react to changes; leave it off when a separate
208
+ `.enter` owns initialization.
209
209
  - **`exit`** — fires when an entity stops matching (a component removed, or the entity destroyed).
210
210
  Its injected components are read from a **snapshot captured at exit time**, so they're still
211
211
  resolvable even though they're being removed.
212
212
 
213
+ Choose `onEnter: true` by asking who owns the initial value:
214
+
215
+ - Use **`onEnter: true`** for projection / sync callbacks: copying ECS data into a runtime object,
216
+ another component space, a network snapshot, a physics body, or an index/cache. If an entity
217
+ enters with `Position { x: 1, y: 2 }`, a renderer should not stay at its default `(0, 0)` until
218
+ the next position write.
219
+ - Use **plain `update(C, cb)`** for mutation-only callbacks that should react only after the entity
220
+ is already live: expensive rebuilds, destructive recreate paths, validation/repair passes, or
221
+ post-construction setters where an `enter` callback already consumed the same component state.
222
+ - Do not duplicate an `.enter(...)` body and an `.update({ onEnter: true })` body that perform the
223
+ same work. Pick one owner: explicit `.enter` for separate lifecycle setup, or one
224
+ `{ onEnter: true }` update callback for "initialize from current value, then keep synced."
225
+
213
226
  ```ts
214
- // ❌ redundant
227
+ // ❌ redundant when update already owns initialization
215
228
  .enter([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)));
229
+ .update({ watch: Rotation, onEnter: true, inject: [VGameObject] }, (_e, r, [vgo]) => vgo.obj.setRotation(coords.rot(r.angle)));
217
230
 
218
- // ✅ update fires on entry too
219
- .update({ watch: Rotation, inject: [VGameObject] }, (_e, r, [vgo]) => vgo.obj.setRotation(coords.rot(r.angle)));
231
+ // ✅ update opts into entry-time initialization
232
+ .update({ watch: Rotation, onEnter: true, inject: [VGameObject] }, (_e, r, [vgo]) => vgo.obj.setRotation(coords.rot(r.angle)));
220
233
  ```
221
234
 
222
235
  ### Injection
@@ -225,7 +238,7 @@ Pull components into the callback instead of `entity.get()`-ing them by hand:
225
238
 
226
239
  ```ts
227
240
  .enter([Arc], (entity, [arc]) => { /* … */ })
228
- .update({ watch: Arc, inject: [VGameObject] }, (entity, arc, [vgo]) => { /* … */ })
241
+ .update({ watch: Arc, onEnter: true, inject: [VGameObject] }, (entity, arc, [vgo]) => { /* … */ })
229
242
  .exit([Arc, VGameObject], (entity, [arc, vgo]) => { /* … */ })
230
243
  .each([Position, Velocity], (entity, [pos, vel]) => { /* … */ })
231
244
  ```
@@ -311,12 +324,16 @@ export class PhaserServerModule extends Module<undefined> {
311
324
  .system("phaser.sync.position")
312
325
  .with(PhysicsPosition, RenderPosition)
313
326
  .phase(PRE_STORE)
314
- .update(PhysicsPosition, (e, p) => e.set(RenderPosition, { x: p.x, y: p.y }));
327
+ .update({ watch: PhysicsPosition, onEnter: true }, (e, p) =>
328
+ e.set(RenderPosition, { x: p.x, y: p.y })
329
+ );
315
330
  world
316
331
  .system("phaser.sync.rotation")
317
332
  .with(PhysicsRotation, RenderRotation)
318
333
  .phase(PRE_STORE)
319
- .update(PhysicsRotation, (e, r) => e.set(RenderRotation, { angle: r.angle }));
334
+ .update({ watch: PhysicsRotation, onEnter: true }, (e, r) =>
335
+ e.set(RenderRotation, { angle: r.angle })
336
+ );
320
337
  }
321
338
  }
322
339
 
@@ -377,12 +394,12 @@ world
377
394
  });
378
395
  // ↑ set(VGameObject) is flushed after this system → the entity now matches the systems below, this same tick
379
396
 
380
- // UPDATE geometry on the bound object (fires on entry + on change)
397
+ // UPDATE geometry on the bound object (opts into entry + change)
381
398
  world
382
399
  .system("render.arc")
383
400
  .with(Arc, VGameObject)
384
401
  .phase(ON_STORE)
385
- .update({ watch: Arc, inject: [VGameObject] }, (e, arc, [vgo]) =>
402
+ .update({ watch: Arc, onEnter: true, inject: [VGameObject] }, (e, arc, [vgo]) =>
386
403
  (vgo.obj as ArcObject).setRadius(coords.len(arc.radius))
387
404
  );
388
405
 
@@ -411,22 +428,29 @@ No special-casing anywhere.
411
428
 
412
429
  ### Reactive sync between two component spaces
413
430
 
414
- Copy `A → B` only when `A` changes, gated on both existing (so you never _create_ `B`, you only
415
- keep an existing `B` in sync — pure-ECS: the owner decides whether `B` exists):
431
+ Copy `A → B`, gated on both existing (so you never _create_ `B`, you only keep an existing `B` in
432
+ sync — pure-ECS: the owner decides whether `B` exists). Use `{ onEnter: true }` when `B` must reflect
433
+ the current `A` as soon as the entity enters the sync system:
416
434
 
417
435
  ```ts
418
- .with(PhysicsPosition, RenderPosition).update(PhysicsPosition, (e, p) => e.set(RenderPosition, { x: p.x, y: p.y }));
436
+ .with(PhysicsPosition, RenderPosition).update({ watch: PhysicsPosition, onEnter: true }, (e, p) =>
437
+ e.set(RenderPosition, { x: p.x, y: p.y })
438
+ );
419
439
  ```
420
440
 
441
+ Leave `onEnter: true` off (or set `onEnter: false`) only when a separate `.enter(...)` already initializes `B`,
442
+ or when the callback is intentionally "future changes only."
443
+
421
444
  ### Relationship retargeting + grouped queries for spatial/interest indexing
422
445
 
423
446
  Bucket entities by a relationship target (or a derived key) and look up buckets in O(1) instead of
424
447
  scanning. Moving between buckets is a retarget (data change), not a component swap.
425
448
 
426
- ### Initialize via `update`-on-entry
449
+ ### Initialize via opt-in `update`-on-entry
427
450
 
428
- Because `update(C)` fires on entry, the "apply current value when the entity appears" step needs
429
- no separate `enter` — just order the system after whatever produces the entity/companion.
451
+ When an update callback owns both initialization and later changes, pass `{ onEnter: true }`. The
452
+ "apply current value when the entity appears" step then needs no separate `enter` — just order the
453
+ system after whatever produces the entity/companion.
430
454
 
431
455
  ---
432
456
 
@@ -438,7 +462,7 @@ no separate `enter` — just order the system after whatever produces the entity
438
462
  | An imperative runtime object with `start()/stop()/track/enable` | A **module** + the world's own lifecycle (`clearAllEntities()`, closing the world). Systems live on the world; they don't need a wrapper to turn on. |
439
463
  | Builder/factory helpers that _create entities_ (`createArc(world, …)`) | Let callers `world.entity().add(Networked).set(Arc, …).set(FillStyle, …)`. Components are small and optional; the caller adds exactly what it wants. |
440
464
  | A god component with many optional fields | Split into small single-purpose components; absence encodes "not applicable." |
441
- | Duplicated `enter` + `update` doing the same thing | One `update(C)` it fires on entry too. |
465
+ | Duplicated `enter` + `update` doing the same thing | One `update({ watch: C, onEnter: true })` when update owns initialization. |
442
466
  | One system trying to act in two phases | Split into two systems, one per phase. |
443
467
  | Custom phases for app/render logic | Use the standard taxonomy; only engine modules insert phases. |
444
468
  | `.each` scanning every entity to detect change | Reactive `.update(C)` — fires only on change. |
@@ -452,8 +476,9 @@ no separate `enter` — just order the system after whatever produces the entity
452
476
  - **A system is in exactly one phase.** Plan splits accordingly.
453
477
  - **Structural changes are deferred and flushed _after_ each system** — visible to later systems
454
478
  this tick, not to the current system mid-iteration.
455
- - **`update(C)` fires on entry** for already-present watched components. Lean on it; don't
456
- duplicate in `enter`.
479
+ - **`update(C)` is change-only by default.** Add `{ onEnter: true }` for projection/sync callbacks
480
+ that must apply the current watched value on entry; leave it off for mutation-only callbacks or
481
+ when `.enter(...)` already owns initialization.
457
482
  - **Membership is fixed by `.with(...)` / `.without(...)` / `.update(C)`;** `update(C)` watches `C`
458
483
  and requires it.
459
484
  - **`exit` reads a snapshot** of the injected components captured at exit (they're being removed).
@@ -486,10 +511,10 @@ render code**.
486
511
  Per shape: a **creation** system (`.with(Shape).without(VGameObject).enter` → `scene.add.*` +
487
512
  `set(VGameObject)`) in `ON_STORE`; a **geometry** system (`.with(Shape, VGameObject).update`)
488
513
  in `ON_STORE`; a **teardown** system (`.exit → remove VGameObject`) in `PRE_STORE`. Shared
489
- transform/style **sync** systems (`.with(Component, VGameObject).update(Component)`) apply
490
- position/rotation/scale/alpha/depth/fill/stroke — initialization comes for free because
491
- `update` fires on entry, and the umbrella loads shape modules _before_ the sync module so
492
- creation precedes sync within `ON_STORE`.
514
+ transform/style **sync** systems (`.with(Component, VGameObject).update({ watch: Component, onEnter: true })`)
515
+ apply position/rotation/scale/alpha/depth/fill/stroke — initialization is explicit via
516
+ `onEnter: true`, and the umbrella loads shape modules _before_ the sync module so creation
517
+ precedes sync within `ON_STORE`.
493
518
  - **Lifecycle that falls out for free:** a renderable **type swap** is handled by exclusivity +
494
519
  teardown(`PRE_STORE`)-before-create(`ON_STORE`); a **baseline reset / disconnect** is just
495
520
  `clearAllEntities()` → entities destroyed → `VGameObject` removed → `onRemove` destroys the
@@ -150,9 +150,9 @@ component:
150
150
 
151
151
  Three routing rules worth memorizing:
152
152
 
153
- - **`update(C)` fires on entry.** When an entity enters a system, the system pushes an `update`
154
- event for every watched component already present. A single `.update(C, ...)` therefore
155
- initializes on entry _and_ reacts to changes don't write a duplicate `enter`.
153
+ - **`update(C)` is change-only unless you opt into entry.** When an entity enters a system,
154
+ `{ onEnter: true }` update watchers push an `update` event for already-present watched components.
155
+ Use that for initialization; leave it off when a separate `enter` owns setup.
156
156
  - **`exit` reads a snapshot.** Components injected into an `exit` callback are captured when the
157
157
  exit is routed, so they are still resolvable even though they are being (or have been) removed.
158
158
  - **In-place mutation needs `modified`.** Assigning to component fields directly notifies no one.
@@ -96,10 +96,10 @@ world
96
96
  });
97
97
  ```
98
98
 
99
- `update(Health, ...)` fires only when `Health` is set or marked modified on a tracked entity — and
100
- once on entry for each watched component already present so this system does no work for idle
101
- entities. The phase taxonomy and ordering rules are in
102
- [Execution model](./execution-model.md).
99
+ `update(Health, ...)` fires only when `Health` is set or marked modified on a tracked entity, so
100
+ this system does no work for idle entities. Use `update({ watch: Health, onEnter: true }, ...)` when
101
+ you also want the callback to run for entities that already have `Health` as they enter. The phase
102
+ taxonomy and ordering rules are in [Execution model](./execution-model.md).
103
103
 
104
104
  ## 5. Observe lifecycle with hooks
105
105
 
package/docs/modules.md CHANGED
@@ -21,7 +21,9 @@ export class PoseSyncModule extends Module {
21
21
  .system("sync.position")
22
22
  .with(PhysicsPosition, RenderPosition)
23
23
  .phase(PRE_STORE)
24
- .update(PhysicsPosition, (e, p) => e.set(RenderPosition, { x: p.x, y: p.y }));
24
+ .update({ watch: PhysicsPosition, onEnter: true }, (e, p) =>
25
+ e.set(RenderPosition, { x: p.x, y: p.y })
26
+ );
25
27
  }
26
28
  }
27
29
 
@@ -120,8 +120,9 @@ tuple values before triggering further mutations from inside it.
120
120
  `query.ignoreSource(dsl | query)` makes the query drop `update` notifications whose originating
121
121
  system matches the given query — the standard cure for write feedback loops (A updates B, B's
122
122
  system writes back, A reacts again). The relationship is stored as the built-in `SilenceSource`
123
- component on the query's backing entity. Entry-time initialization bypasses the silence filter, so
124
- newly entered entities still initialize.
123
+ component on the query's backing entity. Update callbacks that opt into `{ onEnter: true }` still run
124
+ when newly entered entities initialize; for systems, that entry-time dispatch bypasses the silence
125
+ filter.
125
126
 
126
127
  ## Grouped queries: `groupBy`
127
128
 
package/docs/systems.md CHANGED
@@ -18,7 +18,9 @@ world
18
18
  .system("Render")
19
19
  .with(Sprite, Position)
20
20
  .enter([Sprite, Position], (e, [sprite, pos]) => sprite.show(pos))
21
- .update({ watch: Position, inject: [Sprite] }, (e, pos, [sprite]) => sprite.moveTo(pos.x, pos.y))
21
+ .update({ watch: Position, onEnter: true, inject: [Sprite] }, (e, pos, [sprite]) =>
22
+ sprite.moveTo(pos.x, pos.y)
23
+ )
22
24
  .exit([Sprite], (e, [sprite]) => sprite.hide());
23
25
  ```
24
26
 
@@ -89,21 +91,26 @@ Fires once when an entity starts matching the system:
89
91
 
90
92
  ### `.update(ComponentClass, callback)` / `.update(options, callback)`
91
93
 
92
- Fires when the watched component is set or marked modified on a tracked entity — and **on entry**
93
- for each watched component the entity already has. `update(ComponentClass, ...)` also adds
94
- `ComponentClass` to the membership predicate, so the system only matches entities that carry the
95
- watched component. The callback receives the entity first because component instances carry no owner
96
- reference:
94
+ Fires when the watched component is set or marked modified on a tracked entity.
95
+ `update(ComponentClass, ...)` also adds `ComponentClass` to the membership predicate, so the system
96
+ only matches entities that carry the watched component. Pass `{ onEnter: true }` in the options form
97
+ when the callback should also run as an entity enters with the watched component already present.
98
+ The callback receives the entity first because component instances carry no owner reference:
97
99
 
98
100
  ```ts
99
101
  .update(Position, (entity, pos) => renderer.setPosition(entity.eid, pos.x, pos.y))
100
- .update({ watch: Position, inject: [Sprite] }, (entity, pos, [sprite]) =>
102
+ .update({ watch: Position, onEnter: true, inject: [Sprite] }, (entity, pos, [sprite]) =>
101
103
  sprite.setPosition(pos.x, pos.y)
102
104
  )
103
105
  ```
104
106
 
105
- Because `update` fires on entry, a separate `enter` that applies the same value is redundant —
106
- lean on `update` alone for "apply current value when the entity appears, and again on change".
107
+ Use `onEnter: true` for "apply current value when the entity appears, and again on change". Without
108
+ it, `update` is change-only and a separate `enter` callback can own initialization.
109
+
110
+ Because `update` adds `watch` to the membership predicate, `add(C)` can be the operation that makes
111
+ an entity enter. Choose one update callback for `C`: `update({ watch: C, onEnter: true }, cb)` fires
112
+ `cb` with the freshly added component, while `update(C, cb)` tracks the new member but waits for a
113
+ later `set` or `modified`.
107
114
 
108
115
  Use `.update(C, ...)` by itself when `C` is the membership shape and watched value. Use
109
116
  `.with(A).update(C, ...)` when the callback should run only for entities carrying both `A` and `C`.
@@ -313,7 +320,7 @@ While disabled, query membership is still maintained, so the tracked set is corr
313
320
  | `with(...specs)` / `without(dsl)` | Declare membership; see [the DSL](./queries-and-filters.md#the-query-dsl). |
314
321
  | `phase(anchor)` | Place after a phase anchor (name or entity). Default `ON_UPDATE`. |
315
322
  | `enter(cb)` / `enter(inject, cb)` | Fires once when an entity starts matching. |
316
- | `update(C, cb)` / `update(C, inject, cb)` | Fires on `set`/`modified` of `C` on a member, and on entry for present watched components. |
323
+ | `update(C, cb)` / `update(options, cb)` | Fires on `set`/`modified` of `C` on a member; `options.onEnter: true` also fires on entry for present watched components. |
317
324
  | `exit(cb)` / `exit(inject, cb)` | Fires when an entity stops matching; direct injection reads an exit-time snapshot. |
318
325
  | `each([C...], cb)` | Fires per tracked entity every tick. Implies `track`. One per system. |
319
326
  | `run(cb)` | Fires once per tick, `(now, delta)`. |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vworlds/vecs",
3
- "version": "1.0.32",
3
+ "version": "1.0.34",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "type": "module",