@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,163 +0,0 @@
1
- import { IBigIntLike } from './BigIntCompatibility';
2
- /**
3
- * 高性能位操作类
4
- *
5
- * 基于BigInt实现,支持任意数量的位操作。
6
- * 自动适配运行环境,在不支持BigInt的环境中使用兼容实现。
7
- *
8
- * @example
9
- * ```typescript
10
- * const bits = new Bits();
11
- * bits.set(0);
12
- * bits.set(5);
13
- * console.log(bits.get(0)); // true
14
- * console.log(bits.get(1)); // false
15
- * ```
16
- */
17
- export declare class Bits {
18
- private _value;
19
- /**
20
- * 构造函数
21
- * @param initialValue 初始值,可以是IBigIntLike或数值
22
- */
23
- constructor(initialValue?: IBigIntLike | number | string);
24
- /**
25
- * 设置指定位置的位为1
26
- * @param index 位索引(从0开始)
27
- * @throws {Error} 当索引为负数时抛出错误
28
- */
29
- set(index: number): void;
30
- /**
31
- * 清除指定位置的位(设为0)
32
- * @param index 位索引(从0开始)
33
- * @throws {Error} 当索引为负数时抛出错误
34
- */
35
- clear(index: number): void;
36
- /**
37
- * 获取指定位置的位值
38
- * @param index 位索引(从0开始)
39
- * @returns 位值(true表示1,false表示0)
40
- */
41
- get(index: number): boolean;
42
- /**
43
- * 检查是否包含所有指定的位
44
- * @param other 另一个Bits对象
45
- * @returns 是否包含所有指定的位
46
- */
47
- containsAll(other: Bits): boolean;
48
- /**
49
- * 检查是否包含任意一个指定的位
50
- * @param other 另一个Bits对象
51
- * @returns 是否包含任意一个指定的位
52
- */
53
- intersects(other: Bits): boolean;
54
- /**
55
- * 检查是否不包含任何指定的位
56
- * @param other 另一个Bits对象
57
- * @returns 是否不包含任何指定的位
58
- */
59
- excludes(other: Bits): boolean;
60
- /**
61
- * 清空所有位
62
- */
63
- clearAll(): void;
64
- /**
65
- * 检查是否为空(没有设置任何位)
66
- * @returns 是否为空
67
- */
68
- isEmpty(): boolean;
69
- /**
70
- * 获取设置的位数量
71
- * @returns 设置为1的位数量
72
- */
73
- cardinality(): number;
74
- /**
75
- * 位运算:与
76
- * @param other 另一个Bits对象
77
- * @returns 新的Bits对象,包含与运算结果
78
- */
79
- and(other: Bits): Bits;
80
- /**
81
- * 位运算:或
82
- * @param other 另一个Bits对象
83
- * @returns 新的Bits对象,包含或运算结果
84
- */
85
- or(other: Bits): Bits;
86
- /**
87
- * 位运算:异或
88
- * @param other 另一个Bits对象
89
- * @returns 新的Bits对象,包含异或运算结果
90
- */
91
- xor(other: Bits): Bits;
92
- /**
93
- * 位运算:非
94
- * @param maxBits 最大位数限制,默认64位
95
- * @returns 新的Bits对象,包含非运算结果
96
- */
97
- not(maxBits?: number): Bits;
98
- /**
99
- * 复制另一个Bits对象
100
- * @param other 要复制的Bits对象
101
- */
102
- copyFrom(other: Bits): void;
103
- /**
104
- * 创建当前Bits的副本
105
- * @returns 新的Bits对象副本
106
- */
107
- clone(): Bits;
108
- /**
109
- * 获取原始值
110
- * @returns 原始的IBigIntLike值
111
- */
112
- getValue(): IBigIntLike;
113
- /**
114
- * 设置原始值
115
- * @param value 新的值,可以是IBigIntLike或数值
116
- */
117
- setValue(value: IBigIntLike | number | string): void;
118
- /**
119
- * 获取调试信息
120
- * @returns 返回显示设置位索引的字符串
121
- */
122
- toString(): string;
123
- /**
124
- * 获取二进制表示
125
- * @param maxBits 最大位数,默认64位
126
- * @returns 二进制字符串表示
127
- */
128
- toBinaryString(maxBits?: number): string;
129
- /**
130
- * 获取十六进制表示
131
- * @returns 十六进制字符串表示
132
- */
133
- toHexString(): string;
134
- /**
135
- * 从二进制字符串创建Bits
136
- * @param binaryString 二进制字符串
137
- * @returns 新的Bits对象
138
- */
139
- static fromBinaryString(binaryString: string): Bits;
140
- /**
141
- * 从十六进制字符串创建Bits
142
- * @param hexString 十六进制字符串
143
- * @returns 新的Bits对象
144
- */
145
- static fromHexString(hexString: string): Bits;
146
- /**
147
- * 比较两个Bits对象是否相等
148
- * @param other 另一个Bits对象
149
- * @returns 是否相等
150
- */
151
- equals(other: Bits): boolean;
152
- /**
153
- * 获取最高位的索引
154
- * @returns 最高位的索引,如果为空则返回-1
155
- */
156
- getHighestBitIndex(): number;
157
- /**
158
- * 获取最低位的索引
159
- * @returns 最低位的索引,如果为空则返回-1
160
- */
161
- getLowestBitIndex(): number;
162
- }
163
- //# sourceMappingURL=Bits.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Bits.d.ts","sourceRoot":"","sources":["../../../src/ECS/Utils/Bits.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAiB,MAAM,uBAAuB,CAAC;AAEnE;;;;;;;;;;;;;;GAcG;AACH,qBAAa,IAAI;IACb,OAAO,CAAC,MAAM,CAAc;IAE5B;;;OAGG;gBACS,YAAY,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM;IAQxD;;;;OAIG;IACI,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQ/B;;;;OAIG;IACI,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQjC;;;;OAIG;IACI,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAQlC;;;;OAIG;IACI,WAAW,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;IAKxC;;;;OAIG;IACI,UAAU,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;IAIvC;;;;OAIG;IACI,QAAQ,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;IAIrC;;OAEG;IACI,QAAQ,IAAI,IAAI;IAIvB;;;OAGG;IACI,OAAO,IAAI,OAAO;IAIzB;;;OAGG;IACI,WAAW,IAAI,MAAM;IAe5B;;;;OAIG;IACI,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI;IAI7B;;;;OAIG;IACI,EAAE,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI;IAI5B;;;;OAIG;IACI,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI;IAI7B;;;;OAIG;IACI,GAAG,CAAC,OAAO,GAAE,MAAW,GAAG,IAAI;IAItC;;;OAGG;IACI,QAAQ,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI;IAIlC;;;OAGG;IACI,KAAK,IAAI,IAAI;IAIpB;;;OAGG;IACI,QAAQ,IAAI,WAAW;IAI9B;;;OAGG;IACI,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI;IAQ3D;;;OAGG;IACI,QAAQ,IAAI,MAAM;IAiBzB;;;;OAIG;IACI,cAAc,CAAC,OAAO,GAAE,MAAW,GAAG,MAAM;IAWnD;;;OAGG;IACI,WAAW,IAAI,MAAM;IAI5B;;;;OAIG;WACW,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAM1D;;;;OAIG;WACW,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAKpD;;;;OAIG;IACI,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;IAInC;;;OAGG;IACI,kBAAkB,IAAI,MAAM;IAgBnC;;;OAGG;IACI,iBAAiB,IAAI,MAAM;CAgBrC"}
@@ -1,286 +0,0 @@
1
- import { BigIntFactory } from './BigIntCompatibility';
2
- /**
3
- * 高性能位操作类
4
- *
5
- * 基于BigInt实现,支持任意数量的位操作。
6
- * 自动适配运行环境,在不支持BigInt的环境中使用兼容实现。
7
- *
8
- * @example
9
- * ```typescript
10
- * const bits = new Bits();
11
- * bits.set(0);
12
- * bits.set(5);
13
- * console.log(bits.get(0)); // true
14
- * console.log(bits.get(1)); // false
15
- * ```
16
- */
17
- export class Bits {
18
- /**
19
- * 构造函数
20
- * @param initialValue 初始值,可以是IBigIntLike或数值
21
- */
22
- constructor(initialValue) {
23
- if (initialValue && typeof initialValue === 'object') {
24
- this._value = initialValue;
25
- }
26
- else {
27
- this._value = BigIntFactory.create(initialValue || 0);
28
- }
29
- }
30
- /**
31
- * 设置指定位置的位为1
32
- * @param index 位索引(从0开始)
33
- * @throws {Error} 当索引为负数时抛出错误
34
- */
35
- set(index) {
36
- if (index < 0) {
37
- throw new Error('Bit index cannot be negative');
38
- }
39
- const mask = BigIntFactory.one().shiftLeft(index);
40
- this._value = this._value.or(mask);
41
- }
42
- /**
43
- * 清除指定位置的位(设为0)
44
- * @param index 位索引(从0开始)
45
- * @throws {Error} 当索引为负数时抛出错误
46
- */
47
- clear(index) {
48
- if (index < 0) {
49
- throw new Error('Bit index cannot be negative');
50
- }
51
- const mask = BigIntFactory.one().shiftLeft(index).not();
52
- this._value = this._value.and(mask);
53
- }
54
- /**
55
- * 获取指定位置的位值
56
- * @param index 位索引(从0开始)
57
- * @returns 位值(true表示1,false表示0)
58
- */
59
- get(index) {
60
- if (index < 0) {
61
- return false;
62
- }
63
- const mask = BigIntFactory.one().shiftLeft(index);
64
- return !this._value.and(mask).isZero();
65
- }
66
- /**
67
- * 检查是否包含所有指定的位
68
- * @param other 另一个Bits对象
69
- * @returns 是否包含所有指定的位
70
- */
71
- containsAll(other) {
72
- const intersection = this._value.and(other._value);
73
- return intersection.equals(other._value);
74
- }
75
- /**
76
- * 检查是否包含任意一个指定的位
77
- * @param other 另一个Bits对象
78
- * @returns 是否包含任意一个指定的位
79
- */
80
- intersects(other) {
81
- return !this._value.and(other._value).isZero();
82
- }
83
- /**
84
- * 检查是否不包含任何指定的位
85
- * @param other 另一个Bits对象
86
- * @returns 是否不包含任何指定的位
87
- */
88
- excludes(other) {
89
- return !this.intersects(other);
90
- }
91
- /**
92
- * 清空所有位
93
- */
94
- clearAll() {
95
- this._value = BigIntFactory.zero();
96
- }
97
- /**
98
- * 检查是否为空(没有设置任何位)
99
- * @returns 是否为空
100
- */
101
- isEmpty() {
102
- return this._value.isZero();
103
- }
104
- /**
105
- * 获取设置的位数量
106
- * @returns 设置为1的位数量
107
- */
108
- cardinality() {
109
- let count = 0;
110
- let value = this._value.clone();
111
- while (!value.isZero()) {
112
- const one = BigIntFactory.one();
113
- if (!value.and(one).isZero()) {
114
- count++;
115
- }
116
- value = value.shiftRight(1);
117
- }
118
- return count;
119
- }
120
- /**
121
- * 位运算:与
122
- * @param other 另一个Bits对象
123
- * @returns 新的Bits对象,包含与运算结果
124
- */
125
- and(other) {
126
- return new Bits(this._value.and(other._value));
127
- }
128
- /**
129
- * 位运算:或
130
- * @param other 另一个Bits对象
131
- * @returns 新的Bits对象,包含或运算结果
132
- */
133
- or(other) {
134
- return new Bits(this._value.or(other._value));
135
- }
136
- /**
137
- * 位运算:异或
138
- * @param other 另一个Bits对象
139
- * @returns 新的Bits对象,包含异或运算结果
140
- */
141
- xor(other) {
142
- return new Bits(this._value.xor(other._value));
143
- }
144
- /**
145
- * 位运算:非
146
- * @param maxBits 最大位数限制,默认64位
147
- * @returns 新的Bits对象,包含非运算结果
148
- */
149
- not(maxBits = 64) {
150
- return new Bits(this._value.not(maxBits));
151
- }
152
- /**
153
- * 复制另一个Bits对象
154
- * @param other 要复制的Bits对象
155
- */
156
- copyFrom(other) {
157
- this._value = other._value.clone();
158
- }
159
- /**
160
- * 创建当前Bits的副本
161
- * @returns 新的Bits对象副本
162
- */
163
- clone() {
164
- return new Bits(this._value.clone());
165
- }
166
- /**
167
- * 获取原始值
168
- * @returns 原始的IBigIntLike值
169
- */
170
- getValue() {
171
- return this._value;
172
- }
173
- /**
174
- * 设置原始值
175
- * @param value 新的值,可以是IBigIntLike或数值
176
- */
177
- setValue(value) {
178
- if (typeof value === 'object') {
179
- this._value = value;
180
- }
181
- else {
182
- this._value = BigIntFactory.create(value);
183
- }
184
- }
185
- /**
186
- * 获取调试信息
187
- * @returns 返回显示设置位索引的字符串
188
- */
189
- toString() {
190
- const bits = [];
191
- let index = 0;
192
- let value = this._value.clone();
193
- while (!value.isZero()) {
194
- const one = BigIntFactory.one();
195
- if (!value.and(one).isZero()) {
196
- bits.push(index.toString());
197
- }
198
- value = value.shiftRight(1);
199
- index++;
200
- }
201
- return `Bits[${bits.join(', ')}]`;
202
- }
203
- /**
204
- * 获取二进制表示
205
- * @param maxBits 最大位数,默认64位
206
- * @returns 二进制字符串表示
207
- */
208
- toBinaryString(maxBits = 64) {
209
- let result = '';
210
- for (let i = maxBits - 1; i >= 0; i--) {
211
- result += this.get(i) ? '1' : '0';
212
- if (i % 8 === 0 && i > 0) {
213
- result += ' ';
214
- }
215
- }
216
- return result;
217
- }
218
- /**
219
- * 获取十六进制表示
220
- * @returns 十六进制字符串表示
221
- */
222
- toHexString() {
223
- return '0x' + this._value.toString(16).toUpperCase();
224
- }
225
- /**
226
- * 从二进制字符串创建Bits
227
- * @param binaryString 二进制字符串
228
- * @returns 新的Bits对象
229
- */
230
- static fromBinaryString(binaryString) {
231
- const cleanString = binaryString.replace(/\s/g, '');
232
- const value = BigIntFactory.fromBinaryString(cleanString);
233
- return new Bits(value);
234
- }
235
- /**
236
- * 从十六进制字符串创建Bits
237
- * @param hexString 十六进制字符串
238
- * @returns 新的Bits对象
239
- */
240
- static fromHexString(hexString) {
241
- const value = BigIntFactory.fromHexString(hexString);
242
- return new Bits(value);
243
- }
244
- /**
245
- * 比较两个Bits对象是否相等
246
- * @param other 另一个Bits对象
247
- * @returns 是否相等
248
- */
249
- equals(other) {
250
- return this._value.equals(other._value);
251
- }
252
- /**
253
- * 获取最高位的索引
254
- * @returns 最高位的索引,如果为空则返回-1
255
- */
256
- getHighestBitIndex() {
257
- if (this._value.isZero()) {
258
- return -1;
259
- }
260
- let index = 0;
261
- let value = this._value.clone();
262
- while (!value.shiftRight(1).isZero()) {
263
- value = value.shiftRight(1);
264
- index++;
265
- }
266
- return index;
267
- }
268
- /**
269
- * 获取最低位的索引
270
- * @returns 最低位的索引,如果为空则返回-1
271
- */
272
- getLowestBitIndex() {
273
- if (this._value.isZero()) {
274
- return -1;
275
- }
276
- let index = 0;
277
- let value = this._value.clone();
278
- const one = BigIntFactory.one();
279
- while (value.and(one).isZero()) {
280
- value = value.shiftRight(1);
281
- index++;
282
- }
283
- return index;
284
- }
285
- }
286
- //# sourceMappingURL=Bits.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Bits.js","sourceRoot":"","sources":["../../../src/ECS/Utils/Bits.ts"],"names":[],"mappings":"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"}
@@ -1,50 +0,0 @@
1
- import { Component } from '../Component';
2
- import { Bits } from './Bits';
3
- /**
4
- * 组件类型管理器
5
- * 负责管理组件类型的注册和ID分配
6
- */
7
- export declare class ComponentTypeManager {
8
- private static _instance;
9
- private _componentTypes;
10
- private _typeNames;
11
- private _nextTypeId;
12
- /**
13
- * 获取单例实例
14
- */
15
- static get instance(): ComponentTypeManager;
16
- private constructor();
17
- /**
18
- * 获取组件类型的ID
19
- * @param componentType 组件类型构造函数
20
- * @returns 组件类型ID
21
- */
22
- getTypeId<T extends Component>(componentType: new (...args: unknown[]) => T): number;
23
- /**
24
- * 获取组件类型名称
25
- * @param typeId 组件类型ID
26
- * @returns 组件类型名称
27
- */
28
- getTypeName(typeId: number): string;
29
- /**
30
- * 创建包含指定组件类型的Bits对象
31
- * @param componentTypes 组件类型构造函数数组
32
- * @returns Bits对象
33
- */
34
- createBits(...componentTypes: (new (...args: unknown[]) => Component)[]): Bits;
35
- /**
36
- * 获取实体的组件位掩码
37
- * @param components 组件数组
38
- * @returns Bits对象
39
- */
40
- getEntityBits(components: Component[]): Bits;
41
- /**
42
- * 重置管理器(主要用于测试)
43
- */
44
- reset(): void;
45
- /**
46
- * 获取已注册的组件类型数量
47
- */
48
- get registeredTypeCount(): number;
49
- }
50
- //# sourceMappingURL=ComponentTypeManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ComponentTypeManager.d.ts","sourceRoot":"","sources":["../../../src/ECS/Utils/ComponentTypeManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B;;;GAGG;AACH,qBAAa,oBAAoB;IAC7B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAuB;IAC/C,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,WAAW,CAAK;IAExB;;OAEG;IACH,WAAkB,QAAQ,IAAI,oBAAoB,CAKjD;IAED,OAAO;IAEP;;;;OAIG;IACI,SAAS,CAAC,CAAC,SAAS,SAAS,EAAE,aAAa,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,MAAM;IAY3F;;;;OAIG;IACI,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAI1C;;;;OAIG;IACI,UAAU,CAAC,GAAG,cAAc,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,SAAS,CAAC,EAAE,GAAG,IAAI;IAWrF;;;;OAIG;IACI,aAAa,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI;IAWnD;;OAEG;IACI,KAAK,IAAI,IAAI;IAMpB;;OAEG;IACH,IAAW,mBAAmB,IAAI,MAAM,CAEvC;CACJ"}
@@ -1,84 +0,0 @@
1
- import { Bits } from './Bits';
2
- /**
3
- * 组件类型管理器
4
- * 负责管理组件类型的注册和ID分配
5
- */
6
- export class ComponentTypeManager {
7
- /**
8
- * 获取单例实例
9
- */
10
- static get instance() {
11
- if (!ComponentTypeManager._instance) {
12
- ComponentTypeManager._instance = new ComponentTypeManager();
13
- }
14
- return ComponentTypeManager._instance;
15
- }
16
- constructor() {
17
- this._componentTypes = new Map();
18
- this._typeNames = new Map();
19
- this._nextTypeId = 0;
20
- }
21
- /**
22
- * 获取组件类型的ID
23
- * @param componentType 组件类型构造函数
24
- * @returns 组件类型ID
25
- */
26
- getTypeId(componentType) {
27
- let typeId = this._componentTypes.get(componentType);
28
- if (typeId === undefined) {
29
- typeId = this._nextTypeId++;
30
- this._componentTypes.set(componentType, typeId);
31
- this._typeNames.set(typeId, componentType.name);
32
- }
33
- return typeId;
34
- }
35
- /**
36
- * 获取组件类型名称
37
- * @param typeId 组件类型ID
38
- * @returns 组件类型名称
39
- */
40
- getTypeName(typeId) {
41
- return this._typeNames.get(typeId) || 'Unknown';
42
- }
43
- /**
44
- * 创建包含指定组件类型的Bits对象
45
- * @param componentTypes 组件类型构造函数数组
46
- * @returns Bits对象
47
- */
48
- createBits(...componentTypes) {
49
- const bits = new Bits();
50
- for (const componentType of componentTypes) {
51
- const typeId = this.getTypeId(componentType);
52
- bits.set(typeId);
53
- }
54
- return bits;
55
- }
56
- /**
57
- * 获取实体的组件位掩码
58
- * @param components 组件数组
59
- * @returns Bits对象
60
- */
61
- getEntityBits(components) {
62
- const bits = new Bits();
63
- for (const component of components) {
64
- const typeId = this.getTypeId(component.constructor);
65
- bits.set(typeId);
66
- }
67
- return bits;
68
- }
69
- /**
70
- * 重置管理器(主要用于测试)
71
- */
72
- reset() {
73
- this._componentTypes.clear();
74
- this._typeNames.clear();
75
- this._nextTypeId = 0;
76
- }
77
- /**
78
- * 获取已注册的组件类型数量
79
- */
80
- get registeredTypeCount() {
81
- return this._componentTypes.size;
82
- }
83
- }
84
- //# sourceMappingURL=ComponentTypeManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ComponentTypeManager.js","sourceRoot":"","sources":["../../../src/ECS/Utils/ComponentTypeManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B;;;GAGG;AACH,MAAM,OAAO,oBAAoB;IAM7B;;OAEG;IACI,MAAM,KAAK,QAAQ;QACtB,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,CAAC;YAClC,oBAAoB,CAAC,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAChE,CAAC;QACD,OAAO,oBAAoB,CAAC,SAAS,CAAC;IAC1C,CAAC;IAED;QAdQ,oBAAe,GAAG,IAAI,GAAG,EAAoB,CAAC;QAC9C,eAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;QACvC,gBAAW,GAAG,CAAC,CAAC;IAYD,CAAC;IAExB;;;;OAIG;IACI,SAAS,CAAsB,aAA4C;QAC9E,IAAI,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAErD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YAC5B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YAChD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;OAIG;IACI,WAAW,CAAC,MAAc;QAC7B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACI,UAAU,CAAC,GAAG,cAAyD;QAC1E,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAExB,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YAC7C,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACrB,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACI,aAAa,CAAC,UAAuB;QACxC,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAExB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,WAAoD,CAAC,CAAC;YAC9F,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACrB,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,KAAK;QACR,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,IAAW,mBAAmB;QAC1B,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;IACrC,CAAC;CACJ"}