@esengine/ecs-framework 2.1.30 → 2.1.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (288) hide show
  1. package/index.cjs +2 -0
  2. package/index.cjs.map +1 -0
  3. package/index.d.ts +6357 -0
  4. package/index.mjs +2 -0
  5. package/index.mjs.map +1 -0
  6. package/index.umd.js +2 -0
  7. package/index.umd.js.map +1 -0
  8. package/package.json +27 -50
  9. package/bin/Core.d.ts +0 -279
  10. package/bin/Core.d.ts.map +0 -1
  11. package/bin/Core.js +0 -400
  12. package/bin/Core.js.map +0 -1
  13. package/bin/ECS/Component.d.ts +0 -120
  14. package/bin/ECS/Component.d.ts.map +0 -1
  15. package/bin/ECS/Component.js +0 -129
  16. package/bin/ECS/Component.js.map +0 -1
  17. package/bin/ECS/Components/IUpdatable.d.ts +0 -22
  18. package/bin/ECS/Components/IUpdatable.d.ts.map +0 -1
  19. package/bin/ECS/Components/IUpdatable.js +0 -17
  20. package/bin/ECS/Components/IUpdatable.js.map +0 -1
  21. package/bin/ECS/Components/SceneComponent.d.ts +0 -40
  22. package/bin/ECS/Components/SceneComponent.d.ts.map +0 -1
  23. package/bin/ECS/Components/SceneComponent.js +0 -57
  24. package/bin/ECS/Components/SceneComponent.js.map +0 -1
  25. package/bin/ECS/Core/ArchetypeSystem.d.ts +0 -100
  26. package/bin/ECS/Core/ArchetypeSystem.d.ts.map +0 -1
  27. package/bin/ECS/Core/ArchetypeSystem.js +0 -193
  28. package/bin/ECS/Core/ArchetypeSystem.js.map +0 -1
  29. package/bin/ECS/Core/ComponentIndex.d.ts +0 -151
  30. package/bin/ECS/Core/ComponentIndex.d.ts.map +0 -1
  31. package/bin/ECS/Core/ComponentIndex.js +0 -405
  32. package/bin/ECS/Core/ComponentIndex.js.map +0 -1
  33. package/bin/ECS/Core/ComponentPool.d.ts +0 -88
  34. package/bin/ECS/Core/ComponentPool.d.ts.map +0 -1
  35. package/bin/ECS/Core/ComponentPool.js +0 -159
  36. package/bin/ECS/Core/ComponentPool.js.map +0 -1
  37. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.d.ts +0 -92
  38. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.d.ts.map +0 -1
  39. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.js +0 -167
  40. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.js.map +0 -1
  41. package/bin/ECS/Core/ComponentStorage.d.ts +0 -233
  42. package/bin/ECS/Core/ComponentStorage.d.ts.map +0 -1
  43. package/bin/ECS/Core/ComponentStorage.js +0 -463
  44. package/bin/ECS/Core/ComponentStorage.js.map +0 -1
  45. package/bin/ECS/Core/DirtyTrackingSystem.d.ts +0 -197
  46. package/bin/ECS/Core/DirtyTrackingSystem.d.ts.map +0 -1
  47. package/bin/ECS/Core/DirtyTrackingSystem.js +0 -297
  48. package/bin/ECS/Core/DirtyTrackingSystem.js.map +0 -1
  49. package/bin/ECS/Core/EntityManager.d.ts +0 -379
  50. package/bin/ECS/Core/EntityManager.d.ts.map +0 -1
  51. package/bin/ECS/Core/EntityManager.js +0 -686
  52. package/bin/ECS/Core/EntityManager.js.map +0 -1
  53. package/bin/ECS/Core/EventBus.d.ts +0 -218
  54. package/bin/ECS/Core/EventBus.d.ts.map +0 -1
  55. package/bin/ECS/Core/EventBus.js +0 -402
  56. package/bin/ECS/Core/EventBus.js.map +0 -1
  57. package/bin/ECS/Core/EventSystem.d.ts +0 -237
  58. package/bin/ECS/Core/EventSystem.d.ts.map +0 -1
  59. package/bin/ECS/Core/EventSystem.js +0 -478
  60. package/bin/ECS/Core/EventSystem.js.map +0 -1
  61. package/bin/ECS/Core/Events/index.d.ts +0 -3
  62. package/bin/ECS/Core/Events/index.d.ts.map +0 -1
  63. package/bin/ECS/Core/Events/index.js +0 -3
  64. package/bin/ECS/Core/Events/index.js.map +0 -1
  65. package/bin/ECS/Core/FluentAPI/ComponentBuilder.d.ts +0 -35
  66. package/bin/ECS/Core/FluentAPI/ComponentBuilder.d.ts.map +0 -1
  67. package/bin/ECS/Core/FluentAPI/ComponentBuilder.js +0 -48
  68. package/bin/ECS/Core/FluentAPI/ComponentBuilder.js.map +0 -1
  69. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.d.ts +0 -135
  70. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.d.ts.map +0 -1
  71. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.js +0 -166
  72. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.js.map +0 -1
  73. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.d.ts +0 -58
  74. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.d.ts.map +0 -1
  75. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.js +0 -85
  76. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.js.map +0 -1
  77. package/bin/ECS/Core/FluentAPI/EntityBuilder.d.ts +0 -110
  78. package/bin/ECS/Core/FluentAPI/EntityBuilder.d.ts.map +0 -1
  79. package/bin/ECS/Core/FluentAPI/EntityBuilder.js +0 -174
  80. package/bin/ECS/Core/FluentAPI/EntityBuilder.js.map +0 -1
  81. package/bin/ECS/Core/FluentAPI/SceneBuilder.d.ts +0 -53
  82. package/bin/ECS/Core/FluentAPI/SceneBuilder.d.ts.map +0 -1
  83. package/bin/ECS/Core/FluentAPI/SceneBuilder.js +0 -79
  84. package/bin/ECS/Core/FluentAPI/SceneBuilder.js.map +0 -1
  85. package/bin/ECS/Core/FluentAPI/index.d.ts +0 -6
  86. package/bin/ECS/Core/FluentAPI/index.d.ts.map +0 -1
  87. package/bin/ECS/Core/FluentAPI/index.js +0 -6
  88. package/bin/ECS/Core/FluentAPI/index.js.map +0 -1
  89. package/bin/ECS/Core/FluentAPI.d.ts +0 -2
  90. package/bin/ECS/Core/FluentAPI.d.ts.map +0 -1
  91. package/bin/ECS/Core/FluentAPI.js +0 -3
  92. package/bin/ECS/Core/FluentAPI.js.map +0 -1
  93. package/bin/ECS/Core/Performance/index.d.ts +0 -4
  94. package/bin/ECS/Core/Performance/index.d.ts.map +0 -1
  95. package/bin/ECS/Core/Performance/index.js +0 -4
  96. package/bin/ECS/Core/Performance/index.js.map +0 -1
  97. package/bin/ECS/Core/Query/index.d.ts +0 -4
  98. package/bin/ECS/Core/Query/index.d.ts.map +0 -1
  99. package/bin/ECS/Core/Query/index.js +0 -4
  100. package/bin/ECS/Core/Query/index.js.map +0 -1
  101. package/bin/ECS/Core/QuerySystem.d.ts +0 -438
  102. package/bin/ECS/Core/QuerySystem.d.ts.map +0 -1
  103. package/bin/ECS/Core/QuerySystem.js +0 -974
  104. package/bin/ECS/Core/QuerySystem.js.map +0 -1
  105. package/bin/ECS/Core/SoAStorage.d.ts +0 -97
  106. package/bin/ECS/Core/SoAStorage.d.ts.map +0 -1
  107. package/bin/ECS/Core/SoAStorage.js +0 -548
  108. package/bin/ECS/Core/SoAStorage.js.map +0 -1
  109. package/bin/ECS/Core/Storage/index.d.ts +0 -4
  110. package/bin/ECS/Core/Storage/index.d.ts.map +0 -1
  111. package/bin/ECS/Core/Storage/index.js +0 -4
  112. package/bin/ECS/Core/Storage/index.js.map +0 -1
  113. package/bin/ECS/CoreEvents.d.ts +0 -131
  114. package/bin/ECS/CoreEvents.d.ts.map +0 -1
  115. package/bin/ECS/CoreEvents.js +0 -163
  116. package/bin/ECS/CoreEvents.js.map +0 -1
  117. package/bin/ECS/Entity.d.ts +0 -455
  118. package/bin/ECS/Entity.d.ts.map +0 -1
  119. package/bin/ECS/Entity.js +0 -837
  120. package/bin/ECS/Entity.js.map +0 -1
  121. package/bin/ECS/Scene.d.ts +0 -225
  122. package/bin/ECS/Scene.d.ts.map +0 -1
  123. package/bin/ECS/Scene.js +0 -325
  124. package/bin/ECS/Scene.js.map +0 -1
  125. package/bin/ECS/Systems/EntitySystem.d.ts +0 -200
  126. package/bin/ECS/Systems/EntitySystem.d.ts.map +0 -1
  127. package/bin/ECS/Systems/EntitySystem.js +0 -431
  128. package/bin/ECS/Systems/EntitySystem.js.map +0 -1
  129. package/bin/ECS/Systems/IntervalSystem.d.ts +0 -33
  130. package/bin/ECS/Systems/IntervalSystem.d.ts.map +0 -1
  131. package/bin/ECS/Systems/IntervalSystem.js +0 -50
  132. package/bin/ECS/Systems/IntervalSystem.js.map +0 -1
  133. package/bin/ECS/Systems/PassiveSystem.d.ts +0 -17
  134. package/bin/ECS/Systems/PassiveSystem.d.ts.map +0 -1
  135. package/bin/ECS/Systems/PassiveSystem.js +0 -19
  136. package/bin/ECS/Systems/PassiveSystem.js.map +0 -1
  137. package/bin/ECS/Systems/ProcessingSystem.d.ts +0 -21
  138. package/bin/ECS/Systems/ProcessingSystem.d.ts.map +0 -1
  139. package/bin/ECS/Systems/ProcessingSystem.js +0 -20
  140. package/bin/ECS/Systems/ProcessingSystem.js.map +0 -1
  141. package/bin/ECS/Systems/index.d.ts +0 -5
  142. package/bin/ECS/Systems/index.d.ts.map +0 -1
  143. package/bin/ECS/Systems/index.js +0 -6
  144. package/bin/ECS/Systems/index.js.map +0 -1
  145. package/bin/ECS/Utils/BigIntCompatibility.d.ts +0 -164
  146. package/bin/ECS/Utils/BigIntCompatibility.d.ts.map +0 -1
  147. package/bin/ECS/Utils/BigIntCompatibility.js +0 -578
  148. package/bin/ECS/Utils/BigIntCompatibility.js.map +0 -1
  149. package/bin/ECS/Utils/Bits.d.ts +0 -163
  150. package/bin/ECS/Utils/Bits.d.ts.map +0 -1
  151. package/bin/ECS/Utils/Bits.js +0 -286
  152. package/bin/ECS/Utils/Bits.js.map +0 -1
  153. package/bin/ECS/Utils/ComponentTypeManager.d.ts +0 -50
  154. package/bin/ECS/Utils/ComponentTypeManager.d.ts.map +0 -1
  155. package/bin/ECS/Utils/ComponentTypeManager.js +0 -84
  156. package/bin/ECS/Utils/ComponentTypeManager.js.map +0 -1
  157. package/bin/ECS/Utils/EntityList.d.ts +0 -108
  158. package/bin/ECS/Utils/EntityList.d.ts.map +0 -1
  159. package/bin/ECS/Utils/EntityList.js +0 -262
  160. package/bin/ECS/Utils/EntityList.js.map +0 -1
  161. package/bin/ECS/Utils/EntityProcessorList.d.ts +0 -56
  162. package/bin/ECS/Utils/EntityProcessorList.d.ts.map +0 -1
  163. package/bin/ECS/Utils/EntityProcessorList.js +0 -102
  164. package/bin/ECS/Utils/EntityProcessorList.js.map +0 -1
  165. package/bin/ECS/Utils/IdentifierPool.d.ts +0 -203
  166. package/bin/ECS/Utils/IdentifierPool.d.ts.map +0 -1
  167. package/bin/ECS/Utils/IdentifierPool.js +0 -325
  168. package/bin/ECS/Utils/IdentifierPool.js.map +0 -1
  169. package/bin/ECS/Utils/Matcher.d.ts +0 -143
  170. package/bin/ECS/Utils/Matcher.d.ts.map +0 -1
  171. package/bin/ECS/Utils/Matcher.js +0 -249
  172. package/bin/ECS/Utils/Matcher.js.map +0 -1
  173. package/bin/ECS/Utils/index.d.ts +0 -8
  174. package/bin/ECS/Utils/index.d.ts.map +0 -1
  175. package/bin/ECS/Utils/index.js +0 -9
  176. package/bin/ECS/Utils/index.js.map +0 -1
  177. package/bin/ECS/index.d.ts +0 -12
  178. package/bin/ECS/index.d.ts.map +0 -1
  179. package/bin/ECS/index.js +0 -12
  180. package/bin/ECS/index.js.map +0 -1
  181. package/bin/Types/index.d.ts +0 -471
  182. package/bin/Types/index.d.ts.map +0 -1
  183. package/bin/Types/index.js +0 -5
  184. package/bin/Types/index.js.map +0 -1
  185. package/bin/Utils/Debug/ComponentDataCollector.d.ts +0 -28
  186. package/bin/Utils/Debug/ComponentDataCollector.d.ts.map +0 -1
  187. package/bin/Utils/Debug/ComponentDataCollector.js +0 -248
  188. package/bin/Utils/Debug/ComponentDataCollector.js.map +0 -1
  189. package/bin/Utils/Debug/DebugDataFormatter.d.ts +0 -22
  190. package/bin/Utils/Debug/DebugDataFormatter.d.ts.map +0 -1
  191. package/bin/Utils/Debug/DebugDataFormatter.js +0 -117
  192. package/bin/Utils/Debug/DebugDataFormatter.js.map +0 -1
  193. package/bin/Utils/Debug/DebugManager.d.ts +0 -104
  194. package/bin/Utils/Debug/DebugManager.d.ts.map +0 -1
  195. package/bin/Utils/Debug/DebugManager.js +0 -647
  196. package/bin/Utils/Debug/DebugManager.js.map +0 -1
  197. package/bin/Utils/Debug/EntityDataCollector.d.ts +0 -92
  198. package/bin/Utils/Debug/EntityDataCollector.d.ts.map +0 -1
  199. package/bin/Utils/Debug/EntityDataCollector.js +0 -864
  200. package/bin/Utils/Debug/EntityDataCollector.js.map +0 -1
  201. package/bin/Utils/Debug/PerformanceDataCollector.d.ts +0 -32
  202. package/bin/Utils/Debug/PerformanceDataCollector.d.ts.map +0 -1
  203. package/bin/Utils/Debug/PerformanceDataCollector.js +0 -217
  204. package/bin/Utils/Debug/PerformanceDataCollector.js.map +0 -1
  205. package/bin/Utils/Debug/SceneDataCollector.d.ts +0 -16
  206. package/bin/Utils/Debug/SceneDataCollector.d.ts.map +0 -1
  207. package/bin/Utils/Debug/SceneDataCollector.js +0 -46
  208. package/bin/Utils/Debug/SceneDataCollector.js.map +0 -1
  209. package/bin/Utils/Debug/SystemDataCollector.d.ts +0 -11
  210. package/bin/Utils/Debug/SystemDataCollector.d.ts.map +0 -1
  211. package/bin/Utils/Debug/SystemDataCollector.js +0 -59
  212. package/bin/Utils/Debug/SystemDataCollector.js.map +0 -1
  213. package/bin/Utils/Debug/WebSocketManager.d.ts +0 -59
  214. package/bin/Utils/Debug/WebSocketManager.d.ts.map +0 -1
  215. package/bin/Utils/Debug/WebSocketManager.js +0 -148
  216. package/bin/Utils/Debug/WebSocketManager.js.map +0 -1
  217. package/bin/Utils/Debug/index.d.ts +0 -8
  218. package/bin/Utils/Debug/index.d.ts.map +0 -1
  219. package/bin/Utils/Debug/index.js +0 -8
  220. package/bin/Utils/Debug/index.js.map +0 -1
  221. package/bin/Utils/Emitter.d.ts +0 -43
  222. package/bin/Utils/Emitter.d.ts.map +0 -1
  223. package/bin/Utils/Emitter.js +0 -69
  224. package/bin/Utils/Emitter.js.map +0 -1
  225. package/bin/Utils/Extensions/NumberExtension.d.ts +0 -13
  226. package/bin/Utils/Extensions/NumberExtension.d.ts.map +0 -1
  227. package/bin/Utils/Extensions/NumberExtension.js +0 -17
  228. package/bin/Utils/Extensions/NumberExtension.js.map +0 -1
  229. package/bin/Utils/Extensions/TypeUtils.d.ts +0 -13
  230. package/bin/Utils/Extensions/TypeUtils.d.ts.map +0 -1
  231. package/bin/Utils/Extensions/TypeUtils.js +0 -15
  232. package/bin/Utils/Extensions/TypeUtils.js.map +0 -1
  233. package/bin/Utils/Extensions/index.d.ts +0 -3
  234. package/bin/Utils/Extensions/index.d.ts.map +0 -1
  235. package/bin/Utils/Extensions/index.js +0 -4
  236. package/bin/Utils/Extensions/index.js.map +0 -1
  237. package/bin/Utils/GlobalManager.d.ts +0 -32
  238. package/bin/Utils/GlobalManager.d.ts.map +0 -1
  239. package/bin/Utils/GlobalManager.js +0 -53
  240. package/bin/Utils/GlobalManager.js.map +0 -1
  241. package/bin/Utils/Logger.d.ts +0 -156
  242. package/bin/Utils/Logger.d.ts.map +0 -1
  243. package/bin/Utils/Logger.js +0 -256
  244. package/bin/Utils/Logger.js.map +0 -1
  245. package/bin/Utils/PerformanceMonitor.d.ts +0 -211
  246. package/bin/Utils/PerformanceMonitor.d.ts.map +0 -1
  247. package/bin/Utils/PerformanceMonitor.js +0 -270
  248. package/bin/Utils/PerformanceMonitor.js.map +0 -1
  249. package/bin/Utils/Pool/IPoolable.d.ts +0 -29
  250. package/bin/Utils/Pool/IPoolable.d.ts.map +0 -1
  251. package/bin/Utils/Pool/IPoolable.js +0 -2
  252. package/bin/Utils/Pool/IPoolable.js.map +0 -1
  253. package/bin/Utils/Pool/Pool.d.ts +0 -109
  254. package/bin/Utils/Pool/Pool.d.ts.map +0 -1
  255. package/bin/Utils/Pool/Pool.js +0 -238
  256. package/bin/Utils/Pool/Pool.js.map +0 -1
  257. package/bin/Utils/Pool/PoolManager.d.ts +0 -91
  258. package/bin/Utils/Pool/PoolManager.d.ts.map +0 -1
  259. package/bin/Utils/Pool/PoolManager.js +0 -197
  260. package/bin/Utils/Pool/PoolManager.js.map +0 -1
  261. package/bin/Utils/Pool/index.d.ts +0 -4
  262. package/bin/Utils/Pool/index.d.ts.map +0 -1
  263. package/bin/Utils/Pool/index.js +0 -4
  264. package/bin/Utils/Pool/index.js.map +0 -1
  265. package/bin/Utils/Time.d.ts +0 -47
  266. package/bin/Utils/Time.d.ts.map +0 -1
  267. package/bin/Utils/Time.js +0 -64
  268. package/bin/Utils/Time.js.map +0 -1
  269. package/bin/Utils/Timers/ITimer.d.ts +0 -16
  270. package/bin/Utils/Timers/ITimer.d.ts.map +0 -1
  271. package/bin/Utils/Timers/ITimer.js +0 -2
  272. package/bin/Utils/Timers/ITimer.js.map +0 -1
  273. package/bin/Utils/Timers/Timer.d.ts +0 -30
  274. package/bin/Utils/Timers/Timer.d.ts.map +0 -1
  275. package/bin/Utils/Timers/Timer.js +0 -58
  276. package/bin/Utils/Timers/Timer.js.map +0 -1
  277. package/bin/Utils/Timers/TimerManager.d.ts +0 -19
  278. package/bin/Utils/Timers/TimerManager.d.ts.map +0 -1
  279. package/bin/Utils/Timers/TimerManager.js +0 -33
  280. package/bin/Utils/Timers/TimerManager.js.map +0 -1
  281. package/bin/Utils/index.d.ts +0 -9
  282. package/bin/Utils/index.d.ts.map +0 -1
  283. package/bin/Utils/index.js +0 -9
  284. package/bin/Utils/index.js.map +0 -1
  285. package/bin/index.d.ts +0 -16
  286. package/bin/index.d.ts.map +0 -1
  287. package/bin/index.js +0 -19
  288. package/bin/index.js.map +0 -1
@@ -1,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"}