iris-ecs 0.0.1 → 0.0.2
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 +70 -36
- package/dist/component.d.ts.map +1 -1
- package/dist/component.js +5 -5
- package/dist/component.js.map +1 -1
- package/dist/entity.d.ts +3 -3
- package/dist/entity.d.ts.map +1 -1
- package/dist/entity.js +7 -8
- package/dist/entity.js.map +1 -1
- package/dist/event.d.ts +19 -20
- package/dist/event.d.ts.map +1 -1
- package/dist/event.js +91 -65
- package/dist/event.js.map +1 -1
- package/dist/filters.d.ts.map +1 -1
- package/dist/filters.js +7 -6
- package/dist/filters.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/query.d.ts +2 -11
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +8 -13
- package/dist/query.js.map +1 -1
- package/dist/relation.js +2 -2
- package/dist/relation.js.map +1 -1
- package/dist/scheduler.d.ts +129 -27
- package/dist/scheduler.d.ts.map +1 -1
- package/dist/scheduler.js +255 -59
- package/dist/scheduler.js.map +1 -1
- package/dist/world.d.ts +33 -9
- package/dist/world.d.ts.map +1 -1
- package/dist/world.js +20 -6
- package/dist/world.js.map +1 -1
- package/package.json +1 -1
package/dist/world.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ import type { FilterMeta } from "./filters.js";
|
|
|
7
7
|
import type { EventType, ObserverMeta } from "./observer.js";
|
|
8
8
|
import type { QueryMeta } from "./query.js";
|
|
9
9
|
import type { ComponentMeta } from "./registry.js";
|
|
10
|
-
import type {
|
|
10
|
+
import type { ScheduleLabel, SystemMeta } from "./scheduler.js";
|
|
11
11
|
/**
|
|
12
12
|
* World instance.
|
|
13
13
|
*
|
|
@@ -96,30 +96,54 @@ export type World = {
|
|
|
96
96
|
nextIndex: number;
|
|
97
97
|
};
|
|
98
98
|
/**
|
|
99
|
-
* Schedule registry.
|
|
99
|
+
* Schedule registry and pipeline configuration.
|
|
100
100
|
*/
|
|
101
101
|
schedules: {
|
|
102
102
|
/**
|
|
103
|
-
* Built schedules (schedule
|
|
103
|
+
* Built schedules (schedule label -> sorted system IDs).
|
|
104
104
|
*/
|
|
105
|
-
byId: Map<
|
|
105
|
+
byId: Map<ScheduleLabel, string[]>;
|
|
106
|
+
/**
|
|
107
|
+
* Pipeline: ordered list of schedule labels for the main loop.
|
|
108
|
+
*/
|
|
109
|
+
pipeline: ScheduleLabel[];
|
|
110
|
+
/**
|
|
111
|
+
* Whether pipeline needs rebuilding.
|
|
112
|
+
*/
|
|
113
|
+
dirty: boolean;
|
|
106
114
|
};
|
|
107
115
|
/**
|
|
108
116
|
* Current execution state.
|
|
109
117
|
*/
|
|
110
118
|
execution: {
|
|
111
119
|
/**
|
|
112
|
-
* Active schedule
|
|
120
|
+
* Active schedule label (null if not executing).
|
|
113
121
|
*/
|
|
114
|
-
|
|
122
|
+
scheduleLabel: ScheduleLabel | null;
|
|
115
123
|
/**
|
|
116
|
-
* Currently executing system ID.
|
|
124
|
+
* Currently executing system ID (null if not executing).
|
|
117
125
|
*/
|
|
118
126
|
systemId: string | null;
|
|
119
127
|
/**
|
|
120
128
|
* Execution tick counter.
|
|
121
129
|
*/
|
|
122
130
|
tick: number;
|
|
131
|
+
/**
|
|
132
|
+
* Whether the RAF loop is currently active.
|
|
133
|
+
*/
|
|
134
|
+
running: boolean;
|
|
135
|
+
/**
|
|
136
|
+
* requestAnimationFrame handle for cancellation.
|
|
137
|
+
*/
|
|
138
|
+
rafHandle: number | null;
|
|
139
|
+
/**
|
|
140
|
+
* Whether startup schedule has been executed.
|
|
141
|
+
*/
|
|
142
|
+
startupRan: boolean;
|
|
143
|
+
/**
|
|
144
|
+
* Whether shutdown schedule has been executed.
|
|
145
|
+
*/
|
|
146
|
+
shutdownRan: boolean;
|
|
123
147
|
};
|
|
124
148
|
/**
|
|
125
149
|
* Event queue registry.
|
|
@@ -163,8 +187,8 @@ export declare function createWorld(): World;
|
|
|
163
187
|
*
|
|
164
188
|
* @example
|
|
165
189
|
* ```typescript
|
|
166
|
-
* //
|
|
167
|
-
*
|
|
190
|
+
* // Stop the world (runs shutdown systems), then reset
|
|
191
|
+
* await stop(world);
|
|
168
192
|
* resetWorld(world);
|
|
169
193
|
* ```
|
|
170
194
|
*/
|
package/dist/world.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"world.d.ts","sourceRoot":"","sources":["../src/world.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"world.d.ts","sourceRoot":"","sources":["../src/world.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnD,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAOhE;;;;;GAKG;AACH,MAAM,MAAM,KAAK,GAAG;IAClB;;OAEG;IACH,QAAQ,EAAE;QACR;;WAEG;QACH,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAEhC;;WAEG;QACH,OAAO,EAAE,MAAM,EAAE,CAAC;QAElB;;WAEG;QACH,MAAM,EAAE,MAAM,CAAC;QAEf;;WAEG;QACH,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAClC,CAAC;IAEF;;OAEG;IACH,UAAU,EAAE;QACV;;WAEG;QACH,IAAI,EAAE,GAAG,CAAC,GAAG,GAAG,SAAS,GAAG,QAAQ,EAAE,aAAa,CAAC,CAAC;KACtD,CAAC;IAEF;;OAEG;IACH,UAAU,EAAE;QACV;;WAEG;QACH,IAAI,EAAE,SAAS,CAAC;QAEhB;;WAEG;QACH,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;KAC9B,CAAC;IAEF;;OAEG;IACH,OAAO,EAAE;QACP;;WAEG;QACH,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;KAC/B,CAAC;IAEF;;OAEG;IACH,OAAO,EAAE;QACP;;WAEG;QACH,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;KAC9B,CAAC;IAEF;;OAEG;IACH,SAAS,EAAE;SACR,CAAC,IAAI,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC;KAClC,CAAC;IAEF;;OAEG;IACH,OAAO,EAAE;QACP;;WAEG;QACH,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAE9B;;WAEG;QACH,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAEF;;OAEG;IACH,SAAS,EAAE;QACT;;WAEG;QACH,IAAI,EAAE,GAAG,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC;QAEnC;;WAEG;QACH,QAAQ,EAAE,aAAa,EAAE,CAAC;QAE1B;;WAEG;QACH,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC;IAEF;;OAEG;IACH,SAAS,EAAE;QACT;;WAEG;QACH,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;QAEpC;;WAEG;QACH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QAExB;;WAEG;QACH,IAAI,EAAE,MAAM,CAAC;QAEb;;WAEG;QACH,OAAO,EAAE,OAAO,CAAC;QAEjB;;WAEG;QACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QAEzB;;WAEG;QACH,UAAU,EAAE,OAAO,CAAC;QAEpB;;WAEG;QACH,WAAW,EAAE,OAAO,CAAC;KACtB,CAAC;IAEF;;OAEG;IACH,MAAM,EAAE;QACN;;WAEG;QACH,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;KACpC,CAAC;IAEF;;OAEG;IACH,OAAO,EAAE;QACP;;WAEG;QACH,aAAa,EAAE,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;KACzD,CAAC;CACH,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,IAAI,KAAK,CAmEnC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAkD7C"}
|
package/dist/world.js
CHANGED
|
@@ -3,6 +3,7 @@ import { initNameSystem } from "./name.js";
|
|
|
3
3
|
import { fireObserverEvent, unregisterObserverCallback } from "./observer.js";
|
|
4
4
|
import { COMPONENT_REGISTRY } from "./registry.js";
|
|
5
5
|
import { initRemovalSystem } from "./removal.js";
|
|
6
|
+
import { First, Last, PostUpdate, PreUpdate, Update } from "./scheduler.js";
|
|
6
7
|
/**
|
|
7
8
|
* Creates a new ECS world with empty entity registry and root archetype.
|
|
8
9
|
*
|
|
@@ -42,11 +43,17 @@ export function createWorld() {
|
|
|
42
43
|
},
|
|
43
44
|
schedules: {
|
|
44
45
|
byId: new Map(),
|
|
46
|
+
pipeline: [First, PreUpdate, Update, PostUpdate, Last],
|
|
47
|
+
dirty: true,
|
|
45
48
|
},
|
|
46
49
|
execution: {
|
|
47
|
-
|
|
50
|
+
scheduleLabel: null,
|
|
48
51
|
systemId: null,
|
|
49
52
|
tick: 1,
|
|
53
|
+
running: false,
|
|
54
|
+
rafHandle: null,
|
|
55
|
+
startupRan: false,
|
|
56
|
+
shutdownRan: false,
|
|
50
57
|
},
|
|
51
58
|
events: {
|
|
52
59
|
byId: new Map(),
|
|
@@ -83,8 +90,8 @@ export function createWorld() {
|
|
|
83
90
|
*
|
|
84
91
|
* @example
|
|
85
92
|
* ```typescript
|
|
86
|
-
* //
|
|
87
|
-
*
|
|
93
|
+
* // Stop the world (runs shutdown systems), then reset
|
|
94
|
+
* await stop(world);
|
|
88
95
|
* resetWorld(world);
|
|
89
96
|
* ```
|
|
90
97
|
*/
|
|
@@ -116,12 +123,19 @@ export function resetWorld(world) {
|
|
|
116
123
|
registerArchetype(world, newRoot);
|
|
117
124
|
// 6. Reset execution state
|
|
118
125
|
world.execution.tick = 1;
|
|
119
|
-
world.execution.
|
|
126
|
+
world.execution.scheduleLabel = null;
|
|
120
127
|
world.execution.systemId = null;
|
|
121
|
-
|
|
128
|
+
world.execution.running = false;
|
|
129
|
+
world.execution.rafHandle = null;
|
|
130
|
+
world.execution.startupRan = false;
|
|
131
|
+
world.execution.shutdownRan = false;
|
|
132
|
+
// 7. Reset schedule state (preserve pipeline configuration)
|
|
133
|
+
world.schedules.byId.clear();
|
|
134
|
+
world.schedules.dirty = true;
|
|
135
|
+
// 8. Clear caches
|
|
122
136
|
world.events.byId.clear();
|
|
123
137
|
world.actions.byInitializer.clear();
|
|
124
|
-
//
|
|
138
|
+
// 9. Fire worldReset event (subsystems handle their own reset via this observer)
|
|
125
139
|
fireObserverEvent(world, "worldReset", world);
|
|
126
140
|
}
|
|
127
141
|
//# sourceMappingURL=world.js.map
|
package/dist/world.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"world.js","sourceRoot":"","sources":["../src/world.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAKpE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAG9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"world.js","sourceRoot":"","sources":["../src/world.ts"],"names":[],"mappings":"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"}
|