@esengine/ecs-framework 2.1.4 → 2.1.6

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.
Files changed (201) hide show
  1. package/README.md +385 -0
  2. package/{bin/index.d.ts → index.d.ts} +9 -6
  3. package/index.js +7 -0
  4. package/index.js.map +7 -0
  5. package/package.json +21 -46
  6. package/{bin/wasm → wasm}/ecs_wasm_core_bg.wasm +0 -0
  7. package/bin/Core.d.ts +0 -198
  8. package/bin/Core.d.ts.map +0 -1
  9. package/bin/Core.js +0 -247
  10. package/bin/Core.js.map +0 -1
  11. package/bin/ECS/Component.d.ts +0 -119
  12. package/bin/ECS/Component.d.ts.map +0 -1
  13. package/bin/ECS/Component.js +0 -129
  14. package/bin/ECS/Component.js.map +0 -1
  15. package/bin/ECS/Components/IUpdatable.d.ts +0 -22
  16. package/bin/ECS/Components/IUpdatable.d.ts.map +0 -1
  17. package/bin/ECS/Components/IUpdatable.js +0 -22
  18. package/bin/ECS/Components/IUpdatable.js.map +0 -1
  19. package/bin/ECS/Components/SceneComponent.d.ts +0 -40
  20. package/bin/ECS/Components/SceneComponent.d.ts.map +0 -1
  21. package/bin/ECS/Components/SceneComponent.js +0 -61
  22. package/bin/ECS/Components/SceneComponent.js.map +0 -1
  23. package/bin/ECS/Core/BitMaskOptimizer.d.ts +0 -75
  24. package/bin/ECS/Core/BitMaskOptimizer.d.ts.map +0 -1
  25. package/bin/ECS/Core/BitMaskOptimizer.js +0 -161
  26. package/bin/ECS/Core/BitMaskOptimizer.js.map +0 -1
  27. package/bin/ECS/Core/ComponentPool.d.ts +0 -72
  28. package/bin/ECS/Core/ComponentPool.d.ts.map +0 -1
  29. package/bin/ECS/Core/ComponentPool.js +0 -123
  30. package/bin/ECS/Core/ComponentPool.js.map +0 -1
  31. package/bin/ECS/Core/ComponentStorage.d.ts +0 -182
  32. package/bin/ECS/Core/ComponentStorage.d.ts.map +0 -1
  33. package/bin/ECS/Core/ComponentStorage.js +0 -346
  34. package/bin/ECS/Core/ComponentStorage.js.map +0 -1
  35. package/bin/ECS/Core/EventSystem.d.ts +0 -236
  36. package/bin/ECS/Core/EventSystem.d.ts.map +0 -1
  37. package/bin/ECS/Core/EventSystem.js +0 -476
  38. package/bin/ECS/Core/EventSystem.js.map +0 -1
  39. package/bin/ECS/Core/FluentAPI.d.ts +0 -371
  40. package/bin/ECS/Core/FluentAPI.d.ts.map +0 -1
  41. package/bin/ECS/Core/FluentAPI.js +0 -543
  42. package/bin/ECS/Core/FluentAPI.js.map +0 -1
  43. package/bin/ECS/Core/IndexUpdateBatcher.d.ts +0 -100
  44. package/bin/ECS/Core/IndexUpdateBatcher.d.ts.map +0 -1
  45. package/bin/ECS/Core/IndexUpdateBatcher.js +0 -219
  46. package/bin/ECS/Core/IndexUpdateBatcher.js.map +0 -1
  47. package/bin/ECS/Core/QuerySystem.d.ts +0 -422
  48. package/bin/ECS/Core/QuerySystem.d.ts.map +0 -1
  49. package/bin/ECS/Core/QuerySystem.js +0 -937
  50. package/bin/ECS/Core/QuerySystem.js.map +0 -1
  51. package/bin/ECS/CoreEvents.d.ts +0 -19
  52. package/bin/ECS/CoreEvents.d.ts.map +0 -1
  53. package/bin/ECS/CoreEvents.js +0 -20
  54. package/bin/ECS/CoreEvents.js.map +0 -1
  55. package/bin/ECS/Entity.d.ts +0 -538
  56. package/bin/ECS/Entity.d.ts.map +0 -1
  57. package/bin/ECS/Entity.js +0 -1030
  58. package/bin/ECS/Entity.js.map +0 -1
  59. package/bin/ECS/Scene.d.ts +0 -226
  60. package/bin/ECS/Scene.d.ts.map +0 -1
  61. package/bin/ECS/Scene.js +0 -308
  62. package/bin/ECS/Scene.js.map +0 -1
  63. package/bin/ECS/Systems/EntitySystem.d.ts +0 -185
  64. package/bin/ECS/Systems/EntitySystem.d.ts.map +0 -1
  65. package/bin/ECS/Systems/EntitySystem.js +0 -278
  66. package/bin/ECS/Systems/EntitySystem.js.map +0 -1
  67. package/bin/ECS/Systems/IntervalSystem.d.ts +0 -33
  68. package/bin/ECS/Systems/IntervalSystem.d.ts.map +0 -1
  69. package/bin/ECS/Systems/IntervalSystem.js +0 -50
  70. package/bin/ECS/Systems/IntervalSystem.js.map +0 -1
  71. package/bin/ECS/Systems/PassiveSystem.d.ts +0 -20
  72. package/bin/ECS/Systems/PassiveSystem.d.ts.map +0 -1
  73. package/bin/ECS/Systems/PassiveSystem.js +0 -21
  74. package/bin/ECS/Systems/PassiveSystem.js.map +0 -1
  75. package/bin/ECS/Systems/ProcessingSystem.d.ts +0 -24
  76. package/bin/ECS/Systems/ProcessingSystem.d.ts.map +0 -1
  77. package/bin/ECS/Systems/ProcessingSystem.js +0 -22
  78. package/bin/ECS/Systems/ProcessingSystem.js.map +0 -1
  79. package/bin/ECS/Systems/index.d.ts +0 -5
  80. package/bin/ECS/Systems/index.d.ts.map +0 -1
  81. package/bin/ECS/Systems/index.js +0 -6
  82. package/bin/ECS/Systems/index.js.map +0 -1
  83. package/bin/ECS/Utils/Bits.d.ts +0 -74
  84. package/bin/ECS/Utils/Bits.d.ts.map +0 -1
  85. package/bin/ECS/Utils/Bits.js +0 -142
  86. package/bin/ECS/Utils/Bits.js.map +0 -1
  87. package/bin/ECS/Utils/ComponentTypeManager.d.ts +0 -50
  88. package/bin/ECS/Utils/ComponentTypeManager.d.ts.map +0 -1
  89. package/bin/ECS/Utils/ComponentTypeManager.js +0 -84
  90. package/bin/ECS/Utils/ComponentTypeManager.js.map +0 -1
  91. package/bin/ECS/Utils/EntityList.d.ts +0 -108
  92. package/bin/ECS/Utils/EntityList.d.ts.map +0 -1
  93. package/bin/ECS/Utils/EntityList.js +0 -249
  94. package/bin/ECS/Utils/EntityList.js.map +0 -1
  95. package/bin/ECS/Utils/EntityProcessorList.d.ts +0 -53
  96. package/bin/ECS/Utils/EntityProcessorList.d.ts.map +0 -1
  97. package/bin/ECS/Utils/EntityProcessorList.js +0 -96
  98. package/bin/ECS/Utils/EntityProcessorList.js.map +0 -1
  99. package/bin/ECS/Utils/IdentifierPool.d.ts +0 -18
  100. package/bin/ECS/Utils/IdentifierPool.d.ts.map +0 -1
  101. package/bin/ECS/Utils/IdentifierPool.js +0 -27
  102. package/bin/ECS/Utils/IdentifierPool.js.map +0 -1
  103. package/bin/ECS/Utils/Matcher.d.ts +0 -63
  104. package/bin/ECS/Utils/Matcher.d.ts.map +0 -1
  105. package/bin/ECS/Utils/Matcher.js +0 -140
  106. package/bin/ECS/Utils/Matcher.js.map +0 -1
  107. package/bin/ECS/Utils/index.d.ts +0 -7
  108. package/bin/ECS/Utils/index.d.ts.map +0 -1
  109. package/bin/ECS/Utils/index.js +0 -8
  110. package/bin/ECS/Utils/index.js.map +0 -1
  111. package/bin/ECS/index.d.ts +0 -7
  112. package/bin/ECS/index.d.ts.map +0 -1
  113. package/bin/ECS/index.js +0 -29
  114. package/bin/ECS/index.js.map +0 -1
  115. package/bin/Testing/Performance/benchmark.d.ts +0 -6
  116. package/bin/Testing/Performance/benchmark.d.ts.map +0 -1
  117. package/bin/Testing/Performance/benchmark.js +0 -639
  118. package/bin/Testing/Performance/benchmark.js.map +0 -1
  119. package/bin/Testing/Performance/component-performance.d.ts +0 -2
  120. package/bin/Testing/Performance/component-performance.d.ts.map +0 -1
  121. package/bin/Testing/Performance/component-performance.js +0 -43
  122. package/bin/Testing/Performance/component-performance.js.map +0 -1
  123. package/bin/Testing/Unit/bitmask-optimizer.test.d.ts +0 -2
  124. package/bin/Testing/Unit/bitmask-optimizer.test.d.ts.map +0 -1
  125. package/bin/Testing/Unit/bitmask-optimizer.test.js +0 -164
  126. package/bin/Testing/Unit/bitmask-optimizer.test.js.map +0 -1
  127. package/bin/Testing/Unit/component-pool.test.d.ts +0 -5
  128. package/bin/Testing/Unit/component-pool.test.d.ts.map +0 -1
  129. package/bin/Testing/Unit/component-pool.test.js +0 -149
  130. package/bin/Testing/Unit/component-pool.test.js.map +0 -1
  131. package/bin/Testing/test-runner.d.ts +0 -51
  132. package/bin/Testing/test-runner.d.ts.map +0 -1
  133. package/bin/Testing/test-runner.js +0 -159
  134. package/bin/Testing/test-runner.js.map +0 -1
  135. package/bin/Types/index.d.ts +0 -22
  136. package/bin/Types/index.d.ts.map +0 -1
  137. package/bin/Types/index.js +0 -20
  138. package/bin/Types/index.js.map +0 -1
  139. package/bin/Utils/Emitter.d.ts +0 -43
  140. package/bin/Utils/Emitter.d.ts.map +0 -1
  141. package/bin/Utils/Emitter.js +0 -69
  142. package/bin/Utils/Emitter.js.map +0 -1
  143. package/bin/Utils/Extensions/NumberExtension.d.ts +0 -13
  144. package/bin/Utils/Extensions/NumberExtension.d.ts.map +0 -1
  145. package/bin/Utils/Extensions/NumberExtension.js +0 -17
  146. package/bin/Utils/Extensions/NumberExtension.js.map +0 -1
  147. package/bin/Utils/Extensions/TypeUtils.d.ts +0 -13
  148. package/bin/Utils/Extensions/TypeUtils.d.ts.map +0 -1
  149. package/bin/Utils/Extensions/TypeUtils.js +0 -15
  150. package/bin/Utils/Extensions/TypeUtils.js.map +0 -1
  151. package/bin/Utils/Extensions/index.d.ts +0 -3
  152. package/bin/Utils/Extensions/index.d.ts.map +0 -1
  153. package/bin/Utils/Extensions/index.js +0 -4
  154. package/bin/Utils/Extensions/index.js.map +0 -1
  155. package/bin/Utils/GlobalManager.d.ts +0 -32
  156. package/bin/Utils/GlobalManager.d.ts.map +0 -1
  157. package/bin/Utils/GlobalManager.js +0 -53
  158. package/bin/Utils/GlobalManager.js.map +0 -1
  159. package/bin/Utils/PerformanceMonitor.d.ts +0 -211
  160. package/bin/Utils/PerformanceMonitor.d.ts.map +0 -1
  161. package/bin/Utils/PerformanceMonitor.js +0 -270
  162. package/bin/Utils/PerformanceMonitor.js.map +0 -1
  163. package/bin/Utils/Pool.d.ts +0 -239
  164. package/bin/Utils/Pool.d.ts.map +0 -1
  165. package/bin/Utils/Pool.js +0 -449
  166. package/bin/Utils/Pool.js.map +0 -1
  167. package/bin/Utils/Time.d.ts +0 -55
  168. package/bin/Utils/Time.d.ts.map +0 -1
  169. package/bin/Utils/Time.js +0 -78
  170. package/bin/Utils/Time.js.map +0 -1
  171. package/bin/Utils/Timers/ITimer.d.ts +0 -16
  172. package/bin/Utils/Timers/ITimer.d.ts.map +0 -1
  173. package/bin/Utils/Timers/ITimer.js +0 -2
  174. package/bin/Utils/Timers/ITimer.js.map +0 -1
  175. package/bin/Utils/Timers/Timer.d.ts +0 -22
  176. package/bin/Utils/Timers/Timer.d.ts.map +0 -1
  177. package/bin/Utils/Timers/Timer.js +0 -46
  178. package/bin/Utils/Timers/Timer.js.map +0 -1
  179. package/bin/Utils/Timers/TimerManager.d.ts +0 -19
  180. package/bin/Utils/Timers/TimerManager.d.ts.map +0 -1
  181. package/bin/Utils/Timers/TimerManager.js +0 -33
  182. package/bin/Utils/Timers/TimerManager.js.map +0 -1
  183. package/bin/Utils/WasmCore.d.ts +0 -234
  184. package/bin/Utils/WasmCore.d.ts.map +0 -1
  185. package/bin/Utils/WasmCore.js +0 -596
  186. package/bin/Utils/WasmCore.js.map +0 -1
  187. package/bin/Utils/index.d.ts +0 -16
  188. package/bin/Utils/index.d.ts.map +0 -1
  189. package/bin/Utils/index.js +0 -37
  190. package/bin/Utils/index.js.map +0 -1
  191. package/bin/index.cjs +0 -51
  192. package/bin/index.d.ts.map +0 -1
  193. package/bin/index.esm.d.ts +0 -45
  194. package/bin/index.esm.d.ts.map +0 -1
  195. package/bin/index.esm.js +0 -46
  196. package/bin/index.esm.js.map +0 -1
  197. package/bin/index.js.map +0 -1
  198. /package/{bin/wasm → wasm}/ecs_wasm_core.d.ts +0 -0
  199. /package/{bin/wasm → wasm}/ecs_wasm_core.js +0 -0
  200. /package/{bin/wasm → wasm}/ecs_wasm_core_bg.wasm.d.ts +0 -0
  201. /package/{bin/wasm → wasm}/package.json +0 -0
@@ -1,543 +0,0 @@
1
- import { Entity } from '../Entity';
2
- import { Scene } from '../Scene';
3
- import { QueryBuilder } from './QuerySystem';
4
- /**
5
- * 实体构建器 - 提供流式API创建和配置实体
6
- */
7
- export class EntityBuilder {
8
- constructor(scene, storageManager) {
9
- this.scene = scene;
10
- this.storageManager = storageManager;
11
- this.entity = new Entity("", scene.identifierPool.checkOut());
12
- }
13
- /**
14
- * 设置实体名称
15
- * @param name 实体名称
16
- * @returns 实体构建器
17
- */
18
- named(name) {
19
- this.entity.name = name;
20
- return this;
21
- }
22
- /**
23
- * 设置实体标签
24
- * @param tag 标签
25
- * @returns 实体构建器
26
- */
27
- tagged(tag) {
28
- this.entity.tag = tag;
29
- return this;
30
- }
31
- /**
32
- * 添加组件
33
- * @param component 组件实例
34
- * @returns 实体构建器
35
- */
36
- with(component) {
37
- this.entity.addComponent(component);
38
- return this;
39
- }
40
- /**
41
- * 添加多个组件
42
- * @param components 组件数组
43
- * @returns 实体构建器
44
- */
45
- withComponents(...components) {
46
- for (const component of components) {
47
- this.entity.addComponent(component);
48
- }
49
- return this;
50
- }
51
- /**
52
- * 条件性添加组件
53
- * @param condition 条件
54
- * @param component 组件实例
55
- * @returns 实体构建器
56
- */
57
- withIf(condition, component) {
58
- if (condition) {
59
- this.entity.addComponent(component);
60
- }
61
- return this;
62
- }
63
- /**
64
- * 使用工厂函数创建并添加组件
65
- * @param factory 组件工厂函数
66
- * @returns 实体构建器
67
- */
68
- withFactory(factory) {
69
- const component = factory();
70
- this.entity.addComponent(component);
71
- return this;
72
- }
73
- /**
74
- * 配置组件属性
75
- * @param componentType 组件类型
76
- * @param configurator 配置函数
77
- * @returns 实体构建器
78
- */
79
- configure(componentType, configurator) {
80
- const component = this.entity.getComponent(componentType);
81
- if (component) {
82
- configurator(component);
83
- }
84
- return this;
85
- }
86
- /**
87
- * 设置实体为启用状态
88
- * @param enabled 是否启用
89
- * @returns 实体构建器
90
- */
91
- enabled(enabled = true) {
92
- this.entity.enabled = enabled;
93
- return this;
94
- }
95
- /**
96
- * 设置实体为活跃状态
97
- * @param active 是否活跃
98
- * @returns 实体构建器
99
- */
100
- active(active = true) {
101
- this.entity.active = active;
102
- return this;
103
- }
104
- /**
105
- * 添加子实体
106
- * @param childBuilder 子实体构建器
107
- * @returns 实体构建器
108
- */
109
- withChild(childBuilder) {
110
- const child = childBuilder.build();
111
- this.entity.addChild(child);
112
- return this;
113
- }
114
- /**
115
- * 批量添加子实体
116
- * @param childBuilders 子实体构建器数组
117
- * @returns 实体构建器
118
- */
119
- withChildren(...childBuilders) {
120
- for (const childBuilder of childBuilders) {
121
- const child = childBuilder.build();
122
- this.entity.addChild(child);
123
- }
124
- return this;
125
- }
126
- /**
127
- * 使用工厂函数创建子实体
128
- * @param childFactory 子实体工厂函数
129
- * @returns 实体构建器
130
- */
131
- withChildFactory(childFactory) {
132
- const childBuilder = childFactory(this.entity);
133
- const child = childBuilder.build();
134
- this.entity.addChild(child);
135
- return this;
136
- }
137
- /**
138
- * 条件性添加子实体
139
- * @param condition 条件
140
- * @param childBuilder 子实体构建器
141
- * @returns 实体构建器
142
- */
143
- withChildIf(condition, childBuilder) {
144
- if (condition) {
145
- const child = childBuilder.build();
146
- this.entity.addChild(child);
147
- }
148
- return this;
149
- }
150
- /**
151
- * 构建并返回实体
152
- * @returns 构建的实体
153
- */
154
- build() {
155
- return this.entity;
156
- }
157
- /**
158
- * 构建实体并添加到场景
159
- * @returns 构建的实体
160
- */
161
- spawn() {
162
- this.scene.addEntity(this.entity);
163
- return this.entity;
164
- }
165
- /**
166
- * 克隆当前构建器
167
- * @returns 新的实体构建器
168
- */
169
- clone() {
170
- const newBuilder = new EntityBuilder(this.scene, this.storageManager);
171
- // 这里需要深度克隆实体,简化实现
172
- newBuilder.entity = this.entity; // 实际应该是深度克隆
173
- return newBuilder;
174
- }
175
- }
176
- /**
177
- * 场景构建器 - 提供流式API创建和配置场景
178
- */
179
- export class SceneBuilder {
180
- constructor() {
181
- this.scene = new Scene();
182
- }
183
- /**
184
- * 设置场景名称
185
- * @param name 场景名称
186
- * @returns 场景构建器
187
- */
188
- named(name) {
189
- this.scene.name = name;
190
- return this;
191
- }
192
- /**
193
- * 添加实体
194
- * @param entity 实体
195
- * @returns 场景构建器
196
- */
197
- withEntity(entity) {
198
- this.scene.addEntity(entity);
199
- return this;
200
- }
201
- /**
202
- * 使用实体构建器添加实体
203
- * @param builderFn 实体构建器函数
204
- * @returns 场景构建器
205
- */
206
- withEntityBuilder(builderFn) {
207
- const builder = new EntityBuilder(this.scene, this.scene.componentStorageManager);
208
- const configuredBuilder = builderFn(builder);
209
- const entity = configuredBuilder.build();
210
- this.scene.addEntity(entity);
211
- return this;
212
- }
213
- /**
214
- * 批量添加实体
215
- * @param entities 实体数组
216
- * @returns 场景构建器
217
- */
218
- withEntities(...entities) {
219
- for (const entity of entities) {
220
- this.scene.addEntity(entity);
221
- }
222
- return this;
223
- }
224
- /**
225
- * 添加系统
226
- * @param system 系统实例
227
- * @returns 场景构建器
228
- */
229
- withSystem(system) {
230
- this.scene.addSystem(system);
231
- return this;
232
- }
233
- /**
234
- * 批量添加系统
235
- * @param systems 系统数组
236
- * @returns 场景构建器
237
- */
238
- withSystems(...systems) {
239
- for (const system of systems) {
240
- this.scene.addSystem(system);
241
- }
242
- return this;
243
- }
244
- /**
245
- * 构建并返回场景
246
- * @returns 构建的场景
247
- */
248
- build() {
249
- return this.scene;
250
- }
251
- }
252
- /**
253
- * 组件构建器 - 提供流式API创建组件
254
- */
255
- export class ComponentBuilder {
256
- constructor(componentClass, ...args) {
257
- this.component = new componentClass(...args);
258
- }
259
- /**
260
- * 设置组件属性
261
- * @param property 属性名
262
- * @param value 属性值
263
- * @returns 组件构建器
264
- */
265
- set(property, value) {
266
- this.component[property] = value;
267
- return this;
268
- }
269
- /**
270
- * 使用配置函数设置组件
271
- * @param configurator 配置函数
272
- * @returns 组件构建器
273
- */
274
- configure(configurator) {
275
- configurator(this.component);
276
- return this;
277
- }
278
- /**
279
- * 条件性设置属性
280
- * @param condition 条件
281
- * @param property 属性名
282
- * @param value 属性值
283
- * @returns 组件构建器
284
- */
285
- setIf(condition, property, value) {
286
- if (condition) {
287
- this.component[property] = value;
288
- }
289
- return this;
290
- }
291
- /**
292
- * 构建并返回组件
293
- * @returns 构建的组件
294
- */
295
- build() {
296
- return this.component;
297
- }
298
- }
299
- /**
300
- * ECS流式API主入口
301
- * 提供统一的流式接口
302
- */
303
- export class ECSFluentAPI {
304
- constructor(scene, querySystem, eventSystem) {
305
- this.scene = scene;
306
- this.querySystem = querySystem;
307
- this.eventSystem = eventSystem;
308
- }
309
- /**
310
- * 创建实体构建器
311
- * @returns 实体构建器
312
- */
313
- createEntity() {
314
- return new EntityBuilder(this.scene, this.scene.componentStorageManager);
315
- }
316
- /**
317
- * 创建场景构建器
318
- * @returns 场景构建器
319
- */
320
- createScene() {
321
- return new SceneBuilder();
322
- }
323
- /**
324
- * 创建组件构建器
325
- * @param componentClass 组件类
326
- * @param args 构造参数
327
- * @returns 组件构建器
328
- */
329
- createComponent(componentClass, ...args) {
330
- return new ComponentBuilder(componentClass, ...args);
331
- }
332
- /**
333
- * 创建查询构建器
334
- * @returns 查询构建器
335
- */
336
- query() {
337
- return new QueryBuilder(this.querySystem);
338
- }
339
- /**
340
- * 查找实体(简化版)
341
- * @param componentTypes 组件类型
342
- * @returns 实体数组
343
- */
344
- find(...componentTypes) {
345
- return this.querySystem.queryAll(...componentTypes).entities;
346
- }
347
- /**
348
- * 查找第一个匹配的实体
349
- * @param componentTypes 组件类型
350
- * @returns 实体或null
351
- */
352
- findFirst(...componentTypes) {
353
- const result = this.querySystem.queryAll(...componentTypes);
354
- return result.entities.length > 0 ? result.entities[0] : null;
355
- }
356
- /**
357
- * 按名称查找实体
358
- * @param name 实体名称
359
- * @returns 实体或null
360
- */
361
- findByName(name) {
362
- return this.scene.getEntityByName(name);
363
- }
364
- /**
365
- * 按标签查找实体
366
- * @param tag 标签
367
- * @returns 实体数组
368
- */
369
- findByTag(tag) {
370
- return this.scene.getEntitiesByTag(tag);
371
- }
372
- /**
373
- * 触发事件
374
- * @param eventType 事件类型
375
- * @param event 事件数据
376
- */
377
- emit(eventType, event) {
378
- this.eventSystem.emitSync(eventType, event);
379
- }
380
- /**
381
- * 异步触发事件
382
- * @param eventType 事件类型
383
- * @param event 事件数据
384
- */
385
- async emitAsync(eventType, event) {
386
- await this.eventSystem.emit(eventType, event);
387
- }
388
- /**
389
- * 监听事件
390
- * @param eventType 事件类型
391
- * @param handler 事件处理器
392
- * @returns 监听器ID
393
- */
394
- on(eventType, handler) {
395
- return this.eventSystem.on(eventType, handler);
396
- }
397
- /**
398
- * 一次性监听事件
399
- * @param eventType 事件类型
400
- * @param handler 事件处理器
401
- * @returns 监听器ID
402
- */
403
- once(eventType, handler) {
404
- return this.eventSystem.once(eventType, handler);
405
- }
406
- /**
407
- * 移除事件监听器
408
- * @param eventType 事件类型
409
- * @param listenerId 监听器ID
410
- */
411
- off(eventType, listenerId) {
412
- this.eventSystem.off(eventType, listenerId);
413
- }
414
- /**
415
- * 批量操作实体
416
- * @param entities 实体数组
417
- * @returns 批量操作器
418
- */
419
- batch(entities) {
420
- return new EntityBatchOperator(entities);
421
- }
422
- /**
423
- * 获取场景统计信息
424
- * @returns 统计信息
425
- */
426
- getStats() {
427
- return {
428
- entityCount: this.scene.entities.count,
429
- systemCount: this.scene.systems.length,
430
- componentStats: this.scene.componentStorageManager.getAllStats(),
431
- queryStats: this.querySystem.getStats(),
432
- eventStats: this.eventSystem.getStats()
433
- };
434
- }
435
- }
436
- /**
437
- * 实体批量操作器
438
- * 提供对多个实体的批量操作
439
- */
440
- export class EntityBatchOperator {
441
- constructor(entities) {
442
- this.entities = entities;
443
- }
444
- /**
445
- * 批量添加组件
446
- * @param component 组件实例
447
- * @returns 批量操作器
448
- */
449
- addComponent(component) {
450
- for (const entity of this.entities) {
451
- entity.addComponent(component);
452
- }
453
- return this;
454
- }
455
- /**
456
- * 批量移除组件
457
- * @param componentType 组件类型
458
- * @returns 批量操作器
459
- */
460
- removeComponent(componentType) {
461
- for (const entity of this.entities) {
462
- entity.removeComponentByType(componentType);
463
- }
464
- return this;
465
- }
466
- /**
467
- * 批量设置活跃状态
468
- * @param active 是否活跃
469
- * @returns 批量操作器
470
- */
471
- setActive(active) {
472
- for (const entity of this.entities) {
473
- entity.active = active;
474
- }
475
- return this;
476
- }
477
- /**
478
- * 批量设置标签
479
- * @param tag 标签
480
- * @returns 批量操作器
481
- */
482
- setTag(tag) {
483
- for (const entity of this.entities) {
484
- entity.tag = tag;
485
- }
486
- return this;
487
- }
488
- /**
489
- * 批量执行操作
490
- * @param operation 操作函数
491
- * @returns 批量操作器
492
- */
493
- forEach(operation) {
494
- this.entities.forEach(operation);
495
- return this;
496
- }
497
- /**
498
- * 过滤实体
499
- * @param predicate 过滤条件
500
- * @returns 新的批量操作器
501
- */
502
- filter(predicate) {
503
- return new EntityBatchOperator(this.entities.filter(predicate));
504
- }
505
- /**
506
- * 获取实体数组
507
- * @returns 实体数组
508
- */
509
- toArray() {
510
- return this.entities.slice();
511
- }
512
- /**
513
- * 获取实体数量
514
- * @returns 实体数量
515
- */
516
- count() {
517
- return this.entities.length;
518
- }
519
- }
520
- /**
521
- * 创建ECS流式API实例
522
- * @param scene 场景
523
- * @param querySystem 查询系统
524
- * @param eventSystem 事件系统
525
- * @returns ECS流式API实例
526
- */
527
- export function createECSAPI(scene, querySystem, eventSystem) {
528
- return new ECSFluentAPI(scene, querySystem, eventSystem);
529
- }
530
- /**
531
- * 全局ECS流式API实例(需要在使用前初始化)
532
- */
533
- export let ECS;
534
- /**
535
- * 初始化全局ECS API
536
- * @param scene 场景
537
- * @param querySystem 查询系统
538
- * @param eventSystem 事件系统
539
- */
540
- export function initializeECS(scene, querySystem, eventSystem) {
541
- ECS = createECSAPI(scene, querySystem, eventSystem);
542
- }
543
- //# sourceMappingURL=FluentAPI.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FluentAPI.js","sourceRoot":"","sources":["../../../src/ECS/Core/FluentAPI.ts"],"names":[],"mappings":"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"}
@@ -1,100 +0,0 @@
1
- import { Entity } from '../Entity';
2
- /**
3
- * 索引更新操作类型
4
- */
5
- export declare enum IndexUpdateType {
6
- ADD_ENTITY = "add_entity",
7
- REMOVE_ENTITY = "remove_entity",
8
- UPDATE_ENTITY = "update_entity"
9
- }
10
- /**
11
- * 索引更新操作
12
- */
13
- export interface IndexUpdateOperation {
14
- type: IndexUpdateType;
15
- entity: Entity;
16
- oldMask?: bigint;
17
- newMask?: bigint;
18
- }
19
- /**
20
- * 延迟索引更新器,用于批量更新查询索引以提高性能
21
- */
22
- export declare class IndexUpdateBatcher {
23
- private pendingOperations;
24
- private isProcessing;
25
- private batchSize;
26
- private flushTimeout;
27
- private flushDelay;
28
- /**
29
- * 添加索引更新操作
30
- */
31
- addOperation(operation: IndexUpdateOperation): void;
32
- /**
33
- * 批量添加实体
34
- */
35
- addEntities(entities: Entity[]): void;
36
- /**
37
- * 批量移除实体
38
- */
39
- removeEntities(entities: Entity[]): void;
40
- /**
41
- * 批量更新实体
42
- */
43
- updateEntities(updates: Array<{
44
- entity: Entity;
45
- oldMask: bigint;
46
- newMask: bigint;
47
- }>): void;
48
- /**
49
- * 安排延迟刷新
50
- */
51
- private scheduleFlush;
52
- /**
53
- * 立即处理所有待处理的操作
54
- */
55
- flush(): void;
56
- /**
57
- * 处理批量操作
58
- */
59
- private processBatch;
60
- /**
61
- * 批量处理添加操作
62
- */
63
- private processBatchAdd;
64
- /**
65
- * 批量处理移除操作
66
- */
67
- private processBatchRemove;
68
- /**
69
- * 批量处理更新操作
70
- */
71
- private processBatchUpdate;
72
- /**
73
- * 设置批量大小
74
- */
75
- setBatchSize(size: number): void;
76
- /**
77
- * 设置刷新延迟
78
- */
79
- setFlushDelay(delay: number): void;
80
- /**
81
- * 获取待处理操作数量
82
- */
83
- getPendingCount(): number;
84
- /**
85
- * 清空所有待处理操作
86
- */
87
- clear(): void;
88
- /**
89
- * 检查是否有待处理操作
90
- */
91
- hasPendingOperations(): boolean;
92
- onBatchAdd?: (entities: Entity[]) => void;
93
- onBatchRemove?: (entities: Entity[]) => void;
94
- onBatchUpdate?: (updates: Array<{
95
- entity: Entity;
96
- oldMask: bigint;
97
- newMask: bigint;
98
- }>) => void;
99
- }
100
- //# sourceMappingURL=IndexUpdateBatcher.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IndexUpdateBatcher.d.ts","sourceRoot":"","sources":["../../../src/ECS/Core/IndexUpdateBatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC;;GAEG;AACH,oBAAY,eAAe;IACvB,UAAU,eAAe;IACzB,aAAa,kBAAkB;IAC/B,aAAa,kBAAkB;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,iBAAiB,CAA8B;IACvD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,UAAU,CAAM;IAExB;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,oBAAoB,GAAG,IAAI;IAYnD;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAerC;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAexC;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI;IAiB1F;;OAEG;IACH,OAAO,CAAC,aAAa;IAUrB;;OAEG;IACH,KAAK,IAAI,IAAI;IAmBb;;OAEG;IACH,OAAO,CAAC,YAAY;IA2CpB;;OAEG;IACH,OAAO,CAAC,eAAe;IAQvB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAM1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAM1B;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIhC;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIlC;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,KAAK,IAAI,IAAI;IAQb;;OAEG;IACH,oBAAoB,IAAI,OAAO;IAKxB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC1C,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC7C,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,KAAK,IAAI,CAAC;CACzG"}