@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,478 +0,0 @@
1
- import { createLogger } from '../../Utils/Logger';
2
- /**
3
- * 类型安全的高性能事件系统
4
- * 支持同步/异步事件、优先级、批处理等功能
5
- */
6
- export class TypeSafeEventSystem {
7
- constructor() {
8
- this.listeners = new Map();
9
- this.stats = new Map();
10
- this.batchQueue = new Map();
11
- this.batchTimers = new Map();
12
- this.batchConfigs = new Map();
13
- this.nextListenerId = 0;
14
- this.isEnabled = true;
15
- this.maxListeners = 100; // 每个事件类型的最大监听器数量
16
- }
17
- /**
18
- * 添加事件监听器
19
- * @param eventType 事件类型
20
- * @param handler 事件处理器
21
- * @param config 监听器配置
22
- * @returns 监听器ID(用于移除)
23
- */
24
- on(eventType, handler, config = {}) {
25
- return this.addListener(eventType, handler, config);
26
- }
27
- /**
28
- * 添加一次性事件监听器
29
- * @param eventType 事件类型
30
- * @param handler 事件处理器
31
- * @param config 监听器配置
32
- * @returns 监听器ID
33
- */
34
- once(eventType, handler, config = {}) {
35
- return this.addListener(eventType, handler, { ...config, once: true });
36
- }
37
- /**
38
- * 添加异步事件监听器
39
- * @param eventType 事件类型
40
- * @param handler 异步事件处理器
41
- * @param config 监听器配置
42
- * @returns 监听器ID
43
- */
44
- onAsync(eventType, handler, config = {}) {
45
- return this.addListener(eventType, handler, { ...config, async: true });
46
- }
47
- /**
48
- * 移除事件监听器
49
- * @param eventType 事件类型
50
- * @param listenerId 监听器ID
51
- * @returns 是否成功移除
52
- */
53
- off(eventType, listenerId) {
54
- const listeners = this.listeners.get(eventType);
55
- if (!listeners)
56
- return false;
57
- const index = listeners.findIndex(l => l.id === listenerId);
58
- if (index === -1)
59
- return false;
60
- listeners.splice(index, 1);
61
- // 如果没有监听器了,清理相关数据
62
- if (listeners.length === 0) {
63
- this.listeners.delete(eventType);
64
- this.stats.delete(eventType);
65
- }
66
- return true;
67
- }
68
- /**
69
- * 移除指定事件类型的所有监听器
70
- * @param eventType 事件类型
71
- */
72
- offAll(eventType) {
73
- this.listeners.delete(eventType);
74
- this.stats.delete(eventType);
75
- this.clearBatch(eventType);
76
- }
77
- /**
78
- * 触发事件
79
- * @param eventType 事件类型
80
- * @param event 事件数据
81
- * @returns Promise(如果有异步监听器)
82
- */
83
- async emit(eventType, event) {
84
- if (!this.isEnabled)
85
- return;
86
- // 检查是否启用了批处理
87
- const batchConfig = this.batchConfigs.get(eventType);
88
- if (batchConfig?.enabled) {
89
- this.addToBatch(eventType, event);
90
- return;
91
- }
92
- await this.executeEvent(eventType, event);
93
- }
94
- /**
95
- * 同步触发事件(忽略异步监听器)
96
- * @param eventType 事件类型
97
- * @param event 事件数据
98
- */
99
- emitSync(eventType, event) {
100
- if (!this.isEnabled)
101
- return;
102
- const listeners = this.listeners.get(eventType);
103
- if (!listeners || listeners.length === 0)
104
- return;
105
- const startTime = performance.now();
106
- const toRemove = [];
107
- // 按优先级排序
108
- const sortedListeners = this.sortListenersByPriority(listeners);
109
- for (const listener of sortedListeners) {
110
- if (listener.config.async)
111
- continue; // 跳过异步监听器
112
- try {
113
- if (listener.config.context) {
114
- listener.handler.call(listener.config.context, event);
115
- }
116
- else {
117
- listener.handler(event);
118
- }
119
- if (listener.config.once) {
120
- toRemove.push(listener.id);
121
- }
122
- }
123
- catch (error) {
124
- TypeSafeEventSystem._logger.error(`事件处理器执行错误 ${eventType}:`, error);
125
- }
126
- }
127
- // 移除一次性监听器
128
- this.removeListeners(eventType, toRemove);
129
- // 更新统计信息
130
- this.updateStats(eventType, performance.now() - startTime);
131
- }
132
- /**
133
- * 设置事件批处理配置
134
- * @param eventType 事件类型
135
- * @param config 批处理配置
136
- */
137
- setBatchConfig(eventType, config) {
138
- this.batchConfigs.set(eventType, config);
139
- }
140
- /**
141
- * 立即处理指定事件类型的批处理队列
142
- * @param eventType 事件类型
143
- */
144
- flushBatch(eventType) {
145
- const batch = this.batchQueue.get(eventType);
146
- if (!batch || batch.length === 0)
147
- return;
148
- // 清除定时器
149
- const timer = this.batchTimers.get(eventType);
150
- if (timer) {
151
- clearTimeout(timer);
152
- this.batchTimers.delete(eventType);
153
- }
154
- // 处理批处理事件
155
- this.processBatch(eventType, batch);
156
- // 清空队列
157
- this.batchQueue.delete(eventType);
158
- }
159
- /**
160
- * 获取事件统计信息
161
- * @param eventType 事件类型(可选)
162
- * @returns 统计信息
163
- */
164
- getStats(eventType) {
165
- if (eventType) {
166
- return this.stats.get(eventType) || this.createEmptyStats(eventType);
167
- }
168
- return new Map(this.stats);
169
- }
170
- /**
171
- * 重置统计信息
172
- * @param eventType 事件类型(可选,不指定则重置所有)
173
- */
174
- resetStats(eventType) {
175
- if (eventType) {
176
- this.stats.delete(eventType);
177
- }
178
- else {
179
- this.stats.clear();
180
- }
181
- }
182
- /**
183
- * 启用/禁用事件系统
184
- * @param enabled 是否启用
185
- */
186
- setEnabled(enabled) {
187
- this.isEnabled = enabled;
188
- }
189
- /**
190
- * 检查是否有指定事件类型的监听器
191
- * @param eventType 事件类型
192
- * @returns 是否有监听器
193
- */
194
- hasListeners(eventType) {
195
- const listeners = this.listeners.get(eventType);
196
- return listeners ? listeners.length > 0 : false;
197
- }
198
- /**
199
- * 获取指定事件类型的监听器数量
200
- * @param eventType 事件类型
201
- * @returns 监听器数量
202
- */
203
- getListenerCount(eventType) {
204
- const listeners = this.listeners.get(eventType);
205
- return listeners ? listeners.length : 0;
206
- }
207
- /**
208
- * 清空所有事件监听器和数据
209
- */
210
- clear() {
211
- this.listeners.clear();
212
- this.stats.clear();
213
- this.clearAllBatches();
214
- }
215
- /**
216
- * 设置每个事件类型的最大监听器数量
217
- * @param max 最大数量
218
- */
219
- setMaxListeners(max) {
220
- this.maxListeners = max;
221
- }
222
- /**
223
- * 添加监听器的内部实现
224
- * @param eventType 事件类型
225
- * @param handler 事件处理器
226
- * @param config 配置
227
- * @returns 监听器ID
228
- */
229
- addListener(eventType, handler, config) {
230
- let listeners = this.listeners.get(eventType);
231
- if (!listeners) {
232
- listeners = [];
233
- this.listeners.set(eventType, listeners);
234
- }
235
- // 检查监听器数量限制
236
- if (listeners.length >= this.maxListeners) {
237
- TypeSafeEventSystem._logger.warn(`事件类型 ${eventType} 的监听器数量超过最大限制 (${this.maxListeners})`);
238
- return '';
239
- }
240
- const listenerId = `listener_${this.nextListenerId++}`;
241
- const listener = {
242
- handler,
243
- config: {
244
- priority: 0,
245
- ...config
246
- },
247
- id: listenerId
248
- };
249
- listeners.push(listener);
250
- // 初始化统计信息
251
- if (!this.stats.has(eventType)) {
252
- this.stats.set(eventType, this.createEmptyStats(eventType));
253
- }
254
- return listenerId;
255
- }
256
- /**
257
- * 执行事件的内部实现
258
- * @param eventType 事件类型
259
- * @param event 事件数据
260
- */
261
- async executeEvent(eventType, event) {
262
- const listeners = this.listeners.get(eventType);
263
- if (!listeners || listeners.length === 0)
264
- return;
265
- const startTime = performance.now();
266
- const toRemove = [];
267
- // 按优先级排序
268
- const sortedListeners = this.sortListenersByPriority(listeners);
269
- // 分离同步和异步监听器
270
- const syncListeners = sortedListeners.filter(l => !l.config.async);
271
- const asyncListeners = sortedListeners.filter(l => l.config.async);
272
- // 执行同步监听器
273
- for (const listener of syncListeners) {
274
- try {
275
- if (listener.config.context) {
276
- listener.handler.call(listener.config.context, event);
277
- }
278
- else {
279
- listener.handler(event);
280
- }
281
- if (listener.config.once) {
282
- toRemove.push(listener.id);
283
- }
284
- }
285
- catch (error) {
286
- TypeSafeEventSystem._logger.error(`同步事件处理器执行错误 ${eventType}:`, error);
287
- }
288
- }
289
- // 执行异步监听器
290
- const asyncPromises = asyncListeners.map(async (listener) => {
291
- try {
292
- if (listener.config.context) {
293
- await listener.handler.call(listener.config.context, event);
294
- }
295
- else {
296
- await listener.handler(event);
297
- }
298
- if (listener.config.once) {
299
- toRemove.push(listener.id);
300
- }
301
- }
302
- catch (error) {
303
- TypeSafeEventSystem._logger.error(`异步事件处理器执行错误 ${eventType}:`, error);
304
- }
305
- });
306
- // 等待所有异步监听器完成
307
- await Promise.all(asyncPromises);
308
- // 移除一次性监听器
309
- this.removeListeners(eventType, toRemove);
310
- // 更新统计信息
311
- this.updateStats(eventType, performance.now() - startTime);
312
- }
313
- /**
314
- * 按优先级排序监听器
315
- * @param listeners 监听器数组
316
- * @returns 排序后的监听器数组
317
- */
318
- sortListenersByPriority(listeners) {
319
- return listeners.slice().sort((a, b) => (b.config.priority || 0) - (a.config.priority || 0));
320
- }
321
- /**
322
- * 移除指定的监听器
323
- * @param eventType 事件类型
324
- * @param listenerIds 要移除的监听器ID数组
325
- */
326
- removeListeners(eventType, listenerIds) {
327
- if (listenerIds.length === 0)
328
- return;
329
- const listeners = this.listeners.get(eventType);
330
- if (!listeners)
331
- return;
332
- for (const id of listenerIds) {
333
- const index = listeners.findIndex(l => l.id === id);
334
- if (index !== -1) {
335
- listeners.splice(index, 1);
336
- }
337
- }
338
- // 如果没有监听器了,清理相关数据
339
- if (listeners.length === 0) {
340
- this.listeners.delete(eventType);
341
- this.stats.delete(eventType);
342
- }
343
- }
344
- /**
345
- * 添加事件到批处理队列
346
- * @param eventType 事件类型
347
- * @param event 事件数据
348
- */
349
- addToBatch(eventType, event) {
350
- let batch = this.batchQueue.get(eventType);
351
- if (!batch) {
352
- batch = [];
353
- this.batchQueue.set(eventType, batch);
354
- }
355
- batch.push(event);
356
- const config = this.batchConfigs.get(eventType);
357
- // 如果达到批处理大小,立即处理
358
- if (batch.length >= config.batchSize) {
359
- this.flushBatch(eventType);
360
- return;
361
- }
362
- // 设置延迟处理定时器
363
- if (!this.batchTimers.has(eventType)) {
364
- const timer = setTimeout(() => {
365
- this.flushBatch(eventType);
366
- }, config.delay);
367
- this.batchTimers.set(eventType, timer);
368
- }
369
- }
370
- /**
371
- * 处理批处理事件
372
- * @param eventType 事件类型
373
- * @param batch 批处理事件数组
374
- */
375
- async processBatch(eventType, batch) {
376
- // 创建批处理事件对象
377
- const batchEvent = {
378
- type: eventType,
379
- events: batch,
380
- count: batch.length,
381
- timestamp: Date.now()
382
- };
383
- // 触发批处理事件
384
- await this.executeEvent(`${eventType}:batch`, batchEvent);
385
- }
386
- /**
387
- * 清除指定事件类型的批处理
388
- * @param eventType 事件类型
389
- */
390
- clearBatch(eventType) {
391
- this.batchQueue.delete(eventType);
392
- const timer = this.batchTimers.get(eventType);
393
- if (timer) {
394
- clearTimeout(timer);
395
- this.batchTimers.delete(eventType);
396
- }
397
- }
398
- /**
399
- * 清除所有批处理
400
- */
401
- clearAllBatches() {
402
- this.batchQueue.clear();
403
- for (const timer of this.batchTimers.values()) {
404
- clearTimeout(timer);
405
- }
406
- this.batchTimers.clear();
407
- this.batchConfigs.clear();
408
- }
409
- /**
410
- * 更新事件统计信息
411
- * @param eventType 事件类型
412
- * @param executionTime 执行时间
413
- */
414
- updateStats(eventType, executionTime) {
415
- let stats = this.stats.get(eventType);
416
- if (!stats) {
417
- stats = this.createEmptyStats(eventType);
418
- this.stats.set(eventType, stats);
419
- }
420
- stats.triggerCount++;
421
- stats.totalExecutionTime += executionTime;
422
- stats.averageExecutionTime = stats.totalExecutionTime / stats.triggerCount;
423
- stats.lastTriggerTime = Date.now();
424
- stats.listenerCount = this.getListenerCount(eventType);
425
- }
426
- /**
427
- * 创建空的统计信息
428
- * @param eventType 事件类型
429
- * @returns 空的统计信息
430
- */
431
- createEmptyStats(eventType) {
432
- return {
433
- eventType,
434
- listenerCount: 0,
435
- triggerCount: 0,
436
- totalExecutionTime: 0,
437
- averageExecutionTime: 0,
438
- lastTriggerTime: 0
439
- };
440
- }
441
- }
442
- TypeSafeEventSystem._logger = createLogger('EventSystem');
443
- /**
444
- * 全局事件系统实例
445
- */
446
- export const GlobalEventSystem = new TypeSafeEventSystem();
447
- /**
448
- * 事件装饰器 - 用于自动注册事件监听器
449
- * @param eventType 事件类型
450
- * @param config 监听器配置
451
- */
452
- export function EventListener(eventType, config = {}) {
453
- return function (target, propertyKey, descriptor) {
454
- const originalMethod = descriptor.value;
455
- // 在类实例化时自动注册监听器
456
- const initMethod = target.constructor.prototype.initEventListeners || function () { };
457
- target.constructor.prototype.initEventListeners = function () {
458
- initMethod.call(this);
459
- GlobalEventSystem.on(eventType, originalMethod.bind(this), config);
460
- };
461
- };
462
- }
463
- /**
464
- * 异步事件装饰器
465
- * @param eventType 事件类型
466
- * @param config 监听器配置
467
- */
468
- export function AsyncEventListener(eventType, config = {}) {
469
- return function (target, propertyKey, descriptor) {
470
- const originalMethod = descriptor.value;
471
- const initMethod = target.constructor.prototype.initEventListeners || function () { };
472
- target.constructor.prototype.initEventListeners = function () {
473
- initMethod.call(this);
474
- GlobalEventSystem.onAsync(eventType, originalMethod.bind(this), config);
475
- };
476
- };
477
- }
478
- //# sourceMappingURL=EventSystem.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EventSystem.js","sourceRoot":"","sources":["../../../src/ECS/Core/EventSystem.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export { EventBus, GlobalEventBus, EventHandler, AsyncEventHandler } from '../EventBus';
2
- export { TypeSafeEventSystem, EventListenerConfig, EventStats } from '../EventSystem';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ECS/Core/Events/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACxF,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,3 +0,0 @@
1
- export { EventBus, GlobalEventBus, EventHandler, AsyncEventHandler } from '../EventBus';
2
- export { TypeSafeEventSystem } from '../EventSystem';
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ECS/Core/Events/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACxF,OAAO,EAAE,mBAAmB,EAAmC,MAAM,gBAAgB,CAAC"}
@@ -1,35 +0,0 @@
1
- import { Component } from '../../Component';
2
- /**
3
- * 组件构建器 - 提供流式API创建组件
4
- */
5
- export declare class ComponentBuilder<T extends Component> {
6
- private component;
7
- constructor(componentClass: new (...args: unknown[]) => T, ...args: unknown[]);
8
- /**
9
- * 设置组件属性
10
- * @param property 属性名
11
- * @param value 属性值
12
- * @returns 组件构建器
13
- */
14
- set<K extends keyof T>(property: K, value: T[K]): ComponentBuilder<T>;
15
- /**
16
- * 使用配置函数设置组件
17
- * @param configurator 配置函数
18
- * @returns 组件构建器
19
- */
20
- configure(configurator: (component: T) => void): ComponentBuilder<T>;
21
- /**
22
- * 条件性设置属性
23
- * @param condition 条件
24
- * @param property 属性名
25
- * @param value 属性值
26
- * @returns 组件构建器
27
- */
28
- setIf<K extends keyof T>(condition: boolean, property: K, value: T[K]): ComponentBuilder<T>;
29
- /**
30
- * 构建并返回组件
31
- * @returns 构建的组件
32
- */
33
- build(): T;
34
- }
35
- //# sourceMappingURL=ComponentBuilder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ComponentBuilder.d.ts","sourceRoot":"","sources":["../../../../src/ECS/Core/FluentAPI/ComponentBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;GAEG;AACH,qBAAa,gBAAgB,CAAC,CAAC,SAAS,SAAS;IAC7C,OAAO,CAAC,SAAS,CAAI;gBAET,cAAc,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE;IAI7E;;;;;OAKG;IACI,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC;IAK5E;;;;OAIG;IACI,SAAS,CAAC,YAAY,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,IAAI,GAAG,gBAAgB,CAAC,CAAC,CAAC;IAK3E;;;;;;OAMG;IACI,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC;IAOlG;;;OAGG;IACI,KAAK,IAAI,CAAC;CAGpB"}
@@ -1,48 +0,0 @@
1
- /**
2
- * 组件构建器 - 提供流式API创建组件
3
- */
4
- export class ComponentBuilder {
5
- constructor(componentClass, ...args) {
6
- this.component = new componentClass(...args);
7
- }
8
- /**
9
- * 设置组件属性
10
- * @param property 属性名
11
- * @param value 属性值
12
- * @returns 组件构建器
13
- */
14
- set(property, value) {
15
- this.component[property] = value;
16
- return this;
17
- }
18
- /**
19
- * 使用配置函数设置组件
20
- * @param configurator 配置函数
21
- * @returns 组件构建器
22
- */
23
- configure(configurator) {
24
- configurator(this.component);
25
- return this;
26
- }
27
- /**
28
- * 条件性设置属性
29
- * @param condition 条件
30
- * @param property 属性名
31
- * @param value 属性值
32
- * @returns 组件构建器
33
- */
34
- setIf(condition, property, value) {
35
- if (condition) {
36
- this.component[property] = value;
37
- }
38
- return this;
39
- }
40
- /**
41
- * 构建并返回组件
42
- * @returns 构建的组件
43
- */
44
- build() {
45
- return this.component;
46
- }
47
- }
48
- //# sourceMappingURL=ComponentBuilder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ComponentBuilder.js","sourceRoot":"","sources":["../../../../src/ECS/Core/FluentAPI/ComponentBuilder.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,OAAO,gBAAgB;IAGzB,YAAY,cAA6C,EAAE,GAAG,IAAe;QACzE,IAAI,CAAC,SAAS,GAAG,IAAI,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC;IACjD,CAAC;IAED;;;;;OAKG;IACI,GAAG,CAAoB,QAAW,EAAE,KAAW;QAClD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;QACjC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACI,SAAS,CAAC,YAAoC;QACjD,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAoB,SAAkB,EAAE,QAAW,EAAE,KAAW;QACxE,IAAI,SAAS,EAAE,CAAC;YACZ,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;QACrC,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;OAGG;IACI,KAAK;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;CACJ"}