iris-ecs 0.0.9 → 0.0.10
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 +250 -61
- package/dist/archetype.d.ts +18 -1
- package/dist/archetype.d.ts.map +1 -1
- package/dist/archetype.js +60 -15
- package/dist/archetype.js.map +1 -1
- package/dist/component.d.ts +106 -7
- package/dist/component.d.ts.map +1 -1
- package/dist/component.js +86 -4
- package/dist/component.js.map +1 -1
- package/dist/directed-acyclic-graph.d.ts +123 -0
- package/dist/directed-acyclic-graph.d.ts.map +1 -0
- package/dist/directed-acyclic-graph.js +235 -0
- package/dist/directed-acyclic-graph.js.map +1 -0
- package/dist/entity.d.ts +18 -0
- package/dist/entity.d.ts.map +1 -1
- package/dist/entity.js +5 -15
- package/dist/entity.js.map +1 -1
- package/dist/error.d.ts +2 -2
- package/dist/error.js +2 -2
- package/dist/index.d.ts +8 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/name.d.ts +2 -2
- package/dist/name.d.ts.map +1 -1
- package/dist/name.js +3 -3
- package/dist/name.js.map +1 -1
- package/dist/query.d.ts +65 -5
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +34 -3
- package/dist/query.js.map +1 -1
- package/dist/resource.d.ts +62 -4
- package/dist/resource.d.ts.map +1 -1
- package/dist/resource.js +10 -1
- package/dist/resource.js.map +1 -1
- package/dist/scheduler.d.ts +119 -11
- package/dist/scheduler.d.ts.map +1 -1
- package/dist/scheduler.js +168 -68
- package/dist/scheduler.js.map +1 -1
- package/dist/schema.d.ts +97 -40
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +31 -69
- package/dist/schema.js.map +1 -1
- package/dist/world.d.ts +10 -1
- package/dist/world.d.ts.map +1 -1
- package/dist/world.js +3 -0
- package/dist/world.js.map +1 -1
- package/package.json +1 -1
package/dist/scheduler.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { addEdge, addNode, createDag, getPredecessors, getSuccessors, removeNode as removeDagNode, topologicalSort, } from "./directed-acyclic-graph.js";
|
|
1
2
|
import { assert, Duplicate, InvalidArgument, InvalidState, NotFound } from "./error.js";
|
|
2
3
|
import { flushEvents } from "./event.js";
|
|
3
4
|
import { fireObserverEvent } from "./observer.js";
|
|
@@ -62,6 +63,70 @@ export const PostUpdate = defineSchedule("PostUpdate");
|
|
|
62
63
|
*/
|
|
63
64
|
export const Last = defineSchedule("Last");
|
|
64
65
|
// ============================================================================
|
|
66
|
+
// System Set Definition
|
|
67
|
+
// ============================================================================
|
|
68
|
+
/**
|
|
69
|
+
* Define a system set label.
|
|
70
|
+
*
|
|
71
|
+
* System sets are named groups for group-level ordering. Define the label
|
|
72
|
+
* first, then register it in a world via `addSystemSet()`.
|
|
73
|
+
*
|
|
74
|
+
* @param name - Set name (must be unique when registered)
|
|
75
|
+
* @returns System set label
|
|
76
|
+
*
|
|
77
|
+
* @example
|
|
78
|
+
* ```typescript
|
|
79
|
+
* const PhysicsSystems = defineSystemSet("PhysicsSystems");
|
|
80
|
+
* addSystemSet(world, PhysicsSystems, { before: RenderSystems });
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
export function defineSystemSet(name) {
|
|
84
|
+
return name;
|
|
85
|
+
}
|
|
86
|
+
// ============================================================================
|
|
87
|
+
// System Set Registration
|
|
88
|
+
// ============================================================================
|
|
89
|
+
/**
|
|
90
|
+
* Register a system set in the world with optional ordering constraints.
|
|
91
|
+
*
|
|
92
|
+
* Must be called before any `addSystem()` call that references this set
|
|
93
|
+
* via the `set` option.
|
|
94
|
+
*
|
|
95
|
+
* @param world - World instance
|
|
96
|
+
* @param set - System set label from `defineSystemSet()`
|
|
97
|
+
* @param options - Registration options (schedule, before, after)
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* ```typescript
|
|
101
|
+
* const PhysicsSystems = defineSystemSet("PhysicsSystems");
|
|
102
|
+
* const RenderSystems = defineSystemSet("RenderSystems");
|
|
103
|
+
* addSystemSet(world, PhysicsSystems, { schedule: Update, before: RenderSystems });
|
|
104
|
+
* addSystemSet(world, RenderSystems, { schedule: Update });
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
107
|
+
export function addSystemSet(world, set, options) {
|
|
108
|
+
assert(!world.systemSets.byId.has(set), Duplicate, { resource: "SystemSet", id: set });
|
|
109
|
+
const before = options?.before;
|
|
110
|
+
const after = options?.after;
|
|
111
|
+
world.systemSets.byId.set(set, {
|
|
112
|
+
schedule: options?.schedule ?? Update,
|
|
113
|
+
before: !before ? [] : Array.isArray(before) ? before.map(resolveReference) : [resolveReference(before)],
|
|
114
|
+
after: !after ? [] : Array.isArray(after) ? after.map(resolveReference) : [resolveReference(after)],
|
|
115
|
+
systems: [],
|
|
116
|
+
});
|
|
117
|
+
world.schedules.dirty = true;
|
|
118
|
+
}
|
|
119
|
+
// ============================================================================
|
|
120
|
+
// Reference Resolution
|
|
121
|
+
// ============================================================================
|
|
122
|
+
/**
|
|
123
|
+
* Resolves a SystemReference to a string name.
|
|
124
|
+
* @internal
|
|
125
|
+
*/
|
|
126
|
+
function resolveReference(ref) {
|
|
127
|
+
return typeof ref === "string" ? ref : ref.name;
|
|
128
|
+
}
|
|
129
|
+
// ============================================================================
|
|
65
130
|
// System Registration
|
|
66
131
|
// ============================================================================
|
|
67
132
|
/**
|
|
@@ -78,7 +143,7 @@ export const Last = defineSchedule("Last");
|
|
|
78
143
|
* @example
|
|
79
144
|
* ```typescript
|
|
80
145
|
* addSystem(world, physicsSystem);
|
|
81
|
-
* addSystem(world, renderSystem, { schedule: PostUpdate, after:
|
|
146
|
+
* addSystem(world, renderSystem, { schedule: PostUpdate, after: physicsSystem });
|
|
82
147
|
* addSystem(world, movementFactory); // SystemFactory from defineSystem()
|
|
83
148
|
* ```
|
|
84
149
|
*/
|
|
@@ -96,16 +161,32 @@ export function addSystem(world, system, options) {
|
|
|
96
161
|
}
|
|
97
162
|
assert(name && name !== "anonymous", InvalidArgument, { expected: "named system function or name option" });
|
|
98
163
|
assert(!world.systems.byId.has(name), Duplicate, { resource: "System", id: name });
|
|
99
|
-
|
|
164
|
+
const setLabel = options?.set;
|
|
165
|
+
// Validate set exists
|
|
166
|
+
if (setLabel) {
|
|
167
|
+
assert(world.systemSets.byId.has(setLabel), NotFound, {
|
|
168
|
+
resource: "SystemSet",
|
|
169
|
+
id: setLabel,
|
|
170
|
+
context: `"${name}" set option`,
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
// Resolve schedule: from set if specified, else from options, else Update
|
|
174
|
+
const schedule = setLabel ? world.systemSets.byId.get(setLabel).schedule : (options?.schedule ?? Update);
|
|
175
|
+
// Normalize before/after constraints to arrays
|
|
100
176
|
const before = options?.before;
|
|
101
177
|
const after = options?.after;
|
|
102
178
|
world.systems.byId.set(name, {
|
|
103
179
|
runner,
|
|
104
|
-
schedule
|
|
180
|
+
schedule,
|
|
105
181
|
index: world.systems.nextIndex++,
|
|
106
|
-
before: !before ? [] : Array.isArray(before) ? before : [before],
|
|
107
|
-
after: !after ? [] : Array.isArray(after) ? after : [after],
|
|
182
|
+
before: !before ? [] : Array.isArray(before) ? before.map(resolveReference) : [resolveReference(before)],
|
|
183
|
+
after: !after ? [] : Array.isArray(after) ? after.map(resolveReference) : [resolveReference(after)],
|
|
184
|
+
set: setLabel,
|
|
108
185
|
});
|
|
186
|
+
// Add system to set's member list
|
|
187
|
+
if (setLabel) {
|
|
188
|
+
world.systemSets.byId.get(setLabel).systems.push(name);
|
|
189
|
+
}
|
|
109
190
|
world.schedules.dirty = true;
|
|
110
191
|
}
|
|
111
192
|
// ============================================================================
|
|
@@ -130,7 +211,7 @@ export function addSystem(world, system, options) {
|
|
|
130
211
|
* ```typescript
|
|
131
212
|
* const movementSystem = defineSystem("movementSystem", (world) => {
|
|
132
213
|
* // Init: runs once at addSystem() time
|
|
133
|
-
* const movers = cacheQuery(world, Position, Velocity);
|
|
214
|
+
* const movers = cacheQuery(world, [Position, Velocity]);
|
|
134
215
|
*
|
|
135
216
|
* // Tick: runs every frame
|
|
136
217
|
* return () => {
|
|
@@ -200,107 +281,126 @@ export function insertScheduleAfter(world, schedule, anchor) {
|
|
|
200
281
|
// Schedule Building (Internal)
|
|
201
282
|
// ============================================================================
|
|
202
283
|
/**
|
|
203
|
-
* Builds an execution order from registered systems using
|
|
204
|
-
*
|
|
284
|
+
* Builds an execution order from registered systems using a DAG with set flattening.
|
|
285
|
+
*
|
|
286
|
+
* 1. Collect systems and sets for this schedule
|
|
287
|
+
* 2. Build DAG with system + set nodes and constraint edges
|
|
288
|
+
* 3. Flatten: replace set nodes with edges to/from member systems
|
|
289
|
+
* 4. Topological sort with registration-index comparator
|
|
205
290
|
*/
|
|
206
291
|
function buildSchedule(world, scheduleLabel) {
|
|
207
|
-
//
|
|
292
|
+
// Collect systems belonging to this schedule
|
|
208
293
|
const scheduleSystems = new Map();
|
|
209
294
|
for (const [name, meta] of world.systems.byId) {
|
|
210
295
|
if (meta.schedule === scheduleLabel) {
|
|
211
296
|
scheduleSystems.set(name, meta);
|
|
212
297
|
}
|
|
213
298
|
}
|
|
299
|
+
// Collect sets belonging to this schedule
|
|
300
|
+
const scheduleSets = new Map();
|
|
301
|
+
for (const [label, meta] of world.systemSets.byId) {
|
|
302
|
+
if (meta.schedule === scheduleLabel) {
|
|
303
|
+
scheduleSets.set(label, meta);
|
|
304
|
+
}
|
|
305
|
+
}
|
|
214
306
|
if (scheduleSystems.size === 0) {
|
|
215
307
|
world.schedules.byId.set(scheduleLabel, []);
|
|
216
308
|
return;
|
|
217
309
|
}
|
|
218
|
-
// Build
|
|
219
|
-
const
|
|
220
|
-
const inDegree = new Map();
|
|
310
|
+
// Build DAG with system and set nodes
|
|
311
|
+
const dag = createDag();
|
|
221
312
|
for (const name of scheduleSystems.keys()) {
|
|
222
|
-
|
|
223
|
-
|
|
313
|
+
addNode(dag, name);
|
|
314
|
+
}
|
|
315
|
+
for (const label of scheduleSets.keys()) {
|
|
316
|
+
addNode(dag, label);
|
|
224
317
|
}
|
|
225
|
-
//
|
|
318
|
+
// Add system constraint edges
|
|
226
319
|
for (const [name, meta] of scheduleSystems) {
|
|
227
320
|
for (const beforeName of meta.before) {
|
|
228
|
-
if (!scheduleSystems.has(beforeName)) {
|
|
321
|
+
if (!scheduleSystems.has(beforeName) && !scheduleSets.has(beforeName)) {
|
|
229
322
|
throw new NotFound({
|
|
230
|
-
resource: "System",
|
|
323
|
+
resource: "System or SystemSet",
|
|
231
324
|
id: beforeName,
|
|
232
325
|
context: `"${name}" before constraint in schedule "${scheduleLabel}"`,
|
|
233
326
|
});
|
|
234
327
|
}
|
|
235
|
-
|
|
236
|
-
adjacency.get(name).push(beforeName);
|
|
237
|
-
inDegree.set(beforeName, inDegree.get(beforeName) + 1);
|
|
328
|
+
addEdge(dag, name, beforeName);
|
|
238
329
|
}
|
|
239
330
|
for (const afterName of meta.after) {
|
|
240
|
-
if (!scheduleSystems.has(afterName)) {
|
|
331
|
+
if (!scheduleSystems.has(afterName) && !scheduleSets.has(afterName)) {
|
|
241
332
|
throw new NotFound({
|
|
242
|
-
resource: "System",
|
|
333
|
+
resource: "System or SystemSet",
|
|
243
334
|
id: afterName,
|
|
244
335
|
context: `"${name}" after constraint in schedule "${scheduleLabel}"`,
|
|
245
336
|
});
|
|
246
337
|
}
|
|
247
|
-
|
|
248
|
-
adjacency.get(afterName).push(name);
|
|
249
|
-
inDegree.set(name, inDegree.get(name) + 1);
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
// Initialize queue with systems having no dependencies
|
|
253
|
-
const queue = [];
|
|
254
|
-
for (const [name, degree] of inDegree) {
|
|
255
|
-
if (degree === 0) {
|
|
256
|
-
insertSorted(queue, name, scheduleSystems);
|
|
338
|
+
addEdge(dag, afterName, name);
|
|
257
339
|
}
|
|
258
340
|
}
|
|
259
|
-
//
|
|
260
|
-
const
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
insertSorted(queue, dependent, scheduleSystems);
|
|
341
|
+
// Add set constraint edges
|
|
342
|
+
for (const [label, meta] of scheduleSets) {
|
|
343
|
+
for (const beforeName of meta.before) {
|
|
344
|
+
if (!scheduleSystems.has(beforeName) && !scheduleSets.has(beforeName)) {
|
|
345
|
+
throw new NotFound({
|
|
346
|
+
resource: "System or SystemSet",
|
|
347
|
+
id: beforeName,
|
|
348
|
+
context: `"${label}" before constraint in schedule "${scheduleLabel}"`,
|
|
349
|
+
});
|
|
269
350
|
}
|
|
351
|
+
addEdge(dag, label, beforeName);
|
|
270
352
|
}
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
353
|
+
for (const afterName of meta.after) {
|
|
354
|
+
if (!scheduleSystems.has(afterName) && !scheduleSets.has(afterName)) {
|
|
355
|
+
throw new NotFound({
|
|
356
|
+
resource: "System or SystemSet",
|
|
357
|
+
id: afterName,
|
|
358
|
+
context: `"${label}" after constraint in schedule "${scheduleLabel}"`,
|
|
359
|
+
});
|
|
278
360
|
}
|
|
361
|
+
addEdge(dag, afterName, label);
|
|
279
362
|
}
|
|
280
|
-
throw new InvalidState({ message: `Circular dependency in schedule "${scheduleLabel}": ${remaining.join(", ")}` });
|
|
281
363
|
}
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
// Binary search for correct insertion position
|
|
294
|
-
while (low < high) {
|
|
295
|
-
const mid = (low + high) >>> 1;
|
|
296
|
-
if (systems.get(queue[mid]).index < index) {
|
|
297
|
-
low = mid + 1;
|
|
364
|
+
// Flatten: replace set nodes with edges to/from member systems
|
|
365
|
+
for (const [label, meta] of scheduleSets) {
|
|
366
|
+
const predecessors = getPredecessors(dag, label);
|
|
367
|
+
const successors = getSuccessors(dag, label);
|
|
368
|
+
if (meta.systems.length === 0) {
|
|
369
|
+
// Empty set: wire predecessors directly to successors
|
|
370
|
+
for (const pred of predecessors) {
|
|
371
|
+
for (const succ of successors) {
|
|
372
|
+
addEdge(dag, pred, succ);
|
|
373
|
+
}
|
|
374
|
+
}
|
|
298
375
|
}
|
|
299
376
|
else {
|
|
300
|
-
|
|
377
|
+
// Redirect edges to/from each member system
|
|
378
|
+
for (const pred of predecessors) {
|
|
379
|
+
for (let k = 0; k < meta.systems.length; k++) {
|
|
380
|
+
addEdge(dag, pred, meta.systems[k]);
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
for (const succ of successors) {
|
|
384
|
+
for (let k = 0; k < meta.systems.length; k++) {
|
|
385
|
+
addEdge(dag, meta.systems[k], succ);
|
|
386
|
+
}
|
|
387
|
+
}
|
|
301
388
|
}
|
|
389
|
+
removeDagNode(dag, label);
|
|
302
390
|
}
|
|
303
|
-
|
|
391
|
+
// Sort with registration-index comparator for determinism
|
|
392
|
+
let result;
|
|
393
|
+
try {
|
|
394
|
+
result = topologicalSort(dag, (a, b) => {
|
|
395
|
+
return scheduleSystems.get(a).index - scheduleSystems.get(b).index;
|
|
396
|
+
});
|
|
397
|
+
}
|
|
398
|
+
catch (err) {
|
|
399
|
+
throw new InvalidState({
|
|
400
|
+
message: `Circular dependency in schedule "${scheduleLabel}": ${err instanceof Error ? err.message : String(err)}`,
|
|
401
|
+
});
|
|
402
|
+
}
|
|
403
|
+
world.schedules.byId.set(scheduleLabel, result);
|
|
304
404
|
}
|
|
305
405
|
/**
|
|
306
406
|
* Rebuilds all schedules in the pipeline plus Startup and Shutdown.
|
package/dist/scheduler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"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"}
|
package/dist/schema.d.ts
CHANGED
|
@@ -4,6 +4,42 @@
|
|
|
4
4
|
* Union of all typed array constructors that can be used for numeric storage.
|
|
5
5
|
*/
|
|
6
6
|
export type TypedArrayConstructor = Int8ArrayConstructor | Int16ArrayConstructor | Int32ArrayConstructor | Uint32ArrayConstructor | Float32ArrayConstructor | Float64ArrayConstructor;
|
|
7
|
+
/**
|
|
8
|
+
* Maps a numeric size to a fixed-length tuple type.
|
|
9
|
+
*
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
type VectorTupleMap<T> = {
|
|
13
|
+
2: [T, T];
|
|
14
|
+
3: [T, T, T];
|
|
15
|
+
4: [T, T, T, T];
|
|
16
|
+
5: [T, T, T, T, T];
|
|
17
|
+
6: [T, T, T, T, T, T];
|
|
18
|
+
7: [T, T, T, T, T, T, T];
|
|
19
|
+
8: [T, T, T, T, T, T, T, T];
|
|
20
|
+
9: [T, T, T, T, T, T, T, T, T];
|
|
21
|
+
10: [T, T, T, T, T, T, T, T, T, T];
|
|
22
|
+
11: [T, T, T, T, T, T, T, T, T, T, T];
|
|
23
|
+
12: [T, T, T, T, T, T, T, T, T, T, T, T];
|
|
24
|
+
13: [T, T, T, T, T, T, T, T, T, T, T, T, T];
|
|
25
|
+
14: [T, T, T, T, T, T, T, T, T, T, T, T, T, T];
|
|
26
|
+
15: [T, T, T, T, T, T, T, T, T, T, T, T, T, T, T];
|
|
27
|
+
16: [T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T];
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Valid vector sizes (2-16).
|
|
31
|
+
*
|
|
32
|
+
* @internal
|
|
33
|
+
*/
|
|
34
|
+
type VectorSize = keyof VectorTupleMap<unknown>;
|
|
35
|
+
/**
|
|
36
|
+
* Fixed-length tuple type for vector schemas.
|
|
37
|
+
*
|
|
38
|
+
* Maps a base type and numeric size to a tuple: `VectorTuple<number, 3>` becomes `[number, number, number]`.
|
|
39
|
+
*/
|
|
40
|
+
export type VectorTuple<T, N extends VectorSize> = VectorTupleMap<T>[N];
|
|
41
|
+
/** @internal */
|
|
42
|
+
declare const VECTOR_SCHEMA_BRAND: unique symbol;
|
|
7
43
|
/**
|
|
8
44
|
* Type descriptor for columnar storage.
|
|
9
45
|
*
|
|
@@ -19,61 +55,64 @@ export type TypedArrayConstructor = Int8ArrayConstructor | Int16ArrayConstructor
|
|
|
19
55
|
* ```
|
|
20
56
|
*/
|
|
21
57
|
export type Schema<T = unknown> = {
|
|
22
|
-
kind: "typed" | "primitive" | "generic";
|
|
58
|
+
kind: "typed" | "primitive" | "generic" | "vector";
|
|
23
59
|
arrayConstructor: TypedArrayConstructor | ArrayConstructor;
|
|
24
60
|
typeName: string;
|
|
61
|
+
stride?: number;
|
|
25
62
|
__type?: T;
|
|
26
63
|
};
|
|
64
|
+
/**
|
|
65
|
+
* Schema for interleaved vector storage (e.g. `Type.f32(3)`).
|
|
66
|
+
*
|
|
67
|
+
* Carries a phantom brand so `ScalarFields`/`VectorFields` can discriminate
|
|
68
|
+
* vector schemas from plain schemas at the type level without inspecting the
|
|
69
|
+
* inferred value type.
|
|
70
|
+
*
|
|
71
|
+
* @internal
|
|
72
|
+
*/
|
|
73
|
+
export type VectorSchema<T = unknown> = Schema<T> & {
|
|
74
|
+
readonly [VECTOR_SCHEMA_BRAND]: true;
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* Overloaded numeric type factory.
|
|
78
|
+
*
|
|
79
|
+
* Returns a scalar `Schema<number>` when called without arguments, or a vector
|
|
80
|
+
* `Schema<VectorTuple<number, N>>` when called with a size (2-16).
|
|
81
|
+
*
|
|
82
|
+
* @internal
|
|
83
|
+
*/
|
|
84
|
+
type NumericFactory = {
|
|
85
|
+
(): Schema<number>;
|
|
86
|
+
<N extends VectorSize>(size: N): VectorSchema<VectorTuple<number, N>>;
|
|
87
|
+
};
|
|
27
88
|
/**
|
|
28
89
|
* Schema factory namespace for defining component storage types.
|
|
29
90
|
*
|
|
30
91
|
* Provides constructors for typed arrays (i8, f32, etc.), primitives (bool, string),
|
|
31
|
-
* and generic objects.
|
|
92
|
+
* and generic objects. Numeric factories accept an optional size parameter for
|
|
93
|
+
* interleaved vector storage.
|
|
32
94
|
*
|
|
33
95
|
* @example
|
|
34
96
|
* ```typescript
|
|
35
|
-
* const Position = {
|
|
36
|
-
* const
|
|
97
|
+
* const Position = { value: Type.f32(2) }; // vec2
|
|
98
|
+
* const Color = { value: Type.u32(4) }; // vec4
|
|
99
|
+
* const Health = { hp: Type.i32() }; // scalar
|
|
37
100
|
* const Name = { value: Type.string() };
|
|
38
101
|
* ```
|
|
39
102
|
*/
|
|
40
103
|
export declare const Type: {
|
|
41
|
-
/**
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* 32-bit signed integer schema (Int32Array).
|
|
55
|
-
*
|
|
56
|
-
* @returns Schema for Int32Array storage
|
|
57
|
-
*/
|
|
58
|
-
i32: () => Schema<number>;
|
|
59
|
-
/**
|
|
60
|
-
* 32-bit unsigned integer schema (Uint32Array).
|
|
61
|
-
*
|
|
62
|
-
* @returns Schema for Uint32Array storage
|
|
63
|
-
*/
|
|
64
|
-
u32: () => Schema<number>;
|
|
65
|
-
/**
|
|
66
|
-
* 32-bit floating point schema (Float32Array).
|
|
67
|
-
*
|
|
68
|
-
* @returns Schema for Float32Array storage
|
|
69
|
-
*/
|
|
70
|
-
f32: () => Schema<number>;
|
|
71
|
-
/**
|
|
72
|
-
* 64-bit floating point schema (Float64Array).
|
|
73
|
-
*
|
|
74
|
-
* @returns Schema for Float64Array storage
|
|
75
|
-
*/
|
|
76
|
-
f64: () => Schema<number>;
|
|
104
|
+
/** 8-bit signed integer schema (Int8Array). Accepts optional vector size (2-16). */
|
|
105
|
+
i8: NumericFactory;
|
|
106
|
+
/** 16-bit signed integer schema (Int16Array). Accepts optional vector size (2-16). */
|
|
107
|
+
i16: NumericFactory;
|
|
108
|
+
/** 32-bit signed integer schema (Int32Array). Accepts optional vector size (2-16). */
|
|
109
|
+
i32: NumericFactory;
|
|
110
|
+
/** 32-bit unsigned integer schema (Uint32Array). Accepts optional vector size (2-16). */
|
|
111
|
+
u32: NumericFactory;
|
|
112
|
+
/** 32-bit floating point schema (Float32Array). Accepts optional vector size (2-16). */
|
|
113
|
+
f32: NumericFactory;
|
|
114
|
+
/** 64-bit floating point schema (Float64Array). Accepts optional vector size (2-16). */
|
|
115
|
+
f64: NumericFactory;
|
|
77
116
|
/**
|
|
78
117
|
* Boolean schema (Array<boolean>).
|
|
79
118
|
*
|
|
@@ -100,6 +139,23 @@ export declare const Type: {
|
|
|
100
139
|
* @template S - Schema type to infer from
|
|
101
140
|
*/
|
|
102
141
|
export type InferSchema<S extends Schema> = S extends Schema<infer T> ? T : never;
|
|
142
|
+
/**
|
|
143
|
+
* Union of all typed array instance types.
|
|
144
|
+
*/
|
|
145
|
+
export type TypedArrayInstance = InstanceType<TypedArrayConstructor>;
|
|
146
|
+
/**
|
|
147
|
+
* Extracts field names from a schema record where the field is stored with stride 1
|
|
148
|
+
* (scalars and object references -- anything that isn't an interleaved vector tuple).
|
|
149
|
+
*/
|
|
150
|
+
export type ScalarFields<S extends SchemaRecord> = {
|
|
151
|
+
[K in keyof S]: S[K] extends VectorSchema ? never : K;
|
|
152
|
+
}[keyof S];
|
|
153
|
+
/**
|
|
154
|
+
* Extracts field names from a schema record where the field is a vector type (tuple).
|
|
155
|
+
*/
|
|
156
|
+
export type VectorFields<S extends SchemaRecord> = {
|
|
157
|
+
[K in keyof S]: S[K] extends VectorSchema ? K : never;
|
|
158
|
+
}[keyof S];
|
|
103
159
|
/**
|
|
104
160
|
* Schema record for component fields.
|
|
105
161
|
*
|
|
@@ -114,4 +170,5 @@ export type SchemaRecord = Record<string, Schema>;
|
|
|
114
170
|
export type InferSchemaRecord<S extends SchemaRecord> = {
|
|
115
171
|
[K in keyof S]: S[K] extends Schema<infer T> ? T : never;
|
|
116
172
|
};
|
|
173
|
+
export {};
|
|
117
174
|
//# sourceMappingURL=schema.d.ts.map
|
package/dist/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
|