@vworlds/vecs 1.0.52 → 1.0.53

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/README.md CHANGED
@@ -59,6 +59,9 @@ world.progress(performance.now(), 16); // call once per frame
59
59
 
60
60
  ## Documentation
61
61
 
62
+ System entity callbacks can inject [`Now` and `Delta`](./docs/systems.md#clock-injection) alongside
63
+ components to read the processing tick's timestamp and the system's accumulated tick delta.
64
+
62
65
  For Node clients that need replicated Phaser poses, see [Headless clients](../vecs-phaser-client/README.md#headless-clients).
63
66
 
64
67
  The full documentation lives in [`docs/`](./docs/README.md). Recommended reading order:
package/dist/filter.d.ts CHANGED
@@ -3,7 +3,7 @@ import { Entity } from "./entity/index.js";
3
3
  import type { World } from "./world/index.js";
4
4
  import { type QueryDSL } from "./dsl.js";
5
5
  import type { Term } from "./terms/term.js";
6
- import { Iter, type FanInjectTuple, type MaybeResolvedInjectTuple } from "./inject.js";
6
+ import { Iter, type ComponentFanInjectTuple, type MaybeResolvedInjectTuple } from "./inject.js";
7
7
  import type { EntityCursorOption, FanInjectCallbackOptions, IterCursorOption } from "./query/options.js";
8
8
  /**
9
9
  * A non-reactive, one-shot entity filter.
@@ -62,6 +62,7 @@ export declare class Filter<R extends ComponentType[] = []> {
62
62
  * Components covered by the filter's DSL or `_guaranteed` hint are
63
63
  * non-nullable in the resolved tuple; any other component class may be
64
64
  * `undefined` if the entity does not have it.
65
+ * Processing-clock tokens are unavailable in synchronous filter iteration.
65
66
  *
66
67
  * The resolved tuple is reused for every matching entity. Read or
67
68
  * destructure it inside the callback; do not retain the tuple array.
@@ -70,12 +71,12 @@ export declare class Filter<R extends ComponentType[] = []> {
70
71
  * @param callback - Receives the entity and a tuple of resolved component
71
72
  * instances.
72
73
  */
73
- forEach<const J extends FanInjectTuple>(components: readonly [...J], callback: (e: Entity, resolved: MaybeResolvedInjectTuple<J, R>) => void): this;
74
+ forEach<const J extends ComponentFanInjectTuple>(components: readonly [...J], callback: (e: Entity, resolved: MaybeResolvedInjectTuple<J, R>) => void): this;
74
75
  /**
75
76
  * As above, but pass `{ cursor: Entity, inject: [...] }` to make the
76
77
  * entity-first signature explicit. Identical behavior to the array form.
77
78
  */
78
- forEach<const J extends FanInjectTuple>(options: EntityCursorOption & FanInjectCallbackOptions<J>, callback: (e: Entity, resolved: MaybeResolvedInjectTuple<J, R>) => void): this;
79
+ forEach<const J extends ComponentFanInjectTuple>(options: EntityCursorOption & FanInjectCallbackOptions<J>, callback: (e: Entity, resolved: MaybeResolvedInjectTuple<J, R>) => void): this;
79
80
  /**
80
81
  * As above, but pass `{ cursor: Iter, inject: [...] }` to receive a reused
81
82
  * {@link Iter} cursor instead of the bare entity. The cursor exposes the
@@ -83,6 +84,6 @@ export declare class Filter<R extends ComponentType[] = []> {
83
84
  * resolved component was read from (the visited entity for direct components,
84
85
  * the relationship's target entity for ones injected via `target`).
85
86
  */
86
- forEach<const J extends FanInjectTuple>(options: IterCursorOption & FanInjectCallbackOptions<J>, callback: (it: Iter, resolved: MaybeResolvedInjectTuple<J, R>) => void): this;
87
+ forEach<const J extends ComponentFanInjectTuple>(options: IterCursorOption & FanInjectCallbackOptions<J>, callback: (it: Iter, resolved: MaybeResolvedInjectTuple<J, R>) => void): this;
87
88
  private _forEachMatch;
88
89
  }
@@ -1 +1 @@
1
- {"version":3,"file":"filter.js","sourceRoot":"","sources":["../src/filter.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAsC,MAAM,UAAU,CAAC;AAExF,OAAO,EAEL,mBAAmB,EACnB,8BAA8B,GAK/B,MAAM,aAAa,CAAC;AAOrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,OAAO,MAAM;IAKjB;IACE,6CAA6C;IAC7B,KAAY,EAC5B,GAAa;QADG,UAAK,GAAL,KAAK,CAAO;QAG5B,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvD,CAAC;IAmDM,OAAO,CAAC,IAAkD,EAAE,IAAe;QAChF,4BAA4B;QAC5B,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,IAA2B,CAAC;YAC7C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE;gBACpB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,8BAA8B,CAAC,IAAI,CAAC,CAAC;QACrE,MAAM,QAAQ,GAAG,IAAwB,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE;YACpB,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC9E,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,aAAa,CAAC,QAA6B;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;gBAC9B,QAAQ,CAAC,MAAM,CAAC,CAAC;YACnB,CAAC;YACD,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAChC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrB,QAAQ,CAAC,CAAC,CAAC,CAAC;YACd,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"filter.js","sourceRoot":"","sources":["../src/filter.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAsC,MAAM,UAAU,CAAC;AAExF,OAAO,EAEL,mBAAmB,EACnB,8BAA8B,GAK/B,MAAM,aAAa,CAAC;AAOrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,OAAO,MAAM;IAKjB;IACE,6CAA6C;IAC7B,KAAY,EAC5B,GAAa;QADG,UAAK,GAAL,KAAK,CAAO;QAG5B,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvD,CAAC;IAoDM,OAAO,CAAC,IAAkD,EAAE,IAAe;QAChF,4BAA4B;QAC5B,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,IAA2B,CAAC;YAC7C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE;gBACpB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,8BAA8B,CAAC,IAAI,CAAC,CAAC;QACrE,MAAM,QAAQ,GAAG,IAAwB,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE;YACpB,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC9E,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,aAAa,CAAC,QAA6B;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;gBAC9B,QAAQ,CAAC,MAAM,CAAC,CAAC;YACnB,CAAC;YACD,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAChC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrB,QAAQ,CAAC,CAAC,CAAC,CAAC;YACd,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  export { System, type SystemQuery } from "./system.js";
2
2
  export { Query, GroupedQuery, Group } from "./query/index.js";
3
3
  export type { EntityTestFunc, MaybeRequired, QueryDSL } from "./dsl.js";
4
- export { Iter } from "./inject.js";
5
- export type { DownInject, FanInjectElement, FanInjectTuple, InjectElement, InjectTuple, MaybeResolvedInjectTuple, RequiredResolvedInjectTuple, ResolvedTargets, ResolvedTargetsRow, TargetInject, TargetInjectProjection, TargetsInject, } from "./inject.js";
4
+ export { Delta, Iter, Now } from "./inject.js";
5
+ export type { ClockInject, ComponentInjectElement, ComponentInjectTuple, ComponentFanInjectTuple, DownInject, FanInjectElement, FanInjectTuple, InjectElement, InjectTuple, MaybeResolvedInjectTuple, RequiredResolvedInjectTuple, ResolvedTargets, ResolvedTargetsRow, TargetInject, TargetInjectProjection, TargetsInject, } from "./inject.js";
6
6
  export { DEFAULT_POOLS, World, type WorldOptions } from "./world/index.js";
7
7
  export { Filter } from "./filter.js";
8
8
  export { ChildOf, DependsOn, Exclusive, OneOf, OwnedTarget, SilenceSource, } from "./modules/relationships.js";
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export { System } from "./system.js";
2
2
  export { Query, GroupedQuery, Group } from "./query/index.js";
3
- export { Iter } from "./inject.js";
3
+ export { Delta, Iter, Now } from "./inject.js";
4
4
  export { DEFAULT_POOLS, World } from "./world/index.js";
5
5
  export { Filter } from "./filter.js";
6
6
  export { ChildOf, DependsOn, Exclusive, OneOf, OwnedTarget, SilenceSource, } from "./modules/relationships.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAoB,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9D,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAenC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAqB,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EACL,OAAO,EACP,SAAS,EACT,SAAS,EACT,KAAK,EACL,WAAW,EACX,aAAa,GACd,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,aAAa,EACb,SAAS,EACT,UAAU,EACV,YAAY,GAUb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,MAAM,EAA8B,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EAAE,MAAM,EAAqB,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACpF,OAAO,EAGL,WAAW,EACX,cAAc,EACd,YAAY,EACZ,UAAU,EACV,cAAc,GACf,MAAM,uBAAuB,CAAC;AAY/B,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,OAAO,EACP,QAAQ,EACR,SAAS,EACT,WAAW,EACX,SAAS,EACT,WAAW,EACX,SAAS,EACT,UAAU,EACV,KAAK,EACL,cAAc,GACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,IAAI,EAAoC,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAoB,MAAM,YAAY,CAAC;AAClF,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAuC,MAAM,kBAAkB,CAAC;AAC/E,OAAO,EAAE,4BAA4B,EAAqB,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAoB,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9D,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAmB/C,OAAO,EAAE,aAAa,EAAE,KAAK,EAAqB,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EACL,OAAO,EACP,SAAS,EACT,SAAS,EACT,KAAK,EACL,WAAW,EACX,aAAa,GACd,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,aAAa,EACb,SAAS,EACT,UAAU,EACV,YAAY,GAUb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,MAAM,EAA8B,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EAAE,MAAM,EAAqB,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACpF,OAAO,EAGL,WAAW,EACX,cAAc,EACd,YAAY,EACZ,UAAU,EACV,cAAc,GACf,MAAM,uBAAuB,CAAC;AAY/B,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,OAAO,EACP,QAAQ,EACR,SAAS,EACT,WAAW,EACX,SAAS,EACT,WAAW,EACX,SAAS,EACT,UAAU,EACV,KAAK,EACL,cAAc,GACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,IAAI,EAAoC,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAoB,MAAM,YAAY,CAAC;AAClF,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAuC,MAAM,kBAAkB,CAAC;AAC/E,OAAO,EAAE,4BAA4B,EAAqB,MAAM,mBAAmB,CAAC"}
package/dist/inject.d.ts CHANGED
@@ -2,6 +2,17 @@ import { type ComponentInstance, type ComponentRef, type ComponentType } from ".
2
2
  import { Entity, type EID } from "./entity/index.js";
3
3
  import { type World } from "./world/index.js";
4
4
  import { type MaybeRequired } from "./dsl.js";
5
+ /** Inject the processing system tick's absolute timestamp in milliseconds. System callbacks only. */
6
+ export declare const Now: unique symbol;
7
+ /** Inject the system's accumulated tick delta in milliseconds, matching `run`. System callbacks only. */
8
+ export declare const Delta: unique symbol;
9
+ /** System-only inject tokens; each resolves to a non-optional number. */
10
+ export type ClockInject = typeof Now | typeof Delta;
11
+ /** Component/relationship injects usable outside a system processing tick. */
12
+ export type ComponentInjectElement = ComponentType | TargetInject | TargetsInject;
13
+ export type ComponentInjectTuple = readonly ComponentInjectElement[];
14
+ /** Synchronous inject tuple, including child fan-out but excluding processing clocks. */
15
+ export type ComponentFanInjectTuple = readonly (ComponentInjectElement | DownInject)[];
5
16
  export type TargetInjectProjection = ComponentType | typeof Entity;
6
17
  /**
7
18
  * Follows a relationship and injects values from its target into a callback tuple.
@@ -31,8 +42,10 @@ export type TargetsInject<P extends TargetInjectProjection | readonly TargetInje
31
42
  export type DownInject<J extends readonly ComponentType[] = readonly ComponentType[]> = {
32
43
  down: readonly [ComponentRef, readonly [...J]];
33
44
  };
34
- export type InjectElement = ComponentType | TargetInject | TargetsInject;
45
+ /** One direct/relationship inject or a system-only clock token. */
46
+ export type InjectElement = ComponentInjectElement | ClockInject;
35
47
  export type InjectTuple = readonly InjectElement[];
48
+ /** An inject element with child fan-out support for each/forEach. Clocks require system each. */
36
49
  export type FanInjectElement = InjectElement | DownInject;
37
50
  export type FanInjectTuple = readonly FanInjectElement[];
38
51
  export type ResolvedInjectTerm = EID | {
@@ -58,15 +71,17 @@ export type ResolvedTargetsRow<P> = P extends readonly TargetInjectProjection[]
58
71
  } : readonly [ResolvedTargetsProjection<P>];
59
72
  /** The single array-valued callback slot produced by a {@link TargetsInject}. */
60
73
  export type ResolvedTargets<P> = ReadonlyArray<ResolvedTargetsRow<P>>;
61
- export type InjectedValue = ComponentInstance | Entity | ReadonlyArray<readonly (ComponentInstance | Entity | undefined)[]> | undefined;
74
+ export type InjectedValue = number | ComponentInstance | Entity | ReadonlyArray<readonly (ComponentInstance | Entity | undefined)[]> | undefined;
62
75
  export type InjectSource = Entity | readonly Entity[] | undefined;
63
76
  export type InjectSnapshot = {
64
77
  readonly values: readonly InjectedValue[];
65
78
  readonly src: readonly InjectSource[];
66
79
  };
67
- type MaybeResolvedInjectElement<T, R extends ComponentType[]> = T extends ComponentType ? [MaybeRequired<T, R>] : T extends TargetInject<infer P> ? OptionalResolvedTargetProjections<P> : T extends TargetsInject<infer P> ? [ResolvedTargets<P>] : T extends DownInject<infer J> ? OptionalResolvedComponentInstances<J> : [];
68
- type RequiredResolvedInjectElement<T> = T extends ComponentType ? [ResolvedComponentInstance<T>] : T extends TargetInject<infer P> ? OptionalResolvedTargetProjections<P> : T extends TargetsInject<infer P> ? [ResolvedTargets<P>] : T extends DownInject<infer J> ? OptionalResolvedComponentInstances<J> : [];
80
+ type MaybeResolvedInjectElement<T, R extends ComponentType[]> = T extends ClockInject ? [number] : T extends ComponentType ? [MaybeRequired<T, R>] : T extends TargetInject<infer P> ? OptionalResolvedTargetProjections<P> : T extends TargetsInject<infer P> ? [ResolvedTargets<P>] : T extends DownInject<infer J> ? OptionalResolvedComponentInstances<J> : [];
81
+ type RequiredResolvedInjectElement<T> = T extends ClockInject ? [number] : T extends ComponentType ? [ResolvedComponentInstance<T>] : T extends TargetInject<infer P> ? OptionalResolvedTargetProjections<P> : T extends TargetsInject<infer P> ? [ResolvedTargets<P>] : T extends DownInject<infer J> ? OptionalResolvedComponentInstances<J> : [];
82
+ /** Flatten projected slots; components follow query guarantees, clocks are always numbers. */
69
83
  export type MaybeResolvedInjectTuple<J extends FanInjectTuple, R extends ComponentType[]> = J extends readonly [infer First, ...infer Rest extends FanInjectTuple] ? [...MaybeResolvedInjectElement<First, R>, ...MaybeResolvedInjectTuple<Rest, R>] : [];
84
+ /** Entry/exit tuple: require direct components and resolve clocks as non-optional numbers. */
70
85
  export type RequiredResolvedInjectTuple<J extends InjectTuple> = J extends readonly [
71
86
  infer First,
72
87
  ...infer Rest extends InjectTuple
@@ -138,5 +153,5 @@ export declare function normalizeFanInjectCallbackArgs(callbackOrInject: FanInje
138
153
  components: readonly FanInjectElement[];
139
154
  useIter: boolean;
140
155
  };
141
- export declare function makeInjectedInvoker(world: World, components: readonly FanInjectElement[], useIter: boolean, callback: InjectedCallback): (e: Entity) => void;
156
+ export declare function makeInjectedInvoker(world: World, components: readonly FanInjectElement[], useIter: boolean, callback: InjectedCallback, clock?: InjectClock): (e: Entity) => void;
142
157
  export {};
package/dist/inject.js CHANGED
@@ -2,6 +2,10 @@ import { Entity } from "./entity/index.js";
2
2
  import { _resolveRelationship } from "./dsl.js";
3
3
  // EID 0 is reserved, keeping target projection arrays numeric and SMI-friendly.
4
4
  const TARGET_ENTITY = 0;
5
+ /** Inject the processing system tick's absolute timestamp in milliseconds. System callbacks only. */
6
+ export const Now = Symbol("Now");
7
+ /** Inject the system's accumulated tick delta in milliseconds, matching `run`. System callbacks only. */
8
+ export const Delta = Symbol("Delta");
5
9
  function _isTargetInject(value) {
6
10
  return typeof value === "object" && value !== null && "target" in value;
7
11
  }
@@ -25,6 +29,9 @@ function _resolveTargetsProjection(targets, projections) {
25
29
  }
26
30
  export function mapInject(world, inject) {
27
31
  return inject.map((term) => {
32
+ if (term === Now || term === Delta) {
33
+ throw new Error("Now and Delta injection is only supported in system each/enter/exit/update callbacks");
34
+ }
28
35
  if (_isTargetInject(term)) {
29
36
  const projection = term.target[1];
30
37
  const projections = _isTargetProjectionArray(projection)
@@ -223,7 +230,10 @@ export function normalizeFanInjectCallbackArgs(callbackOrInject) {
223
230
  }
224
231
  return { components: callbackOrInject, useIter: false };
225
232
  }
226
- export function makeInjectedInvoker(world, components, useIter, callback) {
233
+ export function makeInjectedInvoker(world, components, useIter, callback, clock) {
234
+ const specialized = specializeClockInject(world, components, useIter, callback, clock, "entity");
235
+ components = specialized.components;
236
+ callback = specialized.callback;
227
237
  const inject = mapInject(world, components);
228
238
  const arity = injectArity(inject);
229
239
  const resolved = new Array(arity);
@@ -269,6 +279,118 @@ export function makeInjectedInvoker(world, components, useIter, callback) {
269
279
  callback(e, resolved);
270
280
  };
271
281
  }
282
+ /**
283
+ * @internal Strip clocks before any resolver/snapshot/watch-list sees the tuple.
284
+ * Only clock callbacks copy compact component slots into a full output tuple.
285
+ * Slot maps and clock indices are computed once; no token lookup occurs at replay.
286
+ */
287
+ export function specializeClockInject(world, components, useIter, callback, clock, kind) {
288
+ if (!components.some((term) => term === Now || term === Delta)) {
289
+ return { components, callback };
290
+ }
291
+ if (clock === undefined) {
292
+ throw new Error("Now and Delta injection is only supported in system each/enter/exit/update callbacks");
293
+ }
294
+ const compact = [];
295
+ const slots = [];
296
+ const nowSlots = [];
297
+ const deltaSlots = [];
298
+ let arity = 0;
299
+ for (const term of components) {
300
+ if (term === Now) {
301
+ nowSlots.push(arity++);
302
+ }
303
+ else if (term === Delta) {
304
+ deltaSlots.push(arity++);
305
+ }
306
+ else {
307
+ compact.push(term);
308
+ const width = injectArity(mapInject(world, [term]));
309
+ for (let i = 0; i < width; i++) {
310
+ slots.push(arity++);
311
+ }
312
+ }
313
+ }
314
+ const fill = (values, out) => {
315
+ for (let i = 0; i < slots.length; i++) {
316
+ out[slots[i]] = values[i];
317
+ }
318
+ for (let i = 0; i < nowSlots.length; i++) {
319
+ out[nowSlots[i]] = clock._injectNow;
320
+ }
321
+ for (let i = 0; i < deltaSlots.length; i++) {
322
+ out[deltaSlots[i]] = clock._injectDelta;
323
+ }
324
+ };
325
+ const fillCursor = (cursor, it) => {
326
+ const compactIt = cursor;
327
+ it.entity = compactIt.entity;
328
+ for (let i = 0; i < slots.length; i++) {
329
+ it.src[slots[i]] = compactIt.src[i];
330
+ }
331
+ };
332
+ // Preserve enter/exit's detached tuple/cursor lifetime. each/update reuse theirs.
333
+ if (kind === "snapshot") {
334
+ if (useIter) {
335
+ return {
336
+ components: compact,
337
+ callback: (cursor, values) => {
338
+ const out = new Array(arity);
339
+ const it = new Iter(arity);
340
+ fill(values, out);
341
+ fillCursor(cursor, it);
342
+ callback(it, out);
343
+ },
344
+ };
345
+ }
346
+ return {
347
+ components: compact,
348
+ callback: (e, values) => {
349
+ const out = new Array(arity);
350
+ fill(values, out);
351
+ callback(e, out);
352
+ },
353
+ };
354
+ }
355
+ const out = new Array(arity);
356
+ if (useIter) {
357
+ const it = new Iter(arity);
358
+ if (kind === "update") {
359
+ return {
360
+ components: compact,
361
+ callback: (cursor, c, values) => {
362
+ fill(values, out);
363
+ fillCursor(cursor, it);
364
+ callback(it, c, out);
365
+ },
366
+ };
367
+ }
368
+ return {
369
+ components: compact,
370
+ callback: (cursor, values) => {
371
+ fill(values, out);
372
+ fillCursor(cursor, it);
373
+ callback(it, out);
374
+ },
375
+ };
376
+ }
377
+ if (kind === "update") {
378
+ return {
379
+ components: compact,
380
+ callback: (e, c, values) => {
381
+ fill(values, out);
382
+ callback(e, c, out);
383
+ },
384
+ };
385
+ }
386
+ return {
387
+ components: compact,
388
+ callback: (e, values) => {
389
+ fill(values, out);
390
+ callback(e, out);
391
+ },
392
+ };
393
+ }
272
394
  function _findSingleDownInject(inject) {
273
395
  let found;
274
396
  let slot = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"inject.js","sourceRoot":"","sources":["../src/inject.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inject.js","sourceRoot":"","sources":["../src/inject.ts"],"names":[],"mappings":"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"}
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vworlds/vecs",
3
- "version": "1.0.52",
3
+ "version": "1.0.53",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "type": "module",
@@ -19,7 +19,7 @@
19
19
  "test": "vitest run",
20
20
  "test:watch": "vitest",
21
21
  "lint": "eslint \"src/**/*.ts\" \"tests/**/*.ts\" --no-error-on-unmatched-pattern",
22
- "typecheck": "tsc --noEmit",
22
+ "typecheck": "tsc --noEmit -p tsconfig.types.json",
23
23
  "format:check": "prettier --check \"**/*.{ts,md}\" --ignore-path ../../.prettierignore"
24
24
  },
25
25
  "license": "UNLICENSED",
@@ -1,6 +1,6 @@
1
1
  import { type ComponentInstance, type ComponentType } from "../component.js";
2
2
  import { Entity, type EID } from "../entity/index.js";
3
- import { type InjectElement, type InjectSnapshot, type InjectTuple } from "../inject.js";
3
+ import { type InjectElement, type InjectSnapshot, type InjectTuple, type InjectClock } from "../inject.js";
4
4
  import type { InjectCallbackOptions, OrderByOptions, UpdateCallbackOptions } from "./options.js";
5
5
  import { OrderedSet } from "../util/ordered_set.js";
6
6
  import { type World } from "../world/index.js";
@@ -12,7 +12,7 @@ export type ComponentCallback = (e: Entity, c: ComponentInstance) => void;
12
12
  * when no snapshot is provided, or replay a snapshot captured when the event
13
13
  * was routed (a System's inbox-queued enter/exit).
14
14
  */
15
- export declare function makeEnterExitCallback(world: World, arg0: InjectTuple | InjectCallbackOptions<InjectTuple> | ((e: Entity) => void), arg1?: Function): {
15
+ export declare function makeEnterExitCallback(world: World, arg0: InjectTuple | InjectCallbackOptions<InjectTuple> | ((e: Entity) => void), arg1?: Function, clock?: InjectClock): {
16
16
  callback: EntityCallback;
17
17
  snapshotter: InjectSnapshotter | undefined;
18
18
  };
@@ -20,7 +20,7 @@ export declare function makeSortedEntitySet(world: World, arg0: readonly InjectE
20
20
  set: OrderedSet<Entity>;
21
21
  watchEids: EID[];
22
22
  };
23
- export declare function makeUpdateRegistration<C extends ComponentType>(world: World, arg0: C | UpdateCallbackOptions<C, InjectTuple>, arg1: (...args: any[]) => void): {
23
+ export declare function makeUpdateRegistration<C extends ComponentType>(world: World, arg0: C | UpdateCallbackOptions<C, InjectTuple>, arg1: (...args: any[]) => void, clock?: InjectClock): {
24
24
  componentEid: EID;
25
25
  callback: ComponentCallback;
26
26
  onEnter: boolean;
@@ -1,19 +1,22 @@
1
- import { getInjected, getInjectedWithSrc, injectArity, injectWatchEids, Iter, mapInject, replayInjectedSnapshot, replayInjectedSnapshotWithSrc, snapshotInjected, wantsIter, } from "../inject.js";
1
+ import { getInjected, getInjectedWithSrc, injectArity, injectWatchEids, Iter, mapInject, replayInjectedSnapshot, replayInjectedSnapshotWithSrc, snapshotInjected, specializeClockInject, wantsIter, } from "../inject.js";
2
2
  import { OrderedSet } from "../util/ordered_set.js";
3
3
  /**
4
4
  * Build the shared enter/exit callback wrapper: resolve the injected tuple live
5
5
  * when no snapshot is provided, or replay a snapshot captured when the event
6
6
  * was routed (a System's inbox-queued enter/exit).
7
7
  */
8
- export function makeEnterExitCallback(world, arg0, arg1) {
8
+ export function makeEnterExitCallback(world, arg0, arg1, clock) {
9
9
  if (typeof arg0 === "function") {
10
10
  // Wrap so the drain's extra snapshot argument never leaks to a plain
11
11
  // (non-injecting) callback — it observes only the entity.
12
12
  const fn = arg0;
13
13
  return { callback: (e) => fn(e), snapshotter: undefined };
14
14
  }
15
- const { components, useIter } = normalizeInjectCallbackArgs(arg0);
16
- const cb = arg1;
15
+ const normalized = normalizeInjectCallbackArgs(arg0);
16
+ const { useIter } = normalized;
17
+ const specialized = specializeClockInject(world, normalized.components, useIter, arg1, clock, "snapshot");
18
+ const components = specialized.components;
19
+ const cb = specialized.callback;
17
20
  const inject = mapInject(world, components);
18
21
  const arity = injectArity(inject);
19
22
  const snapshotter = (e) => snapshotInjected(e, inject, arity);
@@ -73,7 +76,7 @@ export function makeSortedEntitySet(world, arg0, arg1) {
73
76
  });
74
77
  return { set, watchEids };
75
78
  }
76
- export function makeUpdateRegistration(world, arg0, arg1) {
79
+ export function makeUpdateRegistration(world, arg0, arg1, clock) {
77
80
  const normalized = normalizeUpdateCallbackArgs(arg0);
78
81
  const { ComponentClass, components, onEnter, useIter } = normalized;
79
82
  const componentEid = world.entity(ComponentClass).eid;
@@ -92,8 +95,9 @@ export function makeUpdateRegistration(world, arg0, arg1) {
92
95
  }
93
96
  return { componentEid, onEnter, callback: arg1 };
94
97
  }
95
- const callback = arg1;
96
- const inject = mapInject(world, components);
98
+ const specialized = specializeClockInject(world, components, useIter, arg1, clock, "update");
99
+ const callback = specialized.callback;
100
+ const inject = mapInject(world, specialized.components);
97
101
  const arity = injectArity(inject);
98
102
  const injected = new Array(arity);
99
103
  if (useIter) {
@@ -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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"}
@@ -1,6 +1,6 @@
1
1
  import { type ComponentType } from "../component.js";
2
2
  import { Entity } from "../entity/index.js";
3
- import { Iter, type FanInjectTuple, type MaybeResolvedInjectTuple } from "../inject.js";
3
+ import { Iter, type ComponentFanInjectTuple, type MaybeResolvedInjectTuple } from "../inject.js";
4
4
  import { type World } from "../world/index.js";
5
5
  import type { EntityCursorOption, FanInjectCallbackOptions, IterCursorOption } from "./options.js";
6
6
  export declare class Group<K = unknown, R extends ComponentType[] = []> {
@@ -11,8 +11,9 @@ export declare class Group<K = unknown, R extends ComponentType[] = []> {
11
11
  get count(): number;
12
12
  [Symbol.iterator](): IterableIterator<Entity>;
13
13
  forEach(callback: (e: Entity) => void): this;
14
- forEach<const J extends FanInjectTuple>(components: readonly [...J], callback: (e: Entity, resolved: MaybeResolvedInjectTuple<J, R>) => void): this;
15
- forEach<const J extends FanInjectTuple>(options: EntityCursorOption & FanInjectCallbackOptions<J>, callback: (e: Entity, resolved: MaybeResolvedInjectTuple<J, R>) => void): this;
16
- forEach<const J extends FanInjectTuple>(options: IterCursorOption & FanInjectCallbackOptions<J>, callback: (it: Iter, resolved: MaybeResolvedInjectTuple<J, R>) => void): this;
14
+ /** Iterate with component/relationship injects; processing-clock tokens require a system callback. */
15
+ forEach<const J extends ComponentFanInjectTuple>(components: readonly [...J], callback: (e: Entity, resolved: MaybeResolvedInjectTuple<J, R>) => void): this;
16
+ forEach<const J extends ComponentFanInjectTuple>(options: EntityCursorOption & FanInjectCallbackOptions<J>, callback: (e: Entity, resolved: MaybeResolvedInjectTuple<J, R>) => void): this;
17
+ forEach<const J extends ComponentFanInjectTuple>(options: IterCursorOption & FanInjectCallbackOptions<J>, callback: (it: Iter, resolved: MaybeResolvedInjectTuple<J, R>) => void): this;
17
18
  has(e: Entity): boolean;
18
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"group.js","sourceRoot":"","sources":["../../src/query/group.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,eAAe,GAMhB,MAAM,cAAc,CAAC;AAItB,MAAM,OAAO,KAAK;IAKhB,YAAmB,KAAY,EAAE,GAAM;QAHtB,cAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QAI7C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC7B,CAAC;IAEM,CAAC,MAAM,CAAC,QAAQ,CAAC;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC3C,CAAC;IAeM,OAAO,CAAC,IAAkD,EAAE,IAAe;QAChF,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAwB,CAAC,CAAC;QAC7E,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,GAAG,CAAC,CAAS;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,gBAAgB;IACT,IAAI,CAAC,CAAS;QACnB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IAED,gBAAgB;IACT,OAAO,CAAC,CAAS;QACtB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,CAAC;IACnC,CAAC;CACF"}
1
+ {"version":3,"file":"group.js","sourceRoot":"","sources":["../../src/query/group.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,eAAe,GAMhB,MAAM,cAAc,CAAC;AAItB,MAAM,OAAO,KAAK;IAKhB,YAAmB,KAAY,EAAE,GAAM;QAHtB,cAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QAI7C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC7B,CAAC;IAEM,CAAC,MAAM,CAAC,QAAQ,CAAC;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC3C,CAAC;IAgBM,OAAO,CAAC,IAAkD,EAAE,IAAe;QAChF,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAwB,CAAC,CAAC;QAC7E,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,GAAG,CAAC,CAAS;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,gBAAgB;IACT,IAAI,CAAC,CAAS;QACnB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IAED,gBAAgB;IACT,OAAO,CAAC,CAAS;QACtB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,CAAC;IACnC,CAAC;CACF"}
@@ -1,7 +1,7 @@
1
1
  import { type ComponentClass, type ComponentInstance, type ComponentRef, type ComponentType, type Relationship } from "../component.js";
2
2
  import { type ExtractSpecsRequired, type QueryDSL, type QuerySpec } from "../dsl.js";
3
3
  import { Entity, type EID } from "../entity/index.js";
4
- import { Iter, type FanInjectTuple, type InjectTuple, type MaybeResolvedInjectTuple, type RequiredResolvedInjectTuple } from "../inject.js";
4
+ import { Iter, type MaybeResolvedInjectTuple, type RequiredResolvedInjectTuple, type ClockInject, type ComponentInjectElement, type ComponentInjectTuple, type ComponentFanInjectTuple } from "../inject.js";
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";
@@ -28,8 +28,9 @@ import type { CascadeOptions, EntityCursorOption, FanInjectCallbackOptions, Grou
28
28
  * (declared via {@link with} or the `hint` field of a {@link QueryConfig}).
29
29
  * Components in `R` appear as non-nullable in {@link orderBy}, {@link forEach},
30
30
  * and {@link update} callback tuples.
31
+ * @typeParam K - Clock tokens permitted by a System subclass; standalone queries default to none.
31
32
  */
32
- export declare class Query<R extends ComponentType[] = []> implements TermConsumer {
33
+ export declare class Query<R extends ComponentType[] = [], K extends ClockInject = never> implements TermConsumer {
33
34
  /** True when membership or watched component data changed since the last reset. */
34
35
  changed: boolean;
35
36
  /** Entity that stores this query as a component and carries query traits. */
@@ -48,22 +49,22 @@ export declare class Query<R extends ComponentType[] = []> implements TermConsum
48
49
  belongs(e: Entity): boolean;
49
50
  has(e: Entity): boolean;
50
51
  forEach(callback: (e: Entity) => void): this;
51
- forEach<const J extends FanInjectTuple>(components: readonly [...J], callback: (e: Entity, resolved: MaybeResolvedInjectTuple<J, R>) => void): this;
52
- forEach<const J extends FanInjectTuple>(options: EntityCursorOption & FanInjectCallbackOptions<J>, callback: (e: Entity, resolved: MaybeResolvedInjectTuple<J, R>) => void): this;
53
- forEach<const J extends FanInjectTuple>(options: IterCursorOption & FanInjectCallbackOptions<J>, callback: (it: Iter, resolved: MaybeResolvedInjectTuple<J, R>) => void): this;
52
+ forEach<const J extends ComponentFanInjectTuple>(components: readonly [...J], callback: (e: Entity, resolved: MaybeResolvedInjectTuple<J, R>) => void): this;
53
+ forEach<const J extends ComponentFanInjectTuple>(options: EntityCursorOption & FanInjectCallbackOptions<J>, callback: (e: Entity, resolved: MaybeResolvedInjectTuple<J, R>) => void): this;
54
+ forEach<const J extends ComponentFanInjectTuple>(options: IterCursorOption & FanInjectCallbackOptions<J>, callback: (it: Iter, resolved: MaybeResolvedInjectTuple<J, R>) => void): this;
54
55
  toString(): string;
55
- with<const S extends readonly QuerySpec[]>(...specs: [...S]): Query<[...R, ...ExtractSpecsRequired<S>]>;
56
+ with<const S extends readonly QuerySpec[]>(...specs: [...S]): Query<[...R, ...ExtractSpecsRequired<S>], K>;
56
57
  without(dsl: QueryDSL): this;
57
58
  track(): this;
58
- orderBy<const J extends InjectTuple>(components: readonly [...J], compare: (entityA: Entity, a: MaybeResolvedInjectTuple<J, R>, entityB: Entity, b: MaybeResolvedInjectTuple<J, R>) => number): this;
59
- orderBy<const J extends InjectTuple>(options: EntityCursorOption & OrderByOptions<J>, compare: (entityA: Entity, a: MaybeResolvedInjectTuple<J, R>, entityB: Entity, b: MaybeResolvedInjectTuple<J, R>) => number): this;
60
- orderBy<const J extends InjectTuple>(options: IterCursorOption & OrderByOptions<J>, compare: (a: Iter, aResolved: MaybeResolvedInjectTuple<J, R>, b: Iter, bResolved: MaybeResolvedInjectTuple<J, R>) => number): this;
59
+ orderBy<const J extends ComponentInjectTuple>(components: readonly [...J], compare: (entityA: Entity, a: MaybeResolvedInjectTuple<J, R>, entityB: Entity, b: MaybeResolvedInjectTuple<J, R>) => number): this;
60
+ orderBy<const J extends ComponentInjectTuple>(options: EntityCursorOption & OrderByOptions<J>, compare: (entityA: Entity, a: MaybeResolvedInjectTuple<J, R>, entityB: Entity, b: MaybeResolvedInjectTuple<J, R>) => number): this;
61
+ orderBy<const J extends ComponentInjectTuple>(options: IterCursorOption & OrderByOptions<J>, compare: (a: Iter, aResolved: MaybeResolvedInjectTuple<J, R>, b: Iter, bResolved: MaybeResolvedInjectTuple<J, R>) => number): this;
61
62
  cascade(rel: ComponentRef): this;
62
63
  cascade(options: CascadeOptions): this;
63
64
  cascade(rel: ComponentRef, compare: (a: Entity, b: Entity) => number): this;
64
65
  cascade(options: CascadeOptions, compare: (a: Entity, b: Entity) => number): this;
65
- groupBy<K, const J extends FanInjectTuple>(components: readonly [...J], key: (e: Entity, resolved: MaybeResolvedInjectTuple<J, R>) => K): GroupedQuery<K, R>;
66
- groupBy<K, const J extends FanInjectTuple>(options: GroupByOptions<J>, key: (e: Entity, resolved: MaybeResolvedInjectTuple<J, R>) => K): GroupedQuery<K, R>;
66
+ groupBy<K, const J extends ComponentFanInjectTuple>(components: readonly [...J], key: (e: Entity, resolved: MaybeResolvedInjectTuple<J, R>) => K): GroupedQuery<K, R>;
67
+ groupBy<K, const J extends ComponentFanInjectTuple>(options: GroupByOptions<J>, key: (e: Entity, resolved: MaybeResolvedInjectTuple<J, R>) => K): GroupedQuery<K, R>;
67
68
  groupBy(relationship: ComponentRef): GroupedQuery<Entity, R>;
68
69
  groupBy(options: {
69
70
  relationship: ComponentRef;
@@ -78,13 +79,15 @@ export declare class Query<R extends ComponentType[] = []> implements TermConsum
78
79
  set<C extends ComponentClass>(Class: C, props: Partial<InstanceType<C>>): this;
79
80
  set(ceid: EID, props: Partial<ComponentInstance>): this;
80
81
  set(entity: Entity, props: Partial<ComponentInstance>): this;
81
- enter<const J extends InjectTuple>(inject: readonly [...J], callback: (e: Entity, injected: RequiredResolvedInjectTuple<J>) => void): this;
82
- enter<const J extends InjectTuple>(options: EntityCursorOption & InjectCallbackOptions<J>, callback: (e: Entity, injected: RequiredResolvedInjectTuple<J>) => void): this;
83
- enter<const J extends InjectTuple>(options: IterCursorOption & InjectCallbackOptions<J>, callback: (it: Iter, injected: RequiredResolvedInjectTuple<J>) => void): this;
82
+ /** Register an entry callback; clock tokens require a System processing tick. */
83
+ enter<const J extends readonly (ComponentInjectElement | K)[]>(inject: readonly [...J], callback: (e: Entity, injected: RequiredResolvedInjectTuple<J>) => void): this;
84
+ enter<const J extends readonly (ComponentInjectElement | K)[]>(options: EntityCursorOption & InjectCallbackOptions<J>, callback: (e: Entity, injected: RequiredResolvedInjectTuple<J>) => void): this;
85
+ enter<const J extends readonly (ComponentInjectElement | K)[]>(options: IterCursorOption & InjectCallbackOptions<J>, callback: (it: Iter, injected: RequiredResolvedInjectTuple<J>) => void): this;
84
86
  enter(callback: (e: Entity) => void): this;
85
- exit<const J extends InjectTuple>(inject: readonly [...J], callback: (e: Entity, injected: RequiredResolvedInjectTuple<J>) => void): this;
86
- exit<const J extends InjectTuple>(options: EntityCursorOption & InjectCallbackOptions<J>, callback: (e: Entity, injected: RequiredResolvedInjectTuple<J>) => void): this;
87
- exit<const J extends InjectTuple>(options: IterCursorOption & InjectCallbackOptions<J>, callback: (it: Iter, injected: RequiredResolvedInjectTuple<J>) => void): this;
87
+ /** Register an exit callback; components are snapshotted, system clocks are filled at replay. */
88
+ exit<const J extends readonly (ComponentInjectElement | K)[]>(inject: readonly [...J], callback: (e: Entity, injected: RequiredResolvedInjectTuple<J>) => void): this;
89
+ exit<const J extends readonly (ComponentInjectElement | K)[]>(options: EntityCursorOption & InjectCallbackOptions<J>, callback: (e: Entity, injected: RequiredResolvedInjectTuple<J>) => void): this;
90
+ exit<const J extends readonly (ComponentInjectElement | K)[]>(options: IterCursorOption & InjectCallbackOptions<J>, callback: (it: Iter, injected: RequiredResolvedInjectTuple<J>) => void): this;
88
91
  exit(callback: (e: Entity) => void): this;
89
92
  /**
90
93
  * Register one update callback for a watched component.
@@ -92,6 +95,8 @@ export declare class Query<R extends ComponentType[] = []> implements TermConsum
92
95
  * `update(ComponentClass, callback)` keeps the common component-only form.
93
96
  * Use `update({ watch, inject, cursor }, callback)` when the callback
94
97
  * needs injected components or an {@link Iter} cursor.
98
+ * System callbacks may also inject `Now` and `Delta`, both non-optional numbers
99
+ * from the processing tick. Standalone query callbacks cannot inject clocks.
95
100
  *
96
101
  * `update` also adds the watched component to the query predicate, so the
97
102
  * callback only observes entities that carry it. The callback fires when the
@@ -105,15 +110,15 @@ export declare class Query<R extends ComponentType[] = []> implements TermConsum
105
110
  * already has an update callback on this query.
106
111
  */
107
112
  update<C extends ComponentType>(ComponentClass: C, callback: (e: Entity, c: InstanceType<C>) => void): this;
108
- update<C extends ComponentType, const J extends InjectTuple>(options: EntityCursorOption & UpdateCallbackOptions<C, J> & {
113
+ update<C extends ComponentType, const J extends readonly (ComponentInjectElement | K)[]>(options: EntityCursorOption & UpdateCallbackOptions<C, J> & {
109
114
  inject: readonly [...J];
110
115
  }, callback: (e: Entity, c: InstanceType<C>, injected: MaybeResolvedInjectTuple<J, R>) => void): this;
111
- update<C extends ComponentType, const J extends InjectTuple>(options: IterCursorOption & UpdateCallbackOptions<C, J> & {
116
+ update<C extends ComponentType, const J extends readonly (ComponentInjectElement | K)[]>(options: IterCursorOption & UpdateCallbackOptions<C, J> & {
112
117
  inject: readonly [...J];
113
118
  }, callback: (it: Iter, c: InstanceType<C>, injected: MaybeResolvedInjectTuple<J, R>) => void): this;
114
119
  update<C extends ComponentType>(options: EntityCursorOption & UpdateCallbackOptions<C, []>, callback: (e: Entity, c: InstanceType<C>) => void): this;
115
120
  update<C extends ComponentType>(options: IterCursorOption & UpdateCallbackOptions<C, []>, callback: (it: Iter, c: InstanceType<C>) => void): this;
116
- update<C extends ComponentType>(arg0: C | UpdateCallbackOptions<C, InjectTuple>, callback: (e: Entity, c: InstanceType<C>) => void): this;
121
+ update<C extends ComponentType>(arg0: C | UpdateCallbackOptions<C, readonly (ComponentInjectElement | K)[]>, callback: (e: Entity, c: InstanceType<C>) => void): this;
117
122
  build(): this;
118
123
  destroy(): void;
119
124
  /** Extension hook for subclasses that need to observe query membership entry. */
@@ -30,6 +30,7 @@ const EMPTY_ENTITIES = new Set();
30
30
  * (declared via {@link with} or the `hint` field of a {@link QueryConfig}).
31
31
  * Components in `R` appear as non-nullable in {@link orderBy}, {@link forEach},
32
32
  * and {@link update} callback tuples.
33
+ * @typeParam K - Clock tokens permitted by a System subclass; standalone queries default to none.
33
34
  */
34
35
  export class Query {
35
36
  constructor(name, world, track = true) {
@@ -245,21 +246,21 @@ export class Query {
245
246
  }
246
247
  enter(arg0, arg1) {
247
248
  this._assertConfigurable();
248
- const enter = makeEnterExitCallback(this.world, arg0, arg1);
249
+ const enter = makeEnterExitCallback(this.world, arg0, arg1, this._getInjectClock());
249
250
  this._enterCallback = enter.callback;
250
251
  this._enterSnapshotter = enter.snapshotter;
251
252
  return this;
252
253
  }
253
254
  exit(arg0, arg1) {
254
255
  this._assertConfigurable();
255
- const exit = makeEnterExitCallback(this.world, arg0, arg1);
256
+ const exit = makeEnterExitCallback(this.world, arg0, arg1, this._getInjectClock());
256
257
  this._exitCallback = exit.callback;
257
258
  this._exitSnapshotter = exit.snapshotter;
258
259
  return this;
259
260
  }
260
261
  update(arg0, arg1) {
261
262
  this._assertConfigurable();
262
- const { componentEid, callback, onEnter } = makeUpdateRegistration(this.world, arg0, arg1);
263
+ const { componentEid, callback, onEnter } = makeUpdateRegistration(this.world, arg0, arg1, this._getInjectClock());
263
264
  if (this._componentUpdateCallbacks.has(componentEid)) {
264
265
  const componentName = this.world.entity(componentEid).meta.Class.name;
265
266
  throw new Error(`query '${this.name}' already has an update callback for component ${componentName}`);
@@ -388,6 +389,10 @@ export class Query {
388
389
  throw new Error(`query '${this.name}' has already been built`);
389
390
  }
390
391
  }
392
+ /** @internal Build-time clock provider; standalone callbacks have no processing clock. */
393
+ _getInjectClock() {
394
+ return undefined;
395
+ }
391
396
  /** @internal */
392
397
  _backfill() {
393
398
  if (!this.rootTerm || !this._needsBackfill()) {
@@ -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,5 +1,5 @@
1
1
  import { type ComponentType } from "./component.js";
2
- import { Iter, type FanInjectTuple, type MaybeResolvedInjectTuple } from "./inject.js";
2
+ import { Iter, type FanInjectTuple, type MaybeResolvedInjectTuple, type ClockInject } from "./inject.js";
3
3
  import { Query } from "./query/index.js";
4
4
  import type { EntityCursorOption, FanInjectCallbackOptions, IterCursorOption } from "./query/options.js";
5
5
  import { type ExtractSpecsRequired, type QuerySpec } from "./dsl.js";
@@ -44,7 +44,7 @@ type RunCallback = (now: number, delta: number) => void;
44
44
  *
45
45
  * @typeParam R - Component classes guaranteed present on every matched entity.
46
46
  */
47
- export declare class System<R extends ComponentType[] = []> extends Query<R> implements ITickSource {
47
+ export declare class System<R extends ComponentType[] = []> extends Query<R, ClockInject> implements ITickSource {
48
48
  constructor(name: string, world: World);
49
49
  /** True when this system's cadence source fired during the current frame. */
50
50
  get didTick(): boolean;
@@ -138,6 +138,8 @@ export declare class System<R extends ComponentType[] = []> extends Query<R> imp
138
138
  * tracked entity.
139
139
  * Components declared via {@link with} are non-nullable in the resolved
140
140
  * tuple; any other component class may be `undefined` if the entity lacks it.
141
+ * `Now` and `Delta` tokens resolve to non-optional numbers from this processing
142
+ * tick, with the same accumulated delta as `run`.
141
143
  *
142
144
  * `each` does **not** modify the system's query — define membership with
143
145
  * {@link with} as usual. It does, however, implicitly
package/dist/system.js CHANGED
@@ -44,6 +44,10 @@ import { ALWAYS_TICK_SOURCE, IntervalTickSource, RateTickSource, } from "./timer
44
44
  export class System extends Query {
45
45
  constructor(name, world) {
46
46
  super(name, world, false);
47
+ /** @internal Processing tick timestamp; stable fields on all systems. */
48
+ this._injectNow = 0;
49
+ /** @internal Processing tick delta, including cadence accumulation. */
50
+ this._injectDelta = 0;
47
51
  /** @internal Single inbox replayed in arrival order on every `_run`. */
48
52
  this._inbox = [];
49
53
  /**
@@ -173,6 +177,8 @@ export class System extends Query {
173
177
  return;
174
178
  }
175
179
  const tickDelta = this._tickSource.lastFireDelta;
180
+ this._injectNow = now;
181
+ this._injectDelta = tickDelta;
176
182
  const prevSource = this.world._currentSource;
177
183
  this.world._currentSource = this.entity;
178
184
  try {
@@ -356,7 +362,7 @@ export class System extends Query {
356
362
  this.track();
357
363
  const { components, useIter } = normalizeFanInjectCallbackArgs(arg0);
358
364
  const callback = arg1;
359
- this._eachCallback = makeInjectedInvoker(this.world, components, useIter, callback);
365
+ this._eachCallback = makeInjectedInvoker(this.world, components, useIter, callback, this);
360
366
  return this;
361
367
  }
362
368
  /**
@@ -435,5 +441,9 @@ export class System extends Query {
435
441
  this.disable();
436
442
  super.destroy();
437
443
  }
444
+ /** @internal Used only while registering injecting callbacks. */
445
+ _getInjectClock() {
446
+ return this;
447
+ }
438
448
  }
439
449
  //# sourceMappingURL=system.js.map
@@ -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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"}
package/docs/README.md CHANGED
@@ -19,7 +19,7 @@ Read in this order the first time through:
19
19
  - [Entities](./entities.md) — creation, lookup, the component API, relationship targets, lifecycle,
20
20
  disposing a world.
21
21
  - [Systems](./systems.md) — membership, reactive callbacks, callback options, `each`/`run`, cadence,
22
- component and relationship injection.
22
+ component, relationship, and [clock injection](./systems.md#clock-injection).
23
23
  - [Queries and filters](./queries-and-filters.md) — the query DSL, live queries, one-shot
24
24
  filters, grouped queries, `Bitset`.
25
25
  - [Relationships](./relationships.md) — links, target creation and projection, ownership, hierarchy,
@@ -38,21 +38,21 @@ Keep the [Glossary](./glossary.md) at hand for terminology.
38
38
 
39
39
  For Node clients that need replicated Phaser poses, see [Headless clients](../../vecs-phaser-client/README.md#headless-clients).
40
40
 
41
- | Guide | Covers |
42
- | -------------------------------------------------- | -------------------------------------------------------------------------------------------- |
43
- | [getting-started.md](./getting-started.md) | A runnable tutorial from `npm install` to a ticking world. |
44
- | [concepts.md](./concepts.md) | The core vocabulary and how the pieces relate. |
45
- | [execution-model.md](./execution-model.md) | `world.progress`, the 8 built-in phases, deferred commands, flush boundaries, event routing. |
46
- | [components.md](./components.md) | Component registration, hooks, traits, exclusivity, cleanup, aliases, and singletons. |
47
- | [entities.md](./entities.md) | Entity creation, mutation, relationship targets, lifecycle, disposal, deferred reads. |
48
- | [systems.md](./systems.md) | `world.system`, callbacks, injection, ordering, cadence, and tick sources. |
49
- | [queries-and-filters.md](./queries-and-filters.md) | `QueryDSL`, `Query`, `Filter`, `groupBy`, `ignoreSource`. |
50
- | [relationships.md](./relationships.md) | Relationships, target creation, projection and ownership, hierarchy, traversal, and cleanup. |
51
- | [modules.md](./modules.md) | `Module<Config>`, `world.module`, composition, built-in modules. |
52
- | [snapshots.md](./snapshots.md) | `snapshotSubtree`, `restoreSubtree`, `moveSubtree`, and `OnSnapshot` capture policies. |
53
- | [design-guide.md](./design-guide.md) | Patterns, anti-patterns, and a Phaser render-layer case study. |
54
- | [utilities.md](./utilities.md) | Public helper classes: `Events`, `ArrayMap`, `IterableArrayMap`, plus `Bitset` cross-ref. |
55
- | [glossary.md](./glossary.md) | ECS and vecs terminology. |
41
+ | Guide | Covers |
42
+ | -------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
43
+ | [getting-started.md](./getting-started.md) | A runnable tutorial from `npm install` to a ticking world. |
44
+ | [concepts.md](./concepts.md) | The core vocabulary and how the pieces relate. |
45
+ | [execution-model.md](./execution-model.md) | `world.progress`, the 8 built-in phases, deferred commands, flush boundaries, event routing. |
46
+ | [components.md](./components.md) | Component registration, hooks, traits, exclusivity, cleanup, aliases, and singletons. |
47
+ | [entities.md](./entities.md) | Entity creation, mutation, relationship targets, lifecycle, disposal, deferred reads. |
48
+ | [systems.md](./systems.md) | `world.system`, callbacks, component/relationship/clock injection, ordering, cadence, and tick sources. |
49
+ | [queries-and-filters.md](./queries-and-filters.md) | `QueryDSL`, `Query`, `Filter`, `groupBy`, `ignoreSource`. |
50
+ | [relationships.md](./relationships.md) | Relationships, target creation, projection and ownership, hierarchy, traversal, and cleanup. |
51
+ | [modules.md](./modules.md) | `Module<Config>`, `world.module`, composition, built-in modules. |
52
+ | [snapshots.md](./snapshots.md) | `snapshotSubtree`, `restoreSubtree`, `moveSubtree`, and `OnSnapshot` capture policies. |
53
+ | [design-guide.md](./design-guide.md) | Patterns, anti-patterns, and a Phaser render-layer case study. |
54
+ | [utilities.md](./utilities.md) | Public helper classes: `Events`, `ArrayMap`, `IterableArrayMap`, plus `Bitset` cross-ref. |
55
+ | [glossary.md](./glossary.md) | ECS and vecs terminology. |
56
56
 
57
57
  Networking (wire encoding with `@wireType`, protocol component ordering, replication, RPCs, server
58
58
  sessions, and the client world) lives in the `@vworlds/vecs-wire`, `@vworlds/vecs-protocol`,
@@ -374,6 +374,24 @@ Why:
374
374
  Components listed in the inject tuple but **not** guaranteed by `.with(...)` resolve as
375
375
  `T | undefined` (the types reflect this) — guard them; the ones in `.with` are always present.
376
376
 
377
+ Inject `Now` or `Delta` when a system entity callback needs time, rather than capturing it in a
378
+ separate `.run` callback. They mix with component and relationship injects in any tuple position:
379
+
380
+ ```ts
381
+ import { Delta } from "@vworlds/vecs";
382
+
383
+ world
384
+ .system("Move")
385
+ .with(Position, Velocity)
386
+ .each([Position, Delta, Velocity], (entity, [pos, delta, vel]) => {
387
+ pos.x += (vel.vx * delta) / 1000;
388
+ entity.modified(Position);
389
+ });
390
+ ```
391
+
392
+ For processing-time semantics, cadence accumulation, and callback support, see
393
+ [System clock injection](./systems.md#clock-injection).
394
+
377
395
  ### `each` vs reactive — don't scan when you can react
378
396
 
379
397
  - **`.each([...], cb)`** iterates **every matching entity every tick**. Use it only when you
package/docs/systems.md CHANGED
@@ -224,6 +224,40 @@ anything else resolves as `T | undefined` — guard it. (`enter`/`exit` injectio
224
224
  direct components to be present and throws otherwise; list only components your predicate
225
225
  guarantees.)
226
226
 
227
+ ### Clock injection
228
+
229
+ Import `Now` and `Delta` from `@vworlds/vecs` and include them in a system's `each`, `update`,
230
+ `enter`, or `exit` inject list. Both resolve to non-optional `number` slots regardless of `.with`.
231
+ Mix them freely with direct components and `target`, `targets`, or `down` injects, in any position:
232
+
233
+ ```ts
234
+ import { Now, Delta, Iter } from "@vworlds/vecs";
235
+
236
+ world
237
+ .system("Stamp")
238
+ .with(Position)
239
+ .update(
240
+ { watch: Position, onEnter: true, cursor: Iter, inject: [Now, Position, Delta] },
241
+ (it, position, [now, injectedPosition, delta]) => {
242
+ console.log(it.entity.eid, position === injectedPosition, now, delta);
243
+ }
244
+ );
245
+ ```
246
+
247
+ `Now` is the timestamp passed to the system's processing tick, **not** the time the mutation was
248
+ made. `Delta` is that system's own tick delta in milliseconds, the same value its `run` callback
249
+ receives. An interval, rate, or upstream tick source accumulates time between fires; it does not
250
+ inject the last frame's delta. Deferred enter/exit snapshots retain component references, but
251
+ clock slots are filled at replay from the processing tick, even if the entity died in an earlier
252
+ frame.
253
+
254
+ Clock tokens are supported only in the four system callback kinds above. Standalone query
255
+ callbacks and synchronous iteration/ordering/grouping have no processing clock: TypeScript
256
+ rejects tokens there, and bypassing the types throws a clear error at registration. With
257
+ `cursor: Iter`, clock slots have `undefined` sources in `it.src`; time remains in the inject tuple.
258
+ Tuple lifetimes are unchanged: `each`/`update` reuse their tuples, while `enter`/`exit` give each
259
+ event its own tuple.
260
+
227
261
  ### Relationship injection
228
262
 
229
263
  `{ target: [Rel, projection] }` follows the entity's **first** relationship target and flattens the
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vworlds/vecs",
3
- "version": "1.0.52",
3
+ "version": "1.0.53",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "type": "module",
@@ -19,7 +19,7 @@
19
19
  "test": "vitest run",
20
20
  "test:watch": "vitest",
21
21
  "lint": "eslint \"src/**/*.ts\" \"tests/**/*.ts\" --no-error-on-unmatched-pattern",
22
- "typecheck": "tsc --noEmit",
22
+ "typecheck": "tsc --noEmit -p tsconfig.types.json",
23
23
  "format:check": "prettier --check \"**/*.{ts,md}\" --ignore-path ../../.prettierignore"
24
24
  },
25
25
  "license": "UNLICENSED",
@@ -0,0 +1,4 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "include": ["src", "tests/clock-inject.test.ts"]
4
+ }