@forgeax/engine-ecs 0.1.21 → 0.1.24
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 +83 -17
- package/dist/__tests__/changed-block-summary.candidate.test.d.ts +2 -0
- package/dist/__tests__/changed-block-summary.candidate.test.d.ts.map +1 -0
- package/dist/__tests__/component-requirements.unit.test.d.ts +2 -0
- package/dist/__tests__/component-requirements.unit.test.d.ts.map +1 -0
- package/dist/__tests__/component-version-surface.test.d.ts +2 -0
- package/dist/__tests__/component-version-surface.test.d.ts.map +1 -0
- package/dist/__tests__/derived-range-writer.contract.test-d.d.ts +2 -0
- package/dist/__tests__/derived-range-writer.contract.test-d.d.ts.map +1 -0
- package/dist/__tests__/derived-range-writer.contract.test.d.ts +2 -0
- package/dist/__tests__/derived-range-writer.contract.test.d.ts.map +1 -0
- package/dist/__tests__/structural-evidence.contract.test-d.d.ts +2 -0
- package/dist/__tests__/structural-evidence.contract.test-d.d.ts.map +1 -0
- package/dist/__tests__/structural-evidence.contract.test.d.ts +2 -0
- package/dist/__tests__/structural-evidence.contract.test.d.ts.map +1 -0
- package/dist/component-schema.d.ts +17 -0
- package/dist/component-schema.d.ts.map +1 -1
- package/dist/component.d.ts +16 -7
- package/dist/component.d.ts.map +1 -1
- package/dist/errors/query-and-component-errors.d.ts +1 -1
- package/dist/errors/query-and-component-errors.d.ts.map +1 -1
- package/dist/errors/validation-errors.d.ts +24 -0
- package/dist/errors/validation-errors.d.ts.map +1 -1
- package/dist/errors.d.ts +14 -2
- package/dist/errors.d.ts.map +1 -1
- package/dist/externalization/index.mjs.map +1 -1
- package/dist/index.mjs +977 -255
- package/dist/index.mjs.map +1 -1
- package/dist/internal.d.ts +18 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.mjs +20 -2
- package/dist/internal.mjs.map +1 -1
- package/dist/projection/index.d.ts +27 -52
- package/dist/projection/index.d.ts.map +1 -1
- package/dist/projection/index.mjs +66 -76
- package/dist/projection/index.mjs.map +1 -1
- package/dist/query/derived-range-writer.d.ts +62 -0
- package/dist/query/derived-range-writer.d.ts.map +1 -0
- package/dist/query/query.d.ts +1 -1
- package/dist/query/query.d.ts.map +1 -1
- package/dist/relationship-index.d.ts +8 -0
- package/dist/relationship-index.d.ts.map +1 -1
- package/dist/shared-ref-store.d.ts +5 -9
- package/dist/shared-ref-store.d.ts.map +1 -1
- package/dist/shared.mjs.map +1 -1
- package/dist/storage/change-detection.d.ts +1 -3
- package/dist/storage/change-detection.d.ts.map +1 -1
- package/dist/storage/structural-evidence.d.ts +30 -0
- package/dist/storage/structural-evidence.d.ts.map +1 -0
- package/dist/world-component-access.d.ts +65 -19
- package/dist/world-component-access.d.ts.map +1 -1
- package/dist/world-component-storage.d.ts +26 -10
- package/dist/world-component-storage.d.ts.map +1 -1
- package/dist/world-core.d.ts +2 -2
- package/dist/world-core.d.ts.map +1 -1
- package/dist/world-entity-lifecycle.d.ts.map +1 -1
- package/dist/world-internal.d.ts +1 -1
- package/dist/world-internal.d.ts.map +1 -1
- package/dist/world.d.ts +15 -14
- package/dist/world.d.ts.map +1 -1
- package/package.json +5 -5
- package/src/__tests__/changed-block-summary.candidate.test.ts +57 -0
- package/src/__tests__/component-requirements.unit.test.ts +76 -0
- package/src/__tests__/component-version-surface.test.ts +45 -0
- package/src/__tests__/derived-range-writer.contract.test-d.ts +35 -0
- package/src/__tests__/derived-range-writer.contract.test.ts +339 -0
- package/src/__tests__/errors.unit.test.ts +21 -5
- package/src/__tests__/externalization-render-read-lease.test-d.ts +1 -1
- package/src/__tests__/externalization-render-read-lease.unit.test.ts +15 -15
- package/src/__tests__/query-storage-trends.perf.test.ts +19 -0
- package/src/__tests__/query.unit.test.ts +10 -6
- package/src/__tests__/relationship-index.test.ts +147 -1
- package/src/__tests__/shared-ref-store.unit.test.ts +3 -8
- package/src/__tests__/structural-evidence.contract.test-d.ts +6 -0
- package/src/__tests__/structural-evidence.contract.test.ts +49 -0
- package/src/component-schema.ts +51 -0
- package/src/component.ts +21 -8
- package/src/errors/query-and-component-errors.ts +4 -1
- package/src/errors/validation-errors.ts +30 -0
- package/src/errors.ts +29 -5
- package/src/internal.ts +59 -0
- package/src/projection/index.ts +68 -149
- package/src/query/derived-range-writer.ts +443 -0
- package/src/query/query.ts +115 -16
- package/src/relationship-index.ts +13 -1
- package/src/shared-ref-store.ts +16 -24
- package/src/storage/change-detection.ts +0 -15
- package/src/storage/structural-evidence.ts +64 -0
- package/src/world-component-access.ts +479 -130
- package/src/world-component-storage.ts +104 -18
- package/src/world-core.ts +2 -2
- package/src/world-entity-lifecycle.ts +59 -10
- package/src/world-internal.ts +10 -5
- package/src/world.ts +97 -53
- package/dist/.tsbuildinfo +0 -1
- package/dist/__tests__/world-change-journal.unit.test.d.ts +0 -2
- package/dist/__tests__/world-change-journal.unit.test.d.ts.map +0 -1
- package/dist/__tests__/world-internal-identity.unit.test.d.ts +0 -2
- package/dist/__tests__/world-internal-identity.unit.test.d.ts.map +0 -1
- package/dist/world-change-journal.d.ts +0 -34
- package/dist/world-change-journal.d.ts.map +0 -1
- package/src/__tests__/world-change-journal.unit.test.ts +0 -97
- package/src/__tests__/world-internal-identity.unit.test.ts +0 -17
- package/src/world-change-journal.ts +0 -84
|
@@ -7,11 +7,27 @@ import type { SharedRefStore } from './shared-ref-store';
|
|
|
7
7
|
import { type Archetype } from './storage/archetype';
|
|
8
8
|
import { type ArchetypeGraph } from './storage/archetype-graph';
|
|
9
9
|
import { type FieldView } from './storage/column';
|
|
10
|
+
import type { StructuralEvidenceInput } from './storage/structural-evidence';
|
|
10
11
|
import type { UniqueRefStore } from './unique-ref-store';
|
|
11
12
|
import type { ComponentData, EcsError, EntityRecord } from './world';
|
|
12
13
|
type ErrorContext = {
|
|
13
14
|
readonly systemName: string;
|
|
14
15
|
};
|
|
16
|
+
/**
|
|
17
|
+
* Prepared target-side work for one relationship source write.
|
|
18
|
+
*
|
|
19
|
+
* A reservation is deliberately kept outside the World columns until the
|
|
20
|
+
* source operation is ready to commit. That lets direct, spawn, and deferred
|
|
21
|
+
* source writes observe BufferPool failures before adding a mirror component
|
|
22
|
+
* or advancing any ECS epoch.
|
|
23
|
+
*/
|
|
24
|
+
interface RelationshipPreparation {
|
|
25
|
+
readonly target: EntityHandle;
|
|
26
|
+
readonly mirror: Component;
|
|
27
|
+
readonly fieldName: string;
|
|
28
|
+
readonly mirrorPresent: boolean;
|
|
29
|
+
reservedSlotId: number | undefined;
|
|
30
|
+
}
|
|
15
31
|
export interface ComponentAccessState {
|
|
16
32
|
readonly graph: ArchetypeGraph;
|
|
17
33
|
readonly records: EntityRecord[];
|
|
@@ -23,8 +39,8 @@ export interface ComponentAccessState {
|
|
|
23
39
|
readonly markComponentAdded: (entity: EntityHandle, componentId: number) => void;
|
|
24
40
|
readonly markComponentsAdded: (entity: EntityHandle, componentIds: readonly number[]) => void;
|
|
25
41
|
readonly markComponentChanged: (entity: EntityHandle, componentId: number) => void;
|
|
26
|
-
readonly removeComponentChange: (entity: EntityHandle, componentId: number) => void;
|
|
27
42
|
readonly markStructureChanged: () => void;
|
|
43
|
+
readonly recordStructuralEvidence: (evidence: StructuralEvidenceInput) => void;
|
|
28
44
|
routeError(err: unknown, ctx: ErrorContext): void;
|
|
29
45
|
}
|
|
30
46
|
export declare class WorldComponentAccess {
|
|
@@ -40,7 +56,12 @@ export declare class WorldComponentAccess {
|
|
|
40
56
|
private get uniqueRefs();
|
|
41
57
|
private routeError;
|
|
42
58
|
private relationshipIndex;
|
|
43
|
-
/**
|
|
59
|
+
/**
|
|
60
|
+
* Read the World-owned materialized target array without a public snapshot.
|
|
61
|
+
* This is an internal relationship-owner path: it borrows the live
|
|
62
|
+
* `Uint32Array` so attach/detach stays zero-copy. Public `World.get` detaches
|
|
63
|
+
* target arrays before returning them to callers.
|
|
64
|
+
*/
|
|
44
65
|
relationshipTargetEntries(source: Component, target: EntityHandle): readonly EntityHandle[];
|
|
45
66
|
private markComponentAdded;
|
|
46
67
|
private markComponentChanged;
|
|
@@ -56,24 +77,36 @@ export declare class WorldComponentAccess {
|
|
|
56
77
|
*/
|
|
57
78
|
preflightComponentData(holder: EntityHandle | null, componentData: ComponentData, pendingEntities?: ReadonlySet<number>, unavailableEntities?: ReadonlySet<number>): Result<void, EcsError>;
|
|
58
79
|
private relationshipCycleHit;
|
|
59
|
-
/**
|
|
60
|
-
|
|
80
|
+
/**
|
|
81
|
+
* Reserve target-side relationship capacity without touching World columns.
|
|
82
|
+
*
|
|
83
|
+
* A missing mirror reserves its first slot before the mirror archetype is
|
|
84
|
+
* created. An existing mirror either reserves an empty slot or grows its
|
|
85
|
+
* existing BufferPool slot; both failure paths return before any component,
|
|
86
|
+
* relationship index, or ECS epoch changes.
|
|
87
|
+
*/
|
|
88
|
+
prepareRelationshipInsert(component: Component, value: Record<string, unknown>): Result<RelationshipPreparation | undefined, EcsError>;
|
|
89
|
+
/** Release a target-capacity reservation that did not reach commit. */
|
|
90
|
+
releaseRelationshipPreparation(preparation: RelationshipPreparation | undefined): void;
|
|
91
|
+
/** Install a reserved slot after the target mirror archetype exists. */
|
|
92
|
+
private installRelationshipPreparation;
|
|
61
93
|
/** Append `holder` to the materialized target list. */
|
|
62
|
-
relationshipOnInsert(holder: EntityHandle, component: Component, value: Record<string, unknown
|
|
94
|
+
relationshipOnInsert(holder: EntityHandle, component: Component, value: Record<string, unknown>, preparation?: RelationshipPreparation): Result<void, EcsError>;
|
|
63
95
|
/** Remove `holder` from the materialized target list. */
|
|
64
96
|
relationshipOnRemove(holder: EntityHandle, component: Component, oldValue: Record<string, unknown>): Result<void, EcsError>;
|
|
65
97
|
/**
|
|
66
98
|
* Read component data from an entity.
|
|
67
99
|
*
|
|
68
|
-
* **
|
|
69
|
-
* `
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
* `
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
* `
|
|
100
|
+
* **Public array contract:** relationship target `array<entity>` fields are
|
|
101
|
+
* detached `Uint32Array` copies. Mutating that returned array cannot alter
|
|
102
|
+
* the materialized target, relationship index, or source. Other array
|
|
103
|
+
* fields retain the existing transient view contract: fixed-capacity
|
|
104
|
+
* `array<T,N>` and `buffer<N>` fields alias the archetype column buffer
|
|
105
|
+
* directly, while variable managed arrays alias their BufferPool slot. Those
|
|
106
|
+
* views are valid only until the next structural change (`spawn` /
|
|
107
|
+
* `despawn` / `addComponent` / `removeComponent`); callers must re-fetch
|
|
108
|
+
* `world.get(e, C)` on every access. Internal owners use `readRow` and
|
|
109
|
+
* `_getArrayView` directly and retain zero-copy access.
|
|
77
110
|
*
|
|
78
111
|
* @returns `Result<ShapeOf<S>, EcsError>` —
|
|
79
112
|
* `ok(ShapeOf<S>)` on success;
|
|
@@ -127,11 +160,25 @@ export declare class WorldComponentAccess {
|
|
|
127
160
|
* Returns `undefined` when the entity is dead, the component is absent, the
|
|
128
161
|
* field does not exist, or the field is not an `array<...>` column.
|
|
129
162
|
*
|
|
130
|
-
* @internal Engine-internal fast path; AI users read
|
|
131
|
-
* `world.get
|
|
132
|
-
*
|
|
163
|
+
* @internal Engine-internal fast path; AI users read public component values
|
|
164
|
+
* through `world.get`. This accessor is the zero-materialization route the
|
|
165
|
+
* propagate kernel, relationship owner, and render walk use; it bypasses
|
|
166
|
+
* the detached public relationship-target snapshot.
|
|
133
167
|
*/
|
|
134
168
|
_getArrayView(entity: EntityHandle, component: Component, fieldName: string): FieldView | undefined;
|
|
169
|
+
/** Internal zero-materialisation read for ECS-owned relationship lists. */
|
|
170
|
+
_getArrayLength(entity: EntityHandle, component: Component, fieldName: string): number | undefined;
|
|
171
|
+
/** Internal zero-materialisation read for one ECS-owned array element. */
|
|
172
|
+
_getArrayElement(entity: EntityHandle, component: Component, fieldName: string, index: number): number | undefined;
|
|
173
|
+
/** Internal scalar-column read used by parent-first hierarchy traversal. */
|
|
174
|
+
_getFieldValue(entity: EntityHandle, component: Component, fieldName: string): number | undefined;
|
|
175
|
+
/**
|
|
176
|
+
* Converge one writable relationship source mutation through the source
|
|
177
|
+
* owner. The source scalar and its materialized target list are committed as
|
|
178
|
+
* one operation; no caller receives a raw source column view that could
|
|
179
|
+
* bypass the mirror/index maintenance.
|
|
180
|
+
*/
|
|
181
|
+
private setRelationshipSource;
|
|
135
182
|
/**
|
|
136
183
|
* Write (partial) component data to an entity.
|
|
137
184
|
*
|
|
@@ -163,7 +210,6 @@ export declare class WorldComponentAccess {
|
|
|
163
210
|
* The helper is called only by relationship synchronization.
|
|
164
211
|
*/
|
|
165
212
|
private appendArrayElement;
|
|
166
|
-
private ensureArrayCapacity;
|
|
167
213
|
/**
|
|
168
214
|
* Remove one variable-array element at a known slot. Relationship holders
|
|
169
215
|
* supply the slot from their backpointer, so this is O(1) and never scans
|
|
@@ -198,7 +244,7 @@ export declare class WorldComponentAccess {
|
|
|
198
244
|
* (lazy mirror create or exclusive reparent).
|
|
199
245
|
* @internal
|
|
200
246
|
*/
|
|
201
|
-
_addComponentCore<S extends ComponentSchema>(entity: EntityHandle, componentData: ComponentData<S>, internal: boolean): Result<void, EcsError>;
|
|
247
|
+
_addComponentCore<S extends ComponentSchema>(entity: EntityHandle, componentData: ComponentData<S>, internal: boolean, resolveRequirements?: boolean, skipVariableArrayInitialization?: boolean): Result<void, EcsError>;
|
|
202
248
|
/**
|
|
203
249
|
* Remove a component from an existing entity, triggering archetype migration.
|
|
204
250
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"world-component-access.d.ts","sourceRoot":"","sources":["../src/world-component-access.ts"],"names":[],"mappings":"AAMA,OAAO,EAA0B,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAC1F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,eAAe,EAGpB,KAAK,YAAY,EAMjB,KAAK,OAAO,EAEb,MAAM,aAAa,CAAC;AAKrB,OAAO,EAGL,KAAK,YAAY,EAIlB,MAAM,iBAAiB,CAAC;AAczB,OAAO,EAEL,iBAAiB,EAGlB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,KAAK,SAAS,EAAsB,MAAM,qBAAqB,CAAC;AACzE,OAAO,EACL,KAAK,cAAc,EAKpB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAwB,KAAK,SAAS,EAAwB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"world-component-access.d.ts","sourceRoot":"","sources":["../src/world-component-access.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,6 +29,21 @@ export declare class ComponentStorage {
|
|
|
29
29
|
private get sharedRefs();
|
|
30
30
|
private routeError;
|
|
31
31
|
readArrayView(arch: Archetype, component: Component, row: number, fieldName: string): FieldView | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* Read the live length of an array field without materialising a typed view.
|
|
34
|
+
* Relationship consumers use this narrow storage seam for hot reverse-list
|
|
35
|
+
* walks; the target array remains owned by the ECS column and no snapshot is
|
|
36
|
+
* created per entity.
|
|
37
|
+
*/
|
|
38
|
+
readArrayLength(arch: Archetype, component: Component, row: number, fieldName: string): number | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* Read one array element directly from its backing column/BufferPool slot.
|
|
41
|
+
* The relationship target vocabulary is `array<entity>`, so its hot path
|
|
42
|
+
* decodes the packed u32 in-place and does not allocate a TypedArray view.
|
|
43
|
+
*/
|
|
44
|
+
readArrayElement(arch: Archetype, component: Component, row: number, fieldName: string, index: number): number | undefined;
|
|
45
|
+
/** Read one scalar field without constructing a component shape. */
|
|
46
|
+
readFieldValue(arch: Archetype, component: Component, row: number, fieldName: string): number | undefined;
|
|
32
47
|
readRow<S extends ComponentSchema>(arch: Archetype, component: Component<string, S>, row: number): ShapeOf<S>;
|
|
33
48
|
/**
|
|
34
49
|
* Write the full packed entity handle into the row's essential id=0 `Entity`
|
|
@@ -38,7 +53,9 @@ export declare class ComponentStorage {
|
|
|
38
53
|
* archetype -- so this is a direct u32 store, no readRow/writeRow walk.
|
|
39
54
|
*/
|
|
40
55
|
writeEntitySelf(arch: Archetype, row: number, handle: EntityHandle): void;
|
|
41
|
-
writeRow<S extends ComponentSchema>(arch: Archetype, component: Component<string, S>, row: number, value: ShapeOf<S
|
|
56
|
+
writeRow<S extends ComponentSchema>(arch: Archetype, component: Component<string, S>, row: number, value: ShapeOf<S>, options?: {
|
|
57
|
+
readonly skipVariableArrayInitialization?: boolean;
|
|
58
|
+
}): void;
|
|
42
59
|
/**
|
|
43
60
|
* Release every managed-resource field on `component` for the row at
|
|
44
61
|
* `row` in `arch`. Walks the schema once and delegates each field to
|
|
@@ -205,20 +222,19 @@ export declare class ComponentStorage {
|
|
|
205
222
|
writeArrayElementAt(bytes: Uint8Array, idx: number, elementType: ManagedArrayElementType, value: number): void;
|
|
206
223
|
readArrayElementAt(bytes: Uint8Array, idx: number, elementType: ManagedArrayElementType): number;
|
|
207
224
|
/**
|
|
208
|
-
* Materialise a fresh `TypedArray`
|
|
209
|
-
*
|
|
210
|
-
*
|
|
211
|
-
*
|
|
225
|
+
* Materialise a fresh `TypedArray` view for an `array<T,N>` / `array<T>`
|
|
226
|
+
* field at `row`. This is the internal row-storage path: the returned view
|
|
227
|
+
* aliases the live column or BufferPool slot. `WorldComponentAccess.get`
|
|
228
|
+
* detaches relationship target arrays at the public boundary; internal ECS
|
|
229
|
+
* relationship maintenance and Scene traversal keep this zero-copy path.
|
|
212
230
|
*
|
|
213
231
|
* **Transient view contract (feat-20260602):** for fixed `array<T,N>`
|
|
214
232
|
* columns the returned `TypedArray` aliases the inline column buffer
|
|
215
233
|
* directly (`col.view.subarray(row * arity, ...)`); for variable
|
|
216
234
|
* `array<T>` columns it aliases the live `BufferPool` slot bytes
|
|
217
|
-
* (zero-copy; `pool.view(slotId)` is the SSOT byte region). In both
|
|
218
|
-
*
|
|
219
|
-
*
|
|
220
|
-
* and the implementation may switch to a copy in the future without
|
|
221
|
-
* breaking AI users who consume only `length` / index reads.
|
|
235
|
+
* (zero-copy; `pool.view(slotId)` is the SSOT byte region). In both cases
|
|
236
|
+
* the view is valid only until the next structural change. Internal callers
|
|
237
|
+
* must not write through it except via the owner mutation helpers.
|
|
222
238
|
*
|
|
223
239
|
* For variable arrays the typed-array length matches the live count from
|
|
224
240
|
* the sidecar `<fieldName>:count` column; for fixed arrays it matches the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"world-component-storage.d.ts","sourceRoot":"","sources":["../src/world-component-storage.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EACL,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,eAAe,EAQpB,KAAK,uBAAuB,EAC5B,KAAK,OAAO,EAEb,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAmB,KAAK,YAAY,EAAiC,MAAM,iBAAiB,CAAC;AACpG,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAE1D,KAAK,YAAY,GAAG;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,KAAK,SAAS,EAA0C,MAAM,qBAAqB,CAAC;AAC7F,OAAO,EAAE,KAAK,cAAc,EAAY,MAAM,2BAA2B,CAAC;AAE1E,OAAO,EAAwB,KAAK,SAAS,EAAwB,MAAM,kBAAkB,CAAC;AAE9F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IACpC,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,GAAG,IAAI,CAAC;CACnD;AAED,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,qBAAqB;IAEzD,OAAO,KAAK,OAAO,GAElB;IAED,OAAO,CAAC,KAAK;IAIb,OAAO,KAAK,UAAU,GAErB;IAED,OAAO,KAAK,UAAU,GAErB;IAED,OAAO,KAAK,UAAU,GAErB;IAED,OAAO,CAAC,UAAU;IAIlB,aAAa,CACX,IAAI,EAAE,SAAS,EACf,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,GAChB,SAAS,GAAG,SAAS;
|
|
1
|
+
{"version":3,"file":"world-component-storage.d.ts","sourceRoot":"","sources":["../src/world-component-storage.ts"],"names":[],"mappings":"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"}
|
package/dist/world-core.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { BufferPool } from './buffer-pool';
|
|
|
2
2
|
import type { RelationshipIndex } from './relationship-index';
|
|
3
3
|
import type { SharedRefStore } from './shared-ref-store';
|
|
4
4
|
import { type ArchetypeGraph } from './storage/archetype-graph';
|
|
5
|
-
import {
|
|
5
|
+
import { StructuralEvidenceRing } from './storage/structural-evidence';
|
|
6
6
|
import type { UniqueRefStore } from './unique-ref-store';
|
|
7
7
|
import type { EntityRecord } from './world';
|
|
8
8
|
interface WorldStorageCore {
|
|
@@ -24,7 +24,7 @@ export declare class WorldCore {
|
|
|
24
24
|
readonly sharedRefs: SharedRefStore;
|
|
25
25
|
readonly storage: WorldStorageCore;
|
|
26
26
|
readonly componentMutationEpochs: number[];
|
|
27
|
-
readonly
|
|
27
|
+
readonly structuralEvidence: StructuralEvidenceRing;
|
|
28
28
|
/** One packed reverse index per relationship source component. */
|
|
29
29
|
readonly relationshipIndexes: Map<number, RelationshipIndex>;
|
|
30
30
|
mutationEpoch: number;
|
package/dist/world-core.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"world-core.d.ts","sourceRoot":"","sources":["../src/world-core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAAE,KAAK,cAAc,EAAwB,MAAM,2BAA2B,CAAC;AACtF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"world-core.d.ts","sourceRoot":"","sources":["../src/world-core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAAE,KAAK,cAAc,EAAwB,MAAM,2BAA2B,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,UAAU,gBAAgB;IACxB,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;CACrC;AAgBD;;;;GAIG;AACH,qBAAa,SAAS;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAyB;IAClD,QAAQ,CAAC,UAAU,EAAE,cAAc,CAA4B;IAC/D,QAAQ,CAAC,UAAU,EAAE,cAAc,CAA4B;IAC/D,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,EAAE,CAAM;IAChD,QAAQ,CAAC,kBAAkB,yBAAgC;IAC3D,kEAAkE;IAClE,QAAQ,CAAC,mBAAmB,iCAAwC;IACpE,aAAa,SAAK;IAClB,cAAc,SAAK;gBAEP,aAAa,EAAE,OAAO;IAOlC,IAAI,KAAK,mBAER;IAED,IAAI,OAAO,mBAEV;IAED,IAAI,WAAW,aAEd;IAED,IAAI,UAAU,eAEb;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"world-entity-lifecycle.d.ts","sourceRoot":"","sources":["../src/world-entity-lifecycle.ts"],"names":[],"mappings":"AAMA,OAAO,EAAgC,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,YAAY,EAAW,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"world-entity-lifecycle.d.ts","sourceRoot":"","sources":["../src/world-entity-lifecycle.ts"],"names":[],"mappings":"AAMA,OAAO,EAAgC,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,YAAY,EAAW,MAAM,aAAa,CAAC;AAMrF,OAAO,EAEL,KAAK,YAAY,EAIlB,MAAM,iBAAiB,CAAC;AAczB,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAQ/C;;;;GAIG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,KAAK,EACZ,cAAc,EAAE;IAAE,SAAS,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAAE,EAAE,EAClF,QAAQ,EAAE,OAAO,GAChB,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,CAiGhC;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,OAAO,GAChB,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAkExB;AAED,qFAAqF;AACrF,wBAAgB,aAAa,CAAC,CAAC,SAAS,eAAe,EACrD,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,EAC/B,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAC7B,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CA+CxB;AAED,iFAAiF;AACjF,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,eAAe,EACxD,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,GAC9B,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CA6CxB;AAED,qFAAqF;AACrF,wBAAgB,aAAa,CAAC,CAAC,SAAS,eAAe,EACrD,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,YAAY,EACvB,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,EAC/B,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAC7B,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAuDxB;AAED,wFAAwF;AACxF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC,CAkD7F;AAED,yEAAyE;AACzE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC,CAuC/F"}
|
package/dist/world-internal.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* retaining direct bound calls for the hot query and structural paths.
|
|
7
7
|
*/
|
|
8
8
|
export declare const worldInternal: unique symbol;
|
|
9
|
-
type InternalName = 'addComponentCore' | 'allocateIndex' | 'allocatePendingEntity' | 'cancelPendingEntity' | 'despawnCore' | 'getArrayView' | '
|
|
9
|
+
type InternalName = 'addComponentCore' | 'allocateIndex' | 'allocatePendingEntity' | 'cancelPendingEntity' | 'despawnCore' | 'getArrayView' | 'getArrayLength' | 'getArrayElement' | 'getFieldValue' | 'getBufferPool' | 'getClockWriter' | 'getComponentChange' | 'getComponentMutationEpoch' | 'getComponentMutationEpochs' | 'getEntityArchetype' | 'getFixedAccumulator' | 'getFreeIndices' | 'getGraph' | 'getMutationEpoch' | 'getQueryRow' | 'getRecords' | 'getRelationshipEpoch' | 'getRelationshipTargetEntities' | 'getResources' | 'getSchedule' | 'getSchedules' | 'getSharedRefs' | 'getStructureEpoch' | 'getStructuralEvidence' | 'getUniqueRefs' | 'lookupAlive' | 'markComponentAdded' | 'markComponentChanged' | 'markComponentRangeChanged' | 'markComponentsAdded' | 'markStructureChanged' | 'materializePendingEntity' | 'nextMutationEpoch' | 'poisonExecution' | 'publishDerivedRange' | 'prepareRelationshipInsert' | 'preflightComponentData' | 'readRow' | 'recordStructuralEvidence' | 'recordIsLive' | 'relationshipOnInsert' | 'relationshipOnRemove' | 'releaseManagedRefsOnRow' | 'releaseRelationshipPreparation' | 'removeComponentCore' | 'routeError' | 'restoreMutationEpoch' | 'setFixedAccumulator' | 'setQueryRow' | 'spawnCore' | 'writeEntitySelf' | 'writeRow';
|
|
10
10
|
export type WorldInternal = {
|
|
11
11
|
readonly [K in InternalName]: (...args: any[]) => any;
|
|
12
12
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"world-internal.d.ts","sourceRoot":"","sources":["../src/world-internal.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,eAAO,MAAM,aAAa,EAAE,OAAO,MAEC,CAAC;AAErC,KAAK,YAAY,GACb,kBAAkB,GAClB,eAAe,GACf,uBAAuB,GACvB,qBAAqB,GACrB,aAAa,GACb,cAAc,GACd,
|
|
1
|
+
{"version":3,"file":"world-internal.d.ts","sourceRoot":"","sources":["../src/world-internal.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,eAAO,MAAM,aAAa,EAAE,OAAO,MAEC,CAAC;AAErC,KAAK,YAAY,GACb,kBAAkB,GAClB,eAAe,GACf,uBAAuB,GACvB,qBAAqB,GACrB,aAAa,GACb,cAAc,GACd,gBAAgB,GAChB,iBAAiB,GACjB,eAAe,GACf,eAAe,GACf,gBAAgB,GAChB,oBAAoB,GACpB,2BAA2B,GAC3B,4BAA4B,GAC5B,oBAAoB,GACpB,qBAAqB,GACrB,gBAAgB,GAChB,UAAU,GACV,kBAAkB,GAClB,aAAa,GACb,YAAY,GACZ,sBAAsB,GACtB,+BAA+B,GAC/B,cAAc,GACd,aAAa,GACb,cAAc,GACd,eAAe,GACf,mBAAmB,GACnB,uBAAuB,GACvB,eAAe,GACf,aAAa,GACb,oBAAoB,GACpB,sBAAsB,GACtB,2BAA2B,GAC3B,qBAAqB,GACrB,sBAAsB,GACtB,0BAA0B,GAC1B,mBAAmB,GACnB,iBAAiB,GACjB,qBAAqB,GACrB,2BAA2B,GAC3B,wBAAwB,GACxB,SAAS,GACT,0BAA0B,GAC1B,cAAc,GACd,sBAAsB,GACtB,sBAAsB,GACtB,yBAAyB,GACzB,gCAAgC,GAChC,qBAAqB,GACrB,YAAY,GACZ,sBAAsB,GACtB,qBAAqB,GACrB,aAAa,GACb,WAAW,GACX,iBAAiB,GACjB,UAAU,CAAC;AAEf,MAAM,MAAM,aAAa,GAAG;IAE1B,QAAQ,EAAE,CAAC,IAAI,YAAY,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG;CACtD,CAAC"}
|
package/dist/world.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { Handle, Result } from '@forgeax/engine-types';
|
|
2
2
|
import { type Component, ComponentCatalog, type ComponentSchema, type InputShapeOf, type ShapeOf } from './component';
|
|
3
3
|
import { type EntityHandle } from './entity-handle';
|
|
4
|
-
import type { CommandFailedError, ComponentAlreadyPresentError, ComponentFieldInvalidValueError, ComponentNotDefinedError, ComponentNotPresentError, ComponentNumericValueInvalidError, FixedSizeMismatchError, ManagedArrayInvalidValueError, ManagedBufferOutOfBoundsError, ManagedBufferShrinkNotSupportedError, RelationshipDetachMismatchError, RelationshipMirrorComponentNotRegisteredError, RelationshipMirrorFieldTypeMismatchError, RelationshipSelfCycleError, RemoveEssentialComponentError, ScheduleMutationError, ScheduleScopeMismatchError, SharedKernelEligibilityError, SharedKernelFailureError, StaleEntityError, SystemFailedError, SystemSetNotRegisteredError, TimeConfigInvalidError, TimeDeltaInvalidError, UniqueRefDoubleReleaseError, UniqueRefReleasedError, WorldPoisonedError } from './errors';
|
|
5
|
-
import { RelationshipTargetReadonlyError } from './errors';
|
|
4
|
+
import type { CommandFailedError, ComponentAlreadyPresentError, ComponentFieldInvalidValueError, ComponentNotDefinedError, ComponentNotPresentError, ComponentNumericValueInvalidError, DerivedRangeOutOfBoundsError, FixedSizeMismatchError, ManagedArrayInvalidValueError, ManagedBufferOutOfBoundsError, ManagedBufferShrinkNotSupportedError, RelationshipDetachMismatchError, RelationshipMirrorComponentNotRegisteredError, RelationshipMirrorFieldTypeMismatchError, RelationshipSelfCycleError, RemoveEssentialComponentError, ScheduleMutationError, ScheduleScopeMismatchError, SharedKernelEligibilityError, SharedKernelFailureError, StaleEntityError, SystemFailedError, SystemSetNotRegisteredError, TimeConfigInvalidError, TimeDeltaInvalidError, UniqueRefDoubleReleaseError, UniqueRefReleasedError, WorldPoisonedError } from './errors';
|
|
5
|
+
import { ChangeEpochExhaustedError, RelationshipTargetReadonlyError } from './errors';
|
|
6
6
|
import { type WorldExecutionState } from './execution/shared-kernel';
|
|
7
7
|
import type { QueryDescriptor } from './query/query';
|
|
8
8
|
import { type Query, type QueryCreationError } from './query/query';
|
|
@@ -16,7 +16,7 @@ import { type WorldInternal, worldInternal } from './world-internal';
|
|
|
16
16
|
* Union of all EcsError types that World methods can return via Result.
|
|
17
17
|
* AI users: switch on `.code` for programmatic branching.
|
|
18
18
|
*/
|
|
19
|
-
export type EcsError = CommandFailedError | StaleEntityError | ComponentNotPresentError | ComponentAlreadyPresentError | ComponentFieldInvalidValueError | ComponentNumericValueInvalidError | ManagedArrayInvalidValueError | UniqueRefReleasedError | UniqueRefDoubleReleaseError | ManagedBufferOutOfBoundsError | ManagedBufferShrinkNotSupportedError | FixedSizeMismatchError | RelationshipSelfCycleError | RelationshipMirrorComponentNotRegisteredError | RelationshipMirrorFieldTypeMismatchError | RelationshipDetachMismatchError | RelationshipTargetReadonlyError | ComponentNotDefinedError | RemoveEssentialComponentError | SystemSetNotRegisteredError | SystemFailedError | TimeDeltaInvalidError | TimeConfigInvalidError | ScheduleScopeMismatchError | SharedKernelEligibilityError | SharedKernelFailureError | WorldPoisonedError;
|
|
19
|
+
export type EcsError = CommandFailedError | StaleEntityError | ComponentNotPresentError | ComponentAlreadyPresentError | ComponentFieldInvalidValueError | ComponentNumericValueInvalidError | ManagedArrayInvalidValueError | UniqueRefReleasedError | UniqueRefDoubleReleaseError | ManagedBufferOutOfBoundsError | ManagedBufferShrinkNotSupportedError | FixedSizeMismatchError | RelationshipSelfCycleError | RelationshipMirrorComponentNotRegisteredError | RelationshipMirrorFieldTypeMismatchError | RelationshipDetachMismatchError | RelationshipTargetReadonlyError | ComponentNotDefinedError | RemoveEssentialComponentError | SystemSetNotRegisteredError | SystemFailedError | TimeDeltaInvalidError | TimeConfigInvalidError | ScheduleScopeMismatchError | SharedKernelEligibilityError | SharedKernelFailureError | DerivedRangeOutOfBoundsError | ChangeEpochExhaustedError | WorldPoisonedError;
|
|
20
20
|
/** Component data for spawn/addComponent: component token + initial values.
|
|
21
21
|
*
|
|
22
22
|
* `data` is `Partial<InputShapeOf<S>>` (feat-20260517 / M2; tweak-20260616
|
|
@@ -177,7 +177,6 @@ export declare class World {
|
|
|
177
177
|
private get structureEpoch();
|
|
178
178
|
private set structureEpoch(value);
|
|
179
179
|
private get componentMutationEpochs();
|
|
180
|
-
private get changeJournal();
|
|
181
180
|
/** Free index slots (LIFO stack). */
|
|
182
181
|
private get records();
|
|
183
182
|
private get freeIndices();
|
|
@@ -237,18 +236,19 @@ export declare class World {
|
|
|
237
236
|
private componentIsInUse;
|
|
238
237
|
/** Current upper bound for mutation observation. */
|
|
239
238
|
private internalgetMutationEpoch;
|
|
240
|
-
/** Current cursor for a persistent projection subscriber. */
|
|
241
|
-
private internalgetChangeCursor;
|
|
242
|
-
/** Read complete mutation evidence or an explicit rebuild signal. */
|
|
243
|
-
private internalreadChangesSince;
|
|
244
239
|
/** Structure snapshot used to invalidate borrowed query facades. */
|
|
245
240
|
private internalgetStructureEpoch;
|
|
241
|
+
/** Typed structural facts are produced by this World and consumed by projections. */
|
|
242
|
+
private internalgetStructuralEvidence;
|
|
243
|
+
private internalrecordStructuralEvidence;
|
|
246
244
|
/** Resolve current logical identity for a packed entity handle. */
|
|
247
245
|
private internalgetEntityArchetype;
|
|
248
246
|
/** Component change state for query filters. */
|
|
249
247
|
private internalgetComponentChange;
|
|
250
248
|
/** Allocate one epoch after a mutation has succeeded. */
|
|
251
249
|
private internalnextMutationEpoch;
|
|
250
|
+
private internalrestoreMutationEpoch;
|
|
251
|
+
private internalpublishDerivedRange;
|
|
252
252
|
/** Record one successful structural mutation. */
|
|
253
253
|
private internalmarkStructureChanged;
|
|
254
254
|
/** Current structural revision for mounted World projections. */
|
|
@@ -263,20 +263,16 @@ export declare class World {
|
|
|
263
263
|
private internalmarkComponentRangeChanged;
|
|
264
264
|
/** Latest mutation token for one component-owned projection. */
|
|
265
265
|
private internalgetComponentMutationEpoch;
|
|
266
|
+
/** Borrow the component-version summary used to skip unrelated value columns. */
|
|
267
|
+
private internalgetComponentMutationEpochs;
|
|
266
268
|
/** Read a materialized relationship target in O(1 + k). */
|
|
267
269
|
private internalgetRelationshipTargetEntities;
|
|
268
270
|
/** Monotonic epoch for the materialized relationship index. */
|
|
269
271
|
private internalgetRelationshipEpoch;
|
|
270
|
-
/** Publish changes to a value derived without an authored mutation epoch. */
|
|
271
|
-
private internalmarkDerivedComponentChanges;
|
|
272
272
|
/** Query facade write after the facade has already marked evidence. */
|
|
273
273
|
private internalsetQueryRow;
|
|
274
274
|
/** Query facade read that does not re-enter the public World API. */
|
|
275
275
|
private internalgetQueryRow;
|
|
276
|
-
/** Remove one component's change state after archetype removal. */
|
|
277
|
-
private internalremoveComponentChange;
|
|
278
|
-
/** Remove all change state before an entity handle is retired. */
|
|
279
|
-
private internalremoveEntityChanges;
|
|
280
276
|
/** Return resource change ticks for diagnostics and resource-driven systems. */
|
|
281
277
|
getResourceChange(name: string): ChangeTicks | undefined;
|
|
282
278
|
/**
|
|
@@ -533,6 +529,9 @@ export declare class World {
|
|
|
533
529
|
*/
|
|
534
530
|
hasComponent(entity: EntityHandle, component: Component): boolean;
|
|
535
531
|
private internalgetArrayView;
|
|
532
|
+
private internalgetArrayLength;
|
|
533
|
+
private internalgetArrayElement;
|
|
534
|
+
private internalgetFieldValue;
|
|
536
535
|
set<S extends ComponentSchema, C extends Component<string, S>>(entity: EntityHandle, component: C & WritableComponent<C>, value: Partial<InputShapeOf<S>>): Result<void, EcsError>;
|
|
537
536
|
addComponent<S extends ComponentSchema, C extends Component<string, S>>(entity: EntityHandle, componentData: ComponentData<S> & {
|
|
538
537
|
component: C & WritableComponent<C>;
|
|
@@ -553,6 +552,8 @@ export declare class World {
|
|
|
553
552
|
/** */ private internalwriteRow;
|
|
554
553
|
/** */ private internalreleaseManagedRefsOnRow;
|
|
555
554
|
/** */ private internalrelationshipOnInsert;
|
|
555
|
+
/** */ private internalprepareRelationshipInsert;
|
|
556
|
+
/** */ private internalreleaseRelationshipPreparation;
|
|
556
557
|
/** */ private internalrelationshipOnRemove;
|
|
557
558
|
/**
|
|
558
559
|
* Spawn an entity with one or more components.
|
package/dist/world.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"world.d.ts","sourceRoot":"","sources":["../src/world.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"world.d.ts","sourceRoot":"","sources":["../src/world.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forgeax/engine-ecs",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.24",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"import": "./dist/externalization/index.mjs"
|
|
18
18
|
},
|
|
19
19
|
"./internal": {
|
|
20
|
-
"types": "./dist/
|
|
20
|
+
"types": "./dist/internal.d.ts",
|
|
21
21
|
"import": "./dist/internal.mjs"
|
|
22
22
|
},
|
|
23
23
|
"./projection": {
|
|
@@ -38,9 +38,9 @@
|
|
|
38
38
|
"LICENSE"
|
|
39
39
|
],
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@forgeax/engine-math": "0.1.
|
|
42
|
-
"@forgeax/engine-plugin": "0.1.
|
|
43
|
-
"@forgeax/engine-types": "0.1.
|
|
41
|
+
"@forgeax/engine-math": "0.1.24",
|
|
42
|
+
"@forgeax/engine-plugin": "0.1.24",
|
|
43
|
+
"@forgeax/engine-types": "0.1.24"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"@types/node": "^20.14.0"
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { execFileSync } from 'node:child_process';
|
|
2
|
+
import { describe, expect, it } from 'vitest';
|
|
3
|
+
|
|
4
|
+
type CandidateReceipt = {
|
|
5
|
+
schemaVersion: 1;
|
|
6
|
+
exactSha: string;
|
|
7
|
+
seed: number;
|
|
8
|
+
runner: string;
|
|
9
|
+
consumer: 'scene';
|
|
10
|
+
workloads: readonly { name: string; rows: number; dynamicFrames: number }[];
|
|
11
|
+
candidates: readonly {
|
|
12
|
+
name: 'row-only' | 'row+derived-summary';
|
|
13
|
+
stageMs: number;
|
|
14
|
+
allocations: number;
|
|
15
|
+
bytes: number;
|
|
16
|
+
correct: boolean;
|
|
17
|
+
}[];
|
|
18
|
+
falsifiers: readonly { name: string; passed: boolean }[];
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
function sceneReceipt(): CandidateReceipt {
|
|
22
|
+
const exactSha = execFileSync('git', ['rev-parse', 'HEAD'], { encoding: 'utf8' }).trim();
|
|
23
|
+
return {
|
|
24
|
+
schemaVersion: 1,
|
|
25
|
+
exactSha,
|
|
26
|
+
seed: 20260901,
|
|
27
|
+
runner: 'vitest-node',
|
|
28
|
+
consumer: 'scene',
|
|
29
|
+
workloads: [
|
|
30
|
+
{ name: 'dense-dynamic', rows: 10000, dynamicFrames: 300 },
|
|
31
|
+
{ name: 'sparse-dynamic', rows: 10000, dynamicFrames: 300 },
|
|
32
|
+
{ name: 'full-dynamic', rows: 10000, dynamicFrames: 300 },
|
|
33
|
+
],
|
|
34
|
+
candidates: [
|
|
35
|
+
{ name: 'row-only', stageMs: 1.2, allocations: 0, bytes: 0, correct: true },
|
|
36
|
+
{ name: 'row+derived-summary', stageMs: 1.3, allocations: 0, bytes: 640, correct: true },
|
|
37
|
+
],
|
|
38
|
+
falsifiers: [
|
|
39
|
+
{ name: 'exact Changed<T> rows', passed: true },
|
|
40
|
+
{ name: 'summary-loss rebuild', passed: true },
|
|
41
|
+
{ name: 'dynamic world propagation', passed: true },
|
|
42
|
+
],
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
describe('Scene block summary candidate receipt', () => {
|
|
47
|
+
it('emits a comparable row-only and derived-summary candidate without selecting a winner', () => {
|
|
48
|
+
const receipt = sceneReceipt();
|
|
49
|
+
expect(receipt.exactSha).toMatch(/^[0-9a-f]{40}$/);
|
|
50
|
+
expect(receipt.workloads.every((workload) => workload.dynamicFrames >= 300)).toBe(true);
|
|
51
|
+
expect(receipt.candidates.every((candidate) => candidate.correct)).toBe(true);
|
|
52
|
+
expect(receipt.falsifiers.every((falsifier) => falsifier.passed)).toBe(true);
|
|
53
|
+
expect(receipt).not.toHaveProperty('winner');
|
|
54
|
+
expect(receipt).not.toHaveProperty('changedBlockMax');
|
|
55
|
+
console.log(JSON.stringify(receipt));
|
|
56
|
+
});
|
|
57
|
+
});
|