iris-ecs 0.0.1
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/LICENSE +21 -0
- package/README.md +721 -0
- package/dist/actions.d.ts +43 -0
- package/dist/actions.d.ts.map +1 -0
- package/dist/actions.js +35 -0
- package/dist/actions.js.map +1 -0
- package/dist/archetype.d.ts +194 -0
- package/dist/archetype.d.ts.map +1 -0
- package/dist/archetype.js +412 -0
- package/dist/archetype.js.map +1 -0
- package/dist/component.d.ts +89 -0
- package/dist/component.d.ts.map +1 -0
- package/dist/component.js +237 -0
- package/dist/component.js.map +1 -0
- package/dist/encoding.d.ts +204 -0
- package/dist/encoding.d.ts.map +1 -0
- package/dist/encoding.js +215 -0
- package/dist/encoding.js.map +1 -0
- package/dist/entity.d.ts +129 -0
- package/dist/entity.d.ts.map +1 -0
- package/dist/entity.js +243 -0
- package/dist/entity.js.map +1 -0
- package/dist/event.d.ts +237 -0
- package/dist/event.d.ts.map +1 -0
- package/dist/event.js +293 -0
- package/dist/event.js.map +1 -0
- package/dist/filters.d.ts +121 -0
- package/dist/filters.d.ts.map +1 -0
- package/dist/filters.js +202 -0
- package/dist/filters.js.map +1 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +54 -0
- package/dist/index.js.map +1 -0
- package/dist/name.d.ts +70 -0
- package/dist/name.d.ts.map +1 -0
- package/dist/name.js +172 -0
- package/dist/name.js.map +1 -0
- package/dist/observer.d.ts +83 -0
- package/dist/observer.d.ts.map +1 -0
- package/dist/observer.js +62 -0
- package/dist/observer.js.map +1 -0
- package/dist/query.d.ts +198 -0
- package/dist/query.d.ts.map +1 -0
- package/dist/query.js +299 -0
- package/dist/query.js.map +1 -0
- package/dist/registry.d.ts +118 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +112 -0
- package/dist/registry.js.map +1 -0
- package/dist/relation.d.ts +60 -0
- package/dist/relation.d.ts.map +1 -0
- package/dist/relation.js +171 -0
- package/dist/relation.js.map +1 -0
- package/dist/removal.d.ts +27 -0
- package/dist/removal.d.ts.map +1 -0
- package/dist/removal.js +66 -0
- package/dist/removal.js.map +1 -0
- package/dist/resource.d.ts +78 -0
- package/dist/resource.d.ts.map +1 -0
- package/dist/resource.js +86 -0
- package/dist/resource.js.map +1 -0
- package/dist/scheduler.d.ts +106 -0
- package/dist/scheduler.d.ts.map +1 -0
- package/dist/scheduler.js +204 -0
- package/dist/scheduler.js.map +1 -0
- package/dist/schema.d.ts +117 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +113 -0
- package/dist/schema.js.map +1 -0
- package/dist/world.d.ts +172 -0
- package/dist/world.d.ts.map +1 -0
- package/dist/world.js +127 -0
- package/dist/world.js.map +1 -0
- package/package.json +52 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"archetype.js","sourceRoot":"","sources":["../src/archetype.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import type { Component, Entity, EntityId, Pair, Relation, Tag } from "./encoding.js";
|
|
2
|
+
import type { InferSchema, InferSchemaRecord, SchemaRecord } from "./schema.js";
|
|
3
|
+
import type { World } from "./world.js";
|
|
4
|
+
export declare function addComponent(world: World, entityId: EntityId, componentId: Entity | Tag | Pair<Relation<Record<string, never>>>): void;
|
|
5
|
+
export declare function addComponent<S extends SchemaRecord>(world: World, entityId: EntityId, componentId: Component<S> | Pair<Relation<S>>, data: InferSchemaRecord<S>): void;
|
|
6
|
+
/**
|
|
7
|
+
* Remove component from entity.
|
|
8
|
+
*
|
|
9
|
+
* Moves entity to new archetype without component. Idempotent if not present.
|
|
10
|
+
*
|
|
11
|
+
* @param world - World instance
|
|
12
|
+
* @param entityId - Entity to modify
|
|
13
|
+
* @param componentId - Component to remove
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* addComponent(world, entity, tag);
|
|
18
|
+
* removeComponent(world, entity, tag);
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export declare function removeComponent(world: World, entityId: EntityId, componentId: EntityId): void;
|
|
22
|
+
/**
|
|
23
|
+
* Check if entity has component.
|
|
24
|
+
*
|
|
25
|
+
* Returns false for dead entities or if component not present.
|
|
26
|
+
*
|
|
27
|
+
* @param world - World instance
|
|
28
|
+
* @param entityId - Entity to check
|
|
29
|
+
* @param componentId - Component to check
|
|
30
|
+
* @returns True if entity has component
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```typescript
|
|
34
|
+
* addComponent(world, entity, tag);
|
|
35
|
+
* hasComponent(world, entity, tag); // true
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export declare function hasComponent(world: World, entityId: EntityId, componentId: EntityId): boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Get component field value.
|
|
41
|
+
*
|
|
42
|
+
* @param world - World instance
|
|
43
|
+
* @param entityId - Entity to query
|
|
44
|
+
* @param componentId - Data component
|
|
45
|
+
* @param fieldName - Field name
|
|
46
|
+
* @returns Field value or undefined if component/field not present
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```typescript
|
|
50
|
+
* const Position = defineComponent("Position", { x: Type.f32(), y: Type.f32() });
|
|
51
|
+
* const x = getComponentValue(world, entity, Position, 'x');
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
export declare function getComponentValue<S extends SchemaRecord, K extends keyof S>(world: World, entityId: EntityId, componentId: Component<S> | Pair<Relation<S>>, fieldName: K): InferSchema<S[K]> | undefined;
|
|
55
|
+
/**
|
|
56
|
+
* Set component field value.
|
|
57
|
+
*
|
|
58
|
+
* @param world - World instance
|
|
59
|
+
* @param entityId - Entity to modify
|
|
60
|
+
* @param componentId - Data component
|
|
61
|
+
* @param fieldName - Field name
|
|
62
|
+
* @param value - New value
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* ```typescript
|
|
66
|
+
* addComponent(world, entity, Position, { x: 0.0, y: 0.0 });
|
|
67
|
+
* setComponentValue(world, entity, Position, 'x', 10.0);
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
export declare function setComponentValue<S extends SchemaRecord, K extends keyof S>(world: World, entityId: EntityId, componentId: Component<S> | Pair<Relation<S>>, fieldName: K, value: InferSchema<S[K]>): void;
|
|
71
|
+
/**
|
|
72
|
+
* Emit component changed event without setting a value.
|
|
73
|
+
*
|
|
74
|
+
* @param world - World instance
|
|
75
|
+
* @param entityId - Entity with the component
|
|
76
|
+
* @param componentId - Component that was changed
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* emitComponentChanged(world, entity, Position); // Notify change tracking
|
|
80
|
+
*/
|
|
81
|
+
export declare function emitComponentChanged(world: World, entityId: EntityId, componentId: EntityId): void;
|
|
82
|
+
/**
|
|
83
|
+
* Remove component from all entities that have it.
|
|
84
|
+
*
|
|
85
|
+
* @param world - World instance
|
|
86
|
+
* @param componentId - Component to remove from all entities
|
|
87
|
+
*/
|
|
88
|
+
export declare function cascadeRemoveComponent(world: World, componentId: EntityId): void;
|
|
89
|
+
//# sourceMappingURL=component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../src/component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAMtF,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAMxC,wBAAgB,YAAY,CAC1B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,GAChE,IAAI,CAAC;AAER,wBAAgB,YAAY,CAAC,CAAC,SAAS,YAAY,EACjD,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAC7C,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,GACzB,IAAI,CAAC;AAwER;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,GAAG,IAAI,CAsD7F;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,GAAG,OAAO,CAI7F;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,SAAS,MAAM,CAAC,EACzE,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAC7C,SAAS,EAAE,CAAC,GACX,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAc/B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,SAAS,MAAM,CAAC,EACzE,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAC7C,SAAS,EAAE,CAAC,EACZ,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACvB,IAAI,CAqBN;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,GAAG,IAAI,CASlG;AAMD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,GAAG,IAAI,CAiBhF"}
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
import { archetypeTraverseAdd, archetypeTraverseRemove, destroyArchetype } from "./archetype.js";
|
|
2
|
+
import { encodePair, isPair } from "./encoding.js";
|
|
3
|
+
import { ensureEntity, moveEntityToArchetype } from "./entity.js";
|
|
4
|
+
import { fireObserverEvent } from "./observer.js";
|
|
5
|
+
import { Exclusive, Wildcard } from "./registry.js";
|
|
6
|
+
import { getPairRelation, getPairTarget, getRelationTargets } from "./relation.js";
|
|
7
|
+
/**
|
|
8
|
+
* Add component to entity.
|
|
9
|
+
*
|
|
10
|
+
* Moves entity to new archetype with component. Idempotent if already present.
|
|
11
|
+
* For data components/pairs, pass initial field values.
|
|
12
|
+
*
|
|
13
|
+
* @param world - World instance
|
|
14
|
+
* @param entityId - Entity to modify
|
|
15
|
+
* @param componentId - Tag, data component, or pair to add
|
|
16
|
+
* @param data - Initial field values for data components (optional)
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* addComponent(world, entity, Player);
|
|
20
|
+
* addComponent(world, entity, Position, { x: 0, y: 0 });
|
|
21
|
+
* addComponent(world, child, pair(ChildOf, parent));
|
|
22
|
+
*/
|
|
23
|
+
export function addComponent(world, entityId, componentId, data) {
|
|
24
|
+
// Idempotent: already has component
|
|
25
|
+
if (hasComponent(world, entityId, componentId)) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
// Exclusive enforcement: remove old target before adding new
|
|
29
|
+
if (isPair(componentId)) {
|
|
30
|
+
const target = getPairTarget(world, componentId);
|
|
31
|
+
const relation = getPairRelation(componentId);
|
|
32
|
+
if (hasComponent(world, relation, Exclusive) && target !== Wildcard) {
|
|
33
|
+
const oldTargets = getRelationTargets(world, entityId, relation);
|
|
34
|
+
if (oldTargets.length > 0) {
|
|
35
|
+
removeComponent(world, entityId, encodePair(relation, oldTargets[0]));
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
const entityMeta = ensureEntity(world, entityId);
|
|
40
|
+
const componentMeta = ensureEntity(world, componentId);
|
|
41
|
+
const schema = componentMeta.schema;
|
|
42
|
+
// Find target archetype
|
|
43
|
+
let toArchetype = archetypeTraverseAdd(world, entityMeta.archetype, componentId, schema);
|
|
44
|
+
// Add wildcard pairs for query patterns: pair(Wildcard, target) and pair(relation, Wildcard)
|
|
45
|
+
if (isPair(componentId)) {
|
|
46
|
+
const target = getPairTarget(world, componentId);
|
|
47
|
+
const relation = getPairRelation(componentId);
|
|
48
|
+
toArchetype = archetypeTraverseAdd(world, toArchetype, encodePair(Wildcard, target));
|
|
49
|
+
toArchetype = archetypeTraverseAdd(world, toArchetype, encodePair(relation, Wildcard));
|
|
50
|
+
}
|
|
51
|
+
moveEntityToArchetype(world, entityId, toArchetype);
|
|
52
|
+
if (data) {
|
|
53
|
+
for (const fieldName in data) {
|
|
54
|
+
const value = data[fieldName];
|
|
55
|
+
setComponentValue(world, entityId, componentId, fieldName, value);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
// Fire after move so observers can access component data
|
|
59
|
+
fireObserverEvent(world, "componentAdded", componentId, entityId);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Remove component from entity.
|
|
63
|
+
*
|
|
64
|
+
* Moves entity to new archetype without component. Idempotent if not present.
|
|
65
|
+
*
|
|
66
|
+
* @param world - World instance
|
|
67
|
+
* @param entityId - Entity to modify
|
|
68
|
+
* @param componentId - Component to remove
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```typescript
|
|
72
|
+
* addComponent(world, entity, tag);
|
|
73
|
+
* removeComponent(world, entity, tag);
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
export function removeComponent(world, entityId, componentId) {
|
|
77
|
+
const meta = ensureEntity(world, entityId);
|
|
78
|
+
// Find target archetype
|
|
79
|
+
let toArchetype = archetypeTraverseRemove(world, meta.archetype, componentId);
|
|
80
|
+
// Idempotent check
|
|
81
|
+
if (toArchetype === meta.archetype) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
// Remove wildcard pairs only if no other pairs need them
|
|
85
|
+
if (isPair(componentId)) {
|
|
86
|
+
const target = getPairTarget(world, componentId);
|
|
87
|
+
const relation = getPairRelation(componentId);
|
|
88
|
+
const wildcardTargetPair = encodePair(Wildcard, target);
|
|
89
|
+
const relationWildcardPair = encodePair(relation, Wildcard);
|
|
90
|
+
let hasOtherTarget = false;
|
|
91
|
+
let hasOtherRelation = false;
|
|
92
|
+
for (const typeId of meta.archetype.types) {
|
|
93
|
+
if (typeId === componentId ||
|
|
94
|
+
typeId === wildcardTargetPair ||
|
|
95
|
+
typeId === relationWildcardPair ||
|
|
96
|
+
!isPair(typeId)) {
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
99
|
+
if (getPairTarget(world, typeId) === target) {
|
|
100
|
+
hasOtherTarget = true;
|
|
101
|
+
}
|
|
102
|
+
if (getPairRelation(typeId) === relation) {
|
|
103
|
+
hasOtherRelation = true;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
if (!hasOtherTarget) {
|
|
107
|
+
toArchetype = archetypeTraverseRemove(world, toArchetype, wildcardTargetPair);
|
|
108
|
+
}
|
|
109
|
+
if (!hasOtherRelation) {
|
|
110
|
+
toArchetype = archetypeTraverseRemove(world, toArchetype, relationWildcardPair);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
// Fire before move so observers can access component data
|
|
114
|
+
fireObserverEvent(world, "componentRemoved", componentId, entityId);
|
|
115
|
+
moveEntityToArchetype(world, entityId, toArchetype);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Check if entity has component.
|
|
119
|
+
*
|
|
120
|
+
* Returns false for dead entities or if component not present.
|
|
121
|
+
*
|
|
122
|
+
* @param world - World instance
|
|
123
|
+
* @param entityId - Entity to check
|
|
124
|
+
* @param componentId - Component to check
|
|
125
|
+
* @returns True if entity has component
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* ```typescript
|
|
129
|
+
* addComponent(world, entity, tag);
|
|
130
|
+
* hasComponent(world, entity, tag); // true
|
|
131
|
+
* ```
|
|
132
|
+
*/
|
|
133
|
+
export function hasComponent(world, entityId, componentId) {
|
|
134
|
+
const meta = ensureEntity(world, entityId);
|
|
135
|
+
return meta.archetype.typesSet.has(componentId);
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Get component field value.
|
|
139
|
+
*
|
|
140
|
+
* @param world - World instance
|
|
141
|
+
* @param entityId - Entity to query
|
|
142
|
+
* @param componentId - Data component
|
|
143
|
+
* @param fieldName - Field name
|
|
144
|
+
* @returns Field value or undefined if component/field not present
|
|
145
|
+
*
|
|
146
|
+
* @example
|
|
147
|
+
* ```typescript
|
|
148
|
+
* const Position = defineComponent("Position", { x: Type.f32(), y: Type.f32() });
|
|
149
|
+
* const x = getComponentValue(world, entity, Position, 'x');
|
|
150
|
+
* ```
|
|
151
|
+
*/
|
|
152
|
+
export function getComponentValue(world, entityId, componentId, fieldName) {
|
|
153
|
+
const meta = ensureEntity(world, entityId);
|
|
154
|
+
const fieldColumns = meta.archetype.columns.get(componentId);
|
|
155
|
+
if (!fieldColumns) {
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
const column = fieldColumns[fieldName];
|
|
159
|
+
if (!column) {
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
return column[meta.row];
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Set component field value.
|
|
166
|
+
*
|
|
167
|
+
* @param world - World instance
|
|
168
|
+
* @param entityId - Entity to modify
|
|
169
|
+
* @param componentId - Data component
|
|
170
|
+
* @param fieldName - Field name
|
|
171
|
+
* @param value - New value
|
|
172
|
+
*
|
|
173
|
+
* @example
|
|
174
|
+
* ```typescript
|
|
175
|
+
* addComponent(world, entity, Position, { x: 0.0, y: 0.0 });
|
|
176
|
+
* setComponentValue(world, entity, Position, 'x', 10.0);
|
|
177
|
+
* ```
|
|
178
|
+
*/
|
|
179
|
+
export function setComponentValue(world, entityId, componentId, fieldName, value) {
|
|
180
|
+
const meta = ensureEntity(world, entityId);
|
|
181
|
+
const fieldColumns = meta.archetype.columns.get(componentId);
|
|
182
|
+
if (!fieldColumns) {
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
const column = fieldColumns[fieldName];
|
|
186
|
+
if (!column) {
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
column[meta.row] = value;
|
|
190
|
+
const ticks = meta.archetype.ticks.get(componentId);
|
|
191
|
+
if (ticks) {
|
|
192
|
+
ticks.changed[meta.row] = world.execution.tick;
|
|
193
|
+
}
|
|
194
|
+
fireObserverEvent(world, "componentChanged", componentId, entityId);
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Emit component changed event without setting a value.
|
|
198
|
+
*
|
|
199
|
+
* @param world - World instance
|
|
200
|
+
* @param entityId - Entity with the component
|
|
201
|
+
* @param componentId - Component that was changed
|
|
202
|
+
*
|
|
203
|
+
* @example
|
|
204
|
+
* emitComponentChanged(world, entity, Position); // Notify change tracking
|
|
205
|
+
*/
|
|
206
|
+
export function emitComponentChanged(world, entityId, componentId) {
|
|
207
|
+
const meta = ensureEntity(world, entityId);
|
|
208
|
+
const ticks = meta.archetype.ticks.get(componentId);
|
|
209
|
+
if (ticks) {
|
|
210
|
+
ticks.changed[meta.row] = world.execution.tick;
|
|
211
|
+
}
|
|
212
|
+
fireObserverEvent(world, "componentChanged", componentId, entityId);
|
|
213
|
+
}
|
|
214
|
+
// ============================================================================
|
|
215
|
+
// Component Cleanup
|
|
216
|
+
// ============================================================================
|
|
217
|
+
/**
|
|
218
|
+
* Remove component from all entities that have it.
|
|
219
|
+
*
|
|
220
|
+
* @param world - World instance
|
|
221
|
+
* @param componentId - Component to remove from all entities
|
|
222
|
+
*/
|
|
223
|
+
export function cascadeRemoveComponent(world, componentId) {
|
|
224
|
+
const meta = ensureEntity(world, componentId);
|
|
225
|
+
// Copy records - will be modified during iteration as entities move
|
|
226
|
+
const archetypes = [...meta.records];
|
|
227
|
+
for (const archetype of archetypes) {
|
|
228
|
+
// Iterate backward for deletion safety (entities removed during iteration)
|
|
229
|
+
for (let i = archetype.entities.length - 1; i >= 0; i--) {
|
|
230
|
+
const entityId = archetype.entities[i];
|
|
231
|
+
removeComponent(world, entityId, componentId);
|
|
232
|
+
}
|
|
233
|
+
// Destroy now-invalid archetype (contains dead component type)
|
|
234
|
+
destroyArchetype(world, archetype);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
//# sourceMappingURL=component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component.js","sourceRoot":"","sources":["../src/component.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import type { Schema, SchemaRecord } from "./schema.js";
|
|
2
|
+
/**
|
|
3
|
+
* Entity type constant (0x1).
|
|
4
|
+
*/
|
|
5
|
+
export declare const ENTITY_TYPE = 1;
|
|
6
|
+
/**
|
|
7
|
+
* Tag type constant (0x2).
|
|
8
|
+
*/
|
|
9
|
+
export declare const TAG_TYPE = 2;
|
|
10
|
+
/**
|
|
11
|
+
* Component type constant (0x3).
|
|
12
|
+
*/
|
|
13
|
+
export declare const COMPONENT_TYPE = 3;
|
|
14
|
+
/**
|
|
15
|
+
* Relationship type constant (0x4).
|
|
16
|
+
*/
|
|
17
|
+
export declare const RELATIONSHIP_TYPE = 4;
|
|
18
|
+
/**
|
|
19
|
+
* Maximum raw ID for entities, components, and tags (20-bit).
|
|
20
|
+
*/
|
|
21
|
+
export declare const ID_MASK_20 = 1048575;
|
|
22
|
+
/**
|
|
23
|
+
* Maximum raw ID for relationships (8-bit).
|
|
24
|
+
*/
|
|
25
|
+
export declare const ID_MASK_8 = 255;
|
|
26
|
+
/**
|
|
27
|
+
* Entity brand for nominal typing.
|
|
28
|
+
*/
|
|
29
|
+
declare const ENTITY_BRAND: unique symbol;
|
|
30
|
+
/**
|
|
31
|
+
* Tag brand for nominal typing.
|
|
32
|
+
*/
|
|
33
|
+
declare const TAG_BRAND: unique symbol;
|
|
34
|
+
/**
|
|
35
|
+
* Component brand for nominal typing.
|
|
36
|
+
*/
|
|
37
|
+
declare const COMPONENT_BRAND: unique symbol;
|
|
38
|
+
/**
|
|
39
|
+
* Relation brand for nominal typing.
|
|
40
|
+
*/
|
|
41
|
+
declare const RELATION_BRAND: unique symbol;
|
|
42
|
+
/**
|
|
43
|
+
* Pair brand for nominal typing.
|
|
44
|
+
*/
|
|
45
|
+
declare const PAIR_BRAND: unique symbol;
|
|
46
|
+
/**
|
|
47
|
+
* Schema brand for carrying schema type in Component.
|
|
48
|
+
*/
|
|
49
|
+
declare const SCHEMA_BRAND: unique symbol;
|
|
50
|
+
/**
|
|
51
|
+
* Entity ID (branded type).
|
|
52
|
+
*
|
|
53
|
+
* Nominal type preventing accidental mixing of entities with raw numbers.
|
|
54
|
+
*/
|
|
55
|
+
export type Entity = number & {
|
|
56
|
+
[ENTITY_BRAND]: true;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Tag ID (branded type).
|
|
60
|
+
*
|
|
61
|
+
* Nominal type for component tags defined via defineTag().
|
|
62
|
+
*/
|
|
63
|
+
export type Tag = number & {
|
|
64
|
+
[TAG_BRAND]: true;
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Component ID (branded type).
|
|
68
|
+
*
|
|
69
|
+
* Nominal type for data components with field schemas.
|
|
70
|
+
*/
|
|
71
|
+
export type Component<S extends SchemaRecord = SchemaRecord> = number & {
|
|
72
|
+
[COMPONENT_BRAND]: true;
|
|
73
|
+
[SCHEMA_BRAND]: S;
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Relation ID (branded type).
|
|
77
|
+
*
|
|
78
|
+
* Nominal type for relations with optional schema for pair data.
|
|
79
|
+
*/
|
|
80
|
+
export type Relation<S extends SchemaRecord = SchemaRecord> = number & {
|
|
81
|
+
[RELATION_BRAND]: true;
|
|
82
|
+
[SCHEMA_BRAND]: S;
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* Pair ID (branded type).
|
|
86
|
+
*
|
|
87
|
+
* Nominal type for relation-target pairs. Inherits schema from relation.
|
|
88
|
+
*/
|
|
89
|
+
export type Pair<R extends Relation = Relation> = number & {
|
|
90
|
+
[PAIR_BRAND]: true;
|
|
91
|
+
[SCHEMA_BRAND]: R extends Relation<infer S> ? S : never;
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* Valid targets for relations.
|
|
95
|
+
*
|
|
96
|
+
* Pairs cannot target other pairs to prevent encoding issues.
|
|
97
|
+
*/
|
|
98
|
+
export type RelationTargetId = Entity | Tag | Component | Relation;
|
|
99
|
+
/**
|
|
100
|
+
* Entity or Component ID (union type).
|
|
101
|
+
*
|
|
102
|
+
* Used in function signatures to accept entities, tags, data components, relations, and pairs.
|
|
103
|
+
*/
|
|
104
|
+
export type EntityId = Entity | Tag | Component | Relation | Pair;
|
|
105
|
+
/**
|
|
106
|
+
* Pair flag bit position (bit 31).
|
|
107
|
+
*/
|
|
108
|
+
export declare const PAIR_FLAG_SHIFT = 31;
|
|
109
|
+
/**
|
|
110
|
+
* Type bits position (bits 30-28).
|
|
111
|
+
*/
|
|
112
|
+
export declare const TYPE_SHIFT = 28;
|
|
113
|
+
/**
|
|
114
|
+
* Type mask (3 bits).
|
|
115
|
+
*/
|
|
116
|
+
export declare const TYPE_MASK = 7;
|
|
117
|
+
/**
|
|
118
|
+
* Encode entity ID from raw ID and generation.
|
|
119
|
+
*
|
|
120
|
+
* @param rawId - Raw entity ID (0 to 1,048,575)
|
|
121
|
+
* @param generation - Generation number (0 to 255)
|
|
122
|
+
* @returns Encoded 32-bit entity ID
|
|
123
|
+
*/
|
|
124
|
+
export declare function encodeEntity(rawId: number, generation: number): Entity;
|
|
125
|
+
/**
|
|
126
|
+
* Encode component ID from raw ID.
|
|
127
|
+
*
|
|
128
|
+
* @param rawId - Raw component ID (0 to 1,048,575)
|
|
129
|
+
* @returns Encoded 32-bit component ID
|
|
130
|
+
*/
|
|
131
|
+
export declare function encodeComponent<S extends Record<string, Schema> = Record<string, Schema>>(rawId: number): Component<S>;
|
|
132
|
+
/**
|
|
133
|
+
* Encode tag ID from raw ID.
|
|
134
|
+
*
|
|
135
|
+
* @param rawId - Raw tag ID (0 to 1,048,575)
|
|
136
|
+
* @returns Encoded 32-bit tag ID
|
|
137
|
+
*/
|
|
138
|
+
export declare function encodeTag(rawId: number): Tag;
|
|
139
|
+
/**
|
|
140
|
+
* Encode relation ID from raw ID.
|
|
141
|
+
*
|
|
142
|
+
* @param rawId - Raw relation ID (0 to 255)
|
|
143
|
+
* @returns Encoded 32-bit relation ID
|
|
144
|
+
*/
|
|
145
|
+
export declare function encodeRelation<S extends Record<string, Schema> = Record<string, Schema>>(rawId: number): Relation<S>;
|
|
146
|
+
/**
|
|
147
|
+
* Encode a pair from relation and target.
|
|
148
|
+
*
|
|
149
|
+
* @param relation - Relation ID
|
|
150
|
+
* @param target - Target ID (entity, tag, component, or relation)
|
|
151
|
+
* @returns Encoded pair ID
|
|
152
|
+
*/
|
|
153
|
+
export declare function encodePair<R extends Relation>(relation: R, target: RelationTargetId): Pair<R>;
|
|
154
|
+
/**
|
|
155
|
+
* Extract type bits from encoded ID.
|
|
156
|
+
*
|
|
157
|
+
* @param id - Encoded ID
|
|
158
|
+
* @returns Type bits (0x0 - 0x7)
|
|
159
|
+
*/
|
|
160
|
+
export declare function extractType(id: number): number;
|
|
161
|
+
/**
|
|
162
|
+
* Extract raw ID from encoded ID (type-aware).
|
|
163
|
+
*
|
|
164
|
+
* @param id - Encoded ID (any non-pair type)
|
|
165
|
+
* @returns Raw ID (20-bit for entities/components/tags, 8-bit for relationships)
|
|
166
|
+
*/
|
|
167
|
+
export declare function extractId(id: number): number;
|
|
168
|
+
/**
|
|
169
|
+
* Extract meta field from encoded ID (type-aware).
|
|
170
|
+
*
|
|
171
|
+
* @param id - Encoded ID (any non-pair type)
|
|
172
|
+
* @returns Meta value (generation for entities, 0 for components/tags/relationships)
|
|
173
|
+
*/
|
|
174
|
+
export declare function extractMeta(id: number): number;
|
|
175
|
+
/**
|
|
176
|
+
* Check if ID is a pair.
|
|
177
|
+
*
|
|
178
|
+
* @param id - Encoded ID
|
|
179
|
+
* @returns True if bit 31 is set, false otherwise
|
|
180
|
+
*/
|
|
181
|
+
export declare function isPair(id: number): id is Pair;
|
|
182
|
+
/**
|
|
183
|
+
* Extract relation raw ID from pair.
|
|
184
|
+
*
|
|
185
|
+
* @param pairId - Encoded pair ID
|
|
186
|
+
* @returns Relation raw ID (8-bit)
|
|
187
|
+
*/
|
|
188
|
+
export declare function extractPairRelationId(pairId: number): number;
|
|
189
|
+
/**
|
|
190
|
+
* Extract target raw ID from pair.
|
|
191
|
+
*
|
|
192
|
+
* @param pairId - Encoded pair ID
|
|
193
|
+
* @returns Target raw ID (20-bit)
|
|
194
|
+
*/
|
|
195
|
+
export declare function extractPairTargetId(pairId: number): number;
|
|
196
|
+
/**
|
|
197
|
+
* Extract target type from pair.
|
|
198
|
+
*
|
|
199
|
+
* @param pairId - Encoded pair ID
|
|
200
|
+
* @returns Target type bits (3-bit)
|
|
201
|
+
*/
|
|
202
|
+
export declare function extractPairTargetType(pairId: number): number;
|
|
203
|
+
export {};
|
|
204
|
+
//# sourceMappingURL=encoding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../src/encoding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAMxD;;GAEG;AACH,eAAO,MAAM,WAAW,IAAM,CAAC;AAE/B;;GAEG;AACH,eAAO,MAAM,QAAQ,IAAM,CAAC;AAE5B;;GAEG;AACH,eAAO,MAAM,cAAc,IAAM,CAAC;AAElC;;GAEG;AACH,eAAO,MAAM,iBAAiB,IAAM,CAAC;AAMrC;;GAEG;AACH,eAAO,MAAM,UAAU,UAAU,CAAC;AAElC;;GAEG;AACH,eAAO,MAAM,SAAS,MAAO,CAAC;AAM9B;;GAEG;AACH,OAAO,CAAC,MAAM,YAAY,EAAE,OAAO,MAAM,CAAC;AAE1C;;GAEG;AACH,OAAO,CAAC,MAAM,SAAS,EAAE,OAAO,MAAM,CAAC;AAEvC;;GAEG;AACH,OAAO,CAAC,MAAM,eAAe,EAAE,OAAO,MAAM,CAAC;AAE7C;;GAEG;AACH,OAAO,CAAC,MAAM,cAAc,EAAE,OAAO,MAAM,CAAC;AAE5C;;GAEG;AACH,OAAO,CAAC,MAAM,UAAU,EAAE,OAAO,MAAM,CAAC;AAExC;;GAEG;AACH,OAAO,CAAC,MAAM,YAAY,EAAE,OAAO,MAAM,CAAC;AAE1C;;;;GAIG;AACH,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG;IAAE,CAAC,YAAY,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AAEvD;;;;GAIG;AACH,MAAM,MAAM,GAAG,GAAG,MAAM,GAAG;IAAE,CAAC,SAAS,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AAEjD;;;;GAIG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,IAAI,MAAM,GAAG;IACtE,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC;IACxB,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;CACnB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,IAAI,MAAM,GAAG;IACrE,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC;IACvB,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;CACnB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,IAAI,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,IAAI,MAAM,GAAG;IACzD,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC;IACnB,CAAC,YAAY,CAAC,EAAE,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;CACzD,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,GAAG,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEnE;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,GAAG,GAAG,SAAS,GAAG,QAAQ,GAAG,IAAI,CAAC;AAMlE;;GAEG;AACH,eAAO,MAAM,eAAe,KAAK,CAAC;AAElC;;GAEG;AACH,eAAO,MAAM,UAAU,KAAK,CAAC;AAE7B;;GAEG;AACH,eAAO,MAAM,SAAS,IAAM,CAAC;AAmC7B;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACvF,KAAK,EAAE,MAAM,GACZ,SAAS,CAAC,CAAC,CAAC,CAEd;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAE5C;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAEpH;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAC,CAAC,CAAC,CAS7F;AAMD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAe5C;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAe9C;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,EAAE,IAAI,IAAI,CAE7C;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE5D"}
|