@esengine/ecs-framework 2.1.28 → 2.1.30

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 (290) hide show
  1. package/bin/Core.d.ts +279 -0
  2. package/bin/Core.d.ts.map +1 -0
  3. package/bin/Core.js +400 -0
  4. package/bin/Core.js.map +1 -0
  5. package/bin/ECS/Component.d.ts +120 -0
  6. package/bin/ECS/Component.d.ts.map +1 -0
  7. package/bin/ECS/Component.js +129 -0
  8. package/bin/ECS/Component.js.map +1 -0
  9. package/bin/ECS/Components/IUpdatable.d.ts +22 -0
  10. package/bin/ECS/Components/IUpdatable.d.ts.map +1 -0
  11. package/bin/ECS/Components/IUpdatable.js +17 -0
  12. package/bin/ECS/Components/IUpdatable.js.map +1 -0
  13. package/bin/ECS/Components/SceneComponent.d.ts +40 -0
  14. package/bin/ECS/Components/SceneComponent.d.ts.map +1 -0
  15. package/bin/ECS/Components/SceneComponent.js +57 -0
  16. package/bin/ECS/Components/SceneComponent.js.map +1 -0
  17. package/bin/ECS/Core/ArchetypeSystem.d.ts +100 -0
  18. package/bin/ECS/Core/ArchetypeSystem.d.ts.map +1 -0
  19. package/bin/ECS/Core/ArchetypeSystem.js +193 -0
  20. package/bin/ECS/Core/ArchetypeSystem.js.map +1 -0
  21. package/bin/ECS/Core/ComponentIndex.d.ts +151 -0
  22. package/bin/ECS/Core/ComponentIndex.d.ts.map +1 -0
  23. package/bin/ECS/Core/ComponentIndex.js +405 -0
  24. package/bin/ECS/Core/ComponentIndex.js.map +1 -0
  25. package/bin/ECS/Core/ComponentPool.d.ts +88 -0
  26. package/bin/ECS/Core/ComponentPool.d.ts.map +1 -0
  27. package/bin/ECS/Core/ComponentPool.js +159 -0
  28. package/bin/ECS/Core/ComponentPool.js.map +1 -0
  29. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.d.ts +92 -0
  30. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.d.ts.map +1 -0
  31. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.js +167 -0
  32. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.js.map +1 -0
  33. package/bin/ECS/Core/ComponentStorage.d.ts +233 -0
  34. package/bin/ECS/Core/ComponentStorage.d.ts.map +1 -0
  35. package/bin/ECS/Core/ComponentStorage.js +463 -0
  36. package/bin/ECS/Core/ComponentStorage.js.map +1 -0
  37. package/bin/ECS/Core/DirtyTrackingSystem.d.ts +197 -0
  38. package/bin/ECS/Core/DirtyTrackingSystem.d.ts.map +1 -0
  39. package/bin/ECS/Core/DirtyTrackingSystem.js +297 -0
  40. package/bin/ECS/Core/DirtyTrackingSystem.js.map +1 -0
  41. package/bin/ECS/Core/EntityManager.d.ts +379 -0
  42. package/bin/ECS/Core/EntityManager.d.ts.map +1 -0
  43. package/bin/ECS/Core/EntityManager.js +686 -0
  44. package/bin/ECS/Core/EntityManager.js.map +1 -0
  45. package/bin/ECS/Core/EventBus.d.ts +218 -0
  46. package/bin/ECS/Core/EventBus.d.ts.map +1 -0
  47. package/bin/ECS/Core/EventBus.js +402 -0
  48. package/bin/ECS/Core/EventBus.js.map +1 -0
  49. package/bin/ECS/Core/EventSystem.d.ts +237 -0
  50. package/bin/ECS/Core/EventSystem.d.ts.map +1 -0
  51. package/bin/ECS/Core/EventSystem.js +478 -0
  52. package/bin/ECS/Core/EventSystem.js.map +1 -0
  53. package/bin/ECS/Core/Events/index.d.ts +3 -0
  54. package/bin/ECS/Core/Events/index.d.ts.map +1 -0
  55. package/bin/ECS/Core/Events/index.js +3 -0
  56. package/bin/ECS/Core/Events/index.js.map +1 -0
  57. package/bin/ECS/Core/FluentAPI/ComponentBuilder.d.ts +35 -0
  58. package/bin/ECS/Core/FluentAPI/ComponentBuilder.d.ts.map +1 -0
  59. package/bin/ECS/Core/FluentAPI/ComponentBuilder.js +48 -0
  60. package/bin/ECS/Core/FluentAPI/ComponentBuilder.js.map +1 -0
  61. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.d.ts +135 -0
  62. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.d.ts.map +1 -0
  63. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.js +166 -0
  64. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.js.map +1 -0
  65. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.d.ts +58 -0
  66. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.d.ts.map +1 -0
  67. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.js +85 -0
  68. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.js.map +1 -0
  69. package/bin/ECS/Core/FluentAPI/EntityBuilder.d.ts +110 -0
  70. package/bin/ECS/Core/FluentAPI/EntityBuilder.d.ts.map +1 -0
  71. package/bin/ECS/Core/FluentAPI/EntityBuilder.js +174 -0
  72. package/bin/ECS/Core/FluentAPI/EntityBuilder.js.map +1 -0
  73. package/bin/ECS/Core/FluentAPI/SceneBuilder.d.ts +53 -0
  74. package/bin/ECS/Core/FluentAPI/SceneBuilder.d.ts.map +1 -0
  75. package/bin/ECS/Core/FluentAPI/SceneBuilder.js +79 -0
  76. package/bin/ECS/Core/FluentAPI/SceneBuilder.js.map +1 -0
  77. package/bin/ECS/Core/FluentAPI/index.d.ts +6 -0
  78. package/bin/ECS/Core/FluentAPI/index.d.ts.map +1 -0
  79. package/bin/ECS/Core/FluentAPI/index.js +6 -0
  80. package/bin/ECS/Core/FluentAPI/index.js.map +1 -0
  81. package/bin/ECS/Core/FluentAPI.d.ts +2 -0
  82. package/bin/ECS/Core/FluentAPI.d.ts.map +1 -0
  83. package/bin/ECS/Core/FluentAPI.js +3 -0
  84. package/bin/ECS/Core/FluentAPI.js.map +1 -0
  85. package/bin/ECS/Core/Performance/index.d.ts +4 -0
  86. package/bin/ECS/Core/Performance/index.d.ts.map +1 -0
  87. package/bin/ECS/Core/Performance/index.js +4 -0
  88. package/bin/ECS/Core/Performance/index.js.map +1 -0
  89. package/bin/ECS/Core/Query/index.d.ts +4 -0
  90. package/bin/ECS/Core/Query/index.d.ts.map +1 -0
  91. package/bin/ECS/Core/Query/index.js +4 -0
  92. package/bin/ECS/Core/Query/index.js.map +1 -0
  93. package/bin/ECS/Core/QuerySystem.d.ts +438 -0
  94. package/bin/ECS/Core/QuerySystem.d.ts.map +1 -0
  95. package/bin/ECS/Core/QuerySystem.js +974 -0
  96. package/bin/ECS/Core/QuerySystem.js.map +1 -0
  97. package/bin/ECS/Core/SoAStorage.d.ts +97 -0
  98. package/bin/ECS/Core/SoAStorage.d.ts.map +1 -0
  99. package/bin/ECS/Core/SoAStorage.js +548 -0
  100. package/bin/ECS/Core/SoAStorage.js.map +1 -0
  101. package/bin/ECS/Core/Storage/index.d.ts +4 -0
  102. package/bin/ECS/Core/Storage/index.d.ts.map +1 -0
  103. package/bin/ECS/Core/Storage/index.js +4 -0
  104. package/bin/ECS/Core/Storage/index.js.map +1 -0
  105. package/bin/ECS/CoreEvents.d.ts +131 -0
  106. package/bin/ECS/CoreEvents.d.ts.map +1 -0
  107. package/bin/ECS/CoreEvents.js +163 -0
  108. package/bin/ECS/CoreEvents.js.map +1 -0
  109. package/bin/ECS/Entity.d.ts +455 -0
  110. package/bin/ECS/Entity.d.ts.map +1 -0
  111. package/bin/ECS/Entity.js +837 -0
  112. package/bin/ECS/Entity.js.map +1 -0
  113. package/bin/ECS/Scene.d.ts +225 -0
  114. package/bin/ECS/Scene.d.ts.map +1 -0
  115. package/bin/ECS/Scene.js +325 -0
  116. package/bin/ECS/Scene.js.map +1 -0
  117. package/bin/ECS/Systems/EntitySystem.d.ts +200 -0
  118. package/bin/ECS/Systems/EntitySystem.d.ts.map +1 -0
  119. package/bin/ECS/Systems/EntitySystem.js +431 -0
  120. package/bin/ECS/Systems/EntitySystem.js.map +1 -0
  121. package/bin/ECS/Systems/IntervalSystem.d.ts +33 -0
  122. package/bin/ECS/Systems/IntervalSystem.d.ts.map +1 -0
  123. package/bin/ECS/Systems/IntervalSystem.js +50 -0
  124. package/bin/ECS/Systems/IntervalSystem.js.map +1 -0
  125. package/bin/ECS/Systems/PassiveSystem.d.ts +17 -0
  126. package/bin/ECS/Systems/PassiveSystem.d.ts.map +1 -0
  127. package/bin/ECS/Systems/PassiveSystem.js +19 -0
  128. package/bin/ECS/Systems/PassiveSystem.js.map +1 -0
  129. package/bin/ECS/Systems/ProcessingSystem.d.ts +21 -0
  130. package/bin/ECS/Systems/ProcessingSystem.d.ts.map +1 -0
  131. package/bin/ECS/Systems/ProcessingSystem.js +20 -0
  132. package/bin/ECS/Systems/ProcessingSystem.js.map +1 -0
  133. package/bin/ECS/Systems/index.d.ts +5 -0
  134. package/bin/ECS/Systems/index.d.ts.map +1 -0
  135. package/bin/ECS/Systems/index.js +6 -0
  136. package/bin/ECS/Systems/index.js.map +1 -0
  137. package/bin/ECS/Utils/BigIntCompatibility.d.ts +164 -0
  138. package/bin/ECS/Utils/BigIntCompatibility.d.ts.map +1 -0
  139. package/bin/ECS/Utils/BigIntCompatibility.js +578 -0
  140. package/bin/ECS/Utils/BigIntCompatibility.js.map +1 -0
  141. package/bin/ECS/Utils/Bits.d.ts +163 -0
  142. package/bin/ECS/Utils/Bits.d.ts.map +1 -0
  143. package/bin/ECS/Utils/Bits.js +286 -0
  144. package/bin/ECS/Utils/Bits.js.map +1 -0
  145. package/bin/ECS/Utils/ComponentTypeManager.d.ts +50 -0
  146. package/bin/ECS/Utils/ComponentTypeManager.d.ts.map +1 -0
  147. package/bin/ECS/Utils/ComponentTypeManager.js +84 -0
  148. package/bin/ECS/Utils/ComponentTypeManager.js.map +1 -0
  149. package/bin/ECS/Utils/EntityList.d.ts +108 -0
  150. package/bin/ECS/Utils/EntityList.d.ts.map +1 -0
  151. package/bin/ECS/Utils/EntityList.js +262 -0
  152. package/bin/ECS/Utils/EntityList.js.map +1 -0
  153. package/bin/ECS/Utils/EntityProcessorList.d.ts +56 -0
  154. package/bin/ECS/Utils/EntityProcessorList.d.ts.map +1 -0
  155. package/bin/ECS/Utils/EntityProcessorList.js +102 -0
  156. package/bin/ECS/Utils/EntityProcessorList.js.map +1 -0
  157. package/bin/ECS/Utils/IdentifierPool.d.ts +203 -0
  158. package/bin/ECS/Utils/IdentifierPool.d.ts.map +1 -0
  159. package/bin/ECS/Utils/IdentifierPool.js +325 -0
  160. package/bin/ECS/Utils/IdentifierPool.js.map +1 -0
  161. package/bin/ECS/Utils/Matcher.d.ts +143 -0
  162. package/bin/ECS/Utils/Matcher.d.ts.map +1 -0
  163. package/bin/ECS/Utils/Matcher.js +249 -0
  164. package/bin/ECS/Utils/Matcher.js.map +1 -0
  165. package/bin/ECS/Utils/index.d.ts +8 -0
  166. package/bin/ECS/Utils/index.d.ts.map +1 -0
  167. package/bin/ECS/Utils/index.js +9 -0
  168. package/bin/ECS/Utils/index.js.map +1 -0
  169. package/bin/ECS/index.d.ts +12 -0
  170. package/bin/ECS/index.d.ts.map +1 -0
  171. package/bin/ECS/index.js +12 -0
  172. package/bin/ECS/index.js.map +1 -0
  173. package/bin/Types/index.d.ts +471 -0
  174. package/bin/Types/index.d.ts.map +1 -0
  175. package/bin/Types/index.js +5 -0
  176. package/bin/Types/index.js.map +1 -0
  177. package/bin/Utils/Debug/ComponentDataCollector.d.ts +28 -0
  178. package/bin/Utils/Debug/ComponentDataCollector.d.ts.map +1 -0
  179. package/bin/Utils/Debug/ComponentDataCollector.js +248 -0
  180. package/bin/Utils/Debug/ComponentDataCollector.js.map +1 -0
  181. package/bin/Utils/Debug/DebugDataFormatter.d.ts +22 -0
  182. package/bin/Utils/Debug/DebugDataFormatter.d.ts.map +1 -0
  183. package/bin/Utils/Debug/DebugDataFormatter.js +117 -0
  184. package/bin/Utils/Debug/DebugDataFormatter.js.map +1 -0
  185. package/bin/Utils/Debug/DebugManager.d.ts +104 -0
  186. package/bin/Utils/Debug/DebugManager.d.ts.map +1 -0
  187. package/bin/Utils/Debug/DebugManager.js +647 -0
  188. package/bin/Utils/Debug/DebugManager.js.map +1 -0
  189. package/bin/Utils/Debug/EntityDataCollector.d.ts +92 -0
  190. package/bin/Utils/Debug/EntityDataCollector.d.ts.map +1 -0
  191. package/bin/Utils/Debug/EntityDataCollector.js +864 -0
  192. package/bin/Utils/Debug/EntityDataCollector.js.map +1 -0
  193. package/bin/Utils/Debug/PerformanceDataCollector.d.ts +32 -0
  194. package/bin/Utils/Debug/PerformanceDataCollector.d.ts.map +1 -0
  195. package/bin/Utils/Debug/PerformanceDataCollector.js +217 -0
  196. package/bin/Utils/Debug/PerformanceDataCollector.js.map +1 -0
  197. package/bin/Utils/Debug/SceneDataCollector.d.ts +16 -0
  198. package/bin/Utils/Debug/SceneDataCollector.d.ts.map +1 -0
  199. package/bin/Utils/Debug/SceneDataCollector.js +46 -0
  200. package/bin/Utils/Debug/SceneDataCollector.js.map +1 -0
  201. package/bin/Utils/Debug/SystemDataCollector.d.ts +11 -0
  202. package/bin/Utils/Debug/SystemDataCollector.d.ts.map +1 -0
  203. package/bin/Utils/Debug/SystemDataCollector.js +59 -0
  204. package/bin/Utils/Debug/SystemDataCollector.js.map +1 -0
  205. package/bin/Utils/Debug/WebSocketManager.d.ts +59 -0
  206. package/bin/Utils/Debug/WebSocketManager.d.ts.map +1 -0
  207. package/bin/Utils/Debug/WebSocketManager.js +148 -0
  208. package/bin/Utils/Debug/WebSocketManager.js.map +1 -0
  209. package/bin/Utils/Debug/index.d.ts +8 -0
  210. package/bin/Utils/Debug/index.d.ts.map +1 -0
  211. package/bin/Utils/Debug/index.js +8 -0
  212. package/bin/Utils/Debug/index.js.map +1 -0
  213. package/bin/Utils/Emitter.d.ts +43 -0
  214. package/bin/Utils/Emitter.d.ts.map +1 -0
  215. package/bin/Utils/Emitter.js +69 -0
  216. package/bin/Utils/Emitter.js.map +1 -0
  217. package/bin/Utils/Extensions/NumberExtension.d.ts +13 -0
  218. package/bin/Utils/Extensions/NumberExtension.d.ts.map +1 -0
  219. package/bin/Utils/Extensions/NumberExtension.js +17 -0
  220. package/bin/Utils/Extensions/NumberExtension.js.map +1 -0
  221. package/bin/Utils/Extensions/TypeUtils.d.ts +13 -0
  222. package/bin/Utils/Extensions/TypeUtils.d.ts.map +1 -0
  223. package/bin/Utils/Extensions/TypeUtils.js +15 -0
  224. package/bin/Utils/Extensions/TypeUtils.js.map +1 -0
  225. package/bin/Utils/Extensions/index.d.ts +3 -0
  226. package/bin/Utils/Extensions/index.d.ts.map +1 -0
  227. package/bin/Utils/Extensions/index.js +4 -0
  228. package/bin/Utils/Extensions/index.js.map +1 -0
  229. package/bin/Utils/GlobalManager.d.ts +32 -0
  230. package/bin/Utils/GlobalManager.d.ts.map +1 -0
  231. package/bin/Utils/GlobalManager.js +53 -0
  232. package/bin/Utils/GlobalManager.js.map +1 -0
  233. package/bin/Utils/Logger.d.ts +156 -0
  234. package/bin/Utils/Logger.d.ts.map +1 -0
  235. package/bin/Utils/Logger.js +256 -0
  236. package/bin/Utils/Logger.js.map +1 -0
  237. package/bin/Utils/PerformanceMonitor.d.ts +211 -0
  238. package/bin/Utils/PerformanceMonitor.d.ts.map +1 -0
  239. package/bin/Utils/PerformanceMonitor.js +270 -0
  240. package/bin/Utils/PerformanceMonitor.js.map +1 -0
  241. package/bin/Utils/Pool/IPoolable.d.ts +29 -0
  242. package/bin/Utils/Pool/IPoolable.d.ts.map +1 -0
  243. package/bin/Utils/Pool/IPoolable.js +2 -0
  244. package/bin/Utils/Pool/IPoolable.js.map +1 -0
  245. package/bin/Utils/Pool/Pool.d.ts +109 -0
  246. package/bin/Utils/Pool/Pool.d.ts.map +1 -0
  247. package/bin/Utils/Pool/Pool.js +238 -0
  248. package/bin/Utils/Pool/Pool.js.map +1 -0
  249. package/bin/Utils/Pool/PoolManager.d.ts +91 -0
  250. package/bin/Utils/Pool/PoolManager.d.ts.map +1 -0
  251. package/bin/Utils/Pool/PoolManager.js +197 -0
  252. package/bin/Utils/Pool/PoolManager.js.map +1 -0
  253. package/bin/Utils/Pool/index.d.ts +4 -0
  254. package/bin/Utils/Pool/index.d.ts.map +1 -0
  255. package/bin/Utils/Pool/index.js +4 -0
  256. package/bin/Utils/Pool/index.js.map +1 -0
  257. package/bin/Utils/Time.d.ts +47 -0
  258. package/bin/Utils/Time.d.ts.map +1 -0
  259. package/bin/Utils/Time.js +64 -0
  260. package/bin/Utils/Time.js.map +1 -0
  261. package/bin/Utils/Timers/ITimer.d.ts +16 -0
  262. package/bin/Utils/Timers/ITimer.d.ts.map +1 -0
  263. package/bin/Utils/Timers/ITimer.js +2 -0
  264. package/bin/Utils/Timers/ITimer.js.map +1 -0
  265. package/bin/Utils/Timers/Timer.d.ts +30 -0
  266. package/bin/Utils/Timers/Timer.d.ts.map +1 -0
  267. package/bin/Utils/Timers/Timer.js +58 -0
  268. package/bin/Utils/Timers/Timer.js.map +1 -0
  269. package/bin/Utils/Timers/TimerManager.d.ts +19 -0
  270. package/bin/Utils/Timers/TimerManager.d.ts.map +1 -0
  271. package/bin/Utils/Timers/TimerManager.js +33 -0
  272. package/bin/Utils/Timers/TimerManager.js.map +1 -0
  273. package/bin/Utils/index.d.ts +9 -0
  274. package/bin/Utils/index.d.ts.map +1 -0
  275. package/bin/Utils/index.js +9 -0
  276. package/bin/Utils/index.js.map +1 -0
  277. package/bin/index.d.ts +16 -0
  278. package/bin/index.d.ts.map +1 -0
  279. package/bin/index.js +19 -0
  280. package/bin/index.js.map +1 -0
  281. package/package.json +52 -25
  282. package/.npmignore +0 -40
  283. package/LICENSE +0 -201
  284. package/README.md +0 -438
  285. package/SECURITY.md +0 -53
  286. package/index.cjs +0 -2
  287. package/index.cjs.map +0 -1
  288. package/index.d.ts +0 -6383
  289. package/index.mjs +0 -2
  290. package/index.mjs.map +0 -1
@@ -0,0 +1,135 @@
1
+ import { Entity } from '../../Entity';
2
+ import { Component } from '../../Component';
3
+ import { Scene } from '../../Scene';
4
+ import { ComponentType } from '../ComponentStorage';
5
+ import { QuerySystem, QueryBuilder } from '../QuerySystem';
6
+ import { TypeSafeEventSystem } from '../EventSystem';
7
+ import { EntityBuilder } from './EntityBuilder';
8
+ import { SceneBuilder } from './SceneBuilder';
9
+ import { ComponentBuilder } from './ComponentBuilder';
10
+ import { EntityBatchOperator } from './EntityBatchOperator';
11
+ /**
12
+ * ECS流式API主入口
13
+ * 提供统一的流式接口
14
+ */
15
+ export declare class ECSFluentAPI {
16
+ private scene;
17
+ private querySystem;
18
+ private eventSystem;
19
+ constructor(scene: Scene, querySystem: QuerySystem, eventSystem: TypeSafeEventSystem);
20
+ /**
21
+ * 创建实体构建器
22
+ * @returns 实体构建器
23
+ */
24
+ createEntity(): EntityBuilder;
25
+ /**
26
+ * 创建场景构建器
27
+ * @returns 场景构建器
28
+ */
29
+ createScene(): SceneBuilder;
30
+ /**
31
+ * 创建组件构建器
32
+ * @param componentClass 组件类
33
+ * @param args 构造参数
34
+ * @returns 组件构建器
35
+ */
36
+ createComponent<T extends Component>(componentClass: new (...args: unknown[]) => T, ...args: unknown[]): ComponentBuilder<T>;
37
+ /**
38
+ * 创建查询构建器
39
+ * @returns 查询构建器
40
+ */
41
+ query(): QueryBuilder;
42
+ /**
43
+ * 查找实体(简化版)
44
+ * @param componentTypes 组件类型
45
+ * @returns 实体数组
46
+ */
47
+ find(...componentTypes: ComponentType[]): Entity[];
48
+ /**
49
+ * 查找第一个匹配的实体
50
+ * @param componentTypes 组件类型
51
+ * @returns 实体或null
52
+ */
53
+ findFirst(...componentTypes: ComponentType[]): Entity | null;
54
+ /**
55
+ * 按名称查找实体
56
+ * @param name 实体名称
57
+ * @returns 实体或null
58
+ */
59
+ findByName(name: string): Entity | null;
60
+ /**
61
+ * 按标签查找实体
62
+ * @param tag 标签
63
+ * @returns 实体数组
64
+ */
65
+ findByTag(tag: number): Entity[];
66
+ /**
67
+ * 触发事件
68
+ * @param eventType 事件类型
69
+ * @param event 事件数据
70
+ */
71
+ emit<T>(eventType: string, event: T): void;
72
+ /**
73
+ * 异步触发事件
74
+ * @param eventType 事件类型
75
+ * @param event 事件数据
76
+ */
77
+ emitAsync<T>(eventType: string, event: T): Promise<void>;
78
+ /**
79
+ * 监听事件
80
+ * @param eventType 事件类型
81
+ * @param handler 事件处理器
82
+ * @returns 监听器ID
83
+ */
84
+ on<T>(eventType: string, handler: (event: T) => void): string;
85
+ /**
86
+ * 一次性监听事件
87
+ * @param eventType 事件类型
88
+ * @param handler 事件处理器
89
+ * @returns 监听器ID
90
+ */
91
+ once<T>(eventType: string, handler: (event: T) => void): string;
92
+ /**
93
+ * 移除事件监听器
94
+ * @param eventType 事件类型
95
+ * @param listenerId 监听器ID
96
+ */
97
+ off(eventType: string, listenerId: string): void;
98
+ /**
99
+ * 批量操作实体
100
+ * @param entities 实体数组
101
+ * @returns 批量操作器
102
+ */
103
+ batch(entities: Entity[]): EntityBatchOperator;
104
+ /**
105
+ * 获取场景统计信息
106
+ * @returns 统计信息
107
+ */
108
+ getStats(): {
109
+ entityCount: number;
110
+ systemCount: number;
111
+ componentStats: Map<string, any>;
112
+ queryStats: unknown;
113
+ eventStats: Map<string, any>;
114
+ };
115
+ }
116
+ /**
117
+ * 创建ECS流式API实例
118
+ * @param scene 场景
119
+ * @param querySystem 查询系统
120
+ * @param eventSystem 事件系统
121
+ * @returns ECS流式API实例
122
+ */
123
+ export declare function createECSAPI(scene: Scene, querySystem: QuerySystem, eventSystem: TypeSafeEventSystem): ECSFluentAPI;
124
+ /**
125
+ * 全局ECS流式API实例(需要在使用前初始化)
126
+ */
127
+ export declare let ECS: ECSFluentAPI;
128
+ /**
129
+ * 初始化全局ECS API
130
+ * @param scene 场景
131
+ * @param querySystem 查询系统
132
+ * @param eventSystem 事件系统
133
+ */
134
+ export declare function initializeECS(scene: Scene, querySystem: QuerySystem, eventSystem: TypeSafeEventSystem): void;
135
+ //# sourceMappingURL=ECSFluentAPI.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ECSFluentAPI.d.ts","sourceRoot":"","sources":["../../../../src/ECS/Core/FluentAPI/ECSFluentAPI.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,166 @@
1
+ import { QueryBuilder } from '../QuerySystem';
2
+ import { EntityBuilder } from './EntityBuilder';
3
+ import { SceneBuilder } from './SceneBuilder';
4
+ import { ComponentBuilder } from './ComponentBuilder';
5
+ import { EntityBatchOperator } from './EntityBatchOperator';
6
+ /**
7
+ * ECS流式API主入口
8
+ * 提供统一的流式接口
9
+ */
10
+ export class ECSFluentAPI {
11
+ constructor(scene, querySystem, eventSystem) {
12
+ this.scene = scene;
13
+ this.querySystem = querySystem;
14
+ this.eventSystem = eventSystem;
15
+ }
16
+ /**
17
+ * 创建实体构建器
18
+ * @returns 实体构建器
19
+ */
20
+ createEntity() {
21
+ return new EntityBuilder(this.scene, this.scene.componentStorageManager);
22
+ }
23
+ /**
24
+ * 创建场景构建器
25
+ * @returns 场景构建器
26
+ */
27
+ createScene() {
28
+ return new SceneBuilder();
29
+ }
30
+ /**
31
+ * 创建组件构建器
32
+ * @param componentClass 组件类
33
+ * @param args 构造参数
34
+ * @returns 组件构建器
35
+ */
36
+ createComponent(componentClass, ...args) {
37
+ return new ComponentBuilder(componentClass, ...args);
38
+ }
39
+ /**
40
+ * 创建查询构建器
41
+ * @returns 查询构建器
42
+ */
43
+ query() {
44
+ return new QueryBuilder(this.querySystem);
45
+ }
46
+ /**
47
+ * 查找实体(简化版)
48
+ * @param componentTypes 组件类型
49
+ * @returns 实体数组
50
+ */
51
+ find(...componentTypes) {
52
+ return this.querySystem.queryAll(...componentTypes).entities;
53
+ }
54
+ /**
55
+ * 查找第一个匹配的实体
56
+ * @param componentTypes 组件类型
57
+ * @returns 实体或null
58
+ */
59
+ findFirst(...componentTypes) {
60
+ const result = this.querySystem.queryAll(...componentTypes);
61
+ return result.entities.length > 0 ? result.entities[0] : null;
62
+ }
63
+ /**
64
+ * 按名称查找实体
65
+ * @param name 实体名称
66
+ * @returns 实体或null
67
+ */
68
+ findByName(name) {
69
+ return this.scene.getEntityByName(name);
70
+ }
71
+ /**
72
+ * 按标签查找实体
73
+ * @param tag 标签
74
+ * @returns 实体数组
75
+ */
76
+ findByTag(tag) {
77
+ return this.scene.getEntitiesByTag(tag);
78
+ }
79
+ /**
80
+ * 触发事件
81
+ * @param eventType 事件类型
82
+ * @param event 事件数据
83
+ */
84
+ emit(eventType, event) {
85
+ this.eventSystem.emitSync(eventType, event);
86
+ }
87
+ /**
88
+ * 异步触发事件
89
+ * @param eventType 事件类型
90
+ * @param event 事件数据
91
+ */
92
+ async emitAsync(eventType, event) {
93
+ await this.eventSystem.emit(eventType, event);
94
+ }
95
+ /**
96
+ * 监听事件
97
+ * @param eventType 事件类型
98
+ * @param handler 事件处理器
99
+ * @returns 监听器ID
100
+ */
101
+ on(eventType, handler) {
102
+ return this.eventSystem.on(eventType, handler);
103
+ }
104
+ /**
105
+ * 一次性监听事件
106
+ * @param eventType 事件类型
107
+ * @param handler 事件处理器
108
+ * @returns 监听器ID
109
+ */
110
+ once(eventType, handler) {
111
+ return this.eventSystem.once(eventType, handler);
112
+ }
113
+ /**
114
+ * 移除事件监听器
115
+ * @param eventType 事件类型
116
+ * @param listenerId 监听器ID
117
+ */
118
+ off(eventType, listenerId) {
119
+ this.eventSystem.off(eventType, listenerId);
120
+ }
121
+ /**
122
+ * 批量操作实体
123
+ * @param entities 实体数组
124
+ * @returns 批量操作器
125
+ */
126
+ batch(entities) {
127
+ return new EntityBatchOperator(entities);
128
+ }
129
+ /**
130
+ * 获取场景统计信息
131
+ * @returns 统计信息
132
+ */
133
+ getStats() {
134
+ return {
135
+ entityCount: this.scene.entities.count,
136
+ systemCount: this.scene.systems.length,
137
+ componentStats: this.scene.componentStorageManager.getAllStats(),
138
+ queryStats: this.querySystem.getStats(),
139
+ eventStats: this.eventSystem.getStats()
140
+ };
141
+ }
142
+ }
143
+ /**
144
+ * 创建ECS流式API实例
145
+ * @param scene 场景
146
+ * @param querySystem 查询系统
147
+ * @param eventSystem 事件系统
148
+ * @returns ECS流式API实例
149
+ */
150
+ export function createECSAPI(scene, querySystem, eventSystem) {
151
+ return new ECSFluentAPI(scene, querySystem, eventSystem);
152
+ }
153
+ /**
154
+ * 全局ECS流式API实例(需要在使用前初始化)
155
+ */
156
+ export let ECS;
157
+ /**
158
+ * 初始化全局ECS API
159
+ * @param scene 场景
160
+ * @param querySystem 查询系统
161
+ * @param eventSystem 事件系统
162
+ */
163
+ export function initializeECS(scene, querySystem, eventSystem) {
164
+ ECS = createECSAPI(scene, querySystem, eventSystem);
165
+ }
166
+ //# sourceMappingURL=ECSFluentAPI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ECSFluentAPI.js","sourceRoot":"","sources":["../../../../src/ECS/Core/FluentAPI/ECSFluentAPI.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import { Entity } from '../../Entity';
2
+ import { Component } from '../../Component';
3
+ import { ComponentType } from '../ComponentStorage';
4
+ /**
5
+ * 实体批量操作器
6
+ * 提供对多个实体的批量操作
7
+ */
8
+ export declare class EntityBatchOperator {
9
+ private entities;
10
+ constructor(entities: Entity[]);
11
+ /**
12
+ * 批量添加组件
13
+ * @param component 组件实例
14
+ * @returns 批量操作器
15
+ */
16
+ addComponent<T extends Component>(component: T): EntityBatchOperator;
17
+ /**
18
+ * 批量移除组件
19
+ * @param componentType 组件类型
20
+ * @returns 批量操作器
21
+ */
22
+ removeComponent<T extends Component>(componentType: ComponentType<T>): EntityBatchOperator;
23
+ /**
24
+ * 批量设置活跃状态
25
+ * @param active 是否活跃
26
+ * @returns 批量操作器
27
+ */
28
+ setActive(active: boolean): EntityBatchOperator;
29
+ /**
30
+ * 批量设置标签
31
+ * @param tag 标签
32
+ * @returns 批量操作器
33
+ */
34
+ setTag(tag: number): EntityBatchOperator;
35
+ /**
36
+ * 批量执行操作
37
+ * @param operation 操作函数
38
+ * @returns 批量操作器
39
+ */
40
+ forEach(operation: (entity: Entity, index: number) => void): EntityBatchOperator;
41
+ /**
42
+ * 过滤实体
43
+ * @param predicate 过滤条件
44
+ * @returns 新的批量操作器
45
+ */
46
+ filter(predicate: (entity: Entity) => boolean): EntityBatchOperator;
47
+ /**
48
+ * 获取实体数组
49
+ * @returns 实体数组
50
+ */
51
+ toArray(): Entity[];
52
+ /**
53
+ * 获取实体数量
54
+ * @returns 实体数量
55
+ */
56
+ count(): number;
57
+ }
58
+ //# sourceMappingURL=EntityBatchOperator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EntityBatchOperator.d.ts","sourceRoot":"","sources":["../../../../src/ECS/Core/FluentAPI/EntityBatchOperator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;;GAGG;AACH,qBAAa,mBAAmB;IAC5B,OAAO,CAAC,QAAQ,CAAW;gBAEf,QAAQ,EAAE,MAAM,EAAE;IAI9B;;;;OAIG;IACI,YAAY,CAAC,CAAC,SAAS,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,mBAAmB;IAO3E;;;;OAIG;IACI,eAAe,CAAC,CAAC,SAAS,SAAS,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,mBAAmB;IAOjG;;;;OAIG;IACI,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,mBAAmB;IAOtD;;;;OAIG;IACI,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB;IAO/C;;;;OAIG;IACI,OAAO,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,mBAAmB;IAKvF;;;;OAIG;IACI,MAAM,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,GAAG,mBAAmB;IAI1E;;;OAGG;IACI,OAAO,IAAI,MAAM,EAAE;IAI1B;;;OAGG;IACI,KAAK,IAAI,MAAM;CAGzB"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * 实体批量操作器
3
+ * 提供对多个实体的批量操作
4
+ */
5
+ export class EntityBatchOperator {
6
+ constructor(entities) {
7
+ this.entities = entities;
8
+ }
9
+ /**
10
+ * 批量添加组件
11
+ * @param component 组件实例
12
+ * @returns 批量操作器
13
+ */
14
+ addComponent(component) {
15
+ for (const entity of this.entities) {
16
+ entity.addComponent(component);
17
+ }
18
+ return this;
19
+ }
20
+ /**
21
+ * 批量移除组件
22
+ * @param componentType 组件类型
23
+ * @returns 批量操作器
24
+ */
25
+ removeComponent(componentType) {
26
+ for (const entity of this.entities) {
27
+ entity.removeComponentByType(componentType);
28
+ }
29
+ return this;
30
+ }
31
+ /**
32
+ * 批量设置活跃状态
33
+ * @param active 是否活跃
34
+ * @returns 批量操作器
35
+ */
36
+ setActive(active) {
37
+ for (const entity of this.entities) {
38
+ entity.active = active;
39
+ }
40
+ return this;
41
+ }
42
+ /**
43
+ * 批量设置标签
44
+ * @param tag 标签
45
+ * @returns 批量操作器
46
+ */
47
+ setTag(tag) {
48
+ for (const entity of this.entities) {
49
+ entity.tag = tag;
50
+ }
51
+ return this;
52
+ }
53
+ /**
54
+ * 批量执行操作
55
+ * @param operation 操作函数
56
+ * @returns 批量操作器
57
+ */
58
+ forEach(operation) {
59
+ this.entities.forEach(operation);
60
+ return this;
61
+ }
62
+ /**
63
+ * 过滤实体
64
+ * @param predicate 过滤条件
65
+ * @returns 新的批量操作器
66
+ */
67
+ filter(predicate) {
68
+ return new EntityBatchOperator(this.entities.filter(predicate));
69
+ }
70
+ /**
71
+ * 获取实体数组
72
+ * @returns 实体数组
73
+ */
74
+ toArray() {
75
+ return this.entities.slice();
76
+ }
77
+ /**
78
+ * 获取实体数量
79
+ * @returns 实体数量
80
+ */
81
+ count() {
82
+ return this.entities.length;
83
+ }
84
+ }
85
+ //# sourceMappingURL=EntityBatchOperator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EntityBatchOperator.js","sourceRoot":"","sources":["../../../../src/ECS/Core/FluentAPI/EntityBatchOperator.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,OAAO,mBAAmB;IAG5B,YAAY,QAAkB;QAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACI,YAAY,CAAsB,SAAY;QACjD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACI,eAAe,CAAsB,aAA+B;QACvE,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjC,MAAM,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACI,SAAS,CAAC,MAAe;QAC5B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;QAC3B,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,GAAW;QACrB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjC,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;QACrB,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACI,OAAO,CAAC,SAAkD;QAC7D,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,SAAsC;QAChD,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IACpE,CAAC;IAED;;;OAGG;IACI,OAAO;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IAED;;;OAGG;IACI,KAAK;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAChC,CAAC;CACJ"}
@@ -0,0 +1,110 @@
1
+ import { Entity } from '../../Entity';
2
+ import { Component } from '../../Component';
3
+ import { Scene } from '../../Scene';
4
+ import { ComponentType, ComponentStorageManager } from '../ComponentStorage';
5
+ /**
6
+ * 实体构建器 - 提供流式API创建和配置实体
7
+ */
8
+ export declare class EntityBuilder {
9
+ private entity;
10
+ private scene;
11
+ private storageManager;
12
+ constructor(scene: Scene, storageManager: ComponentStorageManager);
13
+ /**
14
+ * 设置实体名称
15
+ * @param name 实体名称
16
+ * @returns 实体构建器
17
+ */
18
+ named(name: string): EntityBuilder;
19
+ /**
20
+ * 设置实体标签
21
+ * @param tag 标签
22
+ * @returns 实体构建器
23
+ */
24
+ tagged(tag: number): EntityBuilder;
25
+ /**
26
+ * 添加组件
27
+ * @param component 组件实例
28
+ * @returns 实体构建器
29
+ */
30
+ with<T extends Component>(component: T): EntityBuilder;
31
+ /**
32
+ * 添加多个组件
33
+ * @param components 组件数组
34
+ * @returns 实体构建器
35
+ */
36
+ withComponents(...components: Component[]): EntityBuilder;
37
+ /**
38
+ * 条件性添加组件
39
+ * @param condition 条件
40
+ * @param component 组件实例
41
+ * @returns 实体构建器
42
+ */
43
+ withIf<T extends Component>(condition: boolean, component: T): EntityBuilder;
44
+ /**
45
+ * 使用工厂函数创建并添加组件
46
+ * @param factory 组件工厂函数
47
+ * @returns 实体构建器
48
+ */
49
+ withFactory<T extends Component>(factory: () => T): EntityBuilder;
50
+ /**
51
+ * 配置组件属性
52
+ * @param componentType 组件类型
53
+ * @param configurator 配置函数
54
+ * @returns 实体构建器
55
+ */
56
+ configure<T extends Component>(componentType: ComponentType<T>, configurator: (component: T) => void): EntityBuilder;
57
+ /**
58
+ * 设置实体为启用状态
59
+ * @param enabled 是否启用
60
+ * @returns 实体构建器
61
+ */
62
+ enabled(enabled?: boolean): EntityBuilder;
63
+ /**
64
+ * 设置实体为活跃状态
65
+ * @param active 是否活跃
66
+ * @returns 实体构建器
67
+ */
68
+ active(active?: boolean): EntityBuilder;
69
+ /**
70
+ * 添加子实体
71
+ * @param childBuilder 子实体构建器
72
+ * @returns 实体构建器
73
+ */
74
+ withChild(childBuilder: EntityBuilder): EntityBuilder;
75
+ /**
76
+ * 批量添加子实体
77
+ * @param childBuilders 子实体构建器数组
78
+ * @returns 实体构建器
79
+ */
80
+ withChildren(...childBuilders: EntityBuilder[]): EntityBuilder;
81
+ /**
82
+ * 使用工厂函数创建子实体
83
+ * @param childFactory 子实体工厂函数
84
+ * @returns 实体构建器
85
+ */
86
+ withChildFactory(childFactory: (parent: Entity) => EntityBuilder): EntityBuilder;
87
+ /**
88
+ * 条件性添加子实体
89
+ * @param condition 条件
90
+ * @param childBuilder 子实体构建器
91
+ * @returns 实体构建器
92
+ */
93
+ withChildIf(condition: boolean, childBuilder: EntityBuilder): EntityBuilder;
94
+ /**
95
+ * 构建并返回实体
96
+ * @returns 构建的实体
97
+ */
98
+ build(): Entity;
99
+ /**
100
+ * 构建实体并添加到场景
101
+ * @returns 构建的实体
102
+ */
103
+ spawn(): Entity;
104
+ /**
105
+ * 克隆当前构建器
106
+ * @returns 新的实体构建器
107
+ */
108
+ clone(): EntityBuilder;
109
+ }
110
+ //# sourceMappingURL=EntityBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EntityBuilder.d.ts","sourceRoot":"","sources":["../../../../src/ECS/Core/FluentAPI/EntityBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE7E;;GAEG;AACH,qBAAa,aAAa;IACtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,cAAc,CAA0B;gBAEpC,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,uBAAuB;IAMjE;;;;OAIG;IACI,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa;IAKzC;;;;OAIG;IACI,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa;IAKzC;;;;OAIG;IACI,IAAI,CAAC,CAAC,SAAS,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,aAAa;IAK7D;;;;OAIG;IACI,cAAc,CAAC,GAAG,UAAU,EAAE,SAAS,EAAE,GAAG,aAAa;IAOhE;;;;;OAKG;IACI,MAAM,CAAC,CAAC,SAAS,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,GAAG,aAAa;IAOnF;;;;OAIG;IACI,WAAW,CAAC,CAAC,SAAS,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,aAAa;IAMxE;;;;;OAKG;IACI,SAAS,CAAC,CAAC,SAAS,SAAS,EAChC,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,EAC/B,YAAY,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,IAAI,GACrC,aAAa;IAQhB;;;;OAIG;IACI,OAAO,CAAC,OAAO,GAAE,OAAc,GAAG,aAAa;IAKtD;;;;OAIG;IACI,MAAM,CAAC,MAAM,GAAE,OAAc,GAAG,aAAa;IAKpD;;;;OAIG;IACI,SAAS,CAAC,YAAY,EAAE,aAAa,GAAG,aAAa;IAM5D;;;;OAIG;IACI,YAAY,CAAC,GAAG,aAAa,EAAE,aAAa,EAAE,GAAG,aAAa;IAQrE;;;;OAIG;IACI,gBAAgB,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,aAAa,GAAG,aAAa;IAOvF;;;;;OAKG;IACI,WAAW,CAAC,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,GAAG,aAAa;IAQlF;;;OAGG;IACI,KAAK,IAAI,MAAM;IAItB;;;OAGG;IACI,KAAK,IAAI,MAAM;IAKtB;;;OAGG;IACI,KAAK,IAAI,aAAa;CAMhC"}