@esengine/ecs-framework 2.1.28 → 2.1.30

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 (290) hide show
  1. package/bin/Core.d.ts +279 -0
  2. package/bin/Core.d.ts.map +1 -0
  3. package/bin/Core.js +400 -0
  4. package/bin/Core.js.map +1 -0
  5. package/bin/ECS/Component.d.ts +120 -0
  6. package/bin/ECS/Component.d.ts.map +1 -0
  7. package/bin/ECS/Component.js +129 -0
  8. package/bin/ECS/Component.js.map +1 -0
  9. package/bin/ECS/Components/IUpdatable.d.ts +22 -0
  10. package/bin/ECS/Components/IUpdatable.d.ts.map +1 -0
  11. package/bin/ECS/Components/IUpdatable.js +17 -0
  12. package/bin/ECS/Components/IUpdatable.js.map +1 -0
  13. package/bin/ECS/Components/SceneComponent.d.ts +40 -0
  14. package/bin/ECS/Components/SceneComponent.d.ts.map +1 -0
  15. package/bin/ECS/Components/SceneComponent.js +57 -0
  16. package/bin/ECS/Components/SceneComponent.js.map +1 -0
  17. package/bin/ECS/Core/ArchetypeSystem.d.ts +100 -0
  18. package/bin/ECS/Core/ArchetypeSystem.d.ts.map +1 -0
  19. package/bin/ECS/Core/ArchetypeSystem.js +193 -0
  20. package/bin/ECS/Core/ArchetypeSystem.js.map +1 -0
  21. package/bin/ECS/Core/ComponentIndex.d.ts +151 -0
  22. package/bin/ECS/Core/ComponentIndex.d.ts.map +1 -0
  23. package/bin/ECS/Core/ComponentIndex.js +405 -0
  24. package/bin/ECS/Core/ComponentIndex.js.map +1 -0
  25. package/bin/ECS/Core/ComponentPool.d.ts +88 -0
  26. package/bin/ECS/Core/ComponentPool.d.ts.map +1 -0
  27. package/bin/ECS/Core/ComponentPool.js +159 -0
  28. package/bin/ECS/Core/ComponentPool.js.map +1 -0
  29. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.d.ts +92 -0
  30. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.d.ts.map +1 -0
  31. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.js +167 -0
  32. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.js.map +1 -0
  33. package/bin/ECS/Core/ComponentStorage.d.ts +233 -0
  34. package/bin/ECS/Core/ComponentStorage.d.ts.map +1 -0
  35. package/bin/ECS/Core/ComponentStorage.js +463 -0
  36. package/bin/ECS/Core/ComponentStorage.js.map +1 -0
  37. package/bin/ECS/Core/DirtyTrackingSystem.d.ts +197 -0
  38. package/bin/ECS/Core/DirtyTrackingSystem.d.ts.map +1 -0
  39. package/bin/ECS/Core/DirtyTrackingSystem.js +297 -0
  40. package/bin/ECS/Core/DirtyTrackingSystem.js.map +1 -0
  41. package/bin/ECS/Core/EntityManager.d.ts +379 -0
  42. package/bin/ECS/Core/EntityManager.d.ts.map +1 -0
  43. package/bin/ECS/Core/EntityManager.js +686 -0
  44. package/bin/ECS/Core/EntityManager.js.map +1 -0
  45. package/bin/ECS/Core/EventBus.d.ts +218 -0
  46. package/bin/ECS/Core/EventBus.d.ts.map +1 -0
  47. package/bin/ECS/Core/EventBus.js +402 -0
  48. package/bin/ECS/Core/EventBus.js.map +1 -0
  49. package/bin/ECS/Core/EventSystem.d.ts +237 -0
  50. package/bin/ECS/Core/EventSystem.d.ts.map +1 -0
  51. package/bin/ECS/Core/EventSystem.js +478 -0
  52. package/bin/ECS/Core/EventSystem.js.map +1 -0
  53. package/bin/ECS/Core/Events/index.d.ts +3 -0
  54. package/bin/ECS/Core/Events/index.d.ts.map +1 -0
  55. package/bin/ECS/Core/Events/index.js +3 -0
  56. package/bin/ECS/Core/Events/index.js.map +1 -0
  57. package/bin/ECS/Core/FluentAPI/ComponentBuilder.d.ts +35 -0
  58. package/bin/ECS/Core/FluentAPI/ComponentBuilder.d.ts.map +1 -0
  59. package/bin/ECS/Core/FluentAPI/ComponentBuilder.js +48 -0
  60. package/bin/ECS/Core/FluentAPI/ComponentBuilder.js.map +1 -0
  61. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.d.ts +135 -0
  62. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.d.ts.map +1 -0
  63. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.js +166 -0
  64. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.js.map +1 -0
  65. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.d.ts +58 -0
  66. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.d.ts.map +1 -0
  67. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.js +85 -0
  68. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.js.map +1 -0
  69. package/bin/ECS/Core/FluentAPI/EntityBuilder.d.ts +110 -0
  70. package/bin/ECS/Core/FluentAPI/EntityBuilder.d.ts.map +1 -0
  71. package/bin/ECS/Core/FluentAPI/EntityBuilder.js +174 -0
  72. package/bin/ECS/Core/FluentAPI/EntityBuilder.js.map +1 -0
  73. package/bin/ECS/Core/FluentAPI/SceneBuilder.d.ts +53 -0
  74. package/bin/ECS/Core/FluentAPI/SceneBuilder.d.ts.map +1 -0
  75. package/bin/ECS/Core/FluentAPI/SceneBuilder.js +79 -0
  76. package/bin/ECS/Core/FluentAPI/SceneBuilder.js.map +1 -0
  77. package/bin/ECS/Core/FluentAPI/index.d.ts +6 -0
  78. package/bin/ECS/Core/FluentAPI/index.d.ts.map +1 -0
  79. package/bin/ECS/Core/FluentAPI/index.js +6 -0
  80. package/bin/ECS/Core/FluentAPI/index.js.map +1 -0
  81. package/bin/ECS/Core/FluentAPI.d.ts +2 -0
  82. package/bin/ECS/Core/FluentAPI.d.ts.map +1 -0
  83. package/bin/ECS/Core/FluentAPI.js +3 -0
  84. package/bin/ECS/Core/FluentAPI.js.map +1 -0
  85. package/bin/ECS/Core/Performance/index.d.ts +4 -0
  86. package/bin/ECS/Core/Performance/index.d.ts.map +1 -0
  87. package/bin/ECS/Core/Performance/index.js +4 -0
  88. package/bin/ECS/Core/Performance/index.js.map +1 -0
  89. package/bin/ECS/Core/Query/index.d.ts +4 -0
  90. package/bin/ECS/Core/Query/index.d.ts.map +1 -0
  91. package/bin/ECS/Core/Query/index.js +4 -0
  92. package/bin/ECS/Core/Query/index.js.map +1 -0
  93. package/bin/ECS/Core/QuerySystem.d.ts +438 -0
  94. package/bin/ECS/Core/QuerySystem.d.ts.map +1 -0
  95. package/bin/ECS/Core/QuerySystem.js +974 -0
  96. package/bin/ECS/Core/QuerySystem.js.map +1 -0
  97. package/bin/ECS/Core/SoAStorage.d.ts +97 -0
  98. package/bin/ECS/Core/SoAStorage.d.ts.map +1 -0
  99. package/bin/ECS/Core/SoAStorage.js +548 -0
  100. package/bin/ECS/Core/SoAStorage.js.map +1 -0
  101. package/bin/ECS/Core/Storage/index.d.ts +4 -0
  102. package/bin/ECS/Core/Storage/index.d.ts.map +1 -0
  103. package/bin/ECS/Core/Storage/index.js +4 -0
  104. package/bin/ECS/Core/Storage/index.js.map +1 -0
  105. package/bin/ECS/CoreEvents.d.ts +131 -0
  106. package/bin/ECS/CoreEvents.d.ts.map +1 -0
  107. package/bin/ECS/CoreEvents.js +163 -0
  108. package/bin/ECS/CoreEvents.js.map +1 -0
  109. package/bin/ECS/Entity.d.ts +455 -0
  110. package/bin/ECS/Entity.d.ts.map +1 -0
  111. package/bin/ECS/Entity.js +837 -0
  112. package/bin/ECS/Entity.js.map +1 -0
  113. package/bin/ECS/Scene.d.ts +225 -0
  114. package/bin/ECS/Scene.d.ts.map +1 -0
  115. package/bin/ECS/Scene.js +325 -0
  116. package/bin/ECS/Scene.js.map +1 -0
  117. package/bin/ECS/Systems/EntitySystem.d.ts +200 -0
  118. package/bin/ECS/Systems/EntitySystem.d.ts.map +1 -0
  119. package/bin/ECS/Systems/EntitySystem.js +431 -0
  120. package/bin/ECS/Systems/EntitySystem.js.map +1 -0
  121. package/bin/ECS/Systems/IntervalSystem.d.ts +33 -0
  122. package/bin/ECS/Systems/IntervalSystem.d.ts.map +1 -0
  123. package/bin/ECS/Systems/IntervalSystem.js +50 -0
  124. package/bin/ECS/Systems/IntervalSystem.js.map +1 -0
  125. package/bin/ECS/Systems/PassiveSystem.d.ts +17 -0
  126. package/bin/ECS/Systems/PassiveSystem.d.ts.map +1 -0
  127. package/bin/ECS/Systems/PassiveSystem.js +19 -0
  128. package/bin/ECS/Systems/PassiveSystem.js.map +1 -0
  129. package/bin/ECS/Systems/ProcessingSystem.d.ts +21 -0
  130. package/bin/ECS/Systems/ProcessingSystem.d.ts.map +1 -0
  131. package/bin/ECS/Systems/ProcessingSystem.js +20 -0
  132. package/bin/ECS/Systems/ProcessingSystem.js.map +1 -0
  133. package/bin/ECS/Systems/index.d.ts +5 -0
  134. package/bin/ECS/Systems/index.d.ts.map +1 -0
  135. package/bin/ECS/Systems/index.js +6 -0
  136. package/bin/ECS/Systems/index.js.map +1 -0
  137. package/bin/ECS/Utils/BigIntCompatibility.d.ts +164 -0
  138. package/bin/ECS/Utils/BigIntCompatibility.d.ts.map +1 -0
  139. package/bin/ECS/Utils/BigIntCompatibility.js +578 -0
  140. package/bin/ECS/Utils/BigIntCompatibility.js.map +1 -0
  141. package/bin/ECS/Utils/Bits.d.ts +163 -0
  142. package/bin/ECS/Utils/Bits.d.ts.map +1 -0
  143. package/bin/ECS/Utils/Bits.js +286 -0
  144. package/bin/ECS/Utils/Bits.js.map +1 -0
  145. package/bin/ECS/Utils/ComponentTypeManager.d.ts +50 -0
  146. package/bin/ECS/Utils/ComponentTypeManager.d.ts.map +1 -0
  147. package/bin/ECS/Utils/ComponentTypeManager.js +84 -0
  148. package/bin/ECS/Utils/ComponentTypeManager.js.map +1 -0
  149. package/bin/ECS/Utils/EntityList.d.ts +108 -0
  150. package/bin/ECS/Utils/EntityList.d.ts.map +1 -0
  151. package/bin/ECS/Utils/EntityList.js +262 -0
  152. package/bin/ECS/Utils/EntityList.js.map +1 -0
  153. package/bin/ECS/Utils/EntityProcessorList.d.ts +56 -0
  154. package/bin/ECS/Utils/EntityProcessorList.d.ts.map +1 -0
  155. package/bin/ECS/Utils/EntityProcessorList.js +102 -0
  156. package/bin/ECS/Utils/EntityProcessorList.js.map +1 -0
  157. package/bin/ECS/Utils/IdentifierPool.d.ts +203 -0
  158. package/bin/ECS/Utils/IdentifierPool.d.ts.map +1 -0
  159. package/bin/ECS/Utils/IdentifierPool.js +325 -0
  160. package/bin/ECS/Utils/IdentifierPool.js.map +1 -0
  161. package/bin/ECS/Utils/Matcher.d.ts +143 -0
  162. package/bin/ECS/Utils/Matcher.d.ts.map +1 -0
  163. package/bin/ECS/Utils/Matcher.js +249 -0
  164. package/bin/ECS/Utils/Matcher.js.map +1 -0
  165. package/bin/ECS/Utils/index.d.ts +8 -0
  166. package/bin/ECS/Utils/index.d.ts.map +1 -0
  167. package/bin/ECS/Utils/index.js +9 -0
  168. package/bin/ECS/Utils/index.js.map +1 -0
  169. package/bin/ECS/index.d.ts +12 -0
  170. package/bin/ECS/index.d.ts.map +1 -0
  171. package/bin/ECS/index.js +12 -0
  172. package/bin/ECS/index.js.map +1 -0
  173. package/bin/Types/index.d.ts +471 -0
  174. package/bin/Types/index.d.ts.map +1 -0
  175. package/bin/Types/index.js +5 -0
  176. package/bin/Types/index.js.map +1 -0
  177. package/bin/Utils/Debug/ComponentDataCollector.d.ts +28 -0
  178. package/bin/Utils/Debug/ComponentDataCollector.d.ts.map +1 -0
  179. package/bin/Utils/Debug/ComponentDataCollector.js +248 -0
  180. package/bin/Utils/Debug/ComponentDataCollector.js.map +1 -0
  181. package/bin/Utils/Debug/DebugDataFormatter.d.ts +22 -0
  182. package/bin/Utils/Debug/DebugDataFormatter.d.ts.map +1 -0
  183. package/bin/Utils/Debug/DebugDataFormatter.js +117 -0
  184. package/bin/Utils/Debug/DebugDataFormatter.js.map +1 -0
  185. package/bin/Utils/Debug/DebugManager.d.ts +104 -0
  186. package/bin/Utils/Debug/DebugManager.d.ts.map +1 -0
  187. package/bin/Utils/Debug/DebugManager.js +647 -0
  188. package/bin/Utils/Debug/DebugManager.js.map +1 -0
  189. package/bin/Utils/Debug/EntityDataCollector.d.ts +92 -0
  190. package/bin/Utils/Debug/EntityDataCollector.d.ts.map +1 -0
  191. package/bin/Utils/Debug/EntityDataCollector.js +864 -0
  192. package/bin/Utils/Debug/EntityDataCollector.js.map +1 -0
  193. package/bin/Utils/Debug/PerformanceDataCollector.d.ts +32 -0
  194. package/bin/Utils/Debug/PerformanceDataCollector.d.ts.map +1 -0
  195. package/bin/Utils/Debug/PerformanceDataCollector.js +217 -0
  196. package/bin/Utils/Debug/PerformanceDataCollector.js.map +1 -0
  197. package/bin/Utils/Debug/SceneDataCollector.d.ts +16 -0
  198. package/bin/Utils/Debug/SceneDataCollector.d.ts.map +1 -0
  199. package/bin/Utils/Debug/SceneDataCollector.js +46 -0
  200. package/bin/Utils/Debug/SceneDataCollector.js.map +1 -0
  201. package/bin/Utils/Debug/SystemDataCollector.d.ts +11 -0
  202. package/bin/Utils/Debug/SystemDataCollector.d.ts.map +1 -0
  203. package/bin/Utils/Debug/SystemDataCollector.js +59 -0
  204. package/bin/Utils/Debug/SystemDataCollector.js.map +1 -0
  205. package/bin/Utils/Debug/WebSocketManager.d.ts +59 -0
  206. package/bin/Utils/Debug/WebSocketManager.d.ts.map +1 -0
  207. package/bin/Utils/Debug/WebSocketManager.js +148 -0
  208. package/bin/Utils/Debug/WebSocketManager.js.map +1 -0
  209. package/bin/Utils/Debug/index.d.ts +8 -0
  210. package/bin/Utils/Debug/index.d.ts.map +1 -0
  211. package/bin/Utils/Debug/index.js +8 -0
  212. package/bin/Utils/Debug/index.js.map +1 -0
  213. package/bin/Utils/Emitter.d.ts +43 -0
  214. package/bin/Utils/Emitter.d.ts.map +1 -0
  215. package/bin/Utils/Emitter.js +69 -0
  216. package/bin/Utils/Emitter.js.map +1 -0
  217. package/bin/Utils/Extensions/NumberExtension.d.ts +13 -0
  218. package/bin/Utils/Extensions/NumberExtension.d.ts.map +1 -0
  219. package/bin/Utils/Extensions/NumberExtension.js +17 -0
  220. package/bin/Utils/Extensions/NumberExtension.js.map +1 -0
  221. package/bin/Utils/Extensions/TypeUtils.d.ts +13 -0
  222. package/bin/Utils/Extensions/TypeUtils.d.ts.map +1 -0
  223. package/bin/Utils/Extensions/TypeUtils.js +15 -0
  224. package/bin/Utils/Extensions/TypeUtils.js.map +1 -0
  225. package/bin/Utils/Extensions/index.d.ts +3 -0
  226. package/bin/Utils/Extensions/index.d.ts.map +1 -0
  227. package/bin/Utils/Extensions/index.js +4 -0
  228. package/bin/Utils/Extensions/index.js.map +1 -0
  229. package/bin/Utils/GlobalManager.d.ts +32 -0
  230. package/bin/Utils/GlobalManager.d.ts.map +1 -0
  231. package/bin/Utils/GlobalManager.js +53 -0
  232. package/bin/Utils/GlobalManager.js.map +1 -0
  233. package/bin/Utils/Logger.d.ts +156 -0
  234. package/bin/Utils/Logger.d.ts.map +1 -0
  235. package/bin/Utils/Logger.js +256 -0
  236. package/bin/Utils/Logger.js.map +1 -0
  237. package/bin/Utils/PerformanceMonitor.d.ts +211 -0
  238. package/bin/Utils/PerformanceMonitor.d.ts.map +1 -0
  239. package/bin/Utils/PerformanceMonitor.js +270 -0
  240. package/bin/Utils/PerformanceMonitor.js.map +1 -0
  241. package/bin/Utils/Pool/IPoolable.d.ts +29 -0
  242. package/bin/Utils/Pool/IPoolable.d.ts.map +1 -0
  243. package/bin/Utils/Pool/IPoolable.js +2 -0
  244. package/bin/Utils/Pool/IPoolable.js.map +1 -0
  245. package/bin/Utils/Pool/Pool.d.ts +109 -0
  246. package/bin/Utils/Pool/Pool.d.ts.map +1 -0
  247. package/bin/Utils/Pool/Pool.js +238 -0
  248. package/bin/Utils/Pool/Pool.js.map +1 -0
  249. package/bin/Utils/Pool/PoolManager.d.ts +91 -0
  250. package/bin/Utils/Pool/PoolManager.d.ts.map +1 -0
  251. package/bin/Utils/Pool/PoolManager.js +197 -0
  252. package/bin/Utils/Pool/PoolManager.js.map +1 -0
  253. package/bin/Utils/Pool/index.d.ts +4 -0
  254. package/bin/Utils/Pool/index.d.ts.map +1 -0
  255. package/bin/Utils/Pool/index.js +4 -0
  256. package/bin/Utils/Pool/index.js.map +1 -0
  257. package/bin/Utils/Time.d.ts +47 -0
  258. package/bin/Utils/Time.d.ts.map +1 -0
  259. package/bin/Utils/Time.js +64 -0
  260. package/bin/Utils/Time.js.map +1 -0
  261. package/bin/Utils/Timers/ITimer.d.ts +16 -0
  262. package/bin/Utils/Timers/ITimer.d.ts.map +1 -0
  263. package/bin/Utils/Timers/ITimer.js +2 -0
  264. package/bin/Utils/Timers/ITimer.js.map +1 -0
  265. package/bin/Utils/Timers/Timer.d.ts +30 -0
  266. package/bin/Utils/Timers/Timer.d.ts.map +1 -0
  267. package/bin/Utils/Timers/Timer.js +58 -0
  268. package/bin/Utils/Timers/Timer.js.map +1 -0
  269. package/bin/Utils/Timers/TimerManager.d.ts +19 -0
  270. package/bin/Utils/Timers/TimerManager.d.ts.map +1 -0
  271. package/bin/Utils/Timers/TimerManager.js +33 -0
  272. package/bin/Utils/Timers/TimerManager.js.map +1 -0
  273. package/bin/Utils/index.d.ts +9 -0
  274. package/bin/Utils/index.d.ts.map +1 -0
  275. package/bin/Utils/index.js +9 -0
  276. package/bin/Utils/index.js.map +1 -0
  277. package/bin/index.d.ts +16 -0
  278. package/bin/index.d.ts.map +1 -0
  279. package/bin/index.js +19 -0
  280. package/bin/index.js.map +1 -0
  281. package/package.json +52 -25
  282. package/.npmignore +0 -40
  283. package/LICENSE +0 -201
  284. package/README.md +0 -438
  285. package/SECURITY.md +0 -53
  286. package/index.cjs +0 -2
  287. package/index.cjs.map +0 -1
  288. package/index.d.ts +0 -6383
  289. package/index.mjs +0 -2
  290. package/index.mjs.map +0 -1
package/bin/Core.d.ts ADDED
@@ -0,0 +1,279 @@
1
+ import { GlobalManager } from './Utils/GlobalManager';
2
+ import { TimerManager } from './Utils/Timers/TimerManager';
3
+ import { ITimer } from './Utils/Timers/ITimer';
4
+ import { Timer } from './Utils/Timers/Timer';
5
+ import { PerformanceMonitor } from './Utils/PerformanceMonitor';
6
+ import { PoolManager } from './Utils/Pool/PoolManager';
7
+ import { ECSFluentAPI } from './ECS/Core/FluentAPI';
8
+ import { Scene } from './ECS/Scene';
9
+ import { DebugManager } from './Utils/Debug';
10
+ import { ICoreConfig, IECSDebugConfig } from './Types';
11
+ import { EnvironmentInfo } from './ECS/Utils/BigIntCompatibility';
12
+ /**
13
+ * 游戏引擎核心类
14
+ *
15
+ * 负责管理游戏的生命周期、场景切换、全局管理器和定时器系统。
16
+ * 提供统一的游戏循环管理。
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * // 创建核心实例
21
+ * const core = Core.create(true);
22
+ *
23
+ * // 设置场景
24
+ * Core.scene = new MyScene();
25
+ *
26
+ * // 在游戏循环中更新(Laya引擎示例)
27
+ * Laya.timer.frameLoop(1, this, () => {
28
+ * const deltaTime = Laya.timer.delta / 1000;
29
+ * Core.update(deltaTime);
30
+ * });
31
+ *
32
+ * // 调度定时器
33
+ * Core.schedule(1.0, false, null, (timer) => {
34
+ * Core._logger.info("1秒后执行");
35
+ * });
36
+ * ```
37
+ */
38
+ export declare class Core {
39
+ /**
40
+ * 游戏暂停状态
41
+ *
42
+ * 当设置为true时,游戏循环将暂停执行。
43
+ */
44
+ static paused: boolean;
45
+ /**
46
+ * 全局核心实例
47
+ */
48
+ private static _instance;
49
+ /**
50
+ * Core专用日志器
51
+ */
52
+ private static _logger;
53
+ /**
54
+ * 实体系统启用状态
55
+ *
56
+ * 控制是否启用ECS实体系统功能。
57
+ */
58
+ static entitySystemsEnabled: boolean;
59
+ /**
60
+ * 调试模式标志
61
+ *
62
+ * 在调试模式下会启用额外的性能监控和错误检查。
63
+ */
64
+ readonly debug: boolean;
65
+ /**
66
+ * 待切换的场景
67
+ *
68
+ * 存储下一帧要切换到的场景实例。
69
+ */
70
+ _nextScene: Scene | null;
71
+ /**
72
+ * 全局管理器集合
73
+ *
74
+ * 存储所有注册的全局管理器实例。
75
+ */
76
+ _globalManagers: GlobalManager[];
77
+ /**
78
+ * 定时器管理器
79
+ *
80
+ * 负责管理所有的游戏定时器。
81
+ */
82
+ _timerManager: TimerManager;
83
+ /**
84
+ * 性能监控器
85
+ *
86
+ * 监控游戏性能并提供优化建议。
87
+ */
88
+ _performanceMonitor: PerformanceMonitor;
89
+ /**
90
+ * 对象池管理器
91
+ *
92
+ * 管理所有对象池的生命周期。
93
+ */
94
+ _poolManager: PoolManager;
95
+ /**
96
+ * ECS流式API
97
+ *
98
+ * 提供便捷的ECS操作接口。
99
+ */
100
+ _ecsAPI?: ECSFluentAPI;
101
+ /**
102
+ * 当前活动场景
103
+ */
104
+ _scene?: Scene;
105
+ /**
106
+ * 调试管理器
107
+ *
108
+ * 负责收集和发送调试数据。
109
+ */
110
+ _debugManager?: DebugManager;
111
+ /**
112
+ * Core配置
113
+ */
114
+ private _config;
115
+ /**
116
+ * 兼容性信息
117
+ */
118
+ private _environmentInfo;
119
+ /**
120
+ * 创建核心实例
121
+ *
122
+ * @param config - Core配置对象
123
+ */
124
+ private constructor();
125
+ /**
126
+ * 获取核心实例
127
+ *
128
+ * @returns 全局核心实例
129
+ */
130
+ static get Instance(): Core;
131
+ /**
132
+ * 获取当前活动的场景
133
+ *
134
+ * @returns 当前场景实例,如果没有则返回null
135
+ */
136
+ static get scene(): Scene | null;
137
+ /**
138
+ * 设置当前活动的场景
139
+ *
140
+ * 如果当前没有场景,会立即切换;否则会在下一帧切换。
141
+ *
142
+ * @param value - 要设置的场景实例
143
+ * @throws {Error} 当场景为空时抛出错误
144
+ */
145
+ static set scene(value: Scene | null);
146
+ /**
147
+ * 创建Core实例
148
+ *
149
+ * 如果实例已存在,则返回现有实例。
150
+ *
151
+ * @param config - Core配置,也可以直接传入boolean表示debug模式(向后兼容)
152
+ * @returns Core实例
153
+ */
154
+ static create(config?: ICoreConfig | boolean): Core;
155
+ /**
156
+ * 更新游戏逻辑
157
+ *
158
+ * 此方法应该在游戏引擎的更新循环中调用。
159
+ *
160
+ * @param deltaTime - 外部引擎提供的帧时间间隔(秒)
161
+ *
162
+ * @example
163
+ * ```typescript
164
+ * // Laya引擎
165
+ * Laya.timer.frameLoop(1, this, () => {
166
+ * const deltaTime = Laya.timer.delta / 1000;
167
+ * Core.update(deltaTime);
168
+ * });
169
+ *
170
+ * // Cocos Creator
171
+ * update(deltaTime: number) {
172
+ * Core.update(deltaTime);
173
+ * }
174
+ *
175
+
176
+ * ```
177
+ */
178
+ static update(deltaTime: number): void;
179
+ /**
180
+ * 注册全局管理器
181
+ *
182
+ * 将管理器添加到全局管理器列表中,并启用它。
183
+ *
184
+ * @param manager - 要注册的全局管理器
185
+ */
186
+ static registerGlobalManager(manager: GlobalManager): void;
187
+ /**
188
+ * 注销全局管理器
189
+ *
190
+ * 从全局管理器列表中移除管理器,并禁用它。
191
+ *
192
+ * @param manager - 要注销的全局管理器
193
+ */
194
+ static unregisterGlobalManager(manager: GlobalManager): void;
195
+ /**
196
+ * 获取指定类型的全局管理器
197
+ *
198
+ * @param type - 管理器类型构造函数
199
+ * @returns 管理器实例,如果未找到则返回null
200
+ */
201
+ static getGlobalManager<T extends GlobalManager>(type: new (...args: unknown[]) => T): T | null;
202
+ /**
203
+ * 调度定时器
204
+ *
205
+ * 创建一个定时器,在指定时间后执行回调函数。
206
+ *
207
+ * @param timeInSeconds - 延迟时间(秒)
208
+ * @param repeats - 是否重复执行,默认为false
209
+ * @param context - 回调函数的上下文,默认为null
210
+ * @param onTime - 定时器触发时的回调函数
211
+ * @returns 创建的定时器实例
212
+ */
213
+ static schedule<TContext = unknown>(timeInSeconds: number, repeats: boolean | undefined, context: TContext | undefined, onTime: (timer: ITimer<TContext>) => void): Timer<TContext>;
214
+ /**
215
+ * 获取ECS流式API
216
+ *
217
+ * @returns ECS API实例,如果未初始化则返回null
218
+ */
219
+ static get ecsAPI(): ECSFluentAPI | null;
220
+ /**
221
+ * 启用调试功能
222
+ *
223
+ * @param config 调试配置
224
+ */
225
+ static enableDebug(config: IECSDebugConfig): void;
226
+ /**
227
+ * 禁用调试功能
228
+ */
229
+ static disableDebug(): void;
230
+ /**
231
+ * 获取调试数据
232
+ *
233
+ * @returns 当前调试数据,如果调试未启用则返回null
234
+ */
235
+ static getDebugData(): any;
236
+ /**
237
+ * 检查调试是否启用
238
+ *
239
+ * @returns 调试状态
240
+ */
241
+ static get isDebugEnabled(): boolean;
242
+ /**
243
+ * 获取环境兼容性信息
244
+ *
245
+ * @returns 环境兼容性信息
246
+ */
247
+ static getEnvironmentInfo(): EnvironmentInfo | null;
248
+ /**
249
+ * 检查BigInt是否支持
250
+ *
251
+ * @returns 是否支持BigInt
252
+ */
253
+ static get supportsBigInt(): boolean;
254
+ /**
255
+ * 场景切换回调
256
+ *
257
+ * 在场景切换时调用,用于重置时间系统等。
258
+ */
259
+ onSceneChanged(): void;
260
+ /**
261
+ * 初始化核心系统
262
+ *
263
+ * 执行核心系统的初始化逻辑。
264
+ */
265
+ protected initialize(): void;
266
+ /**
267
+ * 记录兼容性信息
268
+ *
269
+ * 在控制台输出当前环境的兼容性信息和建议。
270
+ */
271
+ private logCompatibilityInfo;
272
+ /**
273
+ * 内部更新方法
274
+ *
275
+ * @param deltaTime - 帧时间间隔(秒)
276
+ */
277
+ private updateInternal;
278
+ }
279
+ //# sourceMappingURL=Core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Core.d.ts","sourceRoot":"","sources":["../src/Core.ts"],"names":[],"mappings":"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"}
package/bin/Core.js ADDED
@@ -0,0 +1,400 @@
1
+ import { TimerManager } from './Utils/Timers/TimerManager';
2
+ import { Time } from './Utils/Time';
3
+ import { PerformanceMonitor } from './Utils/PerformanceMonitor';
4
+ import { PoolManager } from './Utils/Pool/PoolManager';
5
+ import { createECSAPI } from './ECS/Core/FluentAPI';
6
+ import { DebugManager } from './Utils/Debug';
7
+ import { BigIntFactory } from './ECS/Utils/BigIntCompatibility';
8
+ import { createLogger } from './Utils/Logger';
9
+ /**
10
+ * 游戏引擎核心类
11
+ *
12
+ * 负责管理游戏的生命周期、场景切换、全局管理器和定时器系统。
13
+ * 提供统一的游戏循环管理。
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * // 创建核心实例
18
+ * const core = Core.create(true);
19
+ *
20
+ * // 设置场景
21
+ * Core.scene = new MyScene();
22
+ *
23
+ * // 在游戏循环中更新(Laya引擎示例)
24
+ * Laya.timer.frameLoop(1, this, () => {
25
+ * const deltaTime = Laya.timer.delta / 1000;
26
+ * Core.update(deltaTime);
27
+ * });
28
+ *
29
+ * // 调度定时器
30
+ * Core.schedule(1.0, false, null, (timer) => {
31
+ * Core._logger.info("1秒后执行");
32
+ * });
33
+ * ```
34
+ */
35
+ export class Core {
36
+ /**
37
+ * 创建核心实例
38
+ *
39
+ * @param config - Core配置对象
40
+ */
41
+ constructor(config = {}) {
42
+ /**
43
+ * 待切换的场景
44
+ *
45
+ * 存储下一帧要切换到的场景实例。
46
+ */
47
+ this._nextScene = null;
48
+ /**
49
+ * 全局管理器集合
50
+ *
51
+ * 存储所有注册的全局管理器实例。
52
+ */
53
+ this._globalManagers = [];
54
+ Core._instance = this;
55
+ // 保存配置
56
+ this._config = {
57
+ debug: true,
58
+ enableEntitySystems: true,
59
+ ...config
60
+ };
61
+ // 检测环境兼容性
62
+ this._environmentInfo = BigIntFactory.getEnvironmentInfo();
63
+ // 初始化管理器
64
+ this._timerManager = new TimerManager();
65
+ Core.registerGlobalManager(this._timerManager);
66
+ // 初始化性能监控器
67
+ this._performanceMonitor = PerformanceMonitor.instance;
68
+ // 在调试模式下启用性能监控
69
+ if (this._config.debug) {
70
+ this._performanceMonitor.enable();
71
+ }
72
+ // 初始化对象池管理器
73
+ this._poolManager = PoolManager.getInstance();
74
+ Core.entitySystemsEnabled = this._config.enableEntitySystems ?? true;
75
+ this.debug = this._config.debug ?? true;
76
+ // 初始化调试管理器
77
+ if (this._config.debugConfig?.enabled) {
78
+ this._debugManager = new DebugManager(this, this._config.debugConfig);
79
+ }
80
+ // 在调试模式下显示兼容性信息
81
+ if (this._config.debug) {
82
+ this.logCompatibilityInfo();
83
+ }
84
+ this.initialize();
85
+ }
86
+ /**
87
+ * 获取核心实例
88
+ *
89
+ * @returns 全局核心实例
90
+ */
91
+ static get Instance() {
92
+ return this._instance;
93
+ }
94
+ /**
95
+ * 获取当前活动的场景
96
+ *
97
+ * @returns 当前场景实例,如果没有则返回null
98
+ */
99
+ static get scene() {
100
+ if (!this._instance)
101
+ return null;
102
+ return this._instance._scene || null;
103
+ }
104
+ /**
105
+ * 设置当前活动的场景
106
+ *
107
+ * 如果当前没有场景,会立即切换;否则会在下一帧切换。
108
+ *
109
+ * @param value - 要设置的场景实例
110
+ * @throws {Error} 当场景为空时抛出错误
111
+ */
112
+ static set scene(value) {
113
+ if (!value)
114
+ return;
115
+ if (!value) {
116
+ throw new Error("场景不能为空");
117
+ }
118
+ if (this._instance._scene == null) {
119
+ this._instance._scene = value;
120
+ this._instance.onSceneChanged();
121
+ this._instance._scene.begin();
122
+ }
123
+ else {
124
+ this._instance._nextScene = value;
125
+ }
126
+ }
127
+ /**
128
+ * 创建Core实例
129
+ *
130
+ * 如果实例已存在,则返回现有实例。
131
+ *
132
+ * @param config - Core配置,也可以直接传入boolean表示debug模式(向后兼容)
133
+ * @returns Core实例
134
+ */
135
+ static create(config = true) {
136
+ if (this._instance == null) {
137
+ // 向后兼容:如果传入boolean,转换为配置对象
138
+ const coreConfig = typeof config === 'boolean'
139
+ ? { debug: config, enableEntitySystems: true }
140
+ : config;
141
+ this._instance = new Core(coreConfig);
142
+ }
143
+ return this._instance;
144
+ }
145
+ /**
146
+ * 更新游戏逻辑
147
+ *
148
+ * 此方法应该在游戏引擎的更新循环中调用。
149
+ *
150
+ * @param deltaTime - 外部引擎提供的帧时间间隔(秒)
151
+ *
152
+ * @example
153
+ * ```typescript
154
+ * // Laya引擎
155
+ * Laya.timer.frameLoop(1, this, () => {
156
+ * const deltaTime = Laya.timer.delta / 1000;
157
+ * Core.update(deltaTime);
158
+ * });
159
+ *
160
+ * // Cocos Creator
161
+ * update(deltaTime: number) {
162
+ * Core.update(deltaTime);
163
+ * }
164
+ *
165
+
166
+ * ```
167
+ */
168
+ static update(deltaTime) {
169
+ if (!this._instance) {
170
+ Core._logger.warn("Core实例未创建,请先调用Core.create()");
171
+ return;
172
+ }
173
+ this._instance.updateInternal(deltaTime);
174
+ }
175
+ /**
176
+ * 注册全局管理器
177
+ *
178
+ * 将管理器添加到全局管理器列表中,并启用它。
179
+ *
180
+ * @param manager - 要注册的全局管理器
181
+ */
182
+ static registerGlobalManager(manager) {
183
+ this._instance._globalManagers.push(manager);
184
+ manager.enabled = true;
185
+ }
186
+ /**
187
+ * 注销全局管理器
188
+ *
189
+ * 从全局管理器列表中移除管理器,并禁用它。
190
+ *
191
+ * @param manager - 要注销的全局管理器
192
+ */
193
+ static unregisterGlobalManager(manager) {
194
+ this._instance._globalManagers.splice(this._instance._globalManagers.indexOf(manager), 1);
195
+ manager.enabled = false;
196
+ }
197
+ /**
198
+ * 获取指定类型的全局管理器
199
+ *
200
+ * @param type - 管理器类型构造函数
201
+ * @returns 管理器实例,如果未找到则返回null
202
+ */
203
+ static getGlobalManager(type) {
204
+ for (const manager of this._instance._globalManagers) {
205
+ if (manager instanceof type)
206
+ return manager;
207
+ }
208
+ return null;
209
+ }
210
+ /**
211
+ * 调度定时器
212
+ *
213
+ * 创建一个定时器,在指定时间后执行回调函数。
214
+ *
215
+ * @param timeInSeconds - 延迟时间(秒)
216
+ * @param repeats - 是否重复执行,默认为false
217
+ * @param context - 回调函数的上下文,默认为null
218
+ * @param onTime - 定时器触发时的回调函数
219
+ * @returns 创建的定时器实例
220
+ */
221
+ static schedule(timeInSeconds, repeats = false, context = null, onTime) {
222
+ return this._instance._timerManager.schedule(timeInSeconds, repeats, context, onTime);
223
+ }
224
+ /**
225
+ * 获取ECS流式API
226
+ *
227
+ * @returns ECS API实例,如果未初始化则返回null
228
+ */
229
+ static get ecsAPI() {
230
+ return this._instance?._ecsAPI || null;
231
+ }
232
+ /**
233
+ * 启用调试功能
234
+ *
235
+ * @param config 调试配置
236
+ */
237
+ static enableDebug(config) {
238
+ if (!this._instance) {
239
+ Core._logger.warn("Core实例未创建,请先调用Core.create()");
240
+ return;
241
+ }
242
+ if (this._instance._debugManager) {
243
+ this._instance._debugManager.updateConfig(config);
244
+ }
245
+ else {
246
+ this._instance._debugManager = new DebugManager(this._instance, config);
247
+ }
248
+ // 更新Core配置
249
+ this._instance._config.debugConfig = config;
250
+ }
251
+ /**
252
+ * 禁用调试功能
253
+ */
254
+ static disableDebug() {
255
+ if (!this._instance)
256
+ return;
257
+ if (this._instance._debugManager) {
258
+ this._instance._debugManager.stop();
259
+ this._instance._debugManager = undefined;
260
+ }
261
+ // 更新Core配置
262
+ if (this._instance._config.debugConfig) {
263
+ this._instance._config.debugConfig.enabled = false;
264
+ }
265
+ }
266
+ /**
267
+ * 获取调试数据
268
+ *
269
+ * @returns 当前调试数据,如果调试未启用则返回null
270
+ */
271
+ static getDebugData() {
272
+ if (!this._instance?._debugManager) {
273
+ return null;
274
+ }
275
+ return this._instance._debugManager.getDebugData();
276
+ }
277
+ /**
278
+ * 检查调试是否启用
279
+ *
280
+ * @returns 调试状态
281
+ */
282
+ static get isDebugEnabled() {
283
+ return this._instance?._config.debugConfig?.enabled || false;
284
+ }
285
+ /**
286
+ * 获取环境兼容性信息
287
+ *
288
+ * @returns 环境兼容性信息
289
+ */
290
+ static getEnvironmentInfo() {
291
+ return this._instance?._environmentInfo || null;
292
+ }
293
+ /**
294
+ * 检查BigInt是否支持
295
+ *
296
+ * @returns 是否支持BigInt
297
+ */
298
+ static get supportsBigInt() {
299
+ return this._instance?._environmentInfo.supportsBigInt || false;
300
+ }
301
+ /**
302
+ * 场景切换回调
303
+ *
304
+ * 在场景切换时调用,用于重置时间系统等。
305
+ */
306
+ onSceneChanged() {
307
+ Time.sceneChanged();
308
+ // 初始化ECS API(如果场景支持)
309
+ if (this._scene && typeof this._scene.querySystem !== 'undefined') {
310
+ const scene = this._scene;
311
+ this._ecsAPI = createECSAPI(scene, scene.querySystem, scene.eventSystem);
312
+ }
313
+ // 通知调试管理器场景已变更
314
+ if (this._debugManager) {
315
+ this._debugManager.onSceneChanged();
316
+ }
317
+ }
318
+ /**
319
+ * 初始化核心系统
320
+ *
321
+ * 执行核心系统的初始化逻辑。
322
+ */
323
+ initialize() {
324
+ // 核心系统初始化
325
+ }
326
+ /**
327
+ * 记录兼容性信息
328
+ *
329
+ * 在控制台输出当前环境的兼容性信息和建议。
330
+ */
331
+ logCompatibilityInfo() {
332
+ const info = this._environmentInfo;
333
+ Core._logger.info('ECS Framework 兼容性检测结果:');
334
+ Core._logger.info(` 环境: ${info.environment}`);
335
+ Core._logger.info(` JavaScript引擎: ${info.jsEngine}`);
336
+ Core._logger.info(` BigInt支持: ${info.supportsBigInt ? '支持' : '不支持'}`);
337
+ if (!info.supportsBigInt) {
338
+ Core._logger.warn('BigInt兼容模式已启用');
339
+ }
340
+ }
341
+ /**
342
+ * 内部更新方法
343
+ *
344
+ * @param deltaTime - 帧时间间隔(秒)
345
+ */
346
+ updateInternal(deltaTime) {
347
+ if (Core.paused)
348
+ return;
349
+ // 开始性能监控
350
+ const frameStartTime = this._performanceMonitor.startMonitoring('Core.update');
351
+ // 更新时间系统
352
+ Time.update(deltaTime);
353
+ // 更新FPS监控(如果性能监控器支持)
354
+ if (typeof this._performanceMonitor.updateFPS === 'function') {
355
+ this._performanceMonitor.updateFPS(Time.deltaTime);
356
+ }
357
+ // 更新全局管理器
358
+ const managersStartTime = this._performanceMonitor.startMonitoring('GlobalManagers.update');
359
+ for (const globalManager of this._globalManagers) {
360
+ if (globalManager.enabled)
361
+ globalManager.update();
362
+ }
363
+ this._performanceMonitor.endMonitoring('GlobalManagers.update', managersStartTime, this._globalManagers.length);
364
+ // 更新对象池管理器
365
+ this._poolManager.update();
366
+ // 处理场景切换
367
+ if (this._nextScene != null) {
368
+ if (this._scene != null)
369
+ this._scene.end();
370
+ this._scene = this._nextScene;
371
+ this._nextScene = null;
372
+ this.onSceneChanged();
373
+ this._scene.begin();
374
+ }
375
+ // 更新当前场景
376
+ if (this._scene != null && this._scene.update) {
377
+ const sceneStartTime = this._performanceMonitor.startMonitoring('Scene.update');
378
+ this._scene.update();
379
+ const entityCount = this._scene.entities?.count || 0;
380
+ this._performanceMonitor.endMonitoring('Scene.update', sceneStartTime, entityCount);
381
+ }
382
+ // 更新调试管理器(基于FPS的数据发送)
383
+ if (this._debugManager) {
384
+ this._debugManager.onFrameUpdate(deltaTime);
385
+ }
386
+ // 结束性能监控
387
+ this._performanceMonitor.endMonitoring('Core.update', frameStartTime);
388
+ }
389
+ }
390
+ /**
391
+ * 游戏暂停状态
392
+ *
393
+ * 当设置为true时,游戏循环将暂停执行。
394
+ */
395
+ Core.paused = false;
396
+ /**
397
+ * Core专用日志器
398
+ */
399
+ Core._logger = createLogger('Core');
400
+ //# sourceMappingURL=Core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Core.js","sourceRoot":"","sources":["../src/Core.ts"],"names":[],"mappings":"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"}