@esengine/ecs-framework 2.1.30 → 2.1.32

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 (288) hide show
  1. package/index.cjs +2 -0
  2. package/index.cjs.map +1 -0
  3. package/index.d.ts +6357 -0
  4. package/index.mjs +2 -0
  5. package/index.mjs.map +1 -0
  6. package/index.umd.js +2 -0
  7. package/index.umd.js.map +1 -0
  8. package/package.json +27 -50
  9. package/bin/Core.d.ts +0 -279
  10. package/bin/Core.d.ts.map +0 -1
  11. package/bin/Core.js +0 -400
  12. package/bin/Core.js.map +0 -1
  13. package/bin/ECS/Component.d.ts +0 -120
  14. package/bin/ECS/Component.d.ts.map +0 -1
  15. package/bin/ECS/Component.js +0 -129
  16. package/bin/ECS/Component.js.map +0 -1
  17. package/bin/ECS/Components/IUpdatable.d.ts +0 -22
  18. package/bin/ECS/Components/IUpdatable.d.ts.map +0 -1
  19. package/bin/ECS/Components/IUpdatable.js +0 -17
  20. package/bin/ECS/Components/IUpdatable.js.map +0 -1
  21. package/bin/ECS/Components/SceneComponent.d.ts +0 -40
  22. package/bin/ECS/Components/SceneComponent.d.ts.map +0 -1
  23. package/bin/ECS/Components/SceneComponent.js +0 -57
  24. package/bin/ECS/Components/SceneComponent.js.map +0 -1
  25. package/bin/ECS/Core/ArchetypeSystem.d.ts +0 -100
  26. package/bin/ECS/Core/ArchetypeSystem.d.ts.map +0 -1
  27. package/bin/ECS/Core/ArchetypeSystem.js +0 -193
  28. package/bin/ECS/Core/ArchetypeSystem.js.map +0 -1
  29. package/bin/ECS/Core/ComponentIndex.d.ts +0 -151
  30. package/bin/ECS/Core/ComponentIndex.d.ts.map +0 -1
  31. package/bin/ECS/Core/ComponentIndex.js +0 -405
  32. package/bin/ECS/Core/ComponentIndex.js.map +0 -1
  33. package/bin/ECS/Core/ComponentPool.d.ts +0 -88
  34. package/bin/ECS/Core/ComponentPool.d.ts.map +0 -1
  35. package/bin/ECS/Core/ComponentPool.js +0 -159
  36. package/bin/ECS/Core/ComponentPool.js.map +0 -1
  37. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.d.ts +0 -92
  38. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.d.ts.map +0 -1
  39. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.js +0 -167
  40. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.js.map +0 -1
  41. package/bin/ECS/Core/ComponentStorage.d.ts +0 -233
  42. package/bin/ECS/Core/ComponentStorage.d.ts.map +0 -1
  43. package/bin/ECS/Core/ComponentStorage.js +0 -463
  44. package/bin/ECS/Core/ComponentStorage.js.map +0 -1
  45. package/bin/ECS/Core/DirtyTrackingSystem.d.ts +0 -197
  46. package/bin/ECS/Core/DirtyTrackingSystem.d.ts.map +0 -1
  47. package/bin/ECS/Core/DirtyTrackingSystem.js +0 -297
  48. package/bin/ECS/Core/DirtyTrackingSystem.js.map +0 -1
  49. package/bin/ECS/Core/EntityManager.d.ts +0 -379
  50. package/bin/ECS/Core/EntityManager.d.ts.map +0 -1
  51. package/bin/ECS/Core/EntityManager.js +0 -686
  52. package/bin/ECS/Core/EntityManager.js.map +0 -1
  53. package/bin/ECS/Core/EventBus.d.ts +0 -218
  54. package/bin/ECS/Core/EventBus.d.ts.map +0 -1
  55. package/bin/ECS/Core/EventBus.js +0 -402
  56. package/bin/ECS/Core/EventBus.js.map +0 -1
  57. package/bin/ECS/Core/EventSystem.d.ts +0 -237
  58. package/bin/ECS/Core/EventSystem.d.ts.map +0 -1
  59. package/bin/ECS/Core/EventSystem.js +0 -478
  60. package/bin/ECS/Core/EventSystem.js.map +0 -1
  61. package/bin/ECS/Core/Events/index.d.ts +0 -3
  62. package/bin/ECS/Core/Events/index.d.ts.map +0 -1
  63. package/bin/ECS/Core/Events/index.js +0 -3
  64. package/bin/ECS/Core/Events/index.js.map +0 -1
  65. package/bin/ECS/Core/FluentAPI/ComponentBuilder.d.ts +0 -35
  66. package/bin/ECS/Core/FluentAPI/ComponentBuilder.d.ts.map +0 -1
  67. package/bin/ECS/Core/FluentAPI/ComponentBuilder.js +0 -48
  68. package/bin/ECS/Core/FluentAPI/ComponentBuilder.js.map +0 -1
  69. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.d.ts +0 -135
  70. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.d.ts.map +0 -1
  71. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.js +0 -166
  72. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.js.map +0 -1
  73. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.d.ts +0 -58
  74. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.d.ts.map +0 -1
  75. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.js +0 -85
  76. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.js.map +0 -1
  77. package/bin/ECS/Core/FluentAPI/EntityBuilder.d.ts +0 -110
  78. package/bin/ECS/Core/FluentAPI/EntityBuilder.d.ts.map +0 -1
  79. package/bin/ECS/Core/FluentAPI/EntityBuilder.js +0 -174
  80. package/bin/ECS/Core/FluentAPI/EntityBuilder.js.map +0 -1
  81. package/bin/ECS/Core/FluentAPI/SceneBuilder.d.ts +0 -53
  82. package/bin/ECS/Core/FluentAPI/SceneBuilder.d.ts.map +0 -1
  83. package/bin/ECS/Core/FluentAPI/SceneBuilder.js +0 -79
  84. package/bin/ECS/Core/FluentAPI/SceneBuilder.js.map +0 -1
  85. package/bin/ECS/Core/FluentAPI/index.d.ts +0 -6
  86. package/bin/ECS/Core/FluentAPI/index.d.ts.map +0 -1
  87. package/bin/ECS/Core/FluentAPI/index.js +0 -6
  88. package/bin/ECS/Core/FluentAPI/index.js.map +0 -1
  89. package/bin/ECS/Core/FluentAPI.d.ts +0 -2
  90. package/bin/ECS/Core/FluentAPI.d.ts.map +0 -1
  91. package/bin/ECS/Core/FluentAPI.js +0 -3
  92. package/bin/ECS/Core/FluentAPI.js.map +0 -1
  93. package/bin/ECS/Core/Performance/index.d.ts +0 -4
  94. package/bin/ECS/Core/Performance/index.d.ts.map +0 -1
  95. package/bin/ECS/Core/Performance/index.js +0 -4
  96. package/bin/ECS/Core/Performance/index.js.map +0 -1
  97. package/bin/ECS/Core/Query/index.d.ts +0 -4
  98. package/bin/ECS/Core/Query/index.d.ts.map +0 -1
  99. package/bin/ECS/Core/Query/index.js +0 -4
  100. package/bin/ECS/Core/Query/index.js.map +0 -1
  101. package/bin/ECS/Core/QuerySystem.d.ts +0 -438
  102. package/bin/ECS/Core/QuerySystem.d.ts.map +0 -1
  103. package/bin/ECS/Core/QuerySystem.js +0 -974
  104. package/bin/ECS/Core/QuerySystem.js.map +0 -1
  105. package/bin/ECS/Core/SoAStorage.d.ts +0 -97
  106. package/bin/ECS/Core/SoAStorage.d.ts.map +0 -1
  107. package/bin/ECS/Core/SoAStorage.js +0 -548
  108. package/bin/ECS/Core/SoAStorage.js.map +0 -1
  109. package/bin/ECS/Core/Storage/index.d.ts +0 -4
  110. package/bin/ECS/Core/Storage/index.d.ts.map +0 -1
  111. package/bin/ECS/Core/Storage/index.js +0 -4
  112. package/bin/ECS/Core/Storage/index.js.map +0 -1
  113. package/bin/ECS/CoreEvents.d.ts +0 -131
  114. package/bin/ECS/CoreEvents.d.ts.map +0 -1
  115. package/bin/ECS/CoreEvents.js +0 -163
  116. package/bin/ECS/CoreEvents.js.map +0 -1
  117. package/bin/ECS/Entity.d.ts +0 -455
  118. package/bin/ECS/Entity.d.ts.map +0 -1
  119. package/bin/ECS/Entity.js +0 -837
  120. package/bin/ECS/Entity.js.map +0 -1
  121. package/bin/ECS/Scene.d.ts +0 -225
  122. package/bin/ECS/Scene.d.ts.map +0 -1
  123. package/bin/ECS/Scene.js +0 -325
  124. package/bin/ECS/Scene.js.map +0 -1
  125. package/bin/ECS/Systems/EntitySystem.d.ts +0 -200
  126. package/bin/ECS/Systems/EntitySystem.d.ts.map +0 -1
  127. package/bin/ECS/Systems/EntitySystem.js +0 -431
  128. package/bin/ECS/Systems/EntitySystem.js.map +0 -1
  129. package/bin/ECS/Systems/IntervalSystem.d.ts +0 -33
  130. package/bin/ECS/Systems/IntervalSystem.d.ts.map +0 -1
  131. package/bin/ECS/Systems/IntervalSystem.js +0 -50
  132. package/bin/ECS/Systems/IntervalSystem.js.map +0 -1
  133. package/bin/ECS/Systems/PassiveSystem.d.ts +0 -17
  134. package/bin/ECS/Systems/PassiveSystem.d.ts.map +0 -1
  135. package/bin/ECS/Systems/PassiveSystem.js +0 -19
  136. package/bin/ECS/Systems/PassiveSystem.js.map +0 -1
  137. package/bin/ECS/Systems/ProcessingSystem.d.ts +0 -21
  138. package/bin/ECS/Systems/ProcessingSystem.d.ts.map +0 -1
  139. package/bin/ECS/Systems/ProcessingSystem.js +0 -20
  140. package/bin/ECS/Systems/ProcessingSystem.js.map +0 -1
  141. package/bin/ECS/Systems/index.d.ts +0 -5
  142. package/bin/ECS/Systems/index.d.ts.map +0 -1
  143. package/bin/ECS/Systems/index.js +0 -6
  144. package/bin/ECS/Systems/index.js.map +0 -1
  145. package/bin/ECS/Utils/BigIntCompatibility.d.ts +0 -164
  146. package/bin/ECS/Utils/BigIntCompatibility.d.ts.map +0 -1
  147. package/bin/ECS/Utils/BigIntCompatibility.js +0 -578
  148. package/bin/ECS/Utils/BigIntCompatibility.js.map +0 -1
  149. package/bin/ECS/Utils/Bits.d.ts +0 -163
  150. package/bin/ECS/Utils/Bits.d.ts.map +0 -1
  151. package/bin/ECS/Utils/Bits.js +0 -286
  152. package/bin/ECS/Utils/Bits.js.map +0 -1
  153. package/bin/ECS/Utils/ComponentTypeManager.d.ts +0 -50
  154. package/bin/ECS/Utils/ComponentTypeManager.d.ts.map +0 -1
  155. package/bin/ECS/Utils/ComponentTypeManager.js +0 -84
  156. package/bin/ECS/Utils/ComponentTypeManager.js.map +0 -1
  157. package/bin/ECS/Utils/EntityList.d.ts +0 -108
  158. package/bin/ECS/Utils/EntityList.d.ts.map +0 -1
  159. package/bin/ECS/Utils/EntityList.js +0 -262
  160. package/bin/ECS/Utils/EntityList.js.map +0 -1
  161. package/bin/ECS/Utils/EntityProcessorList.d.ts +0 -56
  162. package/bin/ECS/Utils/EntityProcessorList.d.ts.map +0 -1
  163. package/bin/ECS/Utils/EntityProcessorList.js +0 -102
  164. package/bin/ECS/Utils/EntityProcessorList.js.map +0 -1
  165. package/bin/ECS/Utils/IdentifierPool.d.ts +0 -203
  166. package/bin/ECS/Utils/IdentifierPool.d.ts.map +0 -1
  167. package/bin/ECS/Utils/IdentifierPool.js +0 -325
  168. package/bin/ECS/Utils/IdentifierPool.js.map +0 -1
  169. package/bin/ECS/Utils/Matcher.d.ts +0 -143
  170. package/bin/ECS/Utils/Matcher.d.ts.map +0 -1
  171. package/bin/ECS/Utils/Matcher.js +0 -249
  172. package/bin/ECS/Utils/Matcher.js.map +0 -1
  173. package/bin/ECS/Utils/index.d.ts +0 -8
  174. package/bin/ECS/Utils/index.d.ts.map +0 -1
  175. package/bin/ECS/Utils/index.js +0 -9
  176. package/bin/ECS/Utils/index.js.map +0 -1
  177. package/bin/ECS/index.d.ts +0 -12
  178. package/bin/ECS/index.d.ts.map +0 -1
  179. package/bin/ECS/index.js +0 -12
  180. package/bin/ECS/index.js.map +0 -1
  181. package/bin/Types/index.d.ts +0 -471
  182. package/bin/Types/index.d.ts.map +0 -1
  183. package/bin/Types/index.js +0 -5
  184. package/bin/Types/index.js.map +0 -1
  185. package/bin/Utils/Debug/ComponentDataCollector.d.ts +0 -28
  186. package/bin/Utils/Debug/ComponentDataCollector.d.ts.map +0 -1
  187. package/bin/Utils/Debug/ComponentDataCollector.js +0 -248
  188. package/bin/Utils/Debug/ComponentDataCollector.js.map +0 -1
  189. package/bin/Utils/Debug/DebugDataFormatter.d.ts +0 -22
  190. package/bin/Utils/Debug/DebugDataFormatter.d.ts.map +0 -1
  191. package/bin/Utils/Debug/DebugDataFormatter.js +0 -117
  192. package/bin/Utils/Debug/DebugDataFormatter.js.map +0 -1
  193. package/bin/Utils/Debug/DebugManager.d.ts +0 -104
  194. package/bin/Utils/Debug/DebugManager.d.ts.map +0 -1
  195. package/bin/Utils/Debug/DebugManager.js +0 -647
  196. package/bin/Utils/Debug/DebugManager.js.map +0 -1
  197. package/bin/Utils/Debug/EntityDataCollector.d.ts +0 -92
  198. package/bin/Utils/Debug/EntityDataCollector.d.ts.map +0 -1
  199. package/bin/Utils/Debug/EntityDataCollector.js +0 -864
  200. package/bin/Utils/Debug/EntityDataCollector.js.map +0 -1
  201. package/bin/Utils/Debug/PerformanceDataCollector.d.ts +0 -32
  202. package/bin/Utils/Debug/PerformanceDataCollector.d.ts.map +0 -1
  203. package/bin/Utils/Debug/PerformanceDataCollector.js +0 -217
  204. package/bin/Utils/Debug/PerformanceDataCollector.js.map +0 -1
  205. package/bin/Utils/Debug/SceneDataCollector.d.ts +0 -16
  206. package/bin/Utils/Debug/SceneDataCollector.d.ts.map +0 -1
  207. package/bin/Utils/Debug/SceneDataCollector.js +0 -46
  208. package/bin/Utils/Debug/SceneDataCollector.js.map +0 -1
  209. package/bin/Utils/Debug/SystemDataCollector.d.ts +0 -11
  210. package/bin/Utils/Debug/SystemDataCollector.d.ts.map +0 -1
  211. package/bin/Utils/Debug/SystemDataCollector.js +0 -59
  212. package/bin/Utils/Debug/SystemDataCollector.js.map +0 -1
  213. package/bin/Utils/Debug/WebSocketManager.d.ts +0 -59
  214. package/bin/Utils/Debug/WebSocketManager.d.ts.map +0 -1
  215. package/bin/Utils/Debug/WebSocketManager.js +0 -148
  216. package/bin/Utils/Debug/WebSocketManager.js.map +0 -1
  217. package/bin/Utils/Debug/index.d.ts +0 -8
  218. package/bin/Utils/Debug/index.d.ts.map +0 -1
  219. package/bin/Utils/Debug/index.js +0 -8
  220. package/bin/Utils/Debug/index.js.map +0 -1
  221. package/bin/Utils/Emitter.d.ts +0 -43
  222. package/bin/Utils/Emitter.d.ts.map +0 -1
  223. package/bin/Utils/Emitter.js +0 -69
  224. package/bin/Utils/Emitter.js.map +0 -1
  225. package/bin/Utils/Extensions/NumberExtension.d.ts +0 -13
  226. package/bin/Utils/Extensions/NumberExtension.d.ts.map +0 -1
  227. package/bin/Utils/Extensions/NumberExtension.js +0 -17
  228. package/bin/Utils/Extensions/NumberExtension.js.map +0 -1
  229. package/bin/Utils/Extensions/TypeUtils.d.ts +0 -13
  230. package/bin/Utils/Extensions/TypeUtils.d.ts.map +0 -1
  231. package/bin/Utils/Extensions/TypeUtils.js +0 -15
  232. package/bin/Utils/Extensions/TypeUtils.js.map +0 -1
  233. package/bin/Utils/Extensions/index.d.ts +0 -3
  234. package/bin/Utils/Extensions/index.d.ts.map +0 -1
  235. package/bin/Utils/Extensions/index.js +0 -4
  236. package/bin/Utils/Extensions/index.js.map +0 -1
  237. package/bin/Utils/GlobalManager.d.ts +0 -32
  238. package/bin/Utils/GlobalManager.d.ts.map +0 -1
  239. package/bin/Utils/GlobalManager.js +0 -53
  240. package/bin/Utils/GlobalManager.js.map +0 -1
  241. package/bin/Utils/Logger.d.ts +0 -156
  242. package/bin/Utils/Logger.d.ts.map +0 -1
  243. package/bin/Utils/Logger.js +0 -256
  244. package/bin/Utils/Logger.js.map +0 -1
  245. package/bin/Utils/PerformanceMonitor.d.ts +0 -211
  246. package/bin/Utils/PerformanceMonitor.d.ts.map +0 -1
  247. package/bin/Utils/PerformanceMonitor.js +0 -270
  248. package/bin/Utils/PerformanceMonitor.js.map +0 -1
  249. package/bin/Utils/Pool/IPoolable.d.ts +0 -29
  250. package/bin/Utils/Pool/IPoolable.d.ts.map +0 -1
  251. package/bin/Utils/Pool/IPoolable.js +0 -2
  252. package/bin/Utils/Pool/IPoolable.js.map +0 -1
  253. package/bin/Utils/Pool/Pool.d.ts +0 -109
  254. package/bin/Utils/Pool/Pool.d.ts.map +0 -1
  255. package/bin/Utils/Pool/Pool.js +0 -238
  256. package/bin/Utils/Pool/Pool.js.map +0 -1
  257. package/bin/Utils/Pool/PoolManager.d.ts +0 -91
  258. package/bin/Utils/Pool/PoolManager.d.ts.map +0 -1
  259. package/bin/Utils/Pool/PoolManager.js +0 -197
  260. package/bin/Utils/Pool/PoolManager.js.map +0 -1
  261. package/bin/Utils/Pool/index.d.ts +0 -4
  262. package/bin/Utils/Pool/index.d.ts.map +0 -1
  263. package/bin/Utils/Pool/index.js +0 -4
  264. package/bin/Utils/Pool/index.js.map +0 -1
  265. package/bin/Utils/Time.d.ts +0 -47
  266. package/bin/Utils/Time.d.ts.map +0 -1
  267. package/bin/Utils/Time.js +0 -64
  268. package/bin/Utils/Time.js.map +0 -1
  269. package/bin/Utils/Timers/ITimer.d.ts +0 -16
  270. package/bin/Utils/Timers/ITimer.d.ts.map +0 -1
  271. package/bin/Utils/Timers/ITimer.js +0 -2
  272. package/bin/Utils/Timers/ITimer.js.map +0 -1
  273. package/bin/Utils/Timers/Timer.d.ts +0 -30
  274. package/bin/Utils/Timers/Timer.d.ts.map +0 -1
  275. package/bin/Utils/Timers/Timer.js +0 -58
  276. package/bin/Utils/Timers/Timer.js.map +0 -1
  277. package/bin/Utils/Timers/TimerManager.d.ts +0 -19
  278. package/bin/Utils/Timers/TimerManager.d.ts.map +0 -1
  279. package/bin/Utils/Timers/TimerManager.js +0 -33
  280. package/bin/Utils/Timers/TimerManager.js.map +0 -1
  281. package/bin/Utils/index.d.ts +0 -9
  282. package/bin/Utils/index.d.ts.map +0 -1
  283. package/bin/Utils/index.js +0 -9
  284. package/bin/Utils/index.js.map +0 -1
  285. package/bin/index.d.ts +0 -16
  286. package/bin/index.d.ts.map +0 -1
  287. package/bin/index.js +0 -19
  288. package/bin/index.js.map +0 -1
@@ -1,17 +0,0 @@
1
- /**
2
- * 用于比较组件更新排序的比较器
3
- */
4
- export class IUpdatableComparer {
5
- compare(a, b) {
6
- return a.updateOrder - b.updateOrder;
7
- }
8
- }
9
- /**
10
- * 检查对象是否实现了IUpdatable接口
11
- * @param props 要检查的对象
12
- * @returns 如果实现了IUpdatable接口返回true,否则返回false
13
- */
14
- export function isIUpdatable(props) {
15
- return typeof props['update'] !== 'undefined';
16
- }
17
- //# sourceMappingURL=IUpdatable.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IUpdatable.js","sourceRoot":"","sources":["../../../src/ECS/Components/IUpdatable.ts"],"names":[],"mappings":"AAUA;;GAEG;AACH,MAAM,OAAO,kBAAkB;IACpB,OAAO,CAAC,CAAa,EAAE,CAAa;QACvC,OAAO,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;IACzC,CAAC;CACJ;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,KAAU;IACnC,OAAO,OAAQ,KAAoB,CAAC,QAAQ,CAAC,KAAK,WAAW,CAAC;AAClE,CAAC"}
@@ -1,40 +0,0 @@
1
- import type { Scene } from '../Scene';
2
- /**
3
- * 场景组件基类
4
- * 附加到场景的组件,用于实现场景级别的功能
5
- */
6
- export declare class SceneComponent {
7
- /** 组件所属的场景 */
8
- scene: Scene;
9
- /** 更新顺序 */
10
- updateOrder: number;
11
- /** 是否启用 */
12
- private _enabled;
13
- /** 获取是否启用 */
14
- get enabled(): boolean;
15
- /** 设置是否启用 */
16
- set enabled(value: boolean);
17
- /**
18
- * 当组件启用时调用
19
- */
20
- onEnabled(): void;
21
- /**
22
- * 当组件禁用时调用
23
- */
24
- onDisabled(): void;
25
- /**
26
- * 当组件从场景中移除时调用
27
- */
28
- onRemovedFromScene(): void;
29
- /**
30
- * 每帧更新
31
- */
32
- update(): void;
33
- /**
34
- * 比较组件的更新顺序
35
- * @param other 其他组件
36
- * @returns 比较结果
37
- */
38
- compare(other: SceneComponent): number;
39
- }
40
- //# sourceMappingURL=SceneComponent.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SceneComponent.d.ts","sourceRoot":"","sources":["../../../src/ECS/Components/SceneComponent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEtC;;;GAGG;AACH,qBAAa,cAAc;IACvB,cAAc;IACP,KAAK,EAAG,KAAK,CAAC;IACrB,WAAW;IACJ,WAAW,EAAE,MAAM,CAAK;IAC/B,WAAW;IACX,OAAO,CAAC,QAAQ,CAAiB;IAEjC,aAAa;IACb,IAAW,OAAO,IAAI,OAAO,CAE5B;IAED,aAAa;IACb,IAAW,OAAO,CAAC,KAAK,EAAE,OAAO,EAShC;IAED;;OAEG;IACI,SAAS,IAAI,IAAI;IAGxB;;OAEG;IACI,UAAU,IAAI,IAAI;IAGzB;;OAEG;IACI,kBAAkB,IAAI,IAAI;IAGjC;;OAEG;IACI,MAAM,IAAI,IAAI;IAGrB;;;;OAIG;IACI,OAAO,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM;CAGhD"}
@@ -1,57 +0,0 @@
1
- /**
2
- * 场景组件基类
3
- * 附加到场景的组件,用于实现场景级别的功能
4
- */
5
- export class SceneComponent {
6
- constructor() {
7
- /** 更新顺序 */
8
- this.updateOrder = 0;
9
- /** 是否启用 */
10
- this._enabled = true;
11
- }
12
- /** 获取是否启用 */
13
- get enabled() {
14
- return this._enabled;
15
- }
16
- /** 设置是否启用 */
17
- set enabled(value) {
18
- if (this._enabled !== value) {
19
- this._enabled = value;
20
- if (this._enabled) {
21
- this.onEnabled();
22
- }
23
- else {
24
- this.onDisabled();
25
- }
26
- }
27
- }
28
- /**
29
- * 当组件启用时调用
30
- */
31
- onEnabled() {
32
- }
33
- /**
34
- * 当组件禁用时调用
35
- */
36
- onDisabled() {
37
- }
38
- /**
39
- * 当组件从场景中移除时调用
40
- */
41
- onRemovedFromScene() {
42
- }
43
- /**
44
- * 每帧更新
45
- */
46
- update() {
47
- }
48
- /**
49
- * 比较组件的更新顺序
50
- * @param other 其他组件
51
- * @returns 比较结果
52
- */
53
- compare(other) {
54
- return this.updateOrder - other.updateOrder;
55
- }
56
- }
57
- //# sourceMappingURL=SceneComponent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SceneComponent.js","sourceRoot":"","sources":["../../../src/ECS/Components/SceneComponent.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,OAAO,cAAc;IAA3B;QAGI,WAAW;QACJ,gBAAW,GAAW,CAAC,CAAC;QAC/B,WAAW;QACH,aAAQ,GAAY,IAAI,CAAC;IAmDrC,CAAC;IAjDG,aAAa;IACb,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,aAAa;IACb,IAAW,OAAO,CAAC,KAAc;QAC7B,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC1B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,IAAI,CAAC,SAAS,EAAE,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,UAAU,EAAE,CAAC;YACtB,CAAC;QACL,CAAC;IACL,CAAC;IAED;;OAEG;IACI,SAAS;IAChB,CAAC;IAED;;OAEG;IACI,UAAU;IACjB,CAAC;IAED;;OAEG;IACI,kBAAkB;IACzB,CAAC;IAED;;OAEG;IACI,MAAM;IACb,CAAC;IAED;;;;OAIG;IACI,OAAO,CAAC,KAAqB;QAChC,OAAO,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;IAChD,CAAC;CACJ"}
@@ -1,100 +0,0 @@
1
- import { Entity } from '../Entity';
2
- import { ComponentType } from './ComponentStorage';
3
- /**
4
- * 原型标识符
5
- */
6
- export type ArchetypeId = string;
7
- /**
8
- * 原型数据结构
9
- */
10
- export interface Archetype {
11
- /** 原型唯一标识符 */
12
- id: ArchetypeId;
13
- /** 包含的组件类型 */
14
- componentTypes: ComponentType[];
15
- /** 属于该原型的实体列表 */
16
- entities: Entity[];
17
- /** 原型创建时间 */
18
- createdAt: number;
19
- /** 最后更新时间 */
20
- updatedAt: number;
21
- }
22
- /**
23
- * 原型查询结果
24
- */
25
- export interface ArchetypeQueryResult {
26
- /** 匹配的原型列表 */
27
- archetypes: Archetype[];
28
- /** 所有匹配实体的总数 */
29
- totalEntities: number;
30
- /** 查询执行时间(毫秒) */
31
- executionTime: number;
32
- /** 是否使用了缓存 */
33
- fromCache: boolean;
34
- }
35
- /**
36
- * Archetype系统
37
- *
38
- * 根据实体的组件组合将实体分组到不同的原型中,提供高效的查询性能。
39
- */
40
- export declare class ArchetypeSystem {
41
- /** 所有原型的映射表 */
42
- private _archetypes;
43
- /** 实体到原型的映射 */
44
- private _entityToArchetype;
45
- /** 组件类型到原型的映射 */
46
- private _componentToArchetypes;
47
- /** 查询缓存 */
48
- private _queryCache;
49
- private _cacheTimeout;
50
- private _maxCacheSize;
51
- /**
52
- * 添加实体到原型系统
53
- */
54
- addEntity(entity: Entity): void;
55
- /**
56
- * 从原型系统中移除实体
57
- */
58
- removeEntity(entity: Entity): void;
59
- /**
60
- * 查询包含指定组件组合的原型
61
- */
62
- queryArchetypes(componentTypes: ComponentType[], operation?: 'AND' | 'OR'): ArchetypeQueryResult;
63
- /**
64
- * 获取实体所属的原型
65
- */
66
- getEntityArchetype(entity: Entity): Archetype | undefined;
67
- /**
68
- * 获取所有原型
69
- */
70
- getAllArchetypes(): Archetype[];
71
- /**
72
- * 清空所有数据
73
- */
74
- clear(): void;
75
- /**
76
- * 获取实体的组件类型列表
77
- */
78
- private getEntityComponentTypes;
79
- /**
80
- * 生成原型ID
81
- */
82
- private generateArchetypeId;
83
- /**
84
- * 创建新原型
85
- */
86
- private createArchetype;
87
- /**
88
- * 检查原型是否包含所有指定组件
89
- */
90
- private archetypeContainsAllComponents;
91
- /**
92
- * 更新组件索引
93
- */
94
- private updateComponentIndexes;
95
- /**
96
- * 使查询缓存失效
97
- */
98
- private invalidateQueryCache;
99
- }
100
- //# sourceMappingURL=ArchetypeSystem.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ArchetypeSystem.d.ts","sourceRoot":"","sources":["../../../src/ECS/Core/ArchetypeSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAEjC;;GAEG;AACH,MAAM,WAAW,SAAS;IACtB,cAAc;IACd,EAAE,EAAE,WAAW,CAAC;IAChB,cAAc;IACd,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,iBAAiB;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa;IACb,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,cAAc;IACd,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,gBAAgB;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc;IACd,SAAS,EAAE,OAAO,CAAC;CACtB;AAED;;;;GAIG;AACH,qBAAa,eAAe;IACxB,eAAe;IACf,OAAO,CAAC,WAAW,CAAqC;IAExD,eAAe;IACf,OAAO,CAAC,kBAAkB,CAAgC;IAE1D,iBAAiB;IACjB,OAAO,CAAC,sBAAsB,CAA4C;IAE1E,WAAW;IACX,OAAO,CAAC,WAAW,CAGd;IAEL,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,aAAa,CAAO;IAE5B;;OAEG;IACI,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAiBtC;;OAEG;IACI,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAczC;;OAEG;IACI,eAAe,CAAC,cAAc,EAAE,aAAa,EAAE,EAAE,SAAS,GAAE,KAAK,GAAG,IAAY,GAAG,oBAAoB;IA2D9G;;OAEG;IACI,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAIhE;;OAEG;IACI,gBAAgB,IAAI,SAAS,EAAE;IAItC;;OAEG;IACI,KAAK,IAAI,IAAI;IAOpB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAI/B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAO3B;;OAEG;IACH,OAAO,CAAC,eAAe;IAevB;;OAEG;IACH,OAAO,CAAC,8BAA8B;IAStC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAmB9B;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAG/B"}
@@ -1,193 +0,0 @@
1
- /**
2
- * Archetype系统
3
- *
4
- * 根据实体的组件组合将实体分组到不同的原型中,提供高效的查询性能。
5
- */
6
- export class ArchetypeSystem {
7
- constructor() {
8
- /** 所有原型的映射表 */
9
- this._archetypes = new Map();
10
- /** 实体到原型的映射 */
11
- this._entityToArchetype = new Map();
12
- /** 组件类型到原型的映射 */
13
- this._componentToArchetypes = new Map();
14
- /** 查询缓存 */
15
- this._queryCache = new Map();
16
- this._cacheTimeout = 5000;
17
- this._maxCacheSize = 100;
18
- }
19
- /**
20
- * 添加实体到原型系统
21
- */
22
- addEntity(entity) {
23
- const componentTypes = this.getEntityComponentTypes(entity);
24
- const archetypeId = this.generateArchetypeId(componentTypes);
25
- let archetype = this._archetypes.get(archetypeId);
26
- if (!archetype) {
27
- archetype = this.createArchetype(componentTypes);
28
- }
29
- archetype.entities.push(entity);
30
- archetype.updatedAt = Date.now();
31
- this._entityToArchetype.set(entity, archetype);
32
- this.updateComponentIndexes(archetype, componentTypes, true);
33
- this.invalidateQueryCache();
34
- }
35
- /**
36
- * 从原型系统中移除实体
37
- */
38
- removeEntity(entity) {
39
- const archetype = this._entityToArchetype.get(entity);
40
- if (!archetype)
41
- return;
42
- const index = archetype.entities.indexOf(entity);
43
- if (index !== -1) {
44
- archetype.entities.splice(index, 1);
45
- archetype.updatedAt = Date.now();
46
- }
47
- this._entityToArchetype.delete(entity);
48
- this.invalidateQueryCache();
49
- }
50
- /**
51
- * 查询包含指定组件组合的原型
52
- */
53
- queryArchetypes(componentTypes, operation = 'AND') {
54
- const startTime = performance.now();
55
- const cacheKey = `${operation}:${componentTypes.map(t => t.name).sort().join(',')}`;
56
- // 检查缓存
57
- const cached = this._queryCache.get(cacheKey);
58
- if (cached && (Date.now() - cached.timestamp < this._cacheTimeout)) {
59
- return {
60
- ...cached.result,
61
- executionTime: performance.now() - startTime,
62
- fromCache: true
63
- };
64
- }
65
- const matchingArchetypes = [];
66
- let totalEntities = 0;
67
- if (operation === 'AND') {
68
- for (const archetype of this._archetypes.values()) {
69
- if (this.archetypeContainsAllComponents(archetype, componentTypes)) {
70
- matchingArchetypes.push(archetype);
71
- totalEntities += archetype.entities.length;
72
- }
73
- }
74
- }
75
- else {
76
- const foundArchetypes = new Set();
77
- for (const componentType of componentTypes) {
78
- const archetypes = this._componentToArchetypes.get(componentType);
79
- if (archetypes) {
80
- for (const archetype of archetypes) {
81
- foundArchetypes.add(archetype);
82
- }
83
- }
84
- }
85
- for (const archetype of foundArchetypes) {
86
- matchingArchetypes.push(archetype);
87
- totalEntities += archetype.entities.length;
88
- }
89
- }
90
- const result = {
91
- archetypes: matchingArchetypes,
92
- totalEntities,
93
- executionTime: performance.now() - startTime,
94
- fromCache: false
95
- };
96
- // 缓存结果
97
- this._queryCache.set(cacheKey, {
98
- result,
99
- timestamp: Date.now()
100
- });
101
- return result;
102
- }
103
- /**
104
- * 获取实体所属的原型
105
- */
106
- getEntityArchetype(entity) {
107
- return this._entityToArchetype.get(entity);
108
- }
109
- /**
110
- * 获取所有原型
111
- */
112
- getAllArchetypes() {
113
- return Array.from(this._archetypes.values());
114
- }
115
- /**
116
- * 清空所有数据
117
- */
118
- clear() {
119
- this._archetypes.clear();
120
- this._entityToArchetype.clear();
121
- this._componentToArchetypes.clear();
122
- this._queryCache.clear();
123
- }
124
- /**
125
- * 获取实体的组件类型列表
126
- */
127
- getEntityComponentTypes(entity) {
128
- return entity.components.map(component => component.constructor);
129
- }
130
- /**
131
- * 生成原型ID
132
- */
133
- generateArchetypeId(componentTypes) {
134
- return componentTypes
135
- .map(type => type.name)
136
- .sort()
137
- .join('|');
138
- }
139
- /**
140
- * 创建新原型
141
- */
142
- createArchetype(componentTypes) {
143
- const id = this.generateArchetypeId(componentTypes);
144
- const archetype = {
145
- id,
146
- componentTypes: [...componentTypes],
147
- entities: [],
148
- createdAt: Date.now(),
149
- updatedAt: Date.now()
150
- };
151
- this._archetypes.set(id, archetype);
152
- return archetype;
153
- }
154
- /**
155
- * 检查原型是否包含所有指定组件
156
- */
157
- archetypeContainsAllComponents(archetype, componentTypes) {
158
- for (const componentType of componentTypes) {
159
- if (!archetype.componentTypes.includes(componentType)) {
160
- return false;
161
- }
162
- }
163
- return true;
164
- }
165
- /**
166
- * 更新组件索引
167
- */
168
- updateComponentIndexes(archetype, componentTypes, add) {
169
- for (const componentType of componentTypes) {
170
- let archetypes = this._componentToArchetypes.get(componentType);
171
- if (!archetypes) {
172
- archetypes = new Set();
173
- this._componentToArchetypes.set(componentType, archetypes);
174
- }
175
- if (add) {
176
- archetypes.add(archetype);
177
- }
178
- else {
179
- archetypes.delete(archetype);
180
- if (archetypes.size === 0) {
181
- this._componentToArchetypes.delete(componentType);
182
- }
183
- }
184
- }
185
- }
186
- /**
187
- * 使查询缓存失效
188
- */
189
- invalidateQueryCache() {
190
- this._queryCache.clear();
191
- }
192
- }
193
- //# sourceMappingURL=ArchetypeSystem.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ArchetypeSystem.js","sourceRoot":"","sources":["../../../src/ECS/Core/ArchetypeSystem.ts"],"names":[],"mappings":"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"}
@@ -1,151 +0,0 @@
1
- import { Entity } from '../Entity';
2
- import { ComponentType } from './ComponentStorage';
3
- /**
4
- * 组件索引类型
5
- */
6
- export declare enum IndexType {
7
- /** 哈希索引 - 最快查找 */
8
- HASH = "hash",
9
- /** 位图索引 - 内存高效 */
10
- BITMAP = "bitmap",
11
- /** 排序索引 - 支持范围查询 */
12
- SORTED = "sorted"
13
- }
14
- /**
15
- * 索引统计信息
16
- */
17
- export interface IndexStats {
18
- /** 索引类型 */
19
- type: IndexType;
20
- /** 索引大小 */
21
- size: number;
22
- /** 内存使用量(字节) */
23
- memoryUsage: number;
24
- /** 查询次数 */
25
- queryCount: number;
26
- /** 平均查询时间(毫秒) */
27
- avgQueryTime: number;
28
- /** 最后更新时间 */
29
- lastUpdated: number;
30
- }
31
- /**
32
- * 组件索引接口
33
- */
34
- export interface IComponentIndex {
35
- /** 索引类型 */
36
- readonly type: IndexType;
37
- /** 添加实体到索引 */
38
- addEntity(entity: Entity): void;
39
- /** 从索引中移除实体 */
40
- removeEntity(entity: Entity): void;
41
- /** 查询包含指定组件的实体 */
42
- query(componentType: ComponentType): Set<Entity>;
43
- /** 批量查询多个组件 */
44
- queryMultiple(componentTypes: ComponentType[], operation: 'AND' | 'OR'): Set<Entity>;
45
- /** 清空索引 */
46
- clear(): void;
47
- /** 获取索引统计信息 */
48
- getStats(): IndexStats;
49
- }
50
- /**
51
- * 哈希索引实现
52
- *
53
- * 使用Map数据结构,提供O(1)的查找性能。
54
- * 适合大多数查询场景。
55
- */
56
- export declare class HashComponentIndex implements IComponentIndex {
57
- readonly type = IndexType.HASH;
58
- private _componentToEntities;
59
- private _entityToComponents;
60
- private _queryCount;
61
- private _totalQueryTime;
62
- private _lastUpdated;
63
- private _setPool;
64
- private _componentTypeSetPool;
65
- addEntity(entity: Entity): void;
66
- removeEntity(entity: Entity): void;
67
- query(componentType: ComponentType): Set<Entity>;
68
- queryMultiple(componentTypes: ComponentType[], operation: 'AND' | 'OR'): Set<Entity>;
69
- clear(): void;
70
- getStats(): IndexStats;
71
- }
72
- /**
73
- * 位图索引实现
74
- *
75
- * 使用位操作进行快速集合运算,内存效率高。
76
- * 适合有限组件类型和大量实体的场景。
77
- */
78
- export declare class BitmapComponentIndex implements IComponentIndex {
79
- readonly type = IndexType.BITMAP;
80
- private _componentTypeToBit;
81
- private _entityToBitmap;
82
- private _bitToEntities;
83
- private _nextBit;
84
- private _queryCount;
85
- private _totalQueryTime;
86
- private _lastUpdated;
87
- addEntity(entity: Entity): void;
88
- removeEntity(entity: Entity): void;
89
- query(componentType: ComponentType): Set<Entity>;
90
- queryMultiple(componentTypes: ComponentType[], operation: 'AND' | 'OR'): Set<Entity>;
91
- clear(): void;
92
- getStats(): IndexStats;
93
- }
94
- /**
95
- * 智能组件索引管理器
96
- *
97
- * 根据使用模式自动选择最优的索引策略。
98
- * 支持动态切换索引类型以获得最佳性能。
99
- */
100
- export declare class ComponentIndexManager {
101
- private _activeIndex;
102
- private _indexHistory;
103
- private _autoOptimize;
104
- private _optimizationThreshold;
105
- constructor(initialType?: IndexType);
106
- /**
107
- * 添加实体到索引
108
- */
109
- addEntity(entity: Entity): void;
110
- /**
111
- * 从索引中移除实体
112
- */
113
- removeEntity(entity: Entity): void;
114
- /**
115
- * 查询包含指定组件的实体
116
- */
117
- query(componentType: ComponentType): Set<Entity>;
118
- /**
119
- * 批量查询多个组件
120
- */
121
- queryMultiple(componentTypes: ComponentType[], operation: 'AND' | 'OR'): Set<Entity>;
122
- /**
123
- * 手动切换索引类型
124
- */
125
- switchIndexType(type: IndexType): void;
126
- /**
127
- * 启用/禁用自动优化
128
- */
129
- setAutoOptimize(enabled: boolean): void;
130
- /**
131
- * 获取当前索引统计信息
132
- */
133
- getStats(): IndexStats;
134
- /**
135
- * 获取所有索引类型的历史统计信息
136
- */
137
- getAllStats(): Map<IndexType, IndexStats>;
138
- /**
139
- * 清空索引
140
- */
141
- clear(): void;
142
- /**
143
- * 创建指定类型的索引
144
- */
145
- private createIndex;
146
- /**
147
- * 检查是否需要优化索引
148
- */
149
- private checkOptimization;
150
- }
151
- //# sourceMappingURL=ComponentIndex.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ComponentIndex.d.ts","sourceRoot":"","sources":["../../../src/ECS/Core/ComponentIndex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;GAEG;AACH,oBAAY,SAAS;IACjB,kBAAkB;IAClB,IAAI,SAAS;IACb,kBAAkB;IAClB,MAAM,WAAW;IACjB,oBAAoB;IACpB,MAAM,WAAW;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB,WAAW;IACX,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa;IACb,WAAW,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B,WAAW;IACX,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,cAAc;IACd,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,eAAe;IACf,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,kBAAkB;IAClB,KAAK,CAAC,aAAa,EAAE,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;IACjD,eAAe;IACf,aAAa,CAAC,cAAc,EAAE,aAAa,EAAE,EAAE,SAAS,EAAE,KAAK,GAAG,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;IACrF,WAAW;IACX,KAAK,IAAI,IAAI,CAAC;IACd,eAAe;IACf,QAAQ,IAAI,UAAU,CAAC;CAC1B;AAED;;;;;GAKG;AACH,qBAAa,kBAAmB,YAAW,eAAe;IACtD,SAAgB,IAAI,kBAAkB;IAEtC,OAAO,CAAC,oBAAoB,CAAyC;IACrE,OAAO,CAAC,mBAAmB,CAAyC;IACpE,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,YAAY,CAAc;IAElC,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,qBAAqB,CAA4B;IAElD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IA6B/B,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IA4BlC,KAAK,CAAC,aAAa,EAAE,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC;IAWhD,aAAa,CAAC,cAAc,EAAE,aAAa,EAAE,EAAE,SAAS,EAAE,KAAK,GAAG,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC;IAgEpF,KAAK,IAAI,IAAI;IAMb,QAAQ,IAAI,UAAU;CAuBhC;AAED;;;;;GAKG;AACH,qBAAa,oBAAqB,YAAW,eAAe;IACxD,SAAgB,IAAI,oBAAoB;IAExC,OAAO,CAAC,mBAAmB,CAAoC;IAC/D,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,cAAc,CAAkC;IACxD,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,YAAY,CAAc;IAE3B,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IA0B/B,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAkBlC,KAAK,CAAC,aAAa,EAAE,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC;IAkBhD,aAAa,CAAC,cAAc,EAAE,aAAa,EAAE,EAAE,SAAS,EAAE,KAAK,GAAG,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC;IA2CpF,KAAK,IAAI,IAAI;IAQb,QAAQ,IAAI,UAAU;CAoBhC;AAED;;;;;GAKG;AACH,qBAAa,qBAAqB;IAC9B,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,aAAa,CAAyC;IAC9D,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,sBAAsB,CAAQ;gBAE1B,WAAW,GAAE,SAA0B;IAInD;;OAEG;IACI,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQtC;;OAEG;IACI,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIzC;;OAEG;IACI,KAAK,CAAC,aAAa,EAAE,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC;IAIvD;;OAEG;IACI,aAAa,CAAC,cAAc,EAAE,aAAa,EAAE,EAAE,SAAS,EAAE,KAAK,GAAG,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC;IAI3F;;OAEG;IACI,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAW7C;;OAEG;IACI,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAI9C;;OAEG;IACI,QAAQ,IAAI,UAAU;IAI7B;;OAEG;IACI,WAAW,IAAI,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC;IAQhD;;OAEG;IACI,KAAK,IAAI,IAAI;IAIpB;;OAEG;IACH,OAAO,CAAC,WAAW;IAanB;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAa5B"}