@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,92 +0,0 @@
1
- import { Component } from '../../Component';
2
- import { IBigIntLike } from '../../Utils/BigIntCompatibility';
3
- /**
4
- * 组件类型定义
5
- */
6
- export type ComponentType<T extends Component = Component> = new (...args: unknown[]) => T;
7
- /**
8
- * 组件注册表
9
- * 管理组件类型的位掩码分配
10
- */
11
- export declare class ComponentRegistry {
12
- protected static readonly _logger: import("../../../Utils/Logger").ILogger;
13
- private static componentTypes;
14
- private static componentNameToType;
15
- private static componentNameToId;
16
- private static maskCache;
17
- private static nextBitIndex;
18
- private static maxComponents;
19
- /**
20
- * 注册组件类型并分配位掩码
21
- * @param componentType 组件类型
22
- * @returns 分配的位索引
23
- */
24
- static register<T extends Component>(componentType: ComponentType<T>): number;
25
- /**
26
- * 获取组件类型的位掩码
27
- * @param componentType 组件类型
28
- * @returns 位掩码
29
- */
30
- static getBitMask<T extends Component>(componentType: ComponentType<T>): IBigIntLike;
31
- /**
32
- * 获取组件类型的位索引
33
- * @param componentType 组件类型
34
- * @returns 位索引
35
- */
36
- static getBitIndex<T extends Component>(componentType: ComponentType<T>): number;
37
- /**
38
- * 检查组件类型是否已注册
39
- * @param componentType 组件类型
40
- * @returns 是否已注册
41
- */
42
- static isRegistered<T extends Component>(componentType: ComponentType<T>): boolean;
43
- /**
44
- * 通过名称获取组件类型
45
- * @param componentName 组件名称
46
- * @returns 组件类型构造函数
47
- */
48
- static getComponentType(componentName: string): Function | null;
49
- /**
50
- * 获取所有已注册的组件类型
51
- * @returns 组件类型映射
52
- */
53
- static getAllRegisteredTypes(): Map<Function, number>;
54
- /**
55
- * 获取所有组件名称到类型的映射
56
- * @returns 名称到类型的映射
57
- */
58
- static getAllComponentNames(): Map<string, Function>;
59
- /**
60
- * 通过名称获取组件类型ID
61
- * @param componentName 组件名称
62
- * @returns 组件类型ID
63
- */
64
- static getComponentId(componentName: string): number | undefined;
65
- /**
66
- * 注册组件类型(通过名称)
67
- * @param componentName 组件名称
68
- * @returns 分配的组件ID
69
- */
70
- static registerComponentByName(componentName: string): number;
71
- /**
72
- * 创建单个组件的掩码
73
- * @param componentName 组件名称
74
- * @returns 组件掩码
75
- */
76
- static createSingleComponentMask(componentName: string): IBigIntLike;
77
- /**
78
- * 创建多个组件的掩码
79
- * @param componentNames 组件名称数组
80
- * @returns 组合掩码
81
- */
82
- static createComponentMask(componentNames: string[]): IBigIntLike;
83
- /**
84
- * 清除掩码缓存
85
- */
86
- static clearMaskCache(): void;
87
- /**
88
- * 重置注册表(用于测试)
89
- */
90
- static reset(): void;
91
- }
92
- //# sourceMappingURL=ComponentRegistry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ComponentRegistry.d.ts","sourceRoot":"","sources":["../../../../src/ECS/Core/ComponentStorage/ComponentRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAiB,MAAM,iCAAiC,CAAC;AAG7E;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,IAAI,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAE3F;;;GAGG;AACH,qBAAa,iBAAiB;IAC1B,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,0CAAoC;IACrE,OAAO,CAAC,MAAM,CAAC,cAAc,CAA+B;IAC5D,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAA+B;IACjE,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAA6B;IAC7D,OAAO,CAAC,MAAM,CAAC,SAAS,CAAkC;IAC1D,OAAO,CAAC,MAAM,CAAC,YAAY,CAAK;IAChC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAM;IAElC;;;;OAIG;WACW,QAAQ,CAAC,CAAC,SAAS,SAAS,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,MAAM;IAgBpF;;;;OAIG;WACW,UAAU,CAAC,CAAC,SAAS,SAAS,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,WAAW;IAQ3F;;;;OAIG;WACW,WAAW,CAAC,CAAC,SAAS,SAAS,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,MAAM;IAQvF;;;;OAIG;WACW,YAAY,CAAC,CAAC,SAAS,SAAS,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,OAAO;IAIzF;;;;OAIG;WACW,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAItE;;;OAGG;WACW,qBAAqB,IAAI,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC;IAI5D;;;OAGG;WACW,oBAAoB,IAAI,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC;IAI3D;;;;OAIG;WACW,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIvE;;;;OAIG;WACW,uBAAuB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;IAcpE;;;;OAIG;WACW,yBAAyB,CAAC,aAAa,EAAE,MAAM,GAAG,WAAW;IAiB3E;;;;OAIG;WACW,mBAAmB,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,WAAW;IAoBxE;;OAEG;WACW,cAAc,IAAI,IAAI;IAIpC;;OAEG;WACW,KAAK,IAAI,IAAI;CAO9B"}
@@ -1,167 +0,0 @@
1
- import { BigIntFactory } from '../../Utils/BigIntCompatibility';
2
- import { createLogger } from '../../../Utils/Logger';
3
- /**
4
- * 组件注册表
5
- * 管理组件类型的位掩码分配
6
- */
7
- export class ComponentRegistry {
8
- /**
9
- * 注册组件类型并分配位掩码
10
- * @param componentType 组件类型
11
- * @returns 分配的位索引
12
- */
13
- static register(componentType) {
14
- if (this.componentTypes.has(componentType)) {
15
- return this.componentTypes.get(componentType);
16
- }
17
- if (this.nextBitIndex >= this.maxComponents) {
18
- throw new Error(`Maximum number of component types (${this.maxComponents}) exceeded`);
19
- }
20
- const bitIndex = this.nextBitIndex++;
21
- this.componentTypes.set(componentType, bitIndex);
22
- this.componentNameToType.set(componentType.name, componentType);
23
- this.componentNameToId.set(componentType.name, bitIndex);
24
- return bitIndex;
25
- }
26
- /**
27
- * 获取组件类型的位掩码
28
- * @param componentType 组件类型
29
- * @returns 位掩码
30
- */
31
- static getBitMask(componentType) {
32
- const bitIndex = this.componentTypes.get(componentType);
33
- if (bitIndex === undefined) {
34
- throw new Error(`Component type ${componentType.name} is not registered`);
35
- }
36
- return BigIntFactory.one().shiftLeft(bitIndex);
37
- }
38
- /**
39
- * 获取组件类型的位索引
40
- * @param componentType 组件类型
41
- * @returns 位索引
42
- */
43
- static getBitIndex(componentType) {
44
- const bitIndex = this.componentTypes.get(componentType);
45
- if (bitIndex === undefined) {
46
- throw new Error(`Component type ${componentType.name} is not registered`);
47
- }
48
- return bitIndex;
49
- }
50
- /**
51
- * 检查组件类型是否已注册
52
- * @param componentType 组件类型
53
- * @returns 是否已注册
54
- */
55
- static isRegistered(componentType) {
56
- return this.componentTypes.has(componentType);
57
- }
58
- /**
59
- * 通过名称获取组件类型
60
- * @param componentName 组件名称
61
- * @returns 组件类型构造函数
62
- */
63
- static getComponentType(componentName) {
64
- return this.componentNameToType.get(componentName) || null;
65
- }
66
- /**
67
- * 获取所有已注册的组件类型
68
- * @returns 组件类型映射
69
- */
70
- static getAllRegisteredTypes() {
71
- return new Map(this.componentTypes);
72
- }
73
- /**
74
- * 获取所有组件名称到类型的映射
75
- * @returns 名称到类型的映射
76
- */
77
- static getAllComponentNames() {
78
- return new Map(this.componentNameToType);
79
- }
80
- /**
81
- * 通过名称获取组件类型ID
82
- * @param componentName 组件名称
83
- * @returns 组件类型ID
84
- */
85
- static getComponentId(componentName) {
86
- return this.componentNameToId.get(componentName);
87
- }
88
- /**
89
- * 注册组件类型(通过名称)
90
- * @param componentName 组件名称
91
- * @returns 分配的组件ID
92
- */
93
- static registerComponentByName(componentName) {
94
- if (this.componentNameToId.has(componentName)) {
95
- return this.componentNameToId.get(componentName);
96
- }
97
- if (this.nextBitIndex >= this.maxComponents) {
98
- throw new Error(`Maximum number of component types (${this.maxComponents}) exceeded`);
99
- }
100
- const bitIndex = this.nextBitIndex++;
101
- this.componentNameToId.set(componentName, bitIndex);
102
- return bitIndex;
103
- }
104
- /**
105
- * 创建单个组件的掩码
106
- * @param componentName 组件名称
107
- * @returns 组件掩码
108
- */
109
- static createSingleComponentMask(componentName) {
110
- const cacheKey = `single:${componentName}`;
111
- if (this.maskCache.has(cacheKey)) {
112
- return this.maskCache.get(cacheKey);
113
- }
114
- const componentId = this.getComponentId(componentName);
115
- if (componentId === undefined) {
116
- throw new Error(`Component type ${componentName} is not registered`);
117
- }
118
- const mask = BigIntFactory.one().shiftLeft(componentId);
119
- this.maskCache.set(cacheKey, mask);
120
- return mask;
121
- }
122
- /**
123
- * 创建多个组件的掩码
124
- * @param componentNames 组件名称数组
125
- * @returns 组合掩码
126
- */
127
- static createComponentMask(componentNames) {
128
- const sortedNames = [...componentNames].sort();
129
- const cacheKey = `multi:${sortedNames.join(',')}`;
130
- if (this.maskCache.has(cacheKey)) {
131
- return this.maskCache.get(cacheKey);
132
- }
133
- let mask = BigIntFactory.zero();
134
- for (const name of componentNames) {
135
- const componentId = this.getComponentId(name);
136
- if (componentId !== undefined) {
137
- mask = mask.or(BigIntFactory.one().shiftLeft(componentId));
138
- }
139
- }
140
- this.maskCache.set(cacheKey, mask);
141
- return mask;
142
- }
143
- /**
144
- * 清除掩码缓存
145
- */
146
- static clearMaskCache() {
147
- this.maskCache.clear();
148
- }
149
- /**
150
- * 重置注册表(用于测试)
151
- */
152
- static reset() {
153
- this.componentTypes.clear();
154
- this.componentNameToType.clear();
155
- this.componentNameToId.clear();
156
- this.maskCache.clear();
157
- this.nextBitIndex = 0;
158
- }
159
- }
160
- ComponentRegistry._logger = createLogger('ComponentStorage');
161
- ComponentRegistry.componentTypes = new Map();
162
- ComponentRegistry.componentNameToType = new Map();
163
- ComponentRegistry.componentNameToId = new Map();
164
- ComponentRegistry.maskCache = new Map();
165
- ComponentRegistry.nextBitIndex = 0;
166
- ComponentRegistry.maxComponents = 64; // 支持最多64种组件类型
167
- //# sourceMappingURL=ComponentRegistry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ComponentRegistry.js","sourceRoot":"","sources":["../../../../src/ECS/Core/ComponentStorage/ComponentRegistry.ts"],"names":[],"mappings":"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"}
@@ -1,233 +0,0 @@
1
- import { Component } from '../Component';
2
- import { IBigIntLike } from '../Utils/BigIntCompatibility';
3
- import { SoAStorage, EnableSoA, HighPrecision, Float64, Int32, SerializeMap, SerializeSet, SerializeArray, DeepCopy } from './SoAStorage';
4
- export { EnableSoA, HighPrecision, Float64, Int32, SerializeMap, SerializeSet, SerializeArray, DeepCopy };
5
- /**
6
- * 组件类型定义
7
- */
8
- export type ComponentType<T extends Component = Component> = new (...args: unknown[]) => T;
9
- /**
10
- * 组件注册表
11
- * 管理组件类型的位掩码分配
12
- */
13
- export declare class ComponentRegistry {
14
- protected static readonly _logger: import("../../Utils/Logger").ILogger;
15
- private static componentTypes;
16
- private static componentNameToType;
17
- private static componentNameToId;
18
- private static maskCache;
19
- private static nextBitIndex;
20
- private static maxComponents;
21
- /**
22
- * 注册组件类型并分配位掩码
23
- * @param componentType 组件类型
24
- * @returns 分配的位索引
25
- */
26
- static register<T extends Component>(componentType: ComponentType<T>): number;
27
- /**
28
- * 获取组件类型的位掩码
29
- * @param componentType 组件类型
30
- * @returns 位掩码
31
- */
32
- static getBitMask<T extends Component>(componentType: ComponentType<T>): IBigIntLike;
33
- /**
34
- * 获取组件类型的位索引
35
- * @param componentType 组件类型
36
- * @returns 位索引
37
- */
38
- static getBitIndex<T extends Component>(componentType: ComponentType<T>): number;
39
- /**
40
- * 检查组件类型是否已注册
41
- * @param componentType 组件类型
42
- * @returns 是否已注册
43
- */
44
- static isRegistered<T extends Component>(componentType: ComponentType<T>): boolean;
45
- /**
46
- * 通过名称获取组件类型
47
- * @param componentName 组件名称
48
- * @returns 组件类型构造函数
49
- */
50
- static getComponentType(componentName: string): Function | null;
51
- /**
52
- * 获取所有已注册的组件类型
53
- * @returns 组件类型映射
54
- */
55
- static getAllRegisteredTypes(): Map<Function, number>;
56
- /**
57
- * 获取所有组件名称到类型的映射
58
- * @returns 名称到类型的映射
59
- */
60
- static getAllComponentNames(): Map<string, Function>;
61
- /**
62
- * 通过名称获取组件类型ID
63
- * @param componentName 组件名称
64
- * @returns 组件类型ID
65
- */
66
- static getComponentId(componentName: string): number | undefined;
67
- /**
68
- * 注册组件类型(通过名称)
69
- * @param componentName 组件名称
70
- * @returns 分配的组件ID
71
- */
72
- static registerComponentByName(componentName: string): number;
73
- /**
74
- * 创建单个组件的掩码
75
- * @param componentName 组件名称
76
- * @returns 组件掩码
77
- */
78
- static createSingleComponentMask(componentName: string): IBigIntLike;
79
- /**
80
- * 创建多个组件的掩码
81
- * @param componentNames 组件名称数组
82
- * @returns 组合掩码
83
- */
84
- static createComponentMask(componentNames: string[]): IBigIntLike;
85
- /**
86
- * 清除掩码缓存
87
- */
88
- static clearMaskCache(): void;
89
- /**
90
- * 重置注册表(用于测试)
91
- */
92
- static reset(): void;
93
- }
94
- /**
95
- * 高性能组件存储器
96
- * 使用SoA(Structure of Arrays)模式存储组件
97
- */
98
- export declare class ComponentStorage<T extends Component> {
99
- private components;
100
- private entityToIndex;
101
- private indexToEntity;
102
- private freeIndices;
103
- private componentType;
104
- private _size;
105
- constructor(componentType: ComponentType<T>);
106
- /**
107
- * 添加组件
108
- * @param entityId 实体ID
109
- * @param component 组件实例
110
- */
111
- addComponent(entityId: number, component: T): void;
112
- /**
113
- * 获取组件
114
- * @param entityId 实体ID
115
- * @returns 组件实例或null
116
- */
117
- getComponent(entityId: number): T | null;
118
- /**
119
- * 检查实体是否有此组件
120
- * @param entityId 实体ID
121
- * @returns 是否有组件
122
- */
123
- hasComponent(entityId: number): boolean;
124
- /**
125
- * 移除组件
126
- * @param entityId 实体ID
127
- * @returns 被移除的组件或null
128
- */
129
- removeComponent(entityId: number): T | null;
130
- /**
131
- * 高效遍历所有组件
132
- * @param callback 回调函数
133
- */
134
- forEach(callback: (component: T, entityId: number, index: number) => void): void;
135
- /**
136
- * 获取所有组件(密集数组)
137
- * @returns 组件数组
138
- */
139
- getDenseArray(): {
140
- components: T[];
141
- entityIds: number[];
142
- };
143
- /**
144
- * 清空所有组件
145
- */
146
- clear(): void;
147
- /**
148
- * 获取组件数量
149
- */
150
- get size(): number;
151
- /**
152
- * 获取组件类型
153
- */
154
- get type(): ComponentType<T>;
155
- /**
156
- * 压缩存储(移除空洞)
157
- */
158
- compact(): void;
159
- /**
160
- * 获取存储统计信息
161
- */
162
- getStats(): {
163
- totalSlots: number;
164
- usedSlots: number;
165
- freeSlots: number;
166
- fragmentation: number;
167
- };
168
- }
169
- /**
170
- * 组件存储管理器
171
- * 管理所有组件类型的存储器
172
- */
173
- export declare class ComponentStorageManager {
174
- private static readonly _logger;
175
- private storages;
176
- /**
177
- * 获取或创建组件存储器(默认原始存储)
178
- * @param componentType 组件类型
179
- * @returns 组件存储器
180
- */
181
- getStorage<T extends Component>(componentType: ComponentType<T>): ComponentStorage<T> | SoAStorage<T>;
182
- /**
183
- * 添加组件
184
- * @param entityId 实体ID
185
- * @param component 组件实例
186
- */
187
- addComponent<T extends Component>(entityId: number, component: T): void;
188
- /**
189
- * 获取组件
190
- * @param entityId 实体ID
191
- * @param componentType 组件类型
192
- * @returns 组件实例或null
193
- */
194
- getComponent<T extends Component>(entityId: number, componentType: ComponentType<T>): T | null;
195
- /**
196
- * 检查实体是否有组件
197
- * @param entityId 实体ID
198
- * @param componentType 组件类型
199
- * @returns 是否有组件
200
- */
201
- hasComponent<T extends Component>(entityId: number, componentType: ComponentType<T>): boolean;
202
- /**
203
- * 移除组件
204
- * @param entityId 实体ID
205
- * @param componentType 组件类型
206
- * @returns 被移除的组件或null
207
- */
208
- removeComponent<T extends Component>(entityId: number, componentType: ComponentType<T>): T | null;
209
- /**
210
- * 移除实体的所有组件
211
- * @param entityId 实体ID
212
- */
213
- removeAllComponents(entityId: number): void;
214
- /**
215
- * 获取实体的组件位掩码
216
- * @param entityId 实体ID
217
- * @returns 组件位掩码
218
- */
219
- getComponentMask(entityId: number): IBigIntLike;
220
- /**
221
- * 压缩所有存储器
222
- */
223
- compactAll(): void;
224
- /**
225
- * 获取所有存储器的统计信息
226
- */
227
- getAllStats(): Map<string, any>;
228
- /**
229
- * 清空所有存储器
230
- */
231
- clear(): void;
232
- }
233
- //# sourceMappingURL=ComponentStorage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ComponentStorage.d.ts","sourceRoot":"","sources":["../../../src/ECS/Core/ComponentStorage.ts"],"names":[],"mappings":"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"}