@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,91 +0,0 @@
1
- import { IPoolable, PoolStats } from './IPoolable';
2
- import { Pool } from './Pool';
3
- /**
4
- * 池管理器
5
- * 统一管理所有对象池
6
- */
7
- export declare class PoolManager {
8
- private static instance;
9
- private pools;
10
- private autoCompactInterval;
11
- private lastCompactTime;
12
- static getInstance(): PoolManager;
13
- /**
14
- * 注册池
15
- * @param name 池名称
16
- * @param pool 池实例
17
- */
18
- registerPool<T extends IPoolable>(name: string, pool: Pool<T>): void;
19
- /**
20
- * 获取池
21
- * @param name 池名称
22
- * @returns 池实例
23
- */
24
- getPool<T extends IPoolable>(name: string): Pool<T> | null;
25
- /**
26
- * 更新池管理器(应在游戏循环中调用)
27
- */
28
- update(): void;
29
- /**
30
- * 创建或获取标准池
31
- * @param name 池名称
32
- * @param createFn 创建函数
33
- * @param maxSize 最大大小
34
- * @param estimatedObjectSize 估算对象大小
35
- * @returns 池实例
36
- */
37
- createPool<T extends IPoolable>(name: string, createFn: () => T, maxSize?: number, estimatedObjectSize?: number): Pool<T>;
38
- /**
39
- * 移除池
40
- * @param name 池名称
41
- * @returns 是否成功移除
42
- */
43
- removePool(name: string): boolean;
44
- /**
45
- * 获取所有池名称
46
- * @returns 池名称数组
47
- */
48
- getPoolNames(): string[];
49
- /**
50
- * 获取池数量
51
- * @returns 池数量
52
- */
53
- getPoolCount(): number;
54
- /**
55
- * 压缩所有池
56
- */
57
- compactAllPools(): void;
58
- /**
59
- * 清空所有池
60
- */
61
- clearAllPools(): void;
62
- /**
63
- * 获取所有池的统计信息
64
- * @returns 统计信息映射
65
- */
66
- getAllStats(): Map<string, PoolStats>;
67
- /**
68
- * 获取总体统计信息
69
- * @returns 总体统计信息
70
- */
71
- getGlobalStats(): PoolStats;
72
- /**
73
- * 获取格式化的统计信息字符串
74
- * @returns 格式化字符串
75
- */
76
- getStatsString(): string;
77
- /**
78
- * 设置自动压缩间隔
79
- * @param intervalMs 间隔毫秒数
80
- */
81
- setAutoCompactInterval(intervalMs: number): void;
82
- /**
83
- * 预填充所有池
84
- */
85
- prewarmAllPools(): void;
86
- /**
87
- * 重置池管理器
88
- */
89
- reset(): void;
90
- }
91
- //# sourceMappingURL=PoolManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PoolManager.d.ts","sourceRoot":"","sources":["../../../src/Utils/Pool/PoolManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B;;;GAGG;AACH,qBAAa,WAAW;IACpB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAc;IACrC,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,eAAe,CAAK;WAEd,WAAW,IAAI,WAAW;IAOxC;;;;OAIG;IACI,YAAY,CAAC,CAAC,SAAS,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI;IAI3E;;;;OAIG;IACI,OAAO,CAAC,CAAC,SAAS,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI;IAIjE;;OAEG;IACI,MAAM,IAAI,IAAI;IASrB;;;;;;;OAOG;IACI,UAAU,CAAC,CAAC,SAAS,SAAS,EACjC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,CAAC,EACjB,OAAO,GAAE,MAAY,EACrB,mBAAmB,GAAE,MAAa,GACnC,IAAI,CAAC,CAAC,CAAC;IAYV;;;;OAIG;IACI,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAUxC;;;OAGG;IACI,YAAY,IAAI,MAAM,EAAE;IAI/B;;;OAGG;IACI,YAAY,IAAI,MAAM;IAI7B;;OAEG;IACI,eAAe,IAAI,IAAI;IAM9B;;OAEG;IACI,aAAa,IAAI,IAAI;IAM5B;;;OAGG;IACI,WAAW,IAAI,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC;IAU5C;;;OAGG;IACI,cAAc,IAAI,SAAS;IA+BlC;;;OAGG;IACI,cAAc,IAAI,MAAM;IA0B/B;;;OAGG;IACI,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAIvD;;OAEG;IACI,eAAe,IAAI,IAAI;IAQ9B;;OAEG;IACI,KAAK,IAAI,IAAI;CAKvB"}
@@ -1,197 +0,0 @@
1
- import { Pool } from './Pool';
2
- /**
3
- * 池管理器
4
- * 统一管理所有对象池
5
- */
6
- export class PoolManager {
7
- constructor() {
8
- this.pools = new Map();
9
- this.autoCompactInterval = 60000; // 60秒
10
- this.lastCompactTime = 0;
11
- }
12
- static getInstance() {
13
- if (!PoolManager.instance) {
14
- PoolManager.instance = new PoolManager();
15
- }
16
- return PoolManager.instance;
17
- }
18
- /**
19
- * 注册池
20
- * @param name 池名称
21
- * @param pool 池实例
22
- */
23
- registerPool(name, pool) {
24
- this.pools.set(name, pool);
25
- }
26
- /**
27
- * 获取池
28
- * @param name 池名称
29
- * @returns 池实例
30
- */
31
- getPool(name) {
32
- return this.pools.get(name) || null;
33
- }
34
- /**
35
- * 更新池管理器(应在游戏循环中调用)
36
- */
37
- update() {
38
- const now = Date.now();
39
- if (now - this.lastCompactTime > this.autoCompactInterval) {
40
- this.compactAllPools();
41
- this.lastCompactTime = now;
42
- }
43
- }
44
- /**
45
- * 创建或获取标准池
46
- * @param name 池名称
47
- * @param createFn 创建函数
48
- * @param maxSize 最大大小
49
- * @param estimatedObjectSize 估算对象大小
50
- * @returns 池实例
51
- */
52
- createPool(name, createFn, maxSize = 100, estimatedObjectSize = 1024) {
53
- let pool = this.pools.get(name);
54
- if (!pool) {
55
- pool = new Pool(createFn, maxSize, estimatedObjectSize);
56
- this.pools.set(name, pool);
57
- }
58
- return pool;
59
- }
60
- /**
61
- * 移除池
62
- * @param name 池名称
63
- * @returns 是否成功移除
64
- */
65
- removePool(name) {
66
- const pool = this.pools.get(name);
67
- if (pool) {
68
- pool.clear();
69
- this.pools.delete(name);
70
- return true;
71
- }
72
- return false;
73
- }
74
- /**
75
- * 获取所有池名称
76
- * @returns 池名称数组
77
- */
78
- getPoolNames() {
79
- return Array.from(this.pools.keys());
80
- }
81
- /**
82
- * 获取池数量
83
- * @returns 池数量
84
- */
85
- getPoolCount() {
86
- return this.pools.size;
87
- }
88
- /**
89
- * 压缩所有池
90
- */
91
- compactAllPools() {
92
- for (const pool of this.pools.values()) {
93
- pool.compact();
94
- }
95
- }
96
- /**
97
- * 清空所有池
98
- */
99
- clearAllPools() {
100
- for (const pool of this.pools.values()) {
101
- pool.clear();
102
- }
103
- }
104
- /**
105
- * 获取所有池的统计信息
106
- * @returns 统计信息映射
107
- */
108
- getAllStats() {
109
- const stats = new Map();
110
- for (const [name, pool] of this.pools) {
111
- stats.set(name, pool.getStats());
112
- }
113
- return stats;
114
- }
115
- /**
116
- * 获取总体统计信息
117
- * @returns 总体统计信息
118
- */
119
- getGlobalStats() {
120
- let totalSize = 0;
121
- let totalMaxSize = 0;
122
- let totalCreated = 0;
123
- let totalObtained = 0;
124
- let totalReleased = 0;
125
- let totalMemoryUsage = 0;
126
- for (const pool of this.pools.values()) {
127
- const stats = pool.getStats();
128
- totalSize += stats.size;
129
- totalMaxSize += stats.maxSize;
130
- totalCreated += stats.totalCreated;
131
- totalObtained += stats.totalObtained;
132
- totalReleased += stats.totalReleased;
133
- totalMemoryUsage += stats.estimatedMemoryUsage;
134
- }
135
- const hitRate = totalObtained === 0 ? 0 : (totalObtained - totalCreated) / totalObtained;
136
- return {
137
- size: totalSize,
138
- maxSize: totalMaxSize,
139
- totalCreated,
140
- totalObtained,
141
- totalReleased,
142
- hitRate,
143
- estimatedMemoryUsage: totalMemoryUsage
144
- };
145
- }
146
- /**
147
- * 获取格式化的统计信息字符串
148
- * @returns 格式化字符串
149
- */
150
- getStatsString() {
151
- const lines = ['=== Pool Manager Statistics ===', ''];
152
- if (this.pools.size === 0) {
153
- lines.push('No pools registered');
154
- return lines.join('\n');
155
- }
156
- const globalStats = this.getGlobalStats();
157
- lines.push(`Total Pools: ${this.pools.size}`);
158
- lines.push(`Global Hit Rate: ${(globalStats.hitRate * 100).toFixed(1)}%`);
159
- lines.push(`Global Memory Usage: ${(globalStats.estimatedMemoryUsage / 1024).toFixed(1)} KB`);
160
- lines.push('');
161
- for (const [name, pool] of this.pools) {
162
- const stats = pool.getStats();
163
- lines.push(`${name}:`);
164
- lines.push(` Size: ${stats.size}/${stats.maxSize}`);
165
- lines.push(` Hit Rate: ${(stats.hitRate * 100).toFixed(1)}%`);
166
- lines.push(` Memory: ${(stats.estimatedMemoryUsage / 1024).toFixed(1)} KB`);
167
- lines.push('');
168
- }
169
- return lines.join('\n');
170
- }
171
- /**
172
- * 设置自动压缩间隔
173
- * @param intervalMs 间隔毫秒数
174
- */
175
- setAutoCompactInterval(intervalMs) {
176
- this.autoCompactInterval = intervalMs;
177
- }
178
- /**
179
- * 预填充所有池
180
- */
181
- prewarmAllPools() {
182
- for (const pool of this.pools.values()) {
183
- const stats = pool.getStats();
184
- const prewarmCount = Math.floor(stats.maxSize * 0.2); // 预填充20%
185
- pool.prewarm(prewarmCount);
186
- }
187
- }
188
- /**
189
- * 重置池管理器
190
- */
191
- reset() {
192
- this.clearAllPools();
193
- this.pools.clear();
194
- this.lastCompactTime = 0;
195
- }
196
- }
197
- //# sourceMappingURL=PoolManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PoolManager.js","sourceRoot":"","sources":["../../../src/Utils/Pool/PoolManager.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- export * from './IPoolable';
2
- export * from './Pool';
3
- export * from './PoolManager';
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Utils/Pool/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC"}
@@ -1,4 +0,0 @@
1
- export * from './IPoolable';
2
- export * from './Pool';
3
- export * from './PoolManager';
4
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Utils/Pool/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC"}
@@ -1,47 +0,0 @@
1
- /**
2
- * 时间管理工具类
3
- * 提供游戏时间相关的功能,包括帧时间、总时间、时间缩放等
4
- */
5
- export declare class Time {
6
- /**
7
- * 上一帧到当前帧的时间间隔(秒)
8
- */
9
- static deltaTime: number;
10
- /**
11
- * 未缩放的帧时间间隔(秒)
12
- */
13
- static unscaledDeltaTime: number;
14
- /**
15
- * 游戏开始以来的总时间(秒)
16
- */
17
- static totalTime: number;
18
- /**
19
- * 未缩放的总时间(秒)
20
- */
21
- static unscaledTotalTime: number;
22
- /**
23
- * 时间缩放比例
24
- */
25
- static timeScale: number;
26
- /**
27
- * 当前帧数
28
- */
29
- static frameCount: number;
30
- /**
31
- * 使用外部引擎提供的deltaTime更新时间信息
32
- * @param deltaTime 外部引擎提供的帧时间间隔(秒)
33
- */
34
- static update(deltaTime: number): void;
35
- /**
36
- * 场景改变时重置时间
37
- */
38
- static sceneChanged(): void;
39
- /**
40
- * 检查指定的时间间隔是否已经过去
41
- * @param interval 时间间隔(秒)
42
- * @param lastTime 上次检查的时间
43
- * @returns 是否已经过去指定时间
44
- */
45
- static checkEvery(interval: number, lastTime: number): boolean;
46
- }
47
- //# sourceMappingURL=Time.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Time.d.ts","sourceRoot":"","sources":["../../src/Utils/Time.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,IAAI;IACb;;OAEG;IACH,OAAc,SAAS,EAAE,MAAM,CAAK;IAEpC;;OAEG;IACH,OAAc,iBAAiB,EAAE,MAAM,CAAK;IAE5C;;OAEG;IACH,OAAc,SAAS,EAAE,MAAM,CAAK;IAEpC;;OAEG;IACH,OAAc,iBAAiB,EAAE,MAAM,CAAK;IAE5C;;OAEG;IACH,OAAc,SAAS,EAAE,MAAM,CAAK;IAEpC;;OAEG;IACH,OAAc,UAAU,EAAE,MAAM,CAAK;IAErC;;;OAGG;WACW,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAa7C;;OAEG;WACW,YAAY,IAAI,IAAI;IAQlC;;;;;OAKG;WACW,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;CAGxE"}
package/bin/Utils/Time.js DELETED
@@ -1,64 +0,0 @@
1
- /**
2
- * 时间管理工具类
3
- * 提供游戏时间相关的功能,包括帧时间、总时间、时间缩放等
4
- */
5
- export class Time {
6
- /**
7
- * 使用外部引擎提供的deltaTime更新时间信息
8
- * @param deltaTime 外部引擎提供的帧时间间隔(秒)
9
- */
10
- static update(deltaTime) {
11
- // 设置未缩放的帧时间
12
- this.unscaledDeltaTime = deltaTime;
13
- this.deltaTime = deltaTime * this.timeScale;
14
- // 更新总时间
15
- this.unscaledTotalTime += this.unscaledDeltaTime;
16
- this.totalTime += this.deltaTime;
17
- // 更新帧数
18
- this.frameCount++;
19
- }
20
- /**
21
- * 场景改变时重置时间
22
- */
23
- static sceneChanged() {
24
- this.frameCount = 0;
25
- this.totalTime = 0;
26
- this.unscaledTotalTime = 0;
27
- this.deltaTime = 0;
28
- this.unscaledDeltaTime = 0;
29
- }
30
- /**
31
- * 检查指定的时间间隔是否已经过去
32
- * @param interval 时间间隔(秒)
33
- * @param lastTime 上次检查的时间
34
- * @returns 是否已经过去指定时间
35
- */
36
- static checkEvery(interval, lastTime) {
37
- return this.totalTime - lastTime >= interval;
38
- }
39
- }
40
- /**
41
- * 上一帧到当前帧的时间间隔(秒)
42
- */
43
- Time.deltaTime = 0;
44
- /**
45
- * 未缩放的帧时间间隔(秒)
46
- */
47
- Time.unscaledDeltaTime = 0;
48
- /**
49
- * 游戏开始以来的总时间(秒)
50
- */
51
- Time.totalTime = 0;
52
- /**
53
- * 未缩放的总时间(秒)
54
- */
55
- Time.unscaledTotalTime = 0;
56
- /**
57
- * 时间缩放比例
58
- */
59
- Time.timeScale = 1;
60
- /**
61
- * 当前帧数
62
- */
63
- Time.frameCount = 0;
64
- //# sourceMappingURL=Time.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Time.js","sourceRoot":"","sources":["../../src/Utils/Time.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,OAAO,IAAI;IA+Bb;;;OAGG;IACI,MAAM,CAAC,MAAM,CAAC,SAAiB;QAClC,YAAY;QACZ,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAE5C,QAAQ;QACR,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC;QACjD,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC;QAEjC,OAAO;QACP,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,YAAY;QACtB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,UAAU,CAAC,QAAgB,EAAE,QAAgB;QACvD,OAAO,IAAI,CAAC,SAAS,GAAG,QAAQ,IAAI,QAAQ,CAAC;IACjD,CAAC;;AAlED;;GAEG;AACW,cAAS,GAAW,CAAC,CAAC;AAEpC;;GAEG;AACW,sBAAiB,GAAW,CAAC,CAAC;AAE5C;;GAEG;AACW,cAAS,GAAW,CAAC,CAAC;AAEpC;;GAEG;AACW,sBAAiB,GAAW,CAAC,CAAC;AAE5C;;GAEG;AACW,cAAS,GAAW,CAAC,CAAC;AAEpC;;GAEG;AACW,eAAU,GAAW,CAAC,CAAC"}
@@ -1,16 +0,0 @@
1
- export interface ITimer<TContext = unknown> {
2
- context: TContext;
3
- /**
4
- * 调用stop以停止此计时器再次运行。这对非重复计时器没有影响。
5
- */
6
- stop(): void;
7
- /**
8
- * 将计时器的运行时间重置为0
9
- */
10
- reset(): void;
11
- /**
12
- * 返回投向T的上下文,作为方便
13
- */
14
- getContext<T>(): T;
15
- }
16
- //# sourceMappingURL=ITimer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ITimer.d.ts","sourceRoot":"","sources":["../../../src/Utils/Timers/ITimer.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM,CAAC,QAAQ,GAAG,OAAO;IACtC,OAAO,EAAE,QAAQ,CAAC;IAElB;;OAEG;IACH,IAAI,IAAI,IAAI,CAAC;IAEb;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;IAEd;;OAEG;IACH,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC;CACtB"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=ITimer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ITimer.js","sourceRoot":"","sources":["../../../src/Utils/Timers/ITimer.ts"],"names":[],"mappings":""}
@@ -1,30 +0,0 @@
1
- import { ITimer } from './ITimer';
2
- /**
3
- * 私有类隐藏ITimer的实现
4
- */
5
- export declare class Timer<TContext = unknown> implements ITimer<TContext> {
6
- context: TContext;
7
- _timeInSeconds: number;
8
- _repeats: boolean;
9
- _onTime: (timer: ITimer<TContext>) => void;
10
- _isDone: boolean;
11
- _elapsedTime: number;
12
- getContext<T>(): T;
13
- /**
14
- * 定时器是否已完成
15
- */
16
- get isDone(): boolean;
17
- /**
18
- * 定时器已运行的时间
19
- */
20
- get elapsedTime(): number;
21
- reset(): void;
22
- stop(): void;
23
- tick(): boolean;
24
- initialize(timeInsSeconds: number, repeats: boolean, context: TContext, onTime: (timer: ITimer<TContext>) => void): void;
25
- /**
26
- * 空出对象引用,以便在js需要时GC可以清理它们的引用
27
- */
28
- unload(): void;
29
- }
30
- //# sourceMappingURL=Timer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Timer.d.ts","sourceRoot":"","sources":["../../../src/Utils/Timers/Timer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC;;GAEG;AACH,qBAAa,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAE,YAAW,MAAM,CAAC,QAAQ,CAAC;IACvD,OAAO,EAAG,QAAQ,CAAC;IACnB,cAAc,EAAE,MAAM,CAAK;IAC3B,QAAQ,EAAE,OAAO,CAAS;IAC1B,OAAO,EAAG,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;IAC5C,OAAO,EAAE,OAAO,CAAS;IACzB,YAAY,EAAE,MAAM,CAAK;IAEzB,UAAU,CAAC,CAAC,KAAK,CAAC;IAIzB;;OAEG;IACH,IAAW,MAAM,IAAI,OAAO,CAE3B;IAED;;OAEG;IACH,IAAW,WAAW,IAAI,MAAM,CAE/B;IAEM,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,IAAI;IAIZ,IAAI;IAeJ,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAG,IAAI;IAOtH;;OAEG;IACI,MAAM;CAIhB"}
@@ -1,58 +0,0 @@
1
- import { Time } from '../Time';
2
- /**
3
- * 私有类隐藏ITimer的实现
4
- */
5
- export class Timer {
6
- constructor() {
7
- this._timeInSeconds = 0;
8
- this._repeats = false;
9
- this._isDone = false;
10
- this._elapsedTime = 0;
11
- }
12
- getContext() {
13
- return this.context;
14
- }
15
- /**
16
- * 定时器是否已完成
17
- */
18
- get isDone() {
19
- return this._isDone;
20
- }
21
- /**
22
- * 定时器已运行的时间
23
- */
24
- get elapsedTime() {
25
- return this._elapsedTime;
26
- }
27
- reset() {
28
- this._elapsedTime = 0;
29
- }
30
- stop() {
31
- this._isDone = true;
32
- }
33
- tick() {
34
- // 如果stop在tick之前被调用,那么isDone将为true,我们不应该再做任何事情
35
- if (!this._isDone && this._elapsedTime > this._timeInSeconds) {
36
- this._elapsedTime -= this._timeInSeconds;
37
- this._onTime(this);
38
- if (!this._isDone && !this._repeats)
39
- this._isDone = true;
40
- }
41
- this._elapsedTime += Time.deltaTime;
42
- return this._isDone;
43
- }
44
- initialize(timeInsSeconds, repeats, context, onTime) {
45
- this._timeInSeconds = timeInsSeconds;
46
- this._repeats = repeats;
47
- this.context = context;
48
- this._onTime = onTime.bind(context);
49
- }
50
- /**
51
- * 空出对象引用,以便在js需要时GC可以清理它们的引用
52
- */
53
- unload() {
54
- this.context = null;
55
- this._onTime = null;
56
- }
57
- }
58
- //# sourceMappingURL=Timer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Timer.js","sourceRoot":"","sources":["../../../src/Utils/Timers/Timer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B;;GAEG;AACH,MAAM,OAAO,KAAK;IAAlB;QAEW,mBAAc,GAAW,CAAC,CAAC;QAC3B,aAAQ,GAAY,KAAK,CAAC;QAE1B,YAAO,GAAY,KAAK,CAAC;QACzB,iBAAY,GAAW,CAAC,CAAC;IAyDpC,CAAC;IAvDU,UAAU;QACb,OAAO,IAAI,CAAC,OAAuB,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,IAAW,WAAW;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAEM,KAAK;QACR,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;IAC1B,CAAC;IAEM,IAAI;QACP,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACxB,CAAC;IAEM,IAAI;QACP,8CAA8C;QAC9C,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,EAAC,CAAC;YAC1D,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,cAAc,CAAC;YACzC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAEnB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,SAAS,CAAC;QAEpC,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAEM,UAAU,CAAC,cAAsB,EAAE,OAAgB,EAAE,OAAiB,EAAE,MAAuC;QAClH,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACI,MAAM;QACT,IAAI,CAAC,OAAO,GAAG,IAA2B,CAAC;QAC3C,IAAI,CAAC,OAAO,GAAG,IAAK,CAAC;IACzB,CAAC;CACJ"}
@@ -1,19 +0,0 @@
1
- import { GlobalManager } from '../GlobalManager';
2
- import { Timer } from './Timer';
3
- import { ITimer } from './ITimer';
4
- /**
5
- * 允许动作的延迟和重复执行
6
- */
7
- export declare class TimerManager extends GlobalManager {
8
- _timers: Array<Timer<unknown>>;
9
- update(): void;
10
- /**
11
- * 调度一个一次性或重复的计时器,该计时器将调用已传递的动作
12
- * @param timeInSeconds
13
- * @param repeats
14
- * @param context
15
- * @param onTime
16
- */
17
- schedule<TContext = unknown>(timeInSeconds: number, repeats: boolean, context: TContext, onTime: (timer: ITimer<TContext>) => void): Timer<TContext>;
18
- }
19
- //# sourceMappingURL=TimerManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TimerManager.d.ts","sourceRoot":"","sources":["../../../src/Utils/Timers/TimerManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC;;GAEG;AACH,qBAAa,YAAa,SAAQ,aAAa;IACpC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAM;IAE3B,MAAM;IAStB;;;;;;OAMG;IACI,QAAQ,CAAC,QAAQ,GAAG,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAG,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC;CAO5J"}
@@ -1,33 +0,0 @@
1
- import { GlobalManager } from '../GlobalManager';
2
- import { Timer } from './Timer';
3
- /**
4
- * 允许动作的延迟和重复执行
5
- */
6
- export class TimerManager extends GlobalManager {
7
- constructor() {
8
- super(...arguments);
9
- this._timers = [];
10
- }
11
- update() {
12
- for (let i = this._timers.length - 1; i >= 0; i--) {
13
- if (this._timers[i].tick()) {
14
- this._timers[i].unload();
15
- this._timers.splice(i, 1);
16
- }
17
- }
18
- }
19
- /**
20
- * 调度一个一次性或重复的计时器,该计时器将调用已传递的动作
21
- * @param timeInSeconds
22
- * @param repeats
23
- * @param context
24
- * @param onTime
25
- */
26
- schedule(timeInSeconds, repeats, context, onTime) {
27
- let timer = new Timer();
28
- timer.initialize(timeInSeconds, repeats, context, onTime);
29
- this._timers.push(timer);
30
- return timer;
31
- }
32
- }
33
- //# sourceMappingURL=TimerManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TimerManager.js","sourceRoot":"","sources":["../../../src/Utils/Timers/TimerManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,aAAa;IAA/C;;QACW,YAAO,GAA0B,EAAE,CAAC;IAyB/C,CAAC;IAvBmB,MAAM;QAClB,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAG,EAAC,CAAC;YAChD,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAC,CAAC;gBACxB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBACzB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9B,CAAC;QACL,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACI,QAAQ,CAAqB,aAAqB,EAAE,OAAgB,EAAE,OAAiB,EAAE,MAAuC;QACnI,IAAI,KAAK,GAAG,IAAI,KAAK,EAAY,CAAC;QAClC,KAAK,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAC1D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAuB,CAAC,CAAC;QAE3C,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ"}
@@ -1,9 +0,0 @@
1
- export * from './Extensions';
2
- export * from './Pool';
3
- export * from './Emitter';
4
- export * from './GlobalManager';
5
- export * from './PerformanceMonitor';
6
- export { Time } from './Time';
7
- export * from './Debug';
8
- export * from './Logger';
9
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC"}
@@ -1,9 +0,0 @@
1
- export * from './Extensions';
2
- export * from './Pool';
3
- export * from './Emitter';
4
- export * from './GlobalManager';
5
- export * from './PerformanceMonitor';
6
- export { Time } from './Time';
7
- export * from './Debug';
8
- export * from './Logger';
9
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC"}