@esengine/ecs-framework 2.1.30 → 2.1.31

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 (286) 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/package.json +24 -50
  7. package/bin/Core.d.ts +0 -279
  8. package/bin/Core.d.ts.map +0 -1
  9. package/bin/Core.js +0 -400
  10. package/bin/Core.js.map +0 -1
  11. package/bin/ECS/Component.d.ts +0 -120
  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 -17
  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 -57
  22. package/bin/ECS/Components/SceneComponent.js.map +0 -1
  23. package/bin/ECS/Core/ArchetypeSystem.d.ts +0 -100
  24. package/bin/ECS/Core/ArchetypeSystem.d.ts.map +0 -1
  25. package/bin/ECS/Core/ArchetypeSystem.js +0 -193
  26. package/bin/ECS/Core/ArchetypeSystem.js.map +0 -1
  27. package/bin/ECS/Core/ComponentIndex.d.ts +0 -151
  28. package/bin/ECS/Core/ComponentIndex.d.ts.map +0 -1
  29. package/bin/ECS/Core/ComponentIndex.js +0 -405
  30. package/bin/ECS/Core/ComponentIndex.js.map +0 -1
  31. package/bin/ECS/Core/ComponentPool.d.ts +0 -88
  32. package/bin/ECS/Core/ComponentPool.d.ts.map +0 -1
  33. package/bin/ECS/Core/ComponentPool.js +0 -159
  34. package/bin/ECS/Core/ComponentPool.js.map +0 -1
  35. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.d.ts +0 -92
  36. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.d.ts.map +0 -1
  37. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.js +0 -167
  38. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.js.map +0 -1
  39. package/bin/ECS/Core/ComponentStorage.d.ts +0 -233
  40. package/bin/ECS/Core/ComponentStorage.d.ts.map +0 -1
  41. package/bin/ECS/Core/ComponentStorage.js +0 -463
  42. package/bin/ECS/Core/ComponentStorage.js.map +0 -1
  43. package/bin/ECS/Core/DirtyTrackingSystem.d.ts +0 -197
  44. package/bin/ECS/Core/DirtyTrackingSystem.d.ts.map +0 -1
  45. package/bin/ECS/Core/DirtyTrackingSystem.js +0 -297
  46. package/bin/ECS/Core/DirtyTrackingSystem.js.map +0 -1
  47. package/bin/ECS/Core/EntityManager.d.ts +0 -379
  48. package/bin/ECS/Core/EntityManager.d.ts.map +0 -1
  49. package/bin/ECS/Core/EntityManager.js +0 -686
  50. package/bin/ECS/Core/EntityManager.js.map +0 -1
  51. package/bin/ECS/Core/EventBus.d.ts +0 -218
  52. package/bin/ECS/Core/EventBus.d.ts.map +0 -1
  53. package/bin/ECS/Core/EventBus.js +0 -402
  54. package/bin/ECS/Core/EventBus.js.map +0 -1
  55. package/bin/ECS/Core/EventSystem.d.ts +0 -237
  56. package/bin/ECS/Core/EventSystem.d.ts.map +0 -1
  57. package/bin/ECS/Core/EventSystem.js +0 -478
  58. package/bin/ECS/Core/EventSystem.js.map +0 -1
  59. package/bin/ECS/Core/Events/index.d.ts +0 -3
  60. package/bin/ECS/Core/Events/index.d.ts.map +0 -1
  61. package/bin/ECS/Core/Events/index.js +0 -3
  62. package/bin/ECS/Core/Events/index.js.map +0 -1
  63. package/bin/ECS/Core/FluentAPI/ComponentBuilder.d.ts +0 -35
  64. package/bin/ECS/Core/FluentAPI/ComponentBuilder.d.ts.map +0 -1
  65. package/bin/ECS/Core/FluentAPI/ComponentBuilder.js +0 -48
  66. package/bin/ECS/Core/FluentAPI/ComponentBuilder.js.map +0 -1
  67. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.d.ts +0 -135
  68. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.d.ts.map +0 -1
  69. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.js +0 -166
  70. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.js.map +0 -1
  71. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.d.ts +0 -58
  72. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.d.ts.map +0 -1
  73. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.js +0 -85
  74. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.js.map +0 -1
  75. package/bin/ECS/Core/FluentAPI/EntityBuilder.d.ts +0 -110
  76. package/bin/ECS/Core/FluentAPI/EntityBuilder.d.ts.map +0 -1
  77. package/bin/ECS/Core/FluentAPI/EntityBuilder.js +0 -174
  78. package/bin/ECS/Core/FluentAPI/EntityBuilder.js.map +0 -1
  79. package/bin/ECS/Core/FluentAPI/SceneBuilder.d.ts +0 -53
  80. package/bin/ECS/Core/FluentAPI/SceneBuilder.d.ts.map +0 -1
  81. package/bin/ECS/Core/FluentAPI/SceneBuilder.js +0 -79
  82. package/bin/ECS/Core/FluentAPI/SceneBuilder.js.map +0 -1
  83. package/bin/ECS/Core/FluentAPI/index.d.ts +0 -6
  84. package/bin/ECS/Core/FluentAPI/index.d.ts.map +0 -1
  85. package/bin/ECS/Core/FluentAPI/index.js +0 -6
  86. package/bin/ECS/Core/FluentAPI/index.js.map +0 -1
  87. package/bin/ECS/Core/FluentAPI.d.ts +0 -2
  88. package/bin/ECS/Core/FluentAPI.d.ts.map +0 -1
  89. package/bin/ECS/Core/FluentAPI.js +0 -3
  90. package/bin/ECS/Core/FluentAPI.js.map +0 -1
  91. package/bin/ECS/Core/Performance/index.d.ts +0 -4
  92. package/bin/ECS/Core/Performance/index.d.ts.map +0 -1
  93. package/bin/ECS/Core/Performance/index.js +0 -4
  94. package/bin/ECS/Core/Performance/index.js.map +0 -1
  95. package/bin/ECS/Core/Query/index.d.ts +0 -4
  96. package/bin/ECS/Core/Query/index.d.ts.map +0 -1
  97. package/bin/ECS/Core/Query/index.js +0 -4
  98. package/bin/ECS/Core/Query/index.js.map +0 -1
  99. package/bin/ECS/Core/QuerySystem.d.ts +0 -438
  100. package/bin/ECS/Core/QuerySystem.d.ts.map +0 -1
  101. package/bin/ECS/Core/QuerySystem.js +0 -974
  102. package/bin/ECS/Core/QuerySystem.js.map +0 -1
  103. package/bin/ECS/Core/SoAStorage.d.ts +0 -97
  104. package/bin/ECS/Core/SoAStorage.d.ts.map +0 -1
  105. package/bin/ECS/Core/SoAStorage.js +0 -548
  106. package/bin/ECS/Core/SoAStorage.js.map +0 -1
  107. package/bin/ECS/Core/Storage/index.d.ts +0 -4
  108. package/bin/ECS/Core/Storage/index.d.ts.map +0 -1
  109. package/bin/ECS/Core/Storage/index.js +0 -4
  110. package/bin/ECS/Core/Storage/index.js.map +0 -1
  111. package/bin/ECS/CoreEvents.d.ts +0 -131
  112. package/bin/ECS/CoreEvents.d.ts.map +0 -1
  113. package/bin/ECS/CoreEvents.js +0 -163
  114. package/bin/ECS/CoreEvents.js.map +0 -1
  115. package/bin/ECS/Entity.d.ts +0 -455
  116. package/bin/ECS/Entity.d.ts.map +0 -1
  117. package/bin/ECS/Entity.js +0 -837
  118. package/bin/ECS/Entity.js.map +0 -1
  119. package/bin/ECS/Scene.d.ts +0 -225
  120. package/bin/ECS/Scene.d.ts.map +0 -1
  121. package/bin/ECS/Scene.js +0 -325
  122. package/bin/ECS/Scene.js.map +0 -1
  123. package/bin/ECS/Systems/EntitySystem.d.ts +0 -200
  124. package/bin/ECS/Systems/EntitySystem.d.ts.map +0 -1
  125. package/bin/ECS/Systems/EntitySystem.js +0 -431
  126. package/bin/ECS/Systems/EntitySystem.js.map +0 -1
  127. package/bin/ECS/Systems/IntervalSystem.d.ts +0 -33
  128. package/bin/ECS/Systems/IntervalSystem.d.ts.map +0 -1
  129. package/bin/ECS/Systems/IntervalSystem.js +0 -50
  130. package/bin/ECS/Systems/IntervalSystem.js.map +0 -1
  131. package/bin/ECS/Systems/PassiveSystem.d.ts +0 -17
  132. package/bin/ECS/Systems/PassiveSystem.d.ts.map +0 -1
  133. package/bin/ECS/Systems/PassiveSystem.js +0 -19
  134. package/bin/ECS/Systems/PassiveSystem.js.map +0 -1
  135. package/bin/ECS/Systems/ProcessingSystem.d.ts +0 -21
  136. package/bin/ECS/Systems/ProcessingSystem.d.ts.map +0 -1
  137. package/bin/ECS/Systems/ProcessingSystem.js +0 -20
  138. package/bin/ECS/Systems/ProcessingSystem.js.map +0 -1
  139. package/bin/ECS/Systems/index.d.ts +0 -5
  140. package/bin/ECS/Systems/index.d.ts.map +0 -1
  141. package/bin/ECS/Systems/index.js +0 -6
  142. package/bin/ECS/Systems/index.js.map +0 -1
  143. package/bin/ECS/Utils/BigIntCompatibility.d.ts +0 -164
  144. package/bin/ECS/Utils/BigIntCompatibility.d.ts.map +0 -1
  145. package/bin/ECS/Utils/BigIntCompatibility.js +0 -578
  146. package/bin/ECS/Utils/BigIntCompatibility.js.map +0 -1
  147. package/bin/ECS/Utils/Bits.d.ts +0 -163
  148. package/bin/ECS/Utils/Bits.d.ts.map +0 -1
  149. package/bin/ECS/Utils/Bits.js +0 -286
  150. package/bin/ECS/Utils/Bits.js.map +0 -1
  151. package/bin/ECS/Utils/ComponentTypeManager.d.ts +0 -50
  152. package/bin/ECS/Utils/ComponentTypeManager.d.ts.map +0 -1
  153. package/bin/ECS/Utils/ComponentTypeManager.js +0 -84
  154. package/bin/ECS/Utils/ComponentTypeManager.js.map +0 -1
  155. package/bin/ECS/Utils/EntityList.d.ts +0 -108
  156. package/bin/ECS/Utils/EntityList.d.ts.map +0 -1
  157. package/bin/ECS/Utils/EntityList.js +0 -262
  158. package/bin/ECS/Utils/EntityList.js.map +0 -1
  159. package/bin/ECS/Utils/EntityProcessorList.d.ts +0 -56
  160. package/bin/ECS/Utils/EntityProcessorList.d.ts.map +0 -1
  161. package/bin/ECS/Utils/EntityProcessorList.js +0 -102
  162. package/bin/ECS/Utils/EntityProcessorList.js.map +0 -1
  163. package/bin/ECS/Utils/IdentifierPool.d.ts +0 -203
  164. package/bin/ECS/Utils/IdentifierPool.d.ts.map +0 -1
  165. package/bin/ECS/Utils/IdentifierPool.js +0 -325
  166. package/bin/ECS/Utils/IdentifierPool.js.map +0 -1
  167. package/bin/ECS/Utils/Matcher.d.ts +0 -143
  168. package/bin/ECS/Utils/Matcher.d.ts.map +0 -1
  169. package/bin/ECS/Utils/Matcher.js +0 -249
  170. package/bin/ECS/Utils/Matcher.js.map +0 -1
  171. package/bin/ECS/Utils/index.d.ts +0 -8
  172. package/bin/ECS/Utils/index.d.ts.map +0 -1
  173. package/bin/ECS/Utils/index.js +0 -9
  174. package/bin/ECS/Utils/index.js.map +0 -1
  175. package/bin/ECS/index.d.ts +0 -12
  176. package/bin/ECS/index.d.ts.map +0 -1
  177. package/bin/ECS/index.js +0 -12
  178. package/bin/ECS/index.js.map +0 -1
  179. package/bin/Types/index.d.ts +0 -471
  180. package/bin/Types/index.d.ts.map +0 -1
  181. package/bin/Types/index.js +0 -5
  182. package/bin/Types/index.js.map +0 -1
  183. package/bin/Utils/Debug/ComponentDataCollector.d.ts +0 -28
  184. package/bin/Utils/Debug/ComponentDataCollector.d.ts.map +0 -1
  185. package/bin/Utils/Debug/ComponentDataCollector.js +0 -248
  186. package/bin/Utils/Debug/ComponentDataCollector.js.map +0 -1
  187. package/bin/Utils/Debug/DebugDataFormatter.d.ts +0 -22
  188. package/bin/Utils/Debug/DebugDataFormatter.d.ts.map +0 -1
  189. package/bin/Utils/Debug/DebugDataFormatter.js +0 -117
  190. package/bin/Utils/Debug/DebugDataFormatter.js.map +0 -1
  191. package/bin/Utils/Debug/DebugManager.d.ts +0 -104
  192. package/bin/Utils/Debug/DebugManager.d.ts.map +0 -1
  193. package/bin/Utils/Debug/DebugManager.js +0 -647
  194. package/bin/Utils/Debug/DebugManager.js.map +0 -1
  195. package/bin/Utils/Debug/EntityDataCollector.d.ts +0 -92
  196. package/bin/Utils/Debug/EntityDataCollector.d.ts.map +0 -1
  197. package/bin/Utils/Debug/EntityDataCollector.js +0 -864
  198. package/bin/Utils/Debug/EntityDataCollector.js.map +0 -1
  199. package/bin/Utils/Debug/PerformanceDataCollector.d.ts +0 -32
  200. package/bin/Utils/Debug/PerformanceDataCollector.d.ts.map +0 -1
  201. package/bin/Utils/Debug/PerformanceDataCollector.js +0 -217
  202. package/bin/Utils/Debug/PerformanceDataCollector.js.map +0 -1
  203. package/bin/Utils/Debug/SceneDataCollector.d.ts +0 -16
  204. package/bin/Utils/Debug/SceneDataCollector.d.ts.map +0 -1
  205. package/bin/Utils/Debug/SceneDataCollector.js +0 -46
  206. package/bin/Utils/Debug/SceneDataCollector.js.map +0 -1
  207. package/bin/Utils/Debug/SystemDataCollector.d.ts +0 -11
  208. package/bin/Utils/Debug/SystemDataCollector.d.ts.map +0 -1
  209. package/bin/Utils/Debug/SystemDataCollector.js +0 -59
  210. package/bin/Utils/Debug/SystemDataCollector.js.map +0 -1
  211. package/bin/Utils/Debug/WebSocketManager.d.ts +0 -59
  212. package/bin/Utils/Debug/WebSocketManager.d.ts.map +0 -1
  213. package/bin/Utils/Debug/WebSocketManager.js +0 -148
  214. package/bin/Utils/Debug/WebSocketManager.js.map +0 -1
  215. package/bin/Utils/Debug/index.d.ts +0 -8
  216. package/bin/Utils/Debug/index.d.ts.map +0 -1
  217. package/bin/Utils/Debug/index.js +0 -8
  218. package/bin/Utils/Debug/index.js.map +0 -1
  219. package/bin/Utils/Emitter.d.ts +0 -43
  220. package/bin/Utils/Emitter.d.ts.map +0 -1
  221. package/bin/Utils/Emitter.js +0 -69
  222. package/bin/Utils/Emitter.js.map +0 -1
  223. package/bin/Utils/Extensions/NumberExtension.d.ts +0 -13
  224. package/bin/Utils/Extensions/NumberExtension.d.ts.map +0 -1
  225. package/bin/Utils/Extensions/NumberExtension.js +0 -17
  226. package/bin/Utils/Extensions/NumberExtension.js.map +0 -1
  227. package/bin/Utils/Extensions/TypeUtils.d.ts +0 -13
  228. package/bin/Utils/Extensions/TypeUtils.d.ts.map +0 -1
  229. package/bin/Utils/Extensions/TypeUtils.js +0 -15
  230. package/bin/Utils/Extensions/TypeUtils.js.map +0 -1
  231. package/bin/Utils/Extensions/index.d.ts +0 -3
  232. package/bin/Utils/Extensions/index.d.ts.map +0 -1
  233. package/bin/Utils/Extensions/index.js +0 -4
  234. package/bin/Utils/Extensions/index.js.map +0 -1
  235. package/bin/Utils/GlobalManager.d.ts +0 -32
  236. package/bin/Utils/GlobalManager.d.ts.map +0 -1
  237. package/bin/Utils/GlobalManager.js +0 -53
  238. package/bin/Utils/GlobalManager.js.map +0 -1
  239. package/bin/Utils/Logger.d.ts +0 -156
  240. package/bin/Utils/Logger.d.ts.map +0 -1
  241. package/bin/Utils/Logger.js +0 -256
  242. package/bin/Utils/Logger.js.map +0 -1
  243. package/bin/Utils/PerformanceMonitor.d.ts +0 -211
  244. package/bin/Utils/PerformanceMonitor.d.ts.map +0 -1
  245. package/bin/Utils/PerformanceMonitor.js +0 -270
  246. package/bin/Utils/PerformanceMonitor.js.map +0 -1
  247. package/bin/Utils/Pool/IPoolable.d.ts +0 -29
  248. package/bin/Utils/Pool/IPoolable.d.ts.map +0 -1
  249. package/bin/Utils/Pool/IPoolable.js +0 -2
  250. package/bin/Utils/Pool/IPoolable.js.map +0 -1
  251. package/bin/Utils/Pool/Pool.d.ts +0 -109
  252. package/bin/Utils/Pool/Pool.d.ts.map +0 -1
  253. package/bin/Utils/Pool/Pool.js +0 -238
  254. package/bin/Utils/Pool/Pool.js.map +0 -1
  255. package/bin/Utils/Pool/PoolManager.d.ts +0 -91
  256. package/bin/Utils/Pool/PoolManager.d.ts.map +0 -1
  257. package/bin/Utils/Pool/PoolManager.js +0 -197
  258. package/bin/Utils/Pool/PoolManager.js.map +0 -1
  259. package/bin/Utils/Pool/index.d.ts +0 -4
  260. package/bin/Utils/Pool/index.d.ts.map +0 -1
  261. package/bin/Utils/Pool/index.js +0 -4
  262. package/bin/Utils/Pool/index.js.map +0 -1
  263. package/bin/Utils/Time.d.ts +0 -47
  264. package/bin/Utils/Time.d.ts.map +0 -1
  265. package/bin/Utils/Time.js +0 -64
  266. package/bin/Utils/Time.js.map +0 -1
  267. package/bin/Utils/Timers/ITimer.d.ts +0 -16
  268. package/bin/Utils/Timers/ITimer.d.ts.map +0 -1
  269. package/bin/Utils/Timers/ITimer.js +0 -2
  270. package/bin/Utils/Timers/ITimer.js.map +0 -1
  271. package/bin/Utils/Timers/Timer.d.ts +0 -30
  272. package/bin/Utils/Timers/Timer.d.ts.map +0 -1
  273. package/bin/Utils/Timers/Timer.js +0 -58
  274. package/bin/Utils/Timers/Timer.js.map +0 -1
  275. package/bin/Utils/Timers/TimerManager.d.ts +0 -19
  276. package/bin/Utils/Timers/TimerManager.d.ts.map +0 -1
  277. package/bin/Utils/Timers/TimerManager.js +0 -33
  278. package/bin/Utils/Timers/TimerManager.js.map +0 -1
  279. package/bin/Utils/index.d.ts +0 -9
  280. package/bin/Utils/index.d.ts.map +0 -1
  281. package/bin/Utils/index.js +0 -9
  282. package/bin/Utils/index.js.map +0 -1
  283. package/bin/index.d.ts +0 -16
  284. package/bin/index.d.ts.map +0 -1
  285. package/bin/index.js +0 -19
  286. package/bin/index.js.map +0 -1
@@ -1,405 +0,0 @@
1
- /**
2
- * 组件索引类型
3
- */
4
- export var IndexType;
5
- (function (IndexType) {
6
- /** 哈希索引 - 最快查找 */
7
- IndexType["HASH"] = "hash";
8
- /** 位图索引 - 内存高效 */
9
- IndexType["BITMAP"] = "bitmap";
10
- /** 排序索引 - 支持范围查询 */
11
- IndexType["SORTED"] = "sorted";
12
- })(IndexType || (IndexType = {}));
13
- /**
14
- * 哈希索引实现
15
- *
16
- * 使用Map数据结构,提供O(1)的查找性能。
17
- * 适合大多数查询场景。
18
- */
19
- export class HashComponentIndex {
20
- constructor() {
21
- this.type = IndexType.HASH;
22
- this._componentToEntities = new Map();
23
- this._entityToComponents = new Map();
24
- this._queryCount = 0;
25
- this._totalQueryTime = 0;
26
- this._lastUpdated = Date.now();
27
- this._setPool = [];
28
- this._componentTypeSetPool = [];
29
- }
30
- addEntity(entity) {
31
- if (entity.components.length === 0) {
32
- const componentTypes = this._componentTypeSetPool.pop() || new Set();
33
- componentTypes.clear();
34
- this._entityToComponents.set(entity, componentTypes);
35
- this._lastUpdated = Date.now();
36
- return;
37
- }
38
- const componentTypes = this._componentTypeSetPool.pop() || new Set();
39
- componentTypes.clear();
40
- for (const component of entity.components) {
41
- const componentType = component.constructor;
42
- componentTypes.add(componentType);
43
- let entities = this._componentToEntities.get(componentType);
44
- if (!entities) {
45
- entities = this._setPool.pop() || new Set();
46
- entities.clear();
47
- this._componentToEntities.set(componentType, entities);
48
- }
49
- entities.add(entity);
50
- }
51
- this._entityToComponents.set(entity, componentTypes);
52
- this._lastUpdated = Date.now();
53
- }
54
- removeEntity(entity) {
55
- const componentTypes = this._entityToComponents.get(entity);
56
- if (!componentTypes)
57
- return;
58
- for (const componentType of componentTypes) {
59
- const entities = this._componentToEntities.get(componentType);
60
- if (entities) {
61
- entities.delete(entity);
62
- if (entities.size === 0) {
63
- this._componentToEntities.delete(componentType);
64
- if (this._setPool.length < 50) {
65
- entities.clear();
66
- this._setPool.push(entities);
67
- }
68
- }
69
- }
70
- }
71
- this._entityToComponents.delete(entity);
72
- if (this._componentTypeSetPool.length < 50) {
73
- componentTypes.clear();
74
- this._componentTypeSetPool.push(componentTypes);
75
- }
76
- this._lastUpdated = Date.now();
77
- }
78
- query(componentType) {
79
- const startTime = performance.now();
80
- const entities = this._componentToEntities.get(componentType);
81
- const result = entities ? new Set(entities) : new Set();
82
- this._queryCount++;
83
- this._totalQueryTime += performance.now() - startTime;
84
- return result;
85
- }
86
- queryMultiple(componentTypes, operation) {
87
- const startTime = performance.now();
88
- if (componentTypes.length === 0) {
89
- return new Set();
90
- }
91
- if (componentTypes.length === 1) {
92
- return this.query(componentTypes[0]);
93
- }
94
- let result;
95
- if (operation === 'AND') {
96
- let smallestSet;
97
- let smallestSize = Infinity;
98
- for (const componentType of componentTypes) {
99
- const entities = this._componentToEntities.get(componentType);
100
- if (!entities || entities.size === 0) {
101
- this._queryCount++;
102
- this._totalQueryTime += performance.now() - startTime;
103
- return new Set();
104
- }
105
- if (entities.size < smallestSize) {
106
- smallestSize = entities.size;
107
- smallestSet = entities;
108
- }
109
- }
110
- result = new Set();
111
- if (smallestSet) {
112
- for (const entity of smallestSet) {
113
- let hasAll = true;
114
- for (const componentType of componentTypes) {
115
- const entities = this._componentToEntities.get(componentType);
116
- if (!entities || !entities.has(entity)) {
117
- hasAll = false;
118
- break;
119
- }
120
- }
121
- if (hasAll) {
122
- result.add(entity);
123
- }
124
- }
125
- }
126
- }
127
- else {
128
- result = new Set();
129
- for (const componentType of componentTypes) {
130
- const entities = this._componentToEntities.get(componentType);
131
- if (entities) {
132
- for (const entity of entities) {
133
- result.add(entity);
134
- }
135
- }
136
- }
137
- }
138
- this._queryCount++;
139
- this._totalQueryTime += performance.now() - startTime;
140
- return result;
141
- }
142
- clear() {
143
- this._componentToEntities.clear();
144
- this._entityToComponents.clear();
145
- this._lastUpdated = Date.now();
146
- }
147
- getStats() {
148
- let memoryUsage = 0;
149
- memoryUsage += this._componentToEntities.size * 64;
150
- memoryUsage += this._entityToComponents.size * 64;
151
- for (const entities of this._componentToEntities.values()) {
152
- memoryUsage += entities.size * 8;
153
- }
154
- for (const components of this._entityToComponents.values()) {
155
- memoryUsage += components.size * 8;
156
- }
157
- return {
158
- type: this.type,
159
- size: this._componentToEntities.size,
160
- memoryUsage,
161
- queryCount: this._queryCount,
162
- avgQueryTime: this._queryCount > 0 ? this._totalQueryTime / this._queryCount : 0,
163
- lastUpdated: this._lastUpdated
164
- };
165
- }
166
- }
167
- /**
168
- * 位图索引实现
169
- *
170
- * 使用位操作进行快速集合运算,内存效率高。
171
- * 适合有限组件类型和大量实体的场景。
172
- */
173
- export class BitmapComponentIndex {
174
- constructor() {
175
- this.type = IndexType.BITMAP;
176
- this._componentTypeToBit = new Map();
177
- this._entityToBitmap = new Map();
178
- this._bitToEntities = new Map();
179
- this._nextBit = 0;
180
- this._queryCount = 0;
181
- this._totalQueryTime = 0;
182
- this._lastUpdated = Date.now();
183
- }
184
- addEntity(entity) {
185
- let bitmap = 0;
186
- for (const component of entity.components) {
187
- const componentType = component.constructor;
188
- let bit = this._componentTypeToBit.get(componentType);
189
- if (bit === undefined) {
190
- bit = this._nextBit++;
191
- this._componentTypeToBit.set(componentType, bit);
192
- }
193
- bitmap |= (1 << bit);
194
- let entities = this._bitToEntities.get(1 << bit);
195
- if (!entities) {
196
- entities = new Set();
197
- this._bitToEntities.set(1 << bit, entities);
198
- }
199
- entities.add(entity);
200
- }
201
- this._entityToBitmap.set(entity, bitmap);
202
- this._lastUpdated = Date.now();
203
- }
204
- removeEntity(entity) {
205
- const bitmap = this._entityToBitmap.get(entity);
206
- if (bitmap === undefined)
207
- return;
208
- // 从所有相关的位集合中移除实体
209
- for (const [bitMask, entities] of this._bitToEntities) {
210
- if ((bitmap & bitMask) !== 0) {
211
- entities.delete(entity);
212
- if (entities.size === 0) {
213
- this._bitToEntities.delete(bitMask);
214
- }
215
- }
216
- }
217
- this._entityToBitmap.delete(entity);
218
- this._lastUpdated = Date.now();
219
- }
220
- query(componentType) {
221
- const startTime = performance.now();
222
- const bit = this._componentTypeToBit.get(componentType);
223
- if (bit === undefined) {
224
- this._queryCount++;
225
- this._totalQueryTime += performance.now() - startTime;
226
- return new Set();
227
- }
228
- const result = new Set(this._bitToEntities.get(1 << bit) || []);
229
- this._queryCount++;
230
- this._totalQueryTime += performance.now() - startTime;
231
- return result;
232
- }
233
- queryMultiple(componentTypes, operation) {
234
- const startTime = performance.now();
235
- if (componentTypes.length === 0) {
236
- return new Set();
237
- }
238
- let targetBitmap = 0;
239
- const validBits = [];
240
- for (const componentType of componentTypes) {
241
- const bit = this._componentTypeToBit.get(componentType);
242
- if (bit !== undefined) {
243
- targetBitmap |= (1 << bit);
244
- validBits.push(1 << bit);
245
- }
246
- }
247
- const result = new Set();
248
- if (operation === 'AND') {
249
- for (const [entity, entityBitmap] of this._entityToBitmap) {
250
- if ((entityBitmap & targetBitmap) === targetBitmap) {
251
- result.add(entity);
252
- }
253
- }
254
- }
255
- else {
256
- for (const bitMask of validBits) {
257
- const entities = this._bitToEntities.get(bitMask);
258
- if (entities) {
259
- for (const entity of entities) {
260
- result.add(entity);
261
- }
262
- }
263
- }
264
- }
265
- this._queryCount++;
266
- this._totalQueryTime += performance.now() - startTime;
267
- return result;
268
- }
269
- clear() {
270
- this._componentTypeToBit.clear();
271
- this._entityToBitmap.clear();
272
- this._bitToEntities.clear();
273
- this._nextBit = 0;
274
- this._lastUpdated = Date.now();
275
- }
276
- getStats() {
277
- let memoryUsage = 0;
278
- memoryUsage += this._componentTypeToBit.size * 12;
279
- memoryUsage += this._entityToBitmap.size * 12;
280
- memoryUsage += this._bitToEntities.size * 64;
281
- for (const entities of this._bitToEntities.values()) {
282
- memoryUsage += entities.size * 8;
283
- }
284
- return {
285
- type: this.type,
286
- size: this._componentTypeToBit.size,
287
- memoryUsage,
288
- queryCount: this._queryCount,
289
- avgQueryTime: this._queryCount > 0 ? this._totalQueryTime / this._queryCount : 0,
290
- lastUpdated: this._lastUpdated
291
- };
292
- }
293
- }
294
- /**
295
- * 智能组件索引管理器
296
- *
297
- * 根据使用模式自动选择最优的索引策略。
298
- * 支持动态切换索引类型以获得最佳性能。
299
- */
300
- export class ComponentIndexManager {
301
- constructor(initialType = IndexType.HASH) {
302
- this._indexHistory = new Map();
303
- this._autoOptimize = true;
304
- this._optimizationThreshold = 1000;
305
- this._activeIndex = this.createIndex(initialType);
306
- }
307
- /**
308
- * 添加实体到索引
309
- */
310
- addEntity(entity) {
311
- this._activeIndex.addEntity(entity);
312
- if (this._autoOptimize && this._activeIndex.getStats().queryCount % 100 === 0) {
313
- this.checkOptimization();
314
- }
315
- }
316
- /**
317
- * 从索引中移除实体
318
- */
319
- removeEntity(entity) {
320
- this._activeIndex.removeEntity(entity);
321
- }
322
- /**
323
- * 查询包含指定组件的实体
324
- */
325
- query(componentType) {
326
- return this._activeIndex.query(componentType);
327
- }
328
- /**
329
- * 批量查询多个组件
330
- */
331
- queryMultiple(componentTypes, operation) {
332
- return this._activeIndex.queryMultiple(componentTypes, operation);
333
- }
334
- /**
335
- * 手动切换索引类型
336
- */
337
- switchIndexType(type) {
338
- if (type === this._activeIndex.type)
339
- return;
340
- this._indexHistory.set(this._activeIndex.type, this._activeIndex.getStats());
341
- const oldIndex = this._activeIndex;
342
- this._activeIndex = this.createIndex(type);
343
- oldIndex.clear();
344
- }
345
- /**
346
- * 启用/禁用自动优化
347
- */
348
- setAutoOptimize(enabled) {
349
- this._autoOptimize = enabled;
350
- }
351
- /**
352
- * 获取当前索引统计信息
353
- */
354
- getStats() {
355
- return this._activeIndex.getStats();
356
- }
357
- /**
358
- * 获取所有索引类型的历史统计信息
359
- */
360
- getAllStats() {
361
- const current = this._activeIndex.getStats();
362
- return new Map([
363
- ...this._indexHistory,
364
- [current.type, current]
365
- ]);
366
- }
367
- /**
368
- * 清空索引
369
- */
370
- clear() {
371
- this._activeIndex.clear();
372
- }
373
- /**
374
- * 创建指定类型的索引
375
- */
376
- createIndex(type) {
377
- switch (type) {
378
- case IndexType.HASH:
379
- return new HashComponentIndex();
380
- case IndexType.BITMAP:
381
- return new BitmapComponentIndex();
382
- case IndexType.SORTED:
383
- return new HashComponentIndex();
384
- default:
385
- return new HashComponentIndex();
386
- }
387
- }
388
- /**
389
- * 检查是否需要优化索引
390
- */
391
- checkOptimization() {
392
- if (!this._autoOptimize)
393
- return;
394
- const stats = this._activeIndex.getStats();
395
- if (stats.queryCount < this._optimizationThreshold)
396
- return;
397
- if (stats.avgQueryTime > 1.0 && stats.type !== IndexType.HASH) {
398
- this.switchIndexType(IndexType.HASH);
399
- }
400
- else if (stats.memoryUsage > 10 * 1024 * 1024 && stats.type !== IndexType.BITMAP) {
401
- this.switchIndexType(IndexType.BITMAP);
402
- }
403
- }
404
- }
405
- //# sourceMappingURL=ComponentIndex.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ComponentIndex.js","sourceRoot":"","sources":["../../../src/ECS/Core/ComponentIndex.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,CAAN,IAAY,SAOX;AAPD,WAAY,SAAS;IACjB,kBAAkB;IAClB,0BAAa,CAAA;IACb,kBAAkB;IAClB,8BAAiB,CAAA;IACjB,oBAAoB;IACpB,8BAAiB,CAAA;AACrB,CAAC,EAPW,SAAS,KAAT,SAAS,QAOpB;AAwCD;;;;;GAKG;AACH,MAAM,OAAO,kBAAkB;IAA/B;QACoB,SAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QAE9B,yBAAoB,GAAG,IAAI,GAAG,EAA8B,CAAC;QAC7D,wBAAmB,GAAG,IAAI,GAAG,EAA8B,CAAC;QAC5D,gBAAW,GAAG,CAAC,CAAC;QAChB,oBAAe,GAAG,CAAC,CAAC;QACpB,iBAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE1B,aAAQ,GAAkB,EAAE,CAAC;QAC7B,0BAAqB,GAAyB,EAAE,CAAC;IAmK7D,CAAC;IAjKU,SAAS,CAAC,MAAc;QAC3B,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,IAAI,IAAI,GAAG,EAAiB,CAAC;YACpF,cAAc,CAAC,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;YACrD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC/B,OAAO;QACX,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,IAAI,IAAI,GAAG,EAAiB,CAAC;QACpF,cAAc,CAAC,KAAK,EAAE,CAAC;QAEvB,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACxC,MAAM,aAAa,GAAG,SAAS,CAAC,WAA4B,CAAC;YAC7D,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAElC,IAAI,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC5D,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACZ,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,IAAI,GAAG,EAAU,CAAC;gBACpD,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACjB,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;YAC3D,CAAC;YACD,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;QAED,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QACrD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACnC,CAAC;IAEM,YAAY,CAAC,MAAc;QAC9B,MAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAI,CAAC,cAAc;YAAE,OAAO;QAE5B,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;YACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC9D,IAAI,QAAQ,EAAE,CAAC;gBACX,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACxB,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBACtB,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;oBAChD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;wBAC5B,QAAQ,CAAC,KAAK,EAAE,CAAC;wBACjB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACjC,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAExC,IAAI,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACzC,cAAc,CAAC,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACnC,CAAC;IAEM,KAAK,CAAC,aAA4B;QACrC,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAU,CAAC;QAEhE,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,eAAe,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAEtD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEM,aAAa,CAAC,cAA+B,EAAE,SAAuB;QACzE,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAEpC,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,GAAG,EAAE,CAAC;QACrB,CAAC;QAED,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,MAAmB,CAAC;QAExB,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;YACtB,IAAI,WAAoC,CAAC;YACzC,IAAI,YAAY,GAAG,QAAQ,CAAC;YAE5B,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;gBACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBAC9D,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBACnC,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnB,IAAI,CAAC,eAAe,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;oBACtD,OAAO,IAAI,GAAG,EAAE,CAAC;gBACrB,CAAC;gBACD,IAAI,QAAQ,CAAC,IAAI,GAAG,YAAY,EAAE,CAAC;oBAC/B,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC;oBAC7B,WAAW,GAAG,QAAQ,CAAC;gBAC3B,CAAC;YACL,CAAC;YAED,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;YACnB,IAAI,WAAW,EAAE,CAAC;gBACd,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;oBAC/B,IAAI,MAAM,GAAG,IAAI,CAAC;oBAClB,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;wBACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;wBAC9D,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;4BACrC,MAAM,GAAG,KAAK,CAAC;4BACf,MAAM;wBACV,CAAC;oBACL,CAAC;oBACD,IAAI,MAAM,EAAE,CAAC;wBACT,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBACvB,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;YACnB,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;gBACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBAC9D,IAAI,QAAQ,EAAE,CAAC;oBACX,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;wBAC5B,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBACvB,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,eAAe,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAEtD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEM,KAAK;QACR,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACnC,CAAC;IAEM,QAAQ;QACX,IAAI,WAAW,GAAG,CAAC,CAAC;QAEpB,WAAW,IAAI,IAAI,CAAC,oBAAoB,CAAC,IAAI,GAAG,EAAE,CAAC;QACnD,WAAW,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,GAAG,EAAE,CAAC;QAElD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,EAAE,CAAC;YACxD,WAAW,IAAI,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC;QACrC,CAAC;QAED,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,EAAE,CAAC;YACzD,WAAW,IAAI,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC;QACvC,CAAC;QAED,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI;YACpC,WAAW;YACX,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,YAAY,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAChF,WAAW,EAAE,IAAI,CAAC,YAAY;SACjC,CAAC;IACN,CAAC;CACJ;AAED;;;;;GAKG;AACH,MAAM,OAAO,oBAAoB;IAAjC;QACoB,SAAI,GAAG,SAAS,CAAC,MAAM,CAAC;QAEhC,wBAAmB,GAAG,IAAI,GAAG,EAAyB,CAAC;QACvD,oBAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC5C,mBAAc,GAAG,IAAI,GAAG,EAAuB,CAAC;QAChD,aAAQ,GAAG,CAAC,CAAC;QACb,gBAAW,GAAG,CAAC,CAAC;QAChB,oBAAe,GAAG,CAAC,CAAC;QACpB,iBAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAuItC,CAAC;IArIU,SAAS,CAAC,MAAc;QAC3B,IAAI,MAAM,GAAG,CAAC,CAAC;QAEf,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACxC,MAAM,aAAa,GAAG,SAAS,CAAC,WAA4B,CAAC;YAC7D,IAAI,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAEtD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACpB,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACtB,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;YACrD,CAAC;YAED,MAAM,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;YAErB,IAAI,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;YACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACZ,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;gBACrB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,CAAC;YAChD,CAAC;YACD,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACnC,CAAC;IAEM,YAAY,CAAC,MAAc;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO;QAEjC,iBAAiB;QACjB,KAAK,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACpD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3B,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACxB,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBACtB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACxC,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACnC,CAAC;IAEM,KAAK,CAAC,aAA4B;QACrC,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAEpC,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACxD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,eAAe,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACtD,OAAO,IAAI,GAAG,EAAE,CAAC;QACrB,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAEhE,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,eAAe,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAEtD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEM,aAAa,CAAC,cAA+B,EAAE,SAAuB;QACzE,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAEpC,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,GAAG,EAAE,CAAC;QACrB,CAAC;QAED,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,MAAM,SAAS,GAAa,EAAE,CAAC;QAE/B,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;YACzC,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACxD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACpB,YAAY,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;gBAC3B,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;YAC7B,CAAC;QACL,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;QAEjC,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;YACtB,KAAK,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACxD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,KAAK,YAAY,EAAE,CAAC;oBACjD,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACvB,CAAC;YACL,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;gBAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAClD,IAAI,QAAQ,EAAE,CAAC;oBACX,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;wBAC5B,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBACvB,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,eAAe,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAEtD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEM,KAAK;QACR,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;QACjC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACnC,CAAC;IAEM,QAAQ;QACX,IAAI,WAAW,GAAG,CAAC,CAAC;QAEpB,WAAW,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,GAAG,EAAE,CAAC;QAClD,WAAW,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,EAAE,CAAC;QAC9C,WAAW,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,EAAE,CAAC;QAE7C,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;YAClD,WAAW,IAAI,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC;QACrC,CAAC;QAED,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI;YACnC,WAAW;YACX,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,YAAY,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAChF,WAAW,EAAE,IAAI,CAAC,YAAY;SACjC,CAAC;IACN,CAAC;CACJ;AAED;;;;;GAKG;AACH,MAAM,OAAO,qBAAqB;IAM9B,YAAY,cAAyB,SAAS,CAAC,IAAI;QAJ3C,kBAAa,GAA+B,IAAI,GAAG,EAAE,CAAC;QACtD,kBAAa,GAAG,IAAI,CAAC;QACrB,2BAAsB,GAAG,IAAI,CAAC;QAGlC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACI,SAAS,CAAC,MAAc;QAC3B,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAEpC,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,UAAU,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC;YAC5E,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC7B,CAAC;IACL,CAAC;IAED;;OAEG;IACI,YAAY,CAAC,MAAc;QAC9B,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,aAA4B;QACrC,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACI,aAAa,CAAC,cAA+B,EAAE,SAAuB;QACzE,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACI,eAAe,CAAC,IAAe;QAClC,IAAI,IAAI,KAAK,IAAI,CAAC,YAAY,CAAC,IAAI;YAAE,OAAO;QAE5C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE7E,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAE3C,QAAQ,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED;;OAEG;IACI,eAAe,CAAC,OAAgB;QACnC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;IACjC,CAAC;IAED;;OAEG;IACI,QAAQ;QACX,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;IACxC,CAAC;IAED;;OAEG;IACI,WAAW;QACd,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;QAC7C,OAAO,IAAI,GAAG,CAAC;YACX,GAAG,IAAI,CAAC,aAAa;YACrB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SAC1B,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACI,KAAK;QACR,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,IAAe;QAC/B,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,SAAS,CAAC,IAAI;gBACf,OAAO,IAAI,kBAAkB,EAAE,CAAC;YACpC,KAAK,SAAS,CAAC,MAAM;gBACjB,OAAO,IAAI,oBAAoB,EAAE,CAAC;YACtC,KAAK,SAAS,CAAC,MAAM;gBACjB,OAAO,IAAI,kBAAkB,EAAE,CAAC;YACpC;gBACI,OAAO,IAAI,kBAAkB,EAAE,CAAC;QACxC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,iBAAiB;QACrB,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO;QAEhC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;QAC3C,IAAI,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,sBAAsB;YAAE,OAAO;QAG3D,IAAI,KAAK,CAAC,YAAY,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YAC5D,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;aAAM,IAAI,KAAK,CAAC,WAAW,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;YACjF,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;IACL,CAAC;CACJ"}
@@ -1,88 +0,0 @@
1
- import { Component } from '../Component';
2
- /**
3
- * 组件对象池,用于复用组件实例以减少内存分配
4
- */
5
- export declare class ComponentPool<T extends Component> {
6
- private pool;
7
- private createFn;
8
- private resetFn?;
9
- private maxSize;
10
- constructor(createFn: () => T, resetFn?: (component: T) => void, maxSize?: number);
11
- /**
12
- * 获取一个组件实例
13
- */
14
- acquire(): T;
15
- /**
16
- * 释放一个组件实例回池中
17
- */
18
- release(component: T): void;
19
- /**
20
- * 预填充对象池
21
- */
22
- prewarm(count: number): void;
23
- /**
24
- * 清空对象池
25
- */
26
- clear(): void;
27
- /**
28
- * 获取池中可用对象数量
29
- */
30
- getAvailableCount(): number;
31
- /**
32
- * 获取池的最大容量
33
- */
34
- getMaxSize(): number;
35
- }
36
- /**
37
- * 全局组件池管理器
38
- */
39
- export declare class ComponentPoolManager {
40
- private static instance;
41
- private pools;
42
- private constructor();
43
- static getInstance(): ComponentPoolManager;
44
- /**
45
- * 注册组件池
46
- */
47
- registerPool<T extends Component>(componentName: string, createFn: () => T, resetFn?: (component: T) => void, maxSize?: number): void;
48
- /**
49
- * 获取组件实例
50
- */
51
- acquireComponent<T extends Component>(componentName: string): T | null;
52
- /**
53
- * 释放组件实例
54
- */
55
- releaseComponent<T extends Component>(componentName: string, component: T): void;
56
- /**
57
- * 预热所有池
58
- */
59
- prewarmAll(count?: number): void;
60
- /**
61
- * 清空所有池
62
- */
63
- clearAll(): void;
64
- /**
65
- * 重置管理器,移除所有注册的池
66
- */
67
- reset(): void;
68
- /**
69
- * 获取池统计信息
70
- */
71
- getPoolStats(): Map<string, {
72
- available: number;
73
- maxSize: number;
74
- }>;
75
- /**
76
- * 获取池利用率信息(用于调试)
77
- */
78
- getPoolUtilization(): Map<string, {
79
- used: number;
80
- total: number;
81
- utilization: number;
82
- }>;
83
- /**
84
- * 获取指定组件的池利用率
85
- */
86
- getComponentUtilization(componentName: string): number;
87
- }
88
- //# sourceMappingURL=ComponentPool.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ComponentPool.d.ts","sourceRoot":"","sources":["../../../src/ECS/Core/ComponentPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC;;GAEG;AACH,qBAAa,aAAa,CAAC,CAAC,SAAS,SAAS;IAC1C,OAAO,CAAC,IAAI,CAAW;IACvB,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,OAAO,CAAC,CAAyB;IACzC,OAAO,CAAC,OAAO,CAAS;gBAGpB,QAAQ,EAAE,MAAM,CAAC,EACjB,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,IAAI,EAChC,OAAO,GAAE,MAAa;IAO1B;;OAEG;IACH,OAAO,IAAI,CAAC;IAOZ;;OAEG;IACH,OAAO,CAAC,SAAS,EAAE,CAAC,GAAG,IAAI;IAS3B;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM5B;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAI3B;;OAEG;IACH,UAAU,IAAI,MAAM;CAGvB;AAED;;GAEG;AACH,qBAAa,oBAAoB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAuB;IAC9C,OAAO,CAAC,KAAK,CAAyC;IAEtD,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,oBAAoB;IAO1C;;OAEG;IACH,YAAY,CAAC,CAAC,SAAS,SAAS,EAC5B,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,CAAC,EACjB,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,IAAI,EAChC,OAAO,CAAC,EAAE,MAAM,GACjB,IAAI;IAIP;;OAEG;IACH,gBAAgB,CAAC,CAAC,SAAS,SAAS,EAAE,aAAa,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAKtE;;OAEG;IACH,gBAAgB,CAAC,CAAC,SAAS,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,GAAG,IAAI;IAOhF;;OAEG;IACH,UAAU,CAAC,KAAK,GAAE,MAAY,GAAG,IAAI;IAMrC;;OAEG;IACH,QAAQ,IAAI,IAAI;IAMhB;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,YAAY,IAAI,GAAG,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAWnE;;OAEG;IACH,kBAAkB,IAAI,GAAG,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAiBvF;;OAEG;IACH,uBAAuB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;CAUzD"}
@@ -1,159 +0,0 @@
1
- /**
2
- * 组件对象池,用于复用组件实例以减少内存分配
3
- */
4
- export class ComponentPool {
5
- constructor(createFn, resetFn, maxSize = 1000) {
6
- this.pool = [];
7
- this.createFn = createFn;
8
- this.resetFn = resetFn;
9
- this.maxSize = maxSize;
10
- }
11
- /**
12
- * 获取一个组件实例
13
- */
14
- acquire() {
15
- if (this.pool.length > 0) {
16
- return this.pool.pop();
17
- }
18
- return this.createFn();
19
- }
20
- /**
21
- * 释放一个组件实例回池中
22
- */
23
- release(component) {
24
- if (this.pool.length < this.maxSize) {
25
- if (this.resetFn) {
26
- this.resetFn(component);
27
- }
28
- this.pool.push(component);
29
- }
30
- }
31
- /**
32
- * 预填充对象池
33
- */
34
- prewarm(count) {
35
- for (let i = 0; i < count && this.pool.length < this.maxSize; i++) {
36
- this.pool.push(this.createFn());
37
- }
38
- }
39
- /**
40
- * 清空对象池
41
- */
42
- clear() {
43
- this.pool.length = 0;
44
- }
45
- /**
46
- * 获取池中可用对象数量
47
- */
48
- getAvailableCount() {
49
- return this.pool.length;
50
- }
51
- /**
52
- * 获取池的最大容量
53
- */
54
- getMaxSize() {
55
- return this.maxSize;
56
- }
57
- }
58
- /**
59
- * 全局组件池管理器
60
- */
61
- export class ComponentPoolManager {
62
- constructor() {
63
- this.pools = new Map();
64
- }
65
- static getInstance() {
66
- if (!ComponentPoolManager.instance) {
67
- ComponentPoolManager.instance = new ComponentPoolManager();
68
- }
69
- return ComponentPoolManager.instance;
70
- }
71
- /**
72
- * 注册组件池
73
- */
74
- registerPool(componentName, createFn, resetFn, maxSize) {
75
- this.pools.set(componentName, new ComponentPool(createFn, resetFn, maxSize));
76
- }
77
- /**
78
- * 获取组件实例
79
- */
80
- acquireComponent(componentName) {
81
- const pool = this.pools.get(componentName);
82
- return pool ? pool.acquire() : null;
83
- }
84
- /**
85
- * 释放组件实例
86
- */
87
- releaseComponent(componentName, component) {
88
- const pool = this.pools.get(componentName);
89
- if (pool) {
90
- pool.release(component);
91
- }
92
- }
93
- /**
94
- * 预热所有池
95
- */
96
- prewarmAll(count = 100) {
97
- for (const pool of this.pools.values()) {
98
- pool.prewarm(count);
99
- }
100
- }
101
- /**
102
- * 清空所有池
103
- */
104
- clearAll() {
105
- for (const pool of this.pools.values()) {
106
- pool.clear();
107
- }
108
- }
109
- /**
110
- * 重置管理器,移除所有注册的池
111
- */
112
- reset() {
113
- this.pools.clear();
114
- }
115
- /**
116
- * 获取池统计信息
117
- */
118
- getPoolStats() {
119
- const stats = new Map();
120
- for (const [name, pool] of this.pools) {
121
- stats.set(name, {
122
- available: pool.getAvailableCount(),
123
- maxSize: pool.getMaxSize()
124
- });
125
- }
126
- return stats;
127
- }
128
- /**
129
- * 获取池利用率信息(用于调试)
130
- */
131
- getPoolUtilization() {
132
- const utilization = new Map();
133
- for (const [name, pool] of this.pools) {
134
- const available = pool.getAvailableCount();
135
- const maxSize = pool.getMaxSize();
136
- const used = maxSize - available;
137
- const utilRate = maxSize > 0 ? (used / maxSize * 100) : 0;
138
- utilization.set(name, {
139
- used: used,
140
- total: maxSize,
141
- utilization: utilRate
142
- });
143
- }
144
- return utilization;
145
- }
146
- /**
147
- * 获取指定组件的池利用率
148
- */
149
- getComponentUtilization(componentName) {
150
- const pool = this.pools.get(componentName);
151
- if (!pool)
152
- return 0;
153
- const available = pool.getAvailableCount();
154
- const maxSize = pool.getMaxSize();
155
- const used = maxSize - available;
156
- return maxSize > 0 ? (used / maxSize * 100) : 0;
157
- }
158
- }
159
- //# sourceMappingURL=ComponentPool.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ComponentPool.js","sourceRoot":"","sources":["../../../src/ECS/Core/ComponentPool.ts"],"names":[],"mappings":"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"}