@esengine/ecs-framework 2.0.3

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 (187) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +277 -0
  3. package/bin/Core.d.ts +198 -0
  4. package/bin/Core.d.ts.map +1 -0
  5. package/bin/Core.js +249 -0
  6. package/bin/Core.js.map +1 -0
  7. package/bin/ECS/Component.d.ts +119 -0
  8. package/bin/ECS/Component.d.ts.map +1 -0
  9. package/bin/ECS/Component.js +129 -0
  10. package/bin/ECS/Component.js.map +1 -0
  11. package/bin/ECS/Components/IUpdatable.d.ts +22 -0
  12. package/bin/ECS/Components/IUpdatable.d.ts.map +1 -0
  13. package/bin/ECS/Components/IUpdatable.js +17 -0
  14. package/bin/ECS/Components/IUpdatable.js.map +1 -0
  15. package/bin/ECS/Components/SceneComponent.d.ts +40 -0
  16. package/bin/ECS/Components/SceneComponent.d.ts.map +1 -0
  17. package/bin/ECS/Components/SceneComponent.js +57 -0
  18. package/bin/ECS/Components/SceneComponent.js.map +1 -0
  19. package/bin/ECS/Core/ComponentStorage.d.ts +182 -0
  20. package/bin/ECS/Core/ComponentStorage.d.ts.map +1 -0
  21. package/bin/ECS/Core/ComponentStorage.js +346 -0
  22. package/bin/ECS/Core/ComponentStorage.js.map +1 -0
  23. package/bin/ECS/Core/EventSystem.d.ts +236 -0
  24. package/bin/ECS/Core/EventSystem.d.ts.map +1 -0
  25. package/bin/ECS/Core/EventSystem.js +476 -0
  26. package/bin/ECS/Core/EventSystem.js.map +1 -0
  27. package/bin/ECS/Core/FluentAPI.d.ts +392 -0
  28. package/bin/ECS/Core/FluentAPI.d.ts.map +1 -0
  29. package/bin/ECS/Core/FluentAPI.js +575 -0
  30. package/bin/ECS/Core/FluentAPI.js.map +1 -0
  31. package/bin/ECS/Core/QuerySystem.d.ts +574 -0
  32. package/bin/ECS/Core/QuerySystem.d.ts.map +1 -0
  33. package/bin/ECS/Core/QuerySystem.js +1356 -0
  34. package/bin/ECS/Core/QuerySystem.js.map +1 -0
  35. package/bin/ECS/CoreEvents.d.ts +19 -0
  36. package/bin/ECS/CoreEvents.d.ts.map +1 -0
  37. package/bin/ECS/CoreEvents.js +20 -0
  38. package/bin/ECS/CoreEvents.js.map +1 -0
  39. package/bin/ECS/Entity.d.ts +585 -0
  40. package/bin/ECS/Entity.d.ts.map +1 -0
  41. package/bin/ECS/Entity.js +1079 -0
  42. package/bin/ECS/Entity.js.map +1 -0
  43. package/bin/ECS/Scene.d.ts +210 -0
  44. package/bin/ECS/Scene.d.ts.map +1 -0
  45. package/bin/ECS/Scene.js +267 -0
  46. package/bin/ECS/Scene.js.map +1 -0
  47. package/bin/ECS/Systems/EntitySystem.d.ts +185 -0
  48. package/bin/ECS/Systems/EntitySystem.d.ts.map +1 -0
  49. package/bin/ECS/Systems/EntitySystem.js +278 -0
  50. package/bin/ECS/Systems/EntitySystem.js.map +1 -0
  51. package/bin/ECS/Systems/IntervalSystem.d.ts +33 -0
  52. package/bin/ECS/Systems/IntervalSystem.d.ts.map +1 -0
  53. package/bin/ECS/Systems/IntervalSystem.js +50 -0
  54. package/bin/ECS/Systems/IntervalSystem.js.map +1 -0
  55. package/bin/ECS/Systems/PassiveSystem.d.ts +20 -0
  56. package/bin/ECS/Systems/PassiveSystem.d.ts.map +1 -0
  57. package/bin/ECS/Systems/PassiveSystem.js +21 -0
  58. package/bin/ECS/Systems/PassiveSystem.js.map +1 -0
  59. package/bin/ECS/Systems/ProcessingSystem.d.ts +24 -0
  60. package/bin/ECS/Systems/ProcessingSystem.d.ts.map +1 -0
  61. package/bin/ECS/Systems/ProcessingSystem.js +22 -0
  62. package/bin/ECS/Systems/ProcessingSystem.js.map +1 -0
  63. package/bin/ECS/Systems/index.d.ts +5 -0
  64. package/bin/ECS/Systems/index.d.ts.map +1 -0
  65. package/bin/ECS/Systems/index.js +6 -0
  66. package/bin/ECS/Systems/index.js.map +1 -0
  67. package/bin/ECS/Transform.d.ts +178 -0
  68. package/bin/ECS/Transform.d.ts.map +1 -0
  69. package/bin/ECS/Transform.js +249 -0
  70. package/bin/ECS/Transform.js.map +1 -0
  71. package/bin/ECS/Utils/Bits.d.ts +74 -0
  72. package/bin/ECS/Utils/Bits.d.ts.map +1 -0
  73. package/bin/ECS/Utils/Bits.js +142 -0
  74. package/bin/ECS/Utils/Bits.js.map +1 -0
  75. package/bin/ECS/Utils/ComponentTypeManager.d.ts +50 -0
  76. package/bin/ECS/Utils/ComponentTypeManager.d.ts.map +1 -0
  77. package/bin/ECS/Utils/ComponentTypeManager.js +84 -0
  78. package/bin/ECS/Utils/ComponentTypeManager.js.map +1 -0
  79. package/bin/ECS/Utils/EntityList.d.ts +108 -0
  80. package/bin/ECS/Utils/EntityList.d.ts.map +1 -0
  81. package/bin/ECS/Utils/EntityList.js +249 -0
  82. package/bin/ECS/Utils/EntityList.js.map +1 -0
  83. package/bin/ECS/Utils/EntityProcessorList.d.ts +53 -0
  84. package/bin/ECS/Utils/EntityProcessorList.d.ts.map +1 -0
  85. package/bin/ECS/Utils/EntityProcessorList.js +96 -0
  86. package/bin/ECS/Utils/EntityProcessorList.js.map +1 -0
  87. package/bin/ECS/Utils/IdentifierPool.d.ts +18 -0
  88. package/bin/ECS/Utils/IdentifierPool.d.ts.map +1 -0
  89. package/bin/ECS/Utils/IdentifierPool.js +27 -0
  90. package/bin/ECS/Utils/IdentifierPool.js.map +1 -0
  91. package/bin/ECS/Utils/Matcher.d.ts +63 -0
  92. package/bin/ECS/Utils/Matcher.d.ts.map +1 -0
  93. package/bin/ECS/Utils/Matcher.js +140 -0
  94. package/bin/ECS/Utils/Matcher.js.map +1 -0
  95. package/bin/ECS/Utils/index.d.ts +7 -0
  96. package/bin/ECS/Utils/index.d.ts.map +1 -0
  97. package/bin/ECS/Utils/index.js +8 -0
  98. package/bin/ECS/Utils/index.js.map +1 -0
  99. package/bin/ECS/index.d.ts +8 -0
  100. package/bin/ECS/index.d.ts.map +1 -0
  101. package/bin/ECS/index.js +9 -0
  102. package/bin/ECS/index.js.map +1 -0
  103. package/bin/Math/Edge.d.ts +23 -0
  104. package/bin/Math/Edge.d.ts.map +1 -0
  105. package/bin/Math/Edge.js +24 -0
  106. package/bin/Math/Edge.js.map +1 -0
  107. package/bin/Math/MathHelper.d.ts +75 -0
  108. package/bin/Math/MathHelper.d.ts.map +1 -0
  109. package/bin/Math/MathHelper.js +91 -0
  110. package/bin/Math/MathHelper.js.map +1 -0
  111. package/bin/Math/Rectangle.d.ts +126 -0
  112. package/bin/Math/Rectangle.d.ts.map +1 -0
  113. package/bin/Math/Rectangle.js +181 -0
  114. package/bin/Math/Rectangle.js.map +1 -0
  115. package/bin/Math/Vector2.d.ts +229 -0
  116. package/bin/Math/Vector2.d.ts.map +1 -0
  117. package/bin/Math/Vector2.js +338 -0
  118. package/bin/Math/Vector2.js.map +1 -0
  119. package/bin/Math/index.d.ts +5 -0
  120. package/bin/Math/index.d.ts.map +1 -0
  121. package/bin/Math/index.js +6 -0
  122. package/bin/Math/index.js.map +1 -0
  123. package/bin/Types/index.d.ts +22 -0
  124. package/bin/Types/index.d.ts.map +1 -0
  125. package/bin/Types/index.js +20 -0
  126. package/bin/Types/index.js.map +1 -0
  127. package/bin/Utils/Emitter.d.ts +43 -0
  128. package/bin/Utils/Emitter.d.ts.map +1 -0
  129. package/bin/Utils/Emitter.js +69 -0
  130. package/bin/Utils/Emitter.js.map +1 -0
  131. package/bin/Utils/Extensions/EdgeExt.d.ts +26 -0
  132. package/bin/Utils/Extensions/EdgeExt.d.ts.map +1 -0
  133. package/bin/Utils/Extensions/EdgeExt.js +41 -0
  134. package/bin/Utils/Extensions/EdgeExt.js.map +1 -0
  135. package/bin/Utils/Extensions/NumberExtension.d.ts +13 -0
  136. package/bin/Utils/Extensions/NumberExtension.d.ts.map +1 -0
  137. package/bin/Utils/Extensions/NumberExtension.js +17 -0
  138. package/bin/Utils/Extensions/NumberExtension.js.map +1 -0
  139. package/bin/Utils/Extensions/TypeUtils.d.ts +13 -0
  140. package/bin/Utils/Extensions/TypeUtils.d.ts.map +1 -0
  141. package/bin/Utils/Extensions/TypeUtils.js +15 -0
  142. package/bin/Utils/Extensions/TypeUtils.js.map +1 -0
  143. package/bin/Utils/Extensions/index.d.ts +4 -0
  144. package/bin/Utils/Extensions/index.d.ts.map +1 -0
  145. package/bin/Utils/Extensions/index.js +5 -0
  146. package/bin/Utils/Extensions/index.js.map +1 -0
  147. package/bin/Utils/GlobalManager.d.ts +32 -0
  148. package/bin/Utils/GlobalManager.d.ts.map +1 -0
  149. package/bin/Utils/GlobalManager.js +53 -0
  150. package/bin/Utils/GlobalManager.js.map +1 -0
  151. package/bin/Utils/PerformanceMonitor.d.ts +211 -0
  152. package/bin/Utils/PerformanceMonitor.d.ts.map +1 -0
  153. package/bin/Utils/PerformanceMonitor.js +270 -0
  154. package/bin/Utils/PerformanceMonitor.js.map +1 -0
  155. package/bin/Utils/Pool.d.ts +239 -0
  156. package/bin/Utils/Pool.d.ts.map +1 -0
  157. package/bin/Utils/Pool.js +449 -0
  158. package/bin/Utils/Pool.js.map +1 -0
  159. package/bin/Utils/Screen.d.ts +12 -0
  160. package/bin/Utils/Screen.d.ts.map +1 -0
  161. package/bin/Utils/Screen.js +14 -0
  162. package/bin/Utils/Screen.js.map +1 -0
  163. package/bin/Utils/Time.d.ts +55 -0
  164. package/bin/Utils/Time.d.ts.map +1 -0
  165. package/bin/Utils/Time.js +78 -0
  166. package/bin/Utils/Time.js.map +1 -0
  167. package/bin/Utils/Timers/ITimer.d.ts +16 -0
  168. package/bin/Utils/Timers/ITimer.d.ts.map +1 -0
  169. package/bin/Utils/Timers/ITimer.js +2 -0
  170. package/bin/Utils/Timers/ITimer.js.map +1 -0
  171. package/bin/Utils/Timers/Timer.d.ts +22 -0
  172. package/bin/Utils/Timers/Timer.d.ts.map +1 -0
  173. package/bin/Utils/Timers/Timer.js +46 -0
  174. package/bin/Utils/Timers/Timer.js.map +1 -0
  175. package/bin/Utils/Timers/TimerManager.d.ts +19 -0
  176. package/bin/Utils/Timers/TimerManager.d.ts.map +1 -0
  177. package/bin/Utils/Timers/TimerManager.js +33 -0
  178. package/bin/Utils/Timers/TimerManager.js.map +1 -0
  179. package/bin/Utils/index.d.ts +6 -0
  180. package/bin/Utils/index.d.ts.map +1 -0
  181. package/bin/Utils/index.js +7 -0
  182. package/bin/Utils/index.js.map +1 -0
  183. package/bin/index.d.ts +21 -0
  184. package/bin/index.d.ts.map +1 -0
  185. package/bin/index.js +26 -0
  186. package/bin/index.js.map +1 -0
  187. package/package.json +68 -0
@@ -0,0 +1,392 @@
1
+ import { Entity } from '../Entity';
2
+ import { Component } from '../Component';
3
+ import { Scene } from '../Scene';
4
+ import { ComponentType, ComponentStorageManager } from './ComponentStorage';
5
+ import { QuerySystem, QueryBuilder } from './QuerySystem';
6
+ import { TypeSafeEventSystem } from './EventSystem';
7
+ /**
8
+ * 实体构建器 - 提供流式API创建和配置实体
9
+ */
10
+ export declare class EntityBuilder {
11
+ private entity;
12
+ private scene;
13
+ private storageManager;
14
+ constructor(scene: Scene, storageManager: ComponentStorageManager);
15
+ /**
16
+ * 设置实体名称
17
+ * @param name 实体名称
18
+ * @returns 实体构建器
19
+ */
20
+ named(name: string): EntityBuilder;
21
+ /**
22
+ * 设置实体标签
23
+ * @param tag 标签
24
+ * @returns 实体构建器
25
+ */
26
+ tagged(tag: number): EntityBuilder;
27
+ /**
28
+ * 添加组件
29
+ * @param component 组件实例
30
+ * @returns 实体构建器
31
+ */
32
+ with<T extends Component>(component: T): EntityBuilder;
33
+ /**
34
+ * 添加多个组件
35
+ * @param components 组件数组
36
+ * @returns 实体构建器
37
+ */
38
+ withComponents(...components: Component[]): EntityBuilder;
39
+ /**
40
+ * 条件性添加组件
41
+ * @param condition 条件
42
+ * @param component 组件实例
43
+ * @returns 实体构建器
44
+ */
45
+ withIf<T extends Component>(condition: boolean, component: T): EntityBuilder;
46
+ /**
47
+ * 使用工厂函数创建并添加组件
48
+ * @param factory 组件工厂函数
49
+ * @returns 实体构建器
50
+ */
51
+ withFactory<T extends Component>(factory: () => T): EntityBuilder;
52
+ /**
53
+ * 配置组件属性
54
+ * @param componentType 组件类型
55
+ * @param configurator 配置函数
56
+ * @returns 实体构建器
57
+ */
58
+ configure<T extends Component>(componentType: ComponentType<T>, configurator: (component: T) => void): EntityBuilder;
59
+ /**
60
+ * 设置实体位置(如果有Transform组件)
61
+ * @param x X坐标
62
+ * @param y Y坐标
63
+ * @param z Z坐标(可选)
64
+ * @returns 实体构建器
65
+ */
66
+ at(x: number, y: number, z?: number): EntityBuilder;
67
+ /**
68
+ * 设置实体旋转(如果有Transform组件)
69
+ * @param rotation 旋转角度
70
+ * @returns 实体构建器
71
+ */
72
+ rotated(rotation: number): EntityBuilder;
73
+ /**
74
+ * 设置实体缩放(如果有Transform组件)
75
+ * @param scaleX X轴缩放
76
+ * @param scaleY Y轴缩放(可选,默认与X轴相同)
77
+ * @returns 实体构建器
78
+ */
79
+ scaled(scaleX: number, scaleY?: number): EntityBuilder;
80
+ /**
81
+ * 设置实体为启用状态
82
+ * @param enabled 是否启用
83
+ * @returns 实体构建器
84
+ */
85
+ enabled(enabled?: boolean): EntityBuilder;
86
+ /**
87
+ * 设置实体为活跃状态
88
+ * @param active 是否活跃
89
+ * @returns 实体构建器
90
+ */
91
+ active(active?: boolean): EntityBuilder;
92
+ /**
93
+ * 添加子实体
94
+ * @param childBuilder 子实体构建器
95
+ * @returns 实体构建器
96
+ */
97
+ withChild(childBuilder: EntityBuilder): EntityBuilder;
98
+ /**
99
+ * 批量添加子实体
100
+ * @param childBuilders 子实体构建器数组
101
+ * @returns 实体构建器
102
+ */
103
+ withChildren(...childBuilders: EntityBuilder[]): EntityBuilder;
104
+ /**
105
+ * 使用工厂函数创建子实体
106
+ * @param childFactory 子实体工厂函数
107
+ * @returns 实体构建器
108
+ */
109
+ withChildFactory(childFactory: (parent: Entity) => EntityBuilder): EntityBuilder;
110
+ /**
111
+ * 条件性添加子实体
112
+ * @param condition 条件
113
+ * @param childBuilder 子实体构建器
114
+ * @returns 实体构建器
115
+ */
116
+ withChildIf(condition: boolean, childBuilder: EntityBuilder): EntityBuilder;
117
+ /**
118
+ * 构建并返回实体
119
+ * @returns 构建的实体
120
+ */
121
+ build(): Entity;
122
+ /**
123
+ * 构建实体并添加到场景
124
+ * @returns 构建的实体
125
+ */
126
+ spawn(): Entity;
127
+ /**
128
+ * 克隆当前构建器
129
+ * @returns 新的实体构建器
130
+ */
131
+ clone(): EntityBuilder;
132
+ }
133
+ /**
134
+ * 场景构建器 - 提供流式API创建和配置场景
135
+ */
136
+ export declare class SceneBuilder {
137
+ private scene;
138
+ constructor();
139
+ /**
140
+ * 设置场景名称
141
+ * @param name 场景名称
142
+ * @returns 场景构建器
143
+ */
144
+ named(name: string): SceneBuilder;
145
+ /**
146
+ * 添加实体
147
+ * @param entity 实体
148
+ * @returns 场景构建器
149
+ */
150
+ withEntity(entity: Entity): SceneBuilder;
151
+ /**
152
+ * 使用实体构建器添加实体
153
+ * @param builderFn 实体构建器函数
154
+ * @returns 场景构建器
155
+ */
156
+ withEntityBuilder(builderFn: (builder: EntityBuilder) => EntityBuilder): SceneBuilder;
157
+ /**
158
+ * 批量添加实体
159
+ * @param entities 实体数组
160
+ * @returns 场景构建器
161
+ */
162
+ withEntities(...entities: Entity[]): SceneBuilder;
163
+ /**
164
+ * 添加系统
165
+ * @param system 系统实例
166
+ * @returns 场景构建器
167
+ */
168
+ withSystem(system: any): SceneBuilder;
169
+ /**
170
+ * 批量添加系统
171
+ * @param systems 系统数组
172
+ * @returns 场景构建器
173
+ */
174
+ withSystems(...systems: any[]): SceneBuilder;
175
+ /**
176
+ * 构建并返回场景
177
+ * @returns 构建的场景
178
+ */
179
+ build(): Scene;
180
+ }
181
+ /**
182
+ * 组件构建器 - 提供流式API创建组件
183
+ */
184
+ export declare class ComponentBuilder<T extends Component> {
185
+ private component;
186
+ constructor(componentClass: new (...args: any[]) => T, ...args: any[]);
187
+ /**
188
+ * 设置组件属性
189
+ * @param property 属性名
190
+ * @param value 属性值
191
+ * @returns 组件构建器
192
+ */
193
+ set<K extends keyof T>(property: K, value: T[K]): ComponentBuilder<T>;
194
+ /**
195
+ * 使用配置函数设置组件
196
+ * @param configurator 配置函数
197
+ * @returns 组件构建器
198
+ */
199
+ configure(configurator: (component: T) => void): ComponentBuilder<T>;
200
+ /**
201
+ * 条件性设置属性
202
+ * @param condition 条件
203
+ * @param property 属性名
204
+ * @param value 属性值
205
+ * @returns 组件构建器
206
+ */
207
+ setIf<K extends keyof T>(condition: boolean, property: K, value: T[K]): ComponentBuilder<T>;
208
+ /**
209
+ * 构建并返回组件
210
+ * @returns 构建的组件
211
+ */
212
+ build(): T;
213
+ }
214
+ /**
215
+ * ECS流式API主入口
216
+ * 提供统一的流式接口
217
+ */
218
+ export declare class ECSFluentAPI {
219
+ private scene;
220
+ private querySystem;
221
+ private eventSystem;
222
+ constructor(scene: Scene, querySystem: QuerySystem, eventSystem: TypeSafeEventSystem);
223
+ /**
224
+ * 创建实体构建器
225
+ * @returns 实体构建器
226
+ */
227
+ createEntity(): EntityBuilder;
228
+ /**
229
+ * 创建场景构建器
230
+ * @returns 场景构建器
231
+ */
232
+ createScene(): SceneBuilder;
233
+ /**
234
+ * 创建组件构建器
235
+ * @param componentClass 组件类
236
+ * @param args 构造参数
237
+ * @returns 组件构建器
238
+ */
239
+ createComponent<T extends Component>(componentClass: new (...args: any[]) => T, ...args: any[]): ComponentBuilder<T>;
240
+ /**
241
+ * 创建查询构建器
242
+ * @returns 查询构建器
243
+ */
244
+ query(): QueryBuilder;
245
+ /**
246
+ * 查找实体(简化版)
247
+ * @param componentTypes 组件类型
248
+ * @returns 实体数组
249
+ */
250
+ find(...componentTypes: ComponentType[]): Entity[];
251
+ /**
252
+ * 查找第一个匹配的实体
253
+ * @param componentTypes 组件类型
254
+ * @returns 实体或null
255
+ */
256
+ findFirst(...componentTypes: ComponentType[]): Entity | null;
257
+ /**
258
+ * 按名称查找实体
259
+ * @param name 实体名称
260
+ * @returns 实体或null
261
+ */
262
+ findByName(name: string): Entity | null;
263
+ /**
264
+ * 按标签查找实体
265
+ * @param tag 标签
266
+ * @returns 实体数组
267
+ */
268
+ findByTag(tag: number): Entity[];
269
+ /**
270
+ * 触发事件
271
+ * @param eventType 事件类型
272
+ * @param event 事件数据
273
+ */
274
+ emit<T>(eventType: string, event: T): void;
275
+ /**
276
+ * 异步触发事件
277
+ * @param eventType 事件类型
278
+ * @param event 事件数据
279
+ */
280
+ emitAsync<T>(eventType: string, event: T): Promise<void>;
281
+ /**
282
+ * 监听事件
283
+ * @param eventType 事件类型
284
+ * @param handler 事件处理器
285
+ * @returns 监听器ID
286
+ */
287
+ on<T>(eventType: string, handler: (event: T) => void): string;
288
+ /**
289
+ * 一次性监听事件
290
+ * @param eventType 事件类型
291
+ * @param handler 事件处理器
292
+ * @returns 监听器ID
293
+ */
294
+ once<T>(eventType: string, handler: (event: T) => void): string;
295
+ /**
296
+ * 移除事件监听器
297
+ * @param eventType 事件类型
298
+ * @param listenerId 监听器ID
299
+ */
300
+ off(eventType: string, listenerId: string): void;
301
+ /**
302
+ * 批量操作实体
303
+ * @param entities 实体数组
304
+ * @returns 批量操作器
305
+ */
306
+ batch(entities: Entity[]): EntityBatchOperator;
307
+ /**
308
+ * 获取场景统计信息
309
+ * @returns 统计信息
310
+ */
311
+ getStats(): {
312
+ entityCount: number;
313
+ systemCount: number;
314
+ componentStats: Map<string, any>;
315
+ queryStats: any;
316
+ eventStats: Map<string, any>;
317
+ };
318
+ }
319
+ /**
320
+ * 实体批量操作器
321
+ * 提供对多个实体的批量操作
322
+ */
323
+ export declare class EntityBatchOperator {
324
+ private entities;
325
+ constructor(entities: Entity[]);
326
+ /**
327
+ * 批量添加组件
328
+ * @param component 组件实例
329
+ * @returns 批量操作器
330
+ */
331
+ addComponent<T extends Component>(component: T): EntityBatchOperator;
332
+ /**
333
+ * 批量移除组件
334
+ * @param componentType 组件类型
335
+ * @returns 批量操作器
336
+ */
337
+ removeComponent<T extends Component>(componentType: ComponentType<T>): EntityBatchOperator;
338
+ /**
339
+ * 批量设置活跃状态
340
+ * @param active 是否活跃
341
+ * @returns 批量操作器
342
+ */
343
+ setActive(active: boolean): EntityBatchOperator;
344
+ /**
345
+ * 批量设置标签
346
+ * @param tag 标签
347
+ * @returns 批量操作器
348
+ */
349
+ setTag(tag: number): EntityBatchOperator;
350
+ /**
351
+ * 批量执行操作
352
+ * @param operation 操作函数
353
+ * @returns 批量操作器
354
+ */
355
+ forEach(operation: (entity: Entity, index: number) => void): EntityBatchOperator;
356
+ /**
357
+ * 过滤实体
358
+ * @param predicate 过滤条件
359
+ * @returns 新的批量操作器
360
+ */
361
+ filter(predicate: (entity: Entity) => boolean): EntityBatchOperator;
362
+ /**
363
+ * 获取实体数组
364
+ * @returns 实体数组
365
+ */
366
+ toArray(): Entity[];
367
+ /**
368
+ * 获取实体数量
369
+ * @returns 实体数量
370
+ */
371
+ count(): number;
372
+ }
373
+ /**
374
+ * 创建ECS流式API实例
375
+ * @param scene 场景
376
+ * @param querySystem 查询系统
377
+ * @param eventSystem 事件系统
378
+ * @returns ECS流式API实例
379
+ */
380
+ export declare function createECSAPI(scene: Scene, querySystem: QuerySystem, eventSystem: TypeSafeEventSystem): ECSFluentAPI;
381
+ /**
382
+ * 全局ECS流式API实例(需要在使用前初始化)
383
+ */
384
+ export declare let ECS: ECSFluentAPI;
385
+ /**
386
+ * 初始化全局ECS API
387
+ * @param scene 场景
388
+ * @param querySystem 查询系统
389
+ * @param eventSystem 事件系统
390
+ */
391
+ export declare function initializeECS(scene: Scene, querySystem: QuerySystem, eventSystem: TypeSafeEventSystem): void;
392
+ //# sourceMappingURL=FluentAPI.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FluentAPI.d.ts","sourceRoot":"","sources":["../../../src/ECS/Core/FluentAPI.ts"],"names":[],"mappings":"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"}