@oasys/oecs 0.4.0 → 0.5.0
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/CHANGELOG.md +553 -0
- package/README.md +42 -31
- package/dist/core/ecs/access_check.d.cts +77 -0
- package/dist/core/ecs/access_check.d.ts +8 -8
- package/dist/core/ecs/access_check.d.ts.map +1 -1
- package/dist/core/ecs/archetype.d.cts +486 -0
- package/dist/core/ecs/archetype.d.ts +23 -11
- package/dist/core/ecs/archetype.d.ts.map +1 -1
- package/dist/core/ecs/archetype_graph.d.cts +96 -0
- package/dist/core/ecs/archetype_graph.d.ts +96 -0
- package/dist/core/ecs/archetype_graph.d.ts.map +1 -0
- package/dist/core/ecs/builtin_relations.d.cts +43 -0
- package/dist/core/ecs/builtin_relations.d.ts +8 -8
- package/dist/core/ecs/builtin_relations.d.ts.map +1 -1
- package/dist/core/ecs/command_log.d.cts +116 -0
- package/dist/core/ecs/command_log.d.ts +13 -10
- package/dist/core/ecs/command_log.d.ts.map +1 -1
- package/dist/core/ecs/component.d.cts +176 -0
- package/dist/core/ecs/component.d.ts +75 -5
- package/dist/core/ecs/component.d.ts.map +1 -1
- package/dist/core/ecs/compute_backend.d.cts +37 -0
- package/dist/core/ecs/compute_backend.d.ts +2 -2
- package/dist/core/ecs/debug_names.d.cts +7 -0
- package/dist/core/ecs/debug_names.d.ts +7 -0
- package/dist/core/ecs/debug_names.d.ts.map +1 -0
- package/dist/core/ecs/deferred_commands.d.cts +55 -0
- package/dist/core/ecs/deferred_commands.d.ts +55 -0
- package/dist/core/ecs/deferred_commands.d.ts.map +1 -0
- package/dist/core/ecs/dispatch_trace.d.cts +93 -0
- package/dist/core/ecs/dispatch_trace.d.ts +3 -3
- package/dist/core/ecs/ecs.d.cts +562 -0
- package/dist/core/ecs/ecs.d.ts +314 -285
- package/dist/core/ecs/ecs.d.ts.map +1 -1
- package/dist/core/ecs/ecs_memory.d.cts +179 -0
- package/dist/core/ecs/ecs_memory.d.ts +1 -1
- package/dist/core/ecs/entity.d.cts +34 -0
- package/dist/core/ecs/entity.d.ts +7 -1
- package/dist/core/ecs/entity.d.ts.map +1 -1
- package/dist/core/ecs/entity_allocator.d.cts +59 -0
- package/dist/core/ecs/entity_allocator.d.ts +59 -0
- package/dist/core/ecs/entity_allocator.d.ts.map +1 -0
- package/dist/core/ecs/event.d.cts +79 -0
- package/dist/core/ecs/event.d.ts +36 -11
- package/dist/core/ecs/event.d.ts.map +1 -1
- package/dist/core/ecs/event_registry.d.cts +22 -0
- package/dist/core/ecs/event_registry.d.ts +22 -0
- package/dist/core/ecs/event_registry.d.ts.map +1 -0
- package/dist/core/ecs/facades.d.cts +158 -0
- package/dist/core/ecs/facades.d.ts +158 -0
- package/dist/core/ecs/facades.d.ts.map +1 -0
- package/dist/core/ecs/frame_stepper.d.cts +58 -0
- package/dist/core/ecs/frame_stepper.d.ts +58 -0
- package/dist/core/ecs/frame_stepper.d.ts.map +1 -0
- package/dist/core/ecs/frame_trace.d.cts +133 -0
- package/dist/core/ecs/frame_trace.d.ts +5 -5
- package/dist/core/ecs/frame_trace.d.ts.map +1 -1
- package/dist/core/ecs/host_commands.d.cts +274 -0
- package/dist/core/ecs/host_commands.d.ts +53 -31
- package/dist/core/ecs/host_commands.d.ts.map +1 -1
- package/dist/core/ecs/index.d.cts +46 -0
- package/dist/core/ecs/index.d.ts +45 -40
- package/dist/core/ecs/index.d.ts.map +1 -1
- package/dist/core/ecs/observer.d.cts +173 -0
- package/dist/core/ecs/observer.d.ts +43 -12
- package/dist/core/ecs/observer.d.ts.map +1 -1
- package/dist/core/ecs/query.d.cts +718 -0
- package/dist/core/ecs/query.d.ts +251 -90
- package/dist/core/ecs/query.d.ts.map +1 -1
- package/dist/core/ecs/ref.d.cts +31 -0
- package/dist/core/ecs/ref.d.ts +3 -3
- package/dist/core/ecs/relation.d.cts +243 -0
- package/dist/core/ecs/relation.d.ts +26 -14
- package/dist/core/ecs/relation.d.ts.map +1 -1
- package/dist/core/ecs/relation_service.d.cts +235 -0
- package/dist/core/ecs/relation_service.d.ts +235 -0
- package/dist/core/ecs/relation_service.d.ts.map +1 -0
- package/dist/core/ecs/resource.d.cts +53 -0
- package/dist/core/ecs/resource.d.ts +25 -5
- package/dist/core/ecs/resource.d.ts.map +1 -1
- package/dist/core/ecs/resource_registry.d.cts +20 -0
- package/dist/core/ecs/resource_registry.d.ts +20 -0
- package/dist/core/ecs/resource_registry.d.ts.map +1 -0
- package/dist/core/ecs/resume.d.cts +85 -0
- package/dist/core/ecs/resume.d.ts +6 -6
- package/dist/core/ecs/resume.d.ts.map +1 -1
- package/dist/core/ecs/run_condition.d.cts +81 -0
- package/dist/core/ecs/run_condition.d.ts +15 -9
- package/dist/core/ecs/run_condition.d.ts.map +1 -1
- package/dist/core/ecs/schedule.d.cts +142 -0
- package/dist/core/ecs/schedule.d.ts +15 -6
- package/dist/core/ecs/schedule.d.ts.map +1 -1
- package/dist/core/ecs/snapshot_service.d.cts +94 -0
- package/dist/core/ecs/snapshot_service.d.ts +94 -0
- package/dist/core/ecs/snapshot_service.d.ts.map +1 -0
- package/dist/core/ecs/sparse_store.d.cts +110 -0
- package/dist/core/ecs/sparse_store.d.ts +5 -2
- package/dist/core/ecs/sparse_store.d.ts.map +1 -1
- package/dist/core/ecs/store.d.cts +950 -0
- package/dist/core/ecs/store.d.ts +143 -342
- package/dist/core/ecs/store.d.ts.map +1 -1
- package/dist/core/ecs/store_layout_listener.d.cts +23 -0
- package/dist/core/ecs/system.d.cts +250 -0
- package/dist/core/ecs/system.d.ts +138 -22
- package/dist/core/ecs/system.d.ts.map +1 -1
- package/dist/{utils/arrays.d.ts → core/ecs/utils/arrays.d.cts} +1 -0
- package/dist/core/ecs/utils/error.d.cts +61 -0
- package/dist/core/ecs/utils/error.d.ts +12 -2
- package/dist/core/ecs/utils/error.d.ts.map +1 -1
- package/dist/core/store/action_ring.d.cts +136 -0
- package/dist/core/store/allocator.d.cts +238 -0
- package/dist/core/store/allocator.d.ts.map +1 -1
- package/dist/core/store/buffer_backed_column.d.cts +69 -0
- package/dist/core/store/buffer_backed_column.d.ts +2 -2
- package/dist/core/store/column_store.d.cts +273 -0
- package/dist/core/store/column_store.d.ts +18 -10
- package/dist/core/store/column_store.d.ts.map +1 -1
- package/dist/core/store/command_dispatch.d.cts +52 -0
- package/dist/core/store/command_ring.d.cts +107 -0
- package/dist/core/store/descriptor.d.cts +80 -0
- package/dist/core/store/descriptor.d.ts +1 -1
- package/dist/core/store/descriptor.d.ts.map +1 -1
- package/dist/core/store/entity_index.d.cts +108 -0
- package/dist/core/store/event_ring.d.cts +95 -0
- package/dist/core/store/extend.d.cts +39 -0
- package/dist/core/store/extend.d.ts +3 -73
- package/dist/core/store/extend.d.ts.map +1 -1
- package/dist/core/store/grow.d.cts +34 -0
- package/dist/core/store/grow.d.ts +4 -9
- package/dist/core/store/grow.d.ts.map +1 -1
- package/dist/core/store/header.d.cts +64 -0
- package/dist/core/store/header.d.ts +1 -1
- package/dist/core/store/header.d.ts.map +1 -1
- package/dist/core/store/index.d.cts +17 -0
- package/dist/core/store/index.d.ts +16 -15
- package/dist/core/store/index.d.ts.map +1 -1
- package/dist/core/store/layout_ops.d.cts +152 -0
- package/dist/core/store/layout_ops.d.ts +152 -0
- package/dist/core/store/layout_ops.d.ts.map +1 -0
- package/dist/core/store/region_table.d.cts +74 -0
- package/dist/core/store/region_table.d.ts +1 -1
- package/dist/core/store/region_table.d.ts.map +1 -1
- package/dist/core/store/snapshot.d.cts +43 -0
- package/dist/core/store/snapshot.d.ts +2 -2
- package/dist/core/store/state_hash.d.cts +38 -0
- package/dist/core/store/state_hash.d.ts +1 -1
- package/dist/core/store/store_regions.d.cts +38 -0
- package/dist/core/store/store_regions.d.ts +1 -1
- package/dist/core/store/vendored_abi/abi.d.ts +43 -0
- package/dist/core/store/{__generated__ → vendored_abi}/abi.d.ts.map +1 -1
- package/dist/dev_flag.d.cts +17 -0
- package/dist/dev_flag.d.ts +17 -0
- package/dist/dev_flag.d.ts.map +1 -0
- package/dist/extensions/editor/editor.d.cts +170 -0
- package/dist/extensions/editor/editor.d.ts +43 -22
- package/dist/extensions/editor/editor.d.ts.map +1 -1
- package/dist/extensions/editor/field_handle.d.cts +40 -0
- package/dist/extensions/editor/field_handle.d.ts +8 -3
- package/dist/extensions/editor/field_handle.d.ts.map +1 -1
- package/dist/extensions/editor/index.cjs +1 -1
- package/dist/extensions/editor/index.d.cts +21 -0
- package/dist/extensions/editor/index.d.ts +2 -2
- package/dist/extensions/editor/index.js +116 -88
- package/dist/extensions/reactive/ecs_sync.d.cts +214 -0
- package/dist/extensions/reactive/ecs_sync.d.ts +26 -22
- package/dist/extensions/reactive/ecs_sync.d.ts.map +1 -1
- package/dist/extensions/reactive/index.cjs +1 -1
- package/dist/extensions/reactive/index.d.cts +23 -0
- package/dist/extensions/reactive/index.d.ts +1 -1
- package/dist/extensions/reactive/index.js +106 -116
- package/dist/extensions/solid/index.cjs +1 -1
- package/dist/extensions/solid/index.d.cts +6 -0
- package/dist/extensions/solid/index.d.ts +2 -2
- package/dist/extensions/solid/index.js +8 -4
- package/dist/extensions/solid/kernel_solid.d.cts +45 -0
- package/dist/extensions/solid/kernel_solid.d.ts +6 -3
- package/dist/extensions/solid/kernel_solid.d.ts.map +1 -1
- package/dist/host_commands-BF8QMi3c.cjs +1 -0
- package/dist/host_commands-i4cAeyL5.js +2318 -0
- package/dist/index.cjs +1 -2
- package/dist/index.d.cts +66 -0
- package/dist/index.d.ts +50 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4469 -5933
- package/dist/internal.cjs +2 -0
- package/dist/internal.d.cts +20 -0
- package/dist/internal.d.ts +20 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +141 -0
- package/dist/primitives.cjs +1 -1
- package/dist/primitives.d.cts +18 -0
- package/dist/primitives.d.ts +6 -6
- package/dist/primitives.js +24 -23
- package/dist/reactive/array.d.ts +24 -0
- package/dist/reactive/array.d.ts.map +1 -0
- package/dist/reactive/index.cjs +1 -0
- package/dist/reactive/index.d.cts +11 -0
- package/dist/reactive/index.d.ts +11 -0
- package/dist/reactive/index.d.ts.map +1 -0
- package/dist/reactive/index.js +18 -0
- package/dist/reactive/interop.d.cts +19 -0
- package/dist/{core/reactive → reactive}/interop.d.ts +1 -1
- package/dist/reactive/interop.d.ts.map +1 -0
- package/dist/reactive/kernel.d.cts +73 -0
- package/dist/{core/reactive → reactive}/kernel.d.ts +5 -3
- package/dist/reactive/kernel.d.ts.map +1 -0
- package/dist/reactive/map.d.ts +16 -0
- package/dist/reactive/map.d.ts.map +1 -0
- package/dist/reactive/shallow.d.cts +11 -0
- package/dist/reactive/shallow.d.ts +11 -0
- package/dist/reactive/shallow.d.ts.map +1 -0
- package/dist/reactive/struct.d.cts +10 -0
- package/dist/{core/reactive → reactive}/struct.d.ts +1 -1
- package/dist/reactive/struct.d.ts.map +1 -0
- package/dist/shallow-DQ8aG51_.cjs +1 -0
- package/dist/shallow-DfnAm9vG.js +150 -0
- package/dist/shared-BU1Cd40h.js +103 -0
- package/dist/shared-BymrGTyR.cjs +1 -0
- package/dist/shared.cjs +1 -1
- package/dist/shared.d.cts +22 -0
- package/dist/shared.d.ts +2 -2
- package/dist/shared.js +1 -1
- package/dist/topological_sort-BDvEyb9W.cjs +1 -0
- package/dist/topological_sort-DK6EjpWa.js +135 -0
- package/dist/type_primitives/assertions.d.cts +32 -0
- package/dist/type_primitives/assertions.d.ts +13 -1
- package/dist/type_primitives/assertions.d.ts.map +1 -1
- package/dist/type_primitives/binary_heap/binary_heap.d.cts +37 -0
- package/dist/type_primitives/bitset/bitset.d.cts +54 -0
- package/dist/type_primitives/brand.d.cts +23 -0
- package/dist/type_primitives/error.d.cts +16 -0
- package/dist/type_primitives/error.d.ts +4 -3
- package/dist/type_primitives/error.d.ts.map +1 -1
- package/dist/type_primitives/index.d.cts +13 -0
- package/dist/type_primitives/index.d.ts +9 -9
- package/dist/type_primitives/sparse_map/sparse_map.d.cts +30 -0
- package/dist/type_primitives/sparse_set/sparse_set.d.cts +28 -0
- package/dist/type_primitives/topological_sort/topological_sort.d.cts +29 -0
- package/dist/type_primitives/typed_arrays/typed_arrays.d.cts +127 -0
- package/dist/typed_arrays-BcXcnzB4.js +258 -0
- package/dist/typed_arrays-D3NmwtCG.cjs +1 -0
- package/dist/utils/error.d.cts +6 -0
- package/dist/version.d.cts +10 -0
- package/dist/version.d.ts +10 -0
- package/dist/version.d.ts.map +1 -0
- package/package.json +102 -19
- package/dist/array-CxbPyiHO.cjs +0 -1
- package/dist/array-uFR7Q8fU.js +0 -132
- package/dist/core/reactive/array.d.ts.map +0 -1
- package/dist/core/reactive/index.cjs +0 -1
- package/dist/core/reactive/index.d.ts +0 -10
- package/dist/core/reactive/index.d.ts.map +0 -1
- package/dist/core/reactive/index.js +0 -17
- package/dist/core/reactive/interop.d.ts.map +0 -1
- package/dist/core/reactive/kernel.d.ts.map +0 -1
- package/dist/core/reactive/map.d.ts.map +0 -1
- package/dist/core/reactive/struct.d.ts.map +0 -1
- package/dist/log/console_sink.d.ts +0 -4
- package/dist/log/console_sink.d.ts.map +0 -1
- package/dist/log/index.d.ts +0 -3
- package/dist/log/index.d.ts.map +0 -1
- package/dist/log/logger.d.ts +0 -27
- package/dist/log/logger.d.ts.map +0 -1
- package/dist/shared-BXSZnxx4.cjs +0 -1
- package/dist/shared-C678TAPY.js +0 -99
- package/dist/topological_sort-DlRpSrxu.js +0 -391
- package/dist/topological_sort-WAT-VHb-.cjs +0 -1
- package/dist/utils/arrays.d.ts.map +0 -1
- package/dist/utils/constants.d.ts.map +0 -1
- /package/dist/{utils/constants.d.ts → core/ecs/utils/constants.d.cts} +0 -0
- /package/dist/core/store/{__generated__/abi.d.ts → vendored_abi/abi.d.cts} +0 -0
- /package/dist/{core/reactive/array.d.ts → reactive/array.d.cts} +0 -0
- /package/dist/{core/reactive/map.d.ts → reactive/map.d.cts} +0 -0
package/dist/core/ecs/query.d.ts
CHANGED
|
@@ -1,20 +1,82 @@
|
|
|
1
|
-
import { Store } from './store';
|
|
2
|
-
import { FrameTraceSink } from './frame_trace';
|
|
3
|
-
import { Archetype, ArchetypeView } from './archetype';
|
|
4
|
-
import { EntityID } from './entity';
|
|
5
|
-
import { ComponentDef, ComponentID,
|
|
6
|
-
import { SparseComponentDef, SparseComponentID } from './sparse_store';
|
|
7
|
-
import { RelationDef } from './relation';
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
1
|
+
import { Store } from './store.js';
|
|
2
|
+
import { FrameTraceSink } from './frame_trace.js';
|
|
3
|
+
import { Archetype, ArchetypeView } from './archetype.js';
|
|
4
|
+
import { EntityID } from './entity.js';
|
|
5
|
+
import { ComponentDef, ComponentHandle, ComponentID, MutableColumnsForSchema, ColumnsForSchema, AttachValuesArg, SchemaOf, DeclaredQueryTerm } from './component.js';
|
|
6
|
+
import { SparseComponentDef, SparseComponentID, SparseSchemaOf } from './sparse_store.js';
|
|
7
|
+
import { RelationDef } from './relation.js';
|
|
8
|
+
import { SystemAccess, DeclaredRead, DeclaredWrite, DeclaredAdd, DeclaredRemove, DeclaredSparseRead, DeclaredSparseWrite, DeclaredRelationRead, DeclaredRelationWrite, DeclaredResourceRead, DeclaredResourceWrite, DespawnArg } from './system.js';
|
|
9
|
+
import { ComponentRef, ReadonlyComponentRef } from './ref.js';
|
|
10
|
+
import { EventKey, EventReader, EventShape, SignalKey } from './event.js';
|
|
11
|
+
import { ResourceKey, ResourceValueOf } from './resource.js';
|
|
12
|
+
import { BitSet } from '../../type_primitives/index.js';
|
|
13
|
+
/** The query-driver seam on `Store` — the typed contract behind the
|
|
14
|
+
* underscore members `ecs.ts` and the query internals reach (M1). `Store`
|
|
15
|
+
* implements this; when the cache/driver layer is extracted (M2/H1) the
|
|
16
|
+
* interface retargets at the collaborator without touching consumers.
|
|
17
|
+
* `_tick` / `_trace` are deliberately mutable: `ECS.update()` advances the
|
|
18
|
+
* change tick and `ECS.setTrace` installs the sink through this seam. */
|
|
19
|
+
export interface QueryHost {
|
|
20
|
+
/** Change tick — advanced by `ECS.update()` each frame. */
|
|
21
|
+
_tick: number;
|
|
22
|
+
/** Dev-only frame-trace sink (`ECS.setTrace`); always null in prod. */
|
|
23
|
+
_trace: FrameTraceSink | null;
|
|
24
|
+
/** True once any component observer opted into per-entity dirty tracking —
|
|
25
|
+
* gates `_noteSet` at every write site. */
|
|
26
|
+
readonly _anyDirtyTracked: boolean;
|
|
27
|
+
/** Bumped when an archetype crosses empty↔non-empty — cached query
|
|
28
|
+
* archetype lists rebuild when their observed epoch is stale (#327). */
|
|
29
|
+
readonly _queryDirtyEpoch: number;
|
|
30
|
+
/** Record a per-entity onSet dirty mark for `def` (gated by
|
|
31
|
+
* `_anyDirtyTracked` at the call site). */
|
|
32
|
+
_noteSet(def: ComponentHandle, eid: EntityID): void;
|
|
33
|
+
/** Dev-only: buffered event count across dirty channels (mid-update emit
|
|
34
|
+
* detection in `ECS.update()`). */
|
|
35
|
+
_devBufferedEventCount(): number;
|
|
36
|
+
/** Second query-match path: sparse-term intersection (#469 / ADR-0011). */
|
|
37
|
+
_forEachSparseMatch(include: BitSet, exclude: BitSet | null, anyOf: BitSet | null, sparseInclude: readonly SparseComponentID[], sparseExclude: readonly SparseComponentID[], denseArchetypes: readonly Archetype[], cb: (entityId: EntityID) => void, includeDisabled: boolean): void;
|
|
38
|
+
/** Third query-match path: the `(*, T)` wildcard (#579). */
|
|
39
|
+
_forEachRelationTargetMatch(target: EntityID, include: BitSet, exclude: BitSet | null, anyOf: BitSet | null, sparseInclude: readonly SparseComponentID[], sparseExclude: readonly SparseComponentID[], includeDisabled: boolean, cb: (entityId: EntityID) => void): void;
|
|
40
|
+
/** Fourth query-match path: hierarchy depth ordering (#581). */
|
|
41
|
+
_forEachHierarchyMatch(include: BitSet, exclude: BitSet | null, anyOf: BitSet | null, sparseInclude: readonly SparseComponentID[], sparseExclude: readonly SparseComponentID[], denseArchetypes: readonly Archetype[], relation: RelationDef, maxDepth: number, includeDisabled: boolean, cb: (entityId: EntityID) => void): void;
|
|
42
|
+
}
|
|
12
43
|
export interface QueryCacheEntry {
|
|
13
44
|
includeMask: BitSet;
|
|
14
45
|
excludeMask: BitSet | null;
|
|
15
46
|
anyOfMask: BitSet | null;
|
|
16
47
|
query: Query<any>;
|
|
17
48
|
}
|
|
49
|
+
/** One owner for every query-resolution cache (M2). Previously the dedup
|
|
50
|
+
* bucket map lived on `ECS` while `Query` populated eleven composition maps
|
|
51
|
+
* declared on the resolver interface — ownership split across two modules.
|
|
52
|
+
* All entries are structural (a query is minted once per unique term set and
|
|
53
|
+
* lives for the world's lifetime; components and queries are never
|
|
54
|
+
* unregistered), so there is no invalidation lifecycle — the maps are
|
|
55
|
+
* append-only. Key encodings are unchanged from the pre-extraction fields.
|
|
56
|
+
*
|
|
57
|
+
* The composition maps are exposed as readonly fields (not per-kind accessor
|
|
58
|
+
* pairs): the mutation protocol is uniform (`get` → miss → build → `set`) and
|
|
59
|
+
* hot enough that composition sites keep direct map access; the invariant
|
|
60
|
+
* this class carries is single ownership, not access mediation. */
|
|
61
|
+
export declare class QueryCache {
|
|
62
|
+
private readonly dedup;
|
|
63
|
+
readonly andSingle: Map<number, Query<any>>;
|
|
64
|
+
readonly notSingle: Map<number, Query<any>>;
|
|
65
|
+
readonly anyOfSingle: Map<number, Query<any>>;
|
|
66
|
+
readonly changedSingle: Map<number, ChangedQuery<any>>;
|
|
67
|
+
readonly optionalSingle: Map<number, Query<any>>;
|
|
68
|
+
readonly withSparseSingle: Map<number, Query<any>>;
|
|
69
|
+
readonly withoutSparseSingle: Map<number, Query<any>>;
|
|
70
|
+
readonly withRelationSingle: Map<number, Query<any>>;
|
|
71
|
+
readonly withoutRelationSingle: Map<number, Query<any>>;
|
|
72
|
+
readonly includeDisabledSingle: Map<number, Query<any>>;
|
|
73
|
+
readonly hierarchySingle: Map<number, Query<any>>;
|
|
74
|
+
/** Dedup lookup: bucket scan with full mask equality (buckets are
|
|
75
|
+
* typically 1–2 entries). */
|
|
76
|
+
findDedup(key: number, include: BitSet, exclude: BitSet | null, anyOf: BitSet | null): QueryCacheEntry | undefined;
|
|
77
|
+
/** Record a freshly minted query under its dedup key. */
|
|
78
|
+
addDedup(key: number, entry: QueryCacheEntry): void;
|
|
79
|
+
}
|
|
18
80
|
export interface QueryResolver {
|
|
19
81
|
_resolveQuery(include: BitSet, exclude: BitSet | null, anyOf: BitSet | null, defs: readonly ComponentDef[]): Query<any>;
|
|
20
82
|
_getLastRunTick(): number;
|
|
@@ -22,17 +84,9 @@ export interface QueryResolver {
|
|
|
22
84
|
_getCurrentTick(): number;
|
|
23
85
|
_getQueryDirtyEpoch(): number;
|
|
24
86
|
_nextQueryId(): number;
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
_changedSingleCache: Map<number, ChangedQuery<any>>;
|
|
29
|
-
_optionalSingleCache: Map<number, Query<any>>;
|
|
30
|
-
_withSparseSingleCache: Map<number, Query<any>>;
|
|
31
|
-
_withoutSparseSingleCache: Map<number, Query<any>>;
|
|
32
|
-
_withRelationSingleCache: Map<number, Query<any>>;
|
|
33
|
-
_withoutRelationSingleCache: Map<number, Query<any>>;
|
|
34
|
-
_includeDisabledSingleCache: Map<number, Query<any>>;
|
|
35
|
-
_hierarchySingleCache: Map<number, Query<any>>;
|
|
87
|
+
/** All query-resolution caches — dedup + composition (M2). One owner; see
|
|
88
|
+
* `QueryCache` for the per-map keying/id-space notes. */
|
|
89
|
+
readonly _caches: QueryCache;
|
|
36
90
|
/** Second query-match path (#469 / ADR-0011): drive iteration by sparse
|
|
37
91
|
* membership rather than the archetype mask, yielding entities — sparse
|
|
38
92
|
* members are scattered across archetypes, so there is no archetype-column
|
|
@@ -85,13 +139,15 @@ export interface HierarchyTerm {
|
|
|
85
139
|
* object (a per-archetype-per-component cache refreshed in place), hiding the
|
|
86
140
|
* change tick. Destructure the group immediately; don't retain it across calls.
|
|
87
141
|
*/
|
|
88
|
-
export declare class ChunkColumns {
|
|
142
|
+
export declare class ChunkColumns<out Defs extends readonly ComponentDef<any>[] = readonly ComponentDef<any>[]> {
|
|
89
143
|
/** @internal */ _arch: Archetype;
|
|
90
144
|
/** @internal */ _tick: number;
|
|
91
|
-
/** Mutable column group — `const { x, y } = cols.mut(Pos)`. Stamps the tick.
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
145
|
+
/** Mutable column group — `const { x, y } = cols.mut(Pos)`. Stamps the tick.
|
|
146
|
+
* `def` must be a term of the iterating query (POLISH_AUDIT #6). */
|
|
147
|
+
mut<D extends ComponentDef<any>>(def: D & DeclaredQueryTerm<Defs, D>): MutableColumnsForSchema<SchemaOf<D>>;
|
|
148
|
+
/** Read-only column group — `const { vx, vy } = cols.read(Vel)`. No tick bump.
|
|
149
|
+
* `def` must be a term of the iterating query (POLISH_AUDIT #6). */
|
|
150
|
+
read<D extends ComponentDef<any>>(def: D & DeclaredQueryTerm<Defs, D>): ColumnsForSchema<SchemaOf<D>>;
|
|
95
151
|
}
|
|
96
152
|
export declare class Query<Defs extends readonly ComponentDef[]> {
|
|
97
153
|
private readonly _archetypes;
|
|
@@ -115,18 +171,37 @@ export declare class Query<Defs extends readonly ComponentDef[]> {
|
|
|
115
171
|
* against a query carrying sparse terms. These walk the dense archetype
|
|
116
172
|
* list and never consult `_sparseInclude` / `_sparseExclude`, so on a
|
|
117
173
|
* sparse-derived query they'd **fail open** — returning the unfiltered dense
|
|
118
|
-
* result instead of the sparse-filtered one. Throw in `
|
|
174
|
+
* result instead of the sparse-filtered one. Throw in `DEV` (compiled
|
|
119
175
|
* out of prod) steering the caller to `forEachEntity`, the only path that
|
|
120
176
|
* honors sparse membership (#469). Mirrors `ChangedQuery`'s dev-guard on its
|
|
121
177
|
* include-mask invariant. */
|
|
122
178
|
private _assertDenseOnly;
|
|
179
|
+
/** Whether this query carries only dense terms — the precondition for the
|
|
180
|
+
* archetype-walk fast paths (`count`, `firstEntity`, `singleEntity`). */
|
|
181
|
+
private _isDenseOnly;
|
|
182
|
+
/** First matching entity, or `undefined` when the query matches none — the
|
|
183
|
+
* singleton read (`player`, `camera`) without hand-rolling a forEach +
|
|
184
|
+
* closure capture (POLISH_AUDIT M8). Dense-only queries answer from the
|
|
185
|
+
* first non-empty archetype in O(archetypes); queries with sparse /
|
|
186
|
+
* relation / hierarchy terms fall back to a full `forEachEntity` walk.
|
|
187
|
+
* "First" is iteration order, not spawn order — with more than one match
|
|
188
|
+
* the pick is arbitrary (use `singleEntity` to assert uniqueness). */
|
|
189
|
+
firstEntity(): EntityID | undefined;
|
|
190
|
+
/** The query's one matching entity. Dev-throws `QUERY_NOT_SINGLETON` when
|
|
191
|
+
* the match count is 0 or >1 — the singleton assertion for entities that
|
|
192
|
+
* must be unique (player, camera). Prod skips the count and returns the
|
|
193
|
+
* first match (`undefined` if none). */
|
|
194
|
+
singleEntity(): EntityID;
|
|
195
|
+
/** Count for non-dense queries — full `forEachEntity` walk. */
|
|
196
|
+
private _countViaWalk;
|
|
123
197
|
/** Number of matching archetypes (including empty ones). */
|
|
124
198
|
get archetypeCount(): number;
|
|
125
199
|
/** Total entity count across all matching archetypes — enabled rows only by
|
|
126
200
|
* default, or all rows when `includeDisabled()` (#577). Reads the partition
|
|
127
|
-
* fields directly (not the flag-dependent `entityCount`
|
|
128
|
-
|
|
129
|
-
get
|
|
201
|
+
* fields directly (not the archetype's flag-dependent `entityCount`
|
|
202
|
+
* getter). */
|
|
203
|
+
get entityCount(): number;
|
|
204
|
+
get archetypes(): readonly ArchetypeView<Defs>[];
|
|
130
205
|
/** Carry this query's non-dense terms — optional fetch-if-present (#575) and
|
|
131
206
|
* sparse membership (#469) — onto a freshly composed dense query. `and` /
|
|
132
207
|
* `not` / `anyOf` build the new dense mask via `_resolveQuery`, which is
|
|
@@ -194,7 +269,7 @@ export declare class Query<Defs extends readonly ComponentDef[]> {
|
|
|
194
269
|
private _withoutRelationOne;
|
|
195
270
|
/** Build a derived query carrying new relation-wildcard terms. Threads the
|
|
196
271
|
* backing-sparse ids (which the driver actually consumes) plus the relation
|
|
197
|
-
* ids (which only the `
|
|
272
|
+
* ids (which only the `DEV` access check consumes), reusing the dense /
|
|
198
273
|
* optional / disabled state by reference — same rationale as `_deriveSparse`. */
|
|
199
274
|
private _deriveRelation;
|
|
200
275
|
/** Order this query's matched entities in **hierarchy depth order** over the
|
|
@@ -211,13 +286,13 @@ export declare class Query<Defs extends readonly ComponentDef[]> {
|
|
|
211
286
|
* no SoA column span — `forEach` / `count` reject a hierarchy query (like a
|
|
212
287
|
* sparse term). **Exclusive relations only** (matches the traversal constraint
|
|
213
288
|
* #474); a multi relation throws `RELATION_MODE_MISMATCH` at iteration, and a
|
|
214
|
-
* cycle is a loud `RELATION_CYCLE` in `
|
|
289
|
+
* cycle is a loud `RELATION_CYCLE` in `DEV` (a safe break in production).
|
|
215
290
|
* Requires `relationReads: [R]` (checked at iteration). Carried through
|
|
216
291
|
* `and`/`not`/`anyOf` like the sparse terms (`_carryNondense`).
|
|
217
292
|
*
|
|
218
293
|
* `Defs` is unchanged — `R` is an ordering, not a required component (like
|
|
219
294
|
* `not` / `anyOf`). Returns a new query; the unbounded form is cached. */
|
|
220
|
-
hierarchy(relation: RelationDef
|
|
295
|
+
hierarchy(relation: RelationDef<"exclusive">, maxDepth?: number): Query<Defs>;
|
|
221
296
|
/** Build a derived query carrying a hierarchy ordering term. Reuses this
|
|
222
297
|
* query's dense / sparse / optional / disabled / relation-wildcard state by
|
|
223
298
|
* reference (the matched set is unchanged) — same rationale as `_deriveSparse`. */
|
|
@@ -225,7 +300,7 @@ export declare class Query<Defs extends readonly ComponentDef[]> {
|
|
|
225
300
|
/** Assert every `(R, *)` wildcard term on this query was declared in the
|
|
226
301
|
* system's `relationReads` (#579 / #496). Iteration-time (`forEachEntity` /
|
|
227
302
|
* `forEachRelatedTo`), not construction-time, so it is robust to queries
|
|
228
|
-
* built outside a system — same rationale as the data-op checks. `
|
|
303
|
+
* built outside a system — same rationale as the data-op checks. `DEV` only;
|
|
229
304
|
* outside a system `checkRelationRead` is a no-op. */
|
|
230
305
|
private _checkRelationAccess;
|
|
231
306
|
/** Iterate every source related to `target` under **any** relation — the
|
|
@@ -245,7 +320,7 @@ export declare class Query<Defs extends readonly ComponentDef[]> {
|
|
|
245
320
|
* and without each `T`. Read each column per archetype span via
|
|
246
321
|
* `arch.getOptionalColumnRead(T, field)` (column when present, `undefined`
|
|
247
322
|
* when absent). `.optional(T)` is the *declaration* that authorizes that fetch:
|
|
248
|
-
* inside `forEach`, `getOptionalColumnRead` throws in `
|
|
323
|
+
* inside `forEach`, `getOptionalColumnRead` throws in `DEV` if `T` was
|
|
249
324
|
* not declared here (#592) — the read-side analog of `reads:[T]`, which is also
|
|
250
325
|
* still required for access coverage (both checks fire, even on the absent
|
|
251
326
|
* span). The term is carried through `and`/`not`/`anyOf` (see
|
|
@@ -271,7 +346,7 @@ export declare class Query<Defs extends readonly ComponentDef[]> {
|
|
|
271
346
|
* touch the dense mask, so it reuses this query's live archetype list and is
|
|
272
347
|
* carried through `and`/`not`/`anyOf` like the sparse/optional terms. */
|
|
273
348
|
includeDisabled(): Query<Defs>;
|
|
274
|
-
forEach(cb: (arch: ArchetypeView) => void): void;
|
|
349
|
+
forEach(cb: (arch: ArchetypeView<Defs>) => void): void;
|
|
275
350
|
/** @internal — cold `includeDisabled` wrapper for `forEach` (#577), split out
|
|
276
351
|
* (#649) so the all-rows flag dance (`_setIterAllRows` + try/finally) stays
|
|
277
352
|
* out of `forEach`'s inlined hot body. The default (enabled-only) query never
|
|
@@ -300,9 +375,9 @@ export declare class Query<Defs extends readonly ComponentDef[]> {
|
|
|
300
375
|
* allocated per pass and reused across that pass's archetypes. Honours
|
|
301
376
|
* `includeDisabled()` exactly like `forEach` (the bound widens to the
|
|
302
377
|
* disabled tail); dense-only like `forEach` (sparse/relation/hierarchy terms
|
|
303
|
-
* throw in `
|
|
378
|
+
* throw in `DEV` — iterate those with `forEachEntity`).
|
|
304
379
|
*/
|
|
305
|
-
eachChunk(cb: (cols: ChunkColumns
|
|
380
|
+
eachChunk(cb: (cols: ChunkColumns<Defs>, count: number) => void): void;
|
|
306
381
|
/** @internal — shared body for `eachChunk`'s default and `includeDisabled`
|
|
307
382
|
* paths. The `ChunkColumns` cursor is allocated per call (a 2-field object whose
|
|
308
383
|
* cost doesn't scale with the per-row work) rather than cached on the query, so
|
|
@@ -321,7 +396,7 @@ export declare class Query<Defs extends readonly ComponentDef[]> {
|
|
|
321
396
|
* would silently change behaviour for arrow-expression bodies that happen
|
|
322
397
|
* to return a truthy value.
|
|
323
398
|
*/
|
|
324
|
-
forEachUntil(cb: (arch: ArchetypeView) => boolean): boolean;
|
|
399
|
+
forEachUntil(cb: (arch: ArchetypeView<Defs>) => boolean): boolean;
|
|
325
400
|
/** @internal — shared body for `forEachUntil`'s default and
|
|
326
401
|
* `includeDisabled` paths. Same dev-mode optional-term scope as
|
|
327
402
|
* `forEach` (#592). */
|
|
@@ -400,59 +475,128 @@ export declare class QueryBuilder {
|
|
|
400
475
|
constructor(_resolver: QueryResolver);
|
|
401
476
|
with<T extends ComponentDef[]>(...defs: T): Query<T>;
|
|
402
477
|
}
|
|
478
|
+
/**
|
|
479
|
+
* A `BundleOrDef` whose def is constrained to the enclosing system's declared
|
|
480
|
+
* add surface (§typestate). The bundle branch restates `Bundle`'s shape with
|
|
481
|
+
* the def slot narrowed — intersecting `Bundle<any> & { def: … }` instead
|
|
482
|
+
* would put two `ComponentDef` instantiations in one intersection, which TS
|
|
483
|
+
* relates leniently (see system.ts §typestate notes).
|
|
484
|
+
*
|
|
485
|
+
* The outer conditional is a deliberate no-op (`[D] extends [unknown]` is
|
|
486
|
+
* always true): it makes the variance of `D` — and therefore of the access
|
|
487
|
+
* param `A` threaded through `Commands` / `SystemContext` — UNMEASURABLE to
|
|
488
|
+
* the compiler. A measurable (plain-union) definition here gets `A` marked
|
|
489
|
+
* reliably contravariant, variance-based comparison then rejects
|
|
490
|
+
* `SystemContext<Narrow> → SystemContext` without the structural fallback,
|
|
491
|
+
* and every helper taking a bare `SystemContext` stops accepting typed
|
|
492
|
+
* contexts. Unmeasurable variance forces the structural path, where class
|
|
493
|
+
* methods compare bivariantly and the conversion holds.
|
|
494
|
+
*/
|
|
495
|
+
export type DeclaredBundleOrDef<D> = [D] extends [unknown] ? D | {
|
|
496
|
+
readonly def: D;
|
|
497
|
+
readonly values: Readonly<Partial<Record<string, number>>>;
|
|
498
|
+
} : never;
|
|
403
499
|
/**
|
|
404
500
|
* Deferred structural-command facade (§ctx.commands — Bevy `Commands`).
|
|
405
501
|
* Namespaces the deferred structural ops so the call site is self-documenting:
|
|
406
502
|
* `ctx.commands.add(e, …)` is *always* deferred (applied at the phase flush),
|
|
407
|
-
* ending the collision where `ecs.addComponent` (immediate) and
|
|
408
|
-
* `ctx.addComponent` (deferred) share a name with opposite timing. Takes
|
|
503
|
+
* ending the collision where `ecs.addComponent` (immediate) and a bare
|
|
504
|
+
* `ctx.addComponent` (deferred) would share a name with opposite timing. Takes
|
|
409
505
|
* varargs callable bundles, so one shape — `commands.spawn(bundle(Pos,{x,y}), bundle(Vel,{vx:1}))`
|
|
410
|
-
* — serves spawn and add.
|
|
411
|
-
*
|
|
506
|
+
* — serves spawn and add. This is the ONLY deferred surface: the bare
|
|
507
|
+
* `ctx.addComponent` / `ctx.removeComponent` / `ctx.disable` / `ctx.enable`
|
|
508
|
+
* duplicates were removed in 0.5.0, completing the receiver-implies-timing
|
|
509
|
+
* rule (`ecs.*` immediate, `ctx.commands.*` deferred) that 0.5.0 started for
|
|
510
|
+
* spawn/despawn.
|
|
511
|
+
*
|
|
512
|
+
* `A` narrows the def-taking methods to the enclosing system's declared access
|
|
513
|
+
* (§typestate, system.ts); the default is fully permissive.
|
|
514
|
+
*
|
|
515
|
+
* `out A` (declared covariance) is deliberate: every use of `A` sits inside a
|
|
516
|
+
* declared-access conditional, whose variance the compiler cannot measure —
|
|
517
|
+
* left unannotated, the measured verdict rejects `Commands<Narrow> →
|
|
518
|
+
* Commands` (the direction every permissive consumer needs). Covariance is
|
|
519
|
+
* the honest direction: a context with MORE declared access is usable where
|
|
520
|
+
* one with less is expected. The checks themselves are per-instantiation, so
|
|
521
|
+
* the annotation does not weaken them.
|
|
412
522
|
*/
|
|
413
|
-
export declare class Commands {
|
|
523
|
+
export declare class Commands<out A extends SystemAccess = SystemAccess> {
|
|
414
524
|
private readonly store;
|
|
415
525
|
constructor(store: Store);
|
|
416
526
|
/** Spawn from bundles. Create is immediate (the id is returned now); the
|
|
417
527
|
* component attaches are deferred to the phase flush — so until that flush the
|
|
418
528
|
* entity exists in its empty/partial archetype and a query running later in
|
|
419
529
|
* the same phase can observe it half-built. (Same semantics as
|
|
420
|
-
* `ctx.
|
|
530
|
+
* `ctx.commands.spawn()` + `ctx.addComponent`; fully-deferred id-reservation
|
|
421
531
|
* spawn, à la Bevy, is a separate follow-up.) */
|
|
422
|
-
spawn(...items:
|
|
423
|
-
/** Attach bundles to an existing entity (deferred).
|
|
424
|
-
|
|
532
|
+
spawn(...items: DeclaredBundleOrDef<A["add"]>[]): EntityID;
|
|
533
|
+
/** Attach bundles to an existing entity (deferred). Bundles zero-fill
|
|
534
|
+
* omitted fields. */
|
|
535
|
+
add(entityId: EntityID, ...items: DeclaredBundleOrDef<A["add"]>[]): this;
|
|
536
|
+
/** Explicit complete-values attach (deferred) — the compile-checked shape
|
|
537
|
+
* where a typo'd or missing field is a compile error, mirroring the
|
|
538
|
+
* immediate `ecs.addComponent(e, def, values)`. Tags take no values
|
|
539
|
+
* argument (`AttachValuesArg`). */
|
|
540
|
+
add<D extends ComponentDef<any>>(entityId: EntityID, def: D & DeclaredAdd<A, D>, ...values: AttachValuesArg<SchemaOf<D>>): this;
|
|
425
541
|
/** Remove a component (deferred). */
|
|
426
|
-
remove(entityId: EntityID, def:
|
|
542
|
+
remove<D extends ComponentDef<any>>(entityId: EntityID, def: D & DeclaredRemove<A, D>): this;
|
|
427
543
|
/** Destroy an entity (deferred). */
|
|
428
|
-
despawn(entityId:
|
|
429
|
-
/**
|
|
544
|
+
despawn(entityId: DespawnArg<A>): this;
|
|
545
|
+
/** Buffer `entityId` to be disabled at the phase flush (idempotent, #577).
|
|
546
|
+
* Deferred because a toggle is an in-archetype row swap, which would corrupt
|
|
547
|
+
* a `forEach` SoA loop iterating that archetype if applied mid-system (it
|
|
548
|
+
* reorders the dense columns being read). A disabled entity is excluded from
|
|
549
|
+
* default queries; opt back in per query with `.includeDisabled()`. The
|
|
550
|
+
* immediate read is `ctx.isDisabled`. */
|
|
430
551
|
disable(entityId: EntityID): this;
|
|
431
|
-
/**
|
|
552
|
+
/** Buffer `entityId` to be re-enabled at the phase flush (idempotent).
|
|
553
|
+
* Deferred for the same row-swap reason as `disable`. */
|
|
432
554
|
enable(entityId: EntityID): this;
|
|
433
555
|
}
|
|
434
|
-
|
|
556
|
+
/**
|
|
557
|
+
* The per-system world facade. `A` is the system's declared access surface
|
|
558
|
+
* (§typestate, system.ts): the config-form `registerSystem` computes it from
|
|
559
|
+
* the literal `reads`/`writes`/… declarations and every guarded method below
|
|
560
|
+
* checks its handle argument against the matching union at compile time —
|
|
561
|
+
* the same rules `accessCheck` enforces at runtime in `DEV`. The default
|
|
562
|
+
* `A = SystemAccess` is fully permissive, so a bare `SystemContext` (helper
|
|
563
|
+
* functions, host-side code, explicitly-annotated escape hatches) behaves
|
|
564
|
+
* exactly as before, and every narrowed `SystemContext<…>` is assignable to
|
|
565
|
+
* it.
|
|
566
|
+
*
|
|
567
|
+
* `out A` (declared covariance) is deliberate — see `Commands` above: the
|
|
568
|
+
* declared-access conditionals are unmeasurable to the compiler, and the
|
|
569
|
+
* unannotated verdict rejects exactly the `SystemContext<Narrow> →
|
|
570
|
+
* SystemContext` conversion the whole design depends on.
|
|
571
|
+
*/
|
|
572
|
+
export declare class SystemContext<out A extends SystemAccess = SystemAccess> {
|
|
435
573
|
private readonly store;
|
|
436
574
|
lastRunTick: number;
|
|
437
575
|
/** Deferred structural-command facade (§ctx.commands). */
|
|
438
|
-
readonly commands: Commands
|
|
576
|
+
readonly commands: Commands<A>;
|
|
439
577
|
/** Current ECS tick. Use this for write ticks in getColumn. */
|
|
440
578
|
get ecsTick(): number;
|
|
441
579
|
/** The world's frame-trace sink (ADR-0030), or `null`. Lets the schedule
|
|
442
580
|
* fire `systemStart`/`flush*` without reaching into the private store.
|
|
443
|
-
* Read only under `if (
|
|
581
|
+
* Read only under `if (DEV)`; the seam is dead-code-eliminated in prod. */
|
|
444
582
|
get _trace(): FrameTraceSink | null;
|
|
445
583
|
constructor(store: Store);
|
|
446
|
-
createEntity(): EntityID;
|
|
447
584
|
isAlive(entityId: EntityID): boolean;
|
|
448
585
|
hasComponent(entityId: EntityID, def: ComponentDef): boolean;
|
|
449
|
-
getField<
|
|
450
|
-
|
|
586
|
+
getField<D extends ComponentDef<any>>(entityId: EntityID, def: D & DeclaredRead<A, D>, field: string & keyof SchemaOf<D>): number;
|
|
587
|
+
/** Total sibling of {@link getField}, mirroring `ecs.tryGetField`
|
|
588
|
+
* (POLISH_AUDIT #9): `undefined` when the entity is dead or doesn't hold
|
|
589
|
+
* the component, instead of a dev throw / prod garbage read. The safe way
|
|
590
|
+
* to probe-and-read in one call: `ctx.tryGetField(e, Health, "current") ?? 0`. */
|
|
591
|
+
tryGetField<D extends ComponentDef<any>>(entityId: EntityID, def: D & DeclaredRead<A, D>, field: string & keyof SchemaOf<D>): number | undefined;
|
|
592
|
+
setField<D extends ComponentDef<any>>(entityId: EntityID, def: D & DeclaredWrite<A, D>, field: string & keyof SchemaOf<D>, value: number): void;
|
|
451
593
|
/** Read-modify-write one field: `updateField(e, Gold, "value", v => v - cost)`
|
|
452
594
|
* is the one-line form of the `getField` → compute → `setField` round trip.
|
|
453
595
|
* Returns the written value. Same access-check and observer semantics as the
|
|
454
|
-
* two calls it composes
|
|
455
|
-
|
|
596
|
+
* two calls it composes (inlined here: the declared-access conditionals on
|
|
597
|
+
* those methods only resolve per `A` instantiation, so a body where `A` is
|
|
598
|
+
* still generic cannot call them without casts). */
|
|
599
|
+
updateField<D extends ComponentDef<any>>(entityId: EntityID, def: D & DeclaredWrite<A, D>, field: string & keyof SchemaOf<D>, fn: (current: number) => number): number;
|
|
456
600
|
/**
|
|
457
601
|
* Record an entity as changed for a component's per-entity `onSet` observer
|
|
458
602
|
* (#517 §1 / ADR-0013). The SoA write idiom — `const col = arch.getColumn(D,
|
|
@@ -469,7 +613,7 @@ export declare class SystemContext {
|
|
|
469
613
|
* component as changed (the mutable default — see `refRead` for the
|
|
470
614
|
* read-only variant to reach for when you are not mutating). See ref.ts.
|
|
471
615
|
*/
|
|
472
|
-
ref<
|
|
616
|
+
ref<D extends ComponentDef<any>>(def: D & DeclaredWrite<A, D>, entityId: EntityID): ComponentRef<SchemaOf<D>>;
|
|
473
617
|
/**
|
|
474
618
|
* Create a cached read-only component reference for a single entity. Use
|
|
475
619
|
* this when you are not mutating. The returned `ReadonlyComponentRef<S>`
|
|
@@ -478,34 +622,27 @@ export declare class SystemContext {
|
|
|
478
622
|
* underlying accessor shares its prototype with `ref()` and can still be
|
|
479
623
|
* written through a §10c-policed cast. See ref.ts.
|
|
480
624
|
*/
|
|
481
|
-
refRead<
|
|
482
|
-
/**
|
|
483
|
-
|
|
484
|
-
addComponent(entityId: EntityID, def: ComponentDef<Record<string, never>>): this;
|
|
485
|
-
addComponent<S extends ComponentSchema>(entityId: EntityID, def: ComponentDef<S>, values: FieldValues<S>): this;
|
|
486
|
-
removeComponent(entityId: EntityID, def: ComponentDef): this;
|
|
487
|
-
/** Buffer `entityId` to be disabled at the phase flush (idempotent). */
|
|
488
|
-
disable(entityId: EntityID): this;
|
|
489
|
-
/** Buffer `entityId` to be re-enabled at the phase flush (idempotent). */
|
|
490
|
-
enable(entityId: EntityID): this;
|
|
491
|
-
/** Whether `entityId` is currently disabled (immediate read). */
|
|
625
|
+
refRead<D extends ComponentDef<any>>(def: D & DeclaredRead<A, D>, entityId: EntityID): ReadonlyComponentRef<SchemaOf<D>>;
|
|
626
|
+
/** Whether `entityId` is currently disabled (immediate read). Toggling is
|
|
627
|
+
* deferred — `ctx.commands.disable` / `ctx.commands.enable` (#577). */
|
|
492
628
|
isDisabled(entityId: EntityID): boolean;
|
|
493
|
-
|
|
494
|
-
addSparse<
|
|
495
|
-
removeSparse(entityId: EntityID, def:
|
|
629
|
+
/** Tags take no values argument; valued schemas require a complete one. */
|
|
630
|
+
addSparse<D extends SparseComponentDef<any>>(entityId: EntityID, def: D & DeclaredSparseWrite<A, D>, ...values: AttachValuesArg<SparseSchemaOf<D>>): this;
|
|
631
|
+
removeSparse<D extends SparseComponentDef<any>>(entityId: EntityID, def: D & DeclaredSparseWrite<A, D>): this;
|
|
496
632
|
hasSparse(entityId: EntityID, def: SparseComponentDef): boolean;
|
|
497
|
-
getSparseField<
|
|
498
|
-
setSparseField<
|
|
633
|
+
getSparseField<D extends SparseComponentDef<any>>(entityId: EntityID, def: D & DeclaredSparseRead<A, D>, field: string & keyof SparseSchemaOf<D>): number;
|
|
634
|
+
setSparseField<D extends SparseComponentDef<any>>(entityId: EntityID, def: D & DeclaredSparseWrite<A, D>, field: string & keyof SparseSchemaOf<D>, value: number): void;
|
|
499
635
|
/** Add a `(R, tgt)` pair to `src` (exclusive replaces, multi adds). */
|
|
500
|
-
addRelation(src: EntityID, def:
|
|
636
|
+
addRelation<D extends RelationDef>(src: EntityID, def: D & DeclaredRelationWrite<A, D>, tgt: EntityID): this;
|
|
501
637
|
/** Remove a `(R, tgt)` pair from `src`; for multi, omitting `tgt` removes all. */
|
|
502
|
-
removeRelation(src: EntityID, def:
|
|
638
|
+
removeRelation<D extends RelationDef>(src: EntityID, def: D & DeclaredRelationWrite<A, D>, tgt?: EntityID): this;
|
|
503
639
|
/** The single target of `src` under an exclusive relation, or `undefined`. */
|
|
504
|
-
targetOf(src: EntityID, def:
|
|
640
|
+
targetOf<D extends RelationDef<"exclusive">>(src: EntityID, def: D & DeclaredRelationRead<A, D>): EntityID | undefined;
|
|
505
641
|
/** All targets of `src` under `R`, ascending by id. */
|
|
506
|
-
targetsOf(src: EntityID, def:
|
|
507
|
-
/** Sources pointing at `tgt` under `R` (the reverse index), ascending by id.
|
|
508
|
-
|
|
642
|
+
targetsOf<D extends RelationDef>(src: EntityID, def: D & DeclaredRelationRead<A, D>): EntityID[];
|
|
643
|
+
/** Sources pointing at `tgt` under `R` (the reverse index), ascending by id.
|
|
644
|
+
* `(entity, def)` order, matching `targetOf` / `targetsOf`. */
|
|
645
|
+
sourcesOf<D extends RelationDef>(tgt: EntityID, def: D & DeclaredRelationRead<A, D>): EntityID[];
|
|
509
646
|
/** Whether `src` holds any pair under `R`. */
|
|
510
647
|
hasRelation(src: EntityID, def: RelationDef): boolean;
|
|
511
648
|
/** Flush all deferred changes: structural (add/remove) first, then
|
|
@@ -520,16 +657,40 @@ export declare class SystemContext {
|
|
|
520
657
|
* WASM-using system per tick. After #336 the descriptor walk is gated
|
|
521
658
|
* on a dirty flag, so read-only phases skip the walk entirely. */
|
|
522
659
|
flush(): void;
|
|
660
|
+
/**
|
|
661
|
+
* Emit an event (or a payload-less signal) onto its channel. The event is
|
|
662
|
+
* visible to every system that runs *later* in the same `update()` and is
|
|
663
|
+
* cleared at the tick's tail — events live exactly one tick, there is no
|
|
664
|
+
* ack/consume. The channel must have been registered at world setup via
|
|
665
|
+
* `ecs.events.register(key, fields)` / `registerSignal(key)`.
|
|
666
|
+
*
|
|
667
|
+
* @example
|
|
668
|
+
* const Damaged = eventKey<{ target: EntityID; amount: number }>("Damaged");
|
|
669
|
+
* ecs.events.register(Damaged, ["target", "amount"]);
|
|
670
|
+
* // inside a system:
|
|
671
|
+
* ctx.emit(Damaged, { target: e, amount: 10 });
|
|
672
|
+
*/
|
|
523
673
|
emit(key: SignalKey): void;
|
|
524
|
-
emit<S extends
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
674
|
+
emit<S extends EventShape<S>>(key: EventKey<S>, values: NoInfer<S>): void;
|
|
675
|
+
/**
|
|
676
|
+
* Read this tick's events on a channel. Returns an SoA reader over
|
|
677
|
+
* everything emitted *earlier in the same `update()`* — order systems so
|
|
678
|
+
* readers run after emitters, or they see an empty reader.
|
|
679
|
+
*
|
|
680
|
+
* @example
|
|
681
|
+
* const dmg = ctx.read(Damaged); // SoA columns, one per field
|
|
682
|
+
* for (let i = 0; i < dmg.length; i++) {
|
|
683
|
+
* applyDamage(dmg.target[i], dmg.amount[i]);
|
|
684
|
+
* }
|
|
685
|
+
*/
|
|
686
|
+
read<S extends EventShape<S>>(key: EventKey<S>): EventReader<S>;
|
|
687
|
+
resource<K extends ResourceKey<any>>(key: K & DeclaredResourceRead<A, K>): ResourceValueOf<K>;
|
|
688
|
+
setResource<K extends ResourceKey<any>>(key: K & DeclaredResourceWrite<A, K>, value: ResourceValueOf<NoInfer<K>>): void;
|
|
528
689
|
/** Drop a resource mid-tick (#798). A lifecycle mutation, so it is access-
|
|
529
690
|
* checked as a *write* — the system must declare the key in `resourceWrites`,
|
|
530
691
|
* which serialises it against readers/writers of the same resource. Fails
|
|
531
692
|
* closed on a missing key. */
|
|
532
|
-
removeResource<
|
|
693
|
+
removeResource<K extends ResourceKey<any>>(key: K & DeclaredResourceWrite<A, K>): void;
|
|
533
694
|
hasResource<T>(key: ResourceKey<T>): boolean;
|
|
534
695
|
}
|
|
535
696
|
export declare class ChangedQuery<Defs extends readonly ComponentDef[]> {
|
|
@@ -544,7 +705,7 @@ export declare class ChangedQuery<Defs extends readonly ComponentDef[]> {
|
|
|
544
705
|
anyOf(...comps: ComponentDef[]): ChangedQuery<Defs>;
|
|
545
706
|
/** Permit optional-component data access in the loop (mirrors `Query.optional`). */
|
|
546
707
|
optional(...defs: ComponentDef[]): ChangedQuery<Defs>;
|
|
547
|
-
forEach(cb: (arch: ArchetypeView) => void): void;
|
|
708
|
+
forEach(cb: (arch: ArchetypeView<Defs>) => void): void;
|
|
548
709
|
/** @internal — cold `includeDisabled` wrapper (#577), split out of `forEach`
|
|
549
710
|
* (#649) so the all-rows flag dance stays out of the inlined hot body. */
|
|
550
711
|
private _forEachIncludeDisabled;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/query.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/query.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ComponentSchema } from './component.cjs';
|
|
2
|
+
import { ArchetypeColumnLayout } from './archetype.cjs';
|
|
3
|
+
import { AnyTypedArray, ColumnBacking } from '../../type_primitives/index.cjs';
|
|
4
|
+
/** Maps component schema to scalar get/set properties: { x: number, y: number }. */
|
|
5
|
+
export type ComponentRef<S extends ComponentSchema> = {
|
|
6
|
+
-readonly [K in keyof S]: number;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Read-only view of a component reference. This is an **advisory** barrier,
|
|
10
|
+
* not a runtime safety boundary: the `readonly` properties block field writes
|
|
11
|
+
* at the type layer, but `createRef` installs working get/set on the shared
|
|
12
|
+
* prototype for both `ref()` and `refRead()`, so a §10c-policed cast can
|
|
13
|
+
* still write through (and would skip the change-tick bump `ref()` performs).
|
|
14
|
+
* Treat it as "I promise I am only reading," enforced by the escape-hatch lint
|
|
15
|
+
* (`bun run lint:escape-hatches`), not by the runtime.
|
|
16
|
+
*/
|
|
17
|
+
export type ReadonlyComponentRef<S extends ComponentSchema> = {
|
|
18
|
+
readonly [K in keyof S]: number;
|
|
19
|
+
};
|
|
20
|
+
/** Minimal column group shape needed by createRef. */
|
|
21
|
+
export interface RefColumnGroup {
|
|
22
|
+
readonly layout: ArchetypeColumnLayout;
|
|
23
|
+
readonly columns: ColumnBacking<AnyTypedArray>[];
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Create a ComponentRef bound to a specific row in a column group.
|
|
27
|
+
* The prototype is built once per column group and cached; subsequent
|
|
28
|
+
* calls for the same group only allocate the lightweight ref object.
|
|
29
|
+
*/
|
|
30
|
+
export declare function createRef<S extends ComponentSchema>(group: RefColumnGroup, row: number): ComponentRef<S>;
|
|
31
|
+
//# sourceMappingURL=ref.d.ts.map
|
package/dist/core/ecs/ref.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ComponentSchema } from './component';
|
|
2
|
-
import { ArchetypeColumnLayout } from './archetype';
|
|
3
|
-
import { AnyTypedArray, ColumnBacking } from '../../type_primitives';
|
|
1
|
+
import { ComponentSchema } from './component.js';
|
|
2
|
+
import { ArchetypeColumnLayout } from './archetype.js';
|
|
3
|
+
import { AnyTypedArray, ColumnBacking } from '../../type_primitives/index.js';
|
|
4
4
|
/** Maps component schema to scalar get/set properties: { x: number, y: number }. */
|
|
5
5
|
export type ComponentRef<S extends ComponentSchema> = {
|
|
6
6
|
-readonly [K in keyof S]: number;
|