@esengine/ecs-framework 2.2.21 → 2.3.0

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 (490) hide show
  1. package/bin/Core/DI/Decorators.d.ts +206 -0
  2. package/bin/Core/DI/Decorators.d.ts.map +1 -0
  3. package/bin/Core/DI/Decorators.js +253 -0
  4. package/bin/Core/DI/Decorators.js.map +1 -0
  5. package/bin/Core/DI/index.d.ts +8 -0
  6. package/bin/Core/DI/index.d.ts.map +1 -0
  7. package/bin/Core/DI/index.js +7 -0
  8. package/bin/Core/DI/index.js.map +1 -0
  9. package/bin/Core/Plugin.d.ts +112 -0
  10. package/bin/Core/Plugin.d.ts.map +1 -0
  11. package/bin/Core/Plugin.js +19 -0
  12. package/bin/Core/Plugin.js.map +1 -0
  13. package/bin/Core/PluginManager.d.ts +118 -0
  14. package/bin/Core/PluginManager.d.ts.map +1 -0
  15. package/bin/Core/PluginManager.js +229 -0
  16. package/bin/Core/PluginManager.js.map +1 -0
  17. package/bin/Core/ServiceContainer.d.ts +221 -0
  18. package/bin/Core/ServiceContainer.d.ts.map +1 -0
  19. package/bin/Core/ServiceContainer.js +352 -0
  20. package/bin/Core/ServiceContainer.js.map +1 -0
  21. package/bin/Core.d.ts +379 -0
  22. package/bin/Core.d.ts.map +1 -0
  23. package/bin/Core.js +553 -0
  24. package/bin/Core.js.map +1 -0
  25. package/bin/ECS/Component.d.ts +104 -0
  26. package/bin/ECS/Component.d.ts.map +1 -0
  27. package/bin/ECS/Component.js +105 -0
  28. package/bin/ECS/Component.js.map +1 -0
  29. package/bin/ECS/Components/HierarchyComponent.d.ts +46 -0
  30. package/bin/ECS/Components/HierarchyComponent.d.ts.map +1 -0
  31. package/bin/ECS/Components/HierarchyComponent.js +65 -0
  32. package/bin/ECS/Components/HierarchyComponent.js.map +1 -0
  33. package/bin/ECS/Components/index.d.ts +2 -0
  34. package/bin/ECS/Components/index.d.ts.map +1 -0
  35. package/bin/ECS/Components/index.js +2 -0
  36. package/bin/ECS/Components/index.js.map +1 -0
  37. package/bin/ECS/Core/ArchetypeSystem.d.ts +103 -0
  38. package/bin/ECS/Core/ArchetypeSystem.d.ts.map +1 -0
  39. package/bin/ECS/Core/ArchetypeSystem.js +244 -0
  40. package/bin/ECS/Core/ArchetypeSystem.js.map +1 -0
  41. package/bin/ECS/Core/CommandBuffer.d.ts +154 -0
  42. package/bin/ECS/Core/CommandBuffer.d.ts.map +1 -0
  43. package/bin/ECS/Core/CommandBuffer.js +244 -0
  44. package/bin/ECS/Core/CommandBuffer.js.map +1 -0
  45. package/bin/ECS/Core/ComponentPool.d.ts +139 -0
  46. package/bin/ECS/Core/ComponentPool.d.ts.map +1 -0
  47. package/bin/ECS/Core/ComponentPool.js +276 -0
  48. package/bin/ECS/Core/ComponentPool.js.map +1 -0
  49. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.d.ts +127 -0
  50. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.d.ts.map +1 -0
  51. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.js +235 -0
  52. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.js.map +1 -0
  53. package/bin/ECS/Core/ComponentStorage.d.ts +185 -0
  54. package/bin/ECS/Core/ComponentStorage.d.ts.map +1 -0
  55. package/bin/ECS/Core/ComponentStorage.js +321 -0
  56. package/bin/ECS/Core/ComponentStorage.js.map +1 -0
  57. package/bin/ECS/Core/EntityLifecyclePolicy.d.ts +26 -0
  58. package/bin/ECS/Core/EntityLifecyclePolicy.d.ts.map +1 -0
  59. package/bin/ECS/Core/EntityLifecyclePolicy.js +2 -0
  60. package/bin/ECS/Core/EntityLifecyclePolicy.js.map +1 -0
  61. package/bin/ECS/Core/EventBus.d.ts +210 -0
  62. package/bin/ECS/Core/EventBus.d.ts.map +1 -0
  63. package/bin/ECS/Core/EventBus.js +370 -0
  64. package/bin/ECS/Core/EventBus.js.map +1 -0
  65. package/bin/ECS/Core/EventSystem.d.ts +225 -0
  66. package/bin/ECS/Core/EventSystem.d.ts.map +1 -0
  67. package/bin/ECS/Core/EventSystem.js +448 -0
  68. package/bin/ECS/Core/EventSystem.js.map +1 -0
  69. package/bin/ECS/Core/Events/index.d.ts +3 -0
  70. package/bin/ECS/Core/Events/index.d.ts.map +1 -0
  71. package/bin/ECS/Core/Events/index.js +3 -0
  72. package/bin/ECS/Core/Events/index.js.map +1 -0
  73. package/bin/ECS/Core/FluentAPI/ComponentBuilder.d.ts +35 -0
  74. package/bin/ECS/Core/FluentAPI/ComponentBuilder.d.ts.map +1 -0
  75. package/bin/ECS/Core/FluentAPI/ComponentBuilder.js +48 -0
  76. package/bin/ECS/Core/FluentAPI/ComponentBuilder.js.map +1 -0
  77. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.d.ts +135 -0
  78. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.d.ts.map +1 -0
  79. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.js +166 -0
  80. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.js.map +1 -0
  81. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.d.ts +58 -0
  82. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.d.ts.map +1 -0
  83. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.js +85 -0
  84. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.js.map +1 -0
  85. package/bin/ECS/Core/FluentAPI/EntityBuilder.d.ts +110 -0
  86. package/bin/ECS/Core/FluentAPI/EntityBuilder.d.ts.map +1 -0
  87. package/bin/ECS/Core/FluentAPI/EntityBuilder.js +181 -0
  88. package/bin/ECS/Core/FluentAPI/EntityBuilder.js.map +1 -0
  89. package/bin/ECS/Core/FluentAPI/SceneBuilder.d.ts +53 -0
  90. package/bin/ECS/Core/FluentAPI/SceneBuilder.d.ts.map +1 -0
  91. package/bin/ECS/Core/FluentAPI/SceneBuilder.js +79 -0
  92. package/bin/ECS/Core/FluentAPI/SceneBuilder.js.map +1 -0
  93. package/bin/ECS/Core/FluentAPI/index.d.ts +6 -0
  94. package/bin/ECS/Core/FluentAPI/index.d.ts.map +1 -0
  95. package/bin/ECS/Core/FluentAPI/index.js +6 -0
  96. package/bin/ECS/Core/FluentAPI/index.js.map +1 -0
  97. package/bin/ECS/Core/FluentAPI.d.ts +2 -0
  98. package/bin/ECS/Core/FluentAPI.d.ts.map +1 -0
  99. package/bin/ECS/Core/FluentAPI.js +3 -0
  100. package/bin/ECS/Core/FluentAPI.js.map +1 -0
  101. package/bin/ECS/Core/Query/TypedQuery.d.ts +214 -0
  102. package/bin/ECS/Core/Query/TypedQuery.d.ts.map +1 -0
  103. package/bin/ECS/Core/Query/TypedQuery.js +294 -0
  104. package/bin/ECS/Core/Query/TypedQuery.js.map +1 -0
  105. package/bin/ECS/Core/Query/index.d.ts +3 -0
  106. package/bin/ECS/Core/Query/index.d.ts.map +1 -0
  107. package/bin/ECS/Core/Query/index.js +3 -0
  108. package/bin/ECS/Core/Query/index.js.map +1 -0
  109. package/bin/ECS/Core/QuerySystem.d.ts +458 -0
  110. package/bin/ECS/Core/QuerySystem.d.ts.map +1 -0
  111. package/bin/ECS/Core/QuerySystem.js +1069 -0
  112. package/bin/ECS/Core/QuerySystem.js.map +1 -0
  113. package/bin/ECS/Core/QueryTypes.d.ts +34 -0
  114. package/bin/ECS/Core/QueryTypes.d.ts.map +1 -0
  115. package/bin/ECS/Core/QueryTypes.js +13 -0
  116. package/bin/ECS/Core/QueryTypes.js.map +1 -0
  117. package/bin/ECS/Core/ReactiveQuery.d.ts +211 -0
  118. package/bin/ECS/Core/ReactiveQuery.d.ts.map +1 -0
  119. package/bin/ECS/Core/ReactiveQuery.js +401 -0
  120. package/bin/ECS/Core/ReactiveQuery.js.map +1 -0
  121. package/bin/ECS/Core/ReferenceTracker.d.ts +111 -0
  122. package/bin/ECS/Core/ReferenceTracker.d.ts.map +1 -0
  123. package/bin/ECS/Core/ReferenceTracker.js +254 -0
  124. package/bin/ECS/Core/ReferenceTracker.js.map +1 -0
  125. package/bin/ECS/Core/SoASerializer.d.ts +28 -0
  126. package/bin/ECS/Core/SoASerializer.d.ts.map +1 -0
  127. package/bin/ECS/Core/SoASerializer.js +85 -0
  128. package/bin/ECS/Core/SoASerializer.js.map +1 -0
  129. package/bin/ECS/Core/SoAStorage.d.ts +129 -0
  130. package/bin/ECS/Core/SoAStorage.d.ts.map +1 -0
  131. package/bin/ECS/Core/SoAStorage.js +685 -0
  132. package/bin/ECS/Core/SoAStorage.js.map +1 -0
  133. package/bin/ECS/Core/SoATypeRegistry.d.ts +50 -0
  134. package/bin/ECS/Core/SoATypeRegistry.d.ts.map +1 -0
  135. package/bin/ECS/Core/SoATypeRegistry.js +135 -0
  136. package/bin/ECS/Core/SoATypeRegistry.js.map +1 -0
  137. package/bin/ECS/Core/Storage/index.d.ts +4 -0
  138. package/bin/ECS/Core/Storage/index.d.ts.map +1 -0
  139. package/bin/ECS/Core/Storage/index.js +4 -0
  140. package/bin/ECS/Core/Storage/index.js.map +1 -0
  141. package/bin/ECS/Core/StorageDecorators.d.ts +20 -0
  142. package/bin/ECS/Core/StorageDecorators.d.ts.map +1 -0
  143. package/bin/ECS/Core/StorageDecorators.js +27 -0
  144. package/bin/ECS/Core/StorageDecorators.js.map +1 -0
  145. package/bin/ECS/CoreEvents.d.ts +131 -0
  146. package/bin/ECS/CoreEvents.d.ts.map +1 -0
  147. package/bin/ECS/CoreEvents.js +163 -0
  148. package/bin/ECS/CoreEvents.js.map +1 -0
  149. package/bin/ECS/Decorators/EntityRefDecorator.d.ts +46 -0
  150. package/bin/ECS/Decorators/EntityRefDecorator.d.ts.map +1 -0
  151. package/bin/ECS/Decorators/EntityRefDecorator.js +118 -0
  152. package/bin/ECS/Decorators/EntityRefDecorator.js.map +1 -0
  153. package/bin/ECS/Decorators/PropertyDecorator.d.ts +168 -0
  154. package/bin/ECS/Decorators/PropertyDecorator.d.ts.map +1 -0
  155. package/bin/ECS/Decorators/PropertyDecorator.js +40 -0
  156. package/bin/ECS/Decorators/PropertyDecorator.js.map +1 -0
  157. package/bin/ECS/Decorators/TypeDecorators.d.ts +124 -0
  158. package/bin/ECS/Decorators/TypeDecorators.d.ts.map +1 -0
  159. package/bin/ECS/Decorators/TypeDecorators.js +151 -0
  160. package/bin/ECS/Decorators/TypeDecorators.js.map +1 -0
  161. package/bin/ECS/Decorators/index.d.ts +7 -0
  162. package/bin/ECS/Decorators/index.d.ts.map +1 -0
  163. package/bin/ECS/Decorators/index.js +4 -0
  164. package/bin/ECS/Decorators/index.js.map +1 -0
  165. package/bin/ECS/Entity.d.ts +415 -0
  166. package/bin/ECS/Entity.d.ts.map +1 -0
  167. package/bin/ECS/Entity.js +683 -0
  168. package/bin/ECS/Entity.js.map +1 -0
  169. package/bin/ECS/EntityTags.d.ts +71 -0
  170. package/bin/ECS/EntityTags.d.ts.map +1 -0
  171. package/bin/ECS/EntityTags.js +82 -0
  172. package/bin/ECS/EntityTags.js.map +1 -0
  173. package/bin/ECS/IScene.d.ts +308 -0
  174. package/bin/ECS/IScene.d.ts.map +1 -0
  175. package/bin/ECS/IScene.js +2 -0
  176. package/bin/ECS/IScene.js.map +1 -0
  177. package/bin/ECS/Scene.d.ts +799 -0
  178. package/bin/ECS/Scene.d.ts.map +1 -0
  179. package/bin/ECS/Scene.js +1203 -0
  180. package/bin/ECS/Scene.js.map +1 -0
  181. package/bin/ECS/SceneManager.d.ts +197 -0
  182. package/bin/ECS/SceneManager.d.ts.map +1 -0
  183. package/bin/ECS/SceneManager.js +264 -0
  184. package/bin/ECS/SceneManager.js.map +1 -0
  185. package/bin/ECS/Serialization/ComponentSerializer.d.ts +106 -0
  186. package/bin/ECS/Serialization/ComponentSerializer.d.ts.map +1 -0
  187. package/bin/ECS/Serialization/ComponentSerializer.js +251 -0
  188. package/bin/ECS/Serialization/ComponentSerializer.js.map +1 -0
  189. package/bin/ECS/Serialization/EntitySerializer.d.ts +111 -0
  190. package/bin/ECS/Serialization/EntitySerializer.d.ts.map +1 -0
  191. package/bin/ECS/Serialization/EntitySerializer.js +155 -0
  192. package/bin/ECS/Serialization/EntitySerializer.js.map +1 -0
  193. package/bin/ECS/Serialization/IncrementalSerializer.d.ts +259 -0
  194. package/bin/ECS/Serialization/IncrementalSerializer.d.ts.map +1 -0
  195. package/bin/ECS/Serialization/IncrementalSerializer.js +500 -0
  196. package/bin/ECS/Serialization/IncrementalSerializer.js.map +1 -0
  197. package/bin/ECS/Serialization/SceneSerializer.d.ts +213 -0
  198. package/bin/ECS/Serialization/SceneSerializer.d.ts.map +1 -0
  199. package/bin/ECS/Serialization/SceneSerializer.js +387 -0
  200. package/bin/ECS/Serialization/SceneSerializer.js.map +1 -0
  201. package/bin/ECS/Serialization/SerializationDecorators.d.ts +136 -0
  202. package/bin/ECS/Serialization/SerializationDecorators.d.ts.map +1 -0
  203. package/bin/ECS/Serialization/SerializationDecorators.js +216 -0
  204. package/bin/ECS/Serialization/SerializationDecorators.js.map +1 -0
  205. package/bin/ECS/Serialization/VersionMigration.d.ts +156 -0
  206. package/bin/ECS/Serialization/VersionMigration.d.ts.map +1 -0
  207. package/bin/ECS/Serialization/VersionMigration.js +279 -0
  208. package/bin/ECS/Serialization/VersionMigration.js.map +1 -0
  209. package/bin/ECS/Serialization/index.d.ts +18 -0
  210. package/bin/ECS/Serialization/index.d.ts.map +1 -0
  211. package/bin/ECS/Serialization/index.js +18 -0
  212. package/bin/ECS/Serialization/index.js.map +1 -0
  213. package/bin/ECS/Systems/EntityCache.d.ts +114 -0
  214. package/bin/ECS/Systems/EntityCache.d.ts.map +1 -0
  215. package/bin/ECS/Systems/EntityCache.js +145 -0
  216. package/bin/ECS/Systems/EntityCache.js.map +1 -0
  217. package/bin/ECS/Systems/EntitySystem.d.ts +591 -0
  218. package/bin/ECS/Systems/EntitySystem.d.ts.map +1 -0
  219. package/bin/ECS/Systems/EntitySystem.js +1102 -0
  220. package/bin/ECS/Systems/EntitySystem.js.map +1 -0
  221. package/bin/ECS/Systems/HierarchySystem.d.ts +155 -0
  222. package/bin/ECS/Systems/HierarchySystem.d.ts.map +1 -0
  223. package/bin/ECS/Systems/HierarchySystem.js +498 -0
  224. package/bin/ECS/Systems/HierarchySystem.js.map +1 -0
  225. package/bin/ECS/Systems/IntervalSystem.d.ts +33 -0
  226. package/bin/ECS/Systems/IntervalSystem.d.ts.map +1 -0
  227. package/bin/ECS/Systems/IntervalSystem.js +50 -0
  228. package/bin/ECS/Systems/IntervalSystem.js.map +1 -0
  229. package/bin/ECS/Systems/PassiveSystem.d.ts +17 -0
  230. package/bin/ECS/Systems/PassiveSystem.d.ts.map +1 -0
  231. package/bin/ECS/Systems/PassiveSystem.js +19 -0
  232. package/bin/ECS/Systems/PassiveSystem.js.map +1 -0
  233. package/bin/ECS/Systems/ProcessingSystem.d.ts +21 -0
  234. package/bin/ECS/Systems/ProcessingSystem.d.ts.map +1 -0
  235. package/bin/ECS/Systems/ProcessingSystem.js +20 -0
  236. package/bin/ECS/Systems/ProcessingSystem.js.map +1 -0
  237. package/bin/ECS/Systems/WorkerEntitySystem.d.ts +313 -0
  238. package/bin/ECS/Systems/WorkerEntitySystem.d.ts.map +1 -0
  239. package/bin/ECS/Systems/WorkerEntitySystem.js +792 -0
  240. package/bin/ECS/Systems/WorkerEntitySystem.js.map +1 -0
  241. package/bin/ECS/Systems/index.d.ts +8 -0
  242. package/bin/ECS/Systems/index.d.ts.map +1 -0
  243. package/bin/ECS/Systems/index.js +8 -0
  244. package/bin/ECS/Systems/index.js.map +1 -0
  245. package/bin/ECS/TypedEntity.d.ts +192 -0
  246. package/bin/ECS/TypedEntity.d.ts.map +1 -0
  247. package/bin/ECS/TypedEntity.js +254 -0
  248. package/bin/ECS/TypedEntity.js.map +1 -0
  249. package/bin/ECS/Utils/BigIntCompatibility.d.ts +151 -0
  250. package/bin/ECS/Utils/BigIntCompatibility.d.ts.map +1 -0
  251. package/bin/ECS/Utils/BigIntCompatibility.js +476 -0
  252. package/bin/ECS/Utils/BigIntCompatibility.js.map +1 -0
  253. package/bin/ECS/Utils/BitMaskHashMap.d.ts +28 -0
  254. package/bin/ECS/Utils/BitMaskHashMap.d.ts.map +1 -0
  255. package/bin/ECS/Utils/BitMaskHashMap.js +127 -0
  256. package/bin/ECS/Utils/BitMaskHashMap.js.map +1 -0
  257. package/bin/ECS/Utils/Bits.d.ts +154 -0
  258. package/bin/ECS/Utils/Bits.d.ts.map +1 -0
  259. package/bin/ECS/Utils/Bits.js +331 -0
  260. package/bin/ECS/Utils/Bits.js.map +1 -0
  261. package/bin/ECS/Utils/ComponentSparseSet.d.ts +143 -0
  262. package/bin/ECS/Utils/ComponentSparseSet.d.ts.map +1 -0
  263. package/bin/ECS/Utils/ComponentSparseSet.js +347 -0
  264. package/bin/ECS/Utils/ComponentSparseSet.js.map +1 -0
  265. package/bin/ECS/Utils/EntityList.d.ts +115 -0
  266. package/bin/ECS/Utils/EntityList.d.ts.map +1 -0
  267. package/bin/ECS/Utils/EntityList.js +258 -0
  268. package/bin/ECS/Utils/EntityList.js.map +1 -0
  269. package/bin/ECS/Utils/EntityProcessorList.d.ts +56 -0
  270. package/bin/ECS/Utils/EntityProcessorList.d.ts.map +1 -0
  271. package/bin/ECS/Utils/EntityProcessorList.js +113 -0
  272. package/bin/ECS/Utils/EntityProcessorList.js.map +1 -0
  273. package/bin/ECS/Utils/IdentifierPool.d.ts +203 -0
  274. package/bin/ECS/Utils/IdentifierPool.d.ts.map +1 -0
  275. package/bin/ECS/Utils/IdentifierPool.js +325 -0
  276. package/bin/ECS/Utils/IdentifierPool.js.map +1 -0
  277. package/bin/ECS/Utils/Matcher.d.ts +171 -0
  278. package/bin/ECS/Utils/Matcher.d.ts.map +1 -0
  279. package/bin/ECS/Utils/Matcher.js +293 -0
  280. package/bin/ECS/Utils/Matcher.js.map +1 -0
  281. package/bin/ECS/Utils/SparseSet.d.ts +170 -0
  282. package/bin/ECS/Utils/SparseSet.d.ts.map +1 -0
  283. package/bin/ECS/Utils/SparseSet.js +280 -0
  284. package/bin/ECS/Utils/SparseSet.js.map +1 -0
  285. package/bin/ECS/Utils/index.d.ts +9 -0
  286. package/bin/ECS/Utils/index.d.ts.map +1 -0
  287. package/bin/ECS/Utils/index.js +10 -0
  288. package/bin/ECS/Utils/index.js.map +1 -0
  289. package/bin/ECS/World.d.ts +238 -0
  290. package/bin/ECS/World.d.ts.map +1 -0
  291. package/bin/ECS/World.js +416 -0
  292. package/bin/ECS/World.js.map +1 -0
  293. package/bin/ECS/WorldManager.d.ts +224 -0
  294. package/bin/ECS/WorldManager.d.ts.map +1 -0
  295. package/bin/ECS/WorldManager.js +365 -0
  296. package/bin/ECS/WorldManager.js.map +1 -0
  297. package/bin/ECS/index.d.ts +26 -0
  298. package/bin/ECS/index.d.ts.map +1 -0
  299. package/bin/ECS/index.js +21 -0
  300. package/bin/ECS/index.js.map +1 -0
  301. package/bin/Platform/IPlatformAdapter.d.ts +169 -0
  302. package/bin/Platform/IPlatformAdapter.d.ts.map +1 -0
  303. package/bin/Platform/IPlatformAdapter.js +2 -0
  304. package/bin/Platform/IPlatformAdapter.js.map +1 -0
  305. package/bin/Platform/PlatformDetector.d.ts +56 -0
  306. package/bin/Platform/PlatformDetector.d.ts.map +1 -0
  307. package/bin/Platform/PlatformDetector.js +247 -0
  308. package/bin/Platform/PlatformDetector.js.map +1 -0
  309. package/bin/Platform/PlatformManager.d.ts +50 -0
  310. package/bin/Platform/PlatformManager.d.ts.map +1 -0
  311. package/bin/Platform/PlatformManager.js +114 -0
  312. package/bin/Platform/PlatformManager.js.map +1 -0
  313. package/bin/Platform/index.d.ts +19 -0
  314. package/bin/Platform/index.d.ts.map +1 -0
  315. package/bin/Platform/index.js +29 -0
  316. package/bin/Platform/index.js.map +1 -0
  317. package/bin/Plugins/DebugPlugin.d.ts +156 -0
  318. package/bin/Plugins/DebugPlugin.d.ts.map +1 -0
  319. package/bin/Plugins/DebugPlugin.js +248 -0
  320. package/bin/Plugins/DebugPlugin.js.map +1 -0
  321. package/bin/Plugins/index.d.ts +2 -0
  322. package/bin/Plugins/index.d.ts.map +1 -0
  323. package/bin/Plugins/index.js +2 -0
  324. package/bin/Plugins/index.js.map +1 -0
  325. package/bin/Types/IUpdatable.d.ts +18 -0
  326. package/bin/Types/IUpdatable.d.ts.map +1 -0
  327. package/bin/Types/IUpdatable.js +7 -0
  328. package/bin/Types/IUpdatable.js.map +1 -0
  329. package/bin/Types/TypeHelpers.d.ts +238 -0
  330. package/bin/Types/TypeHelpers.d.ts.map +1 -0
  331. package/bin/Types/TypeHelpers.js +19 -0
  332. package/bin/Types/TypeHelpers.js.map +1 -0
  333. package/bin/Types/index.d.ts +466 -0
  334. package/bin/Types/index.d.ts.map +1 -0
  335. package/bin/Types/index.js +7 -0
  336. package/bin/Types/index.js.map +1 -0
  337. package/bin/Utils/BinarySerializer.d.ts +23 -0
  338. package/bin/Utils/BinarySerializer.d.ts.map +1 -0
  339. package/bin/Utils/BinarySerializer.js +100 -0
  340. package/bin/Utils/BinarySerializer.js.map +1 -0
  341. package/bin/Utils/Debug/AdvancedProfilerCollector.d.ts +153 -0
  342. package/bin/Utils/Debug/AdvancedProfilerCollector.d.ts.map +1 -0
  343. package/bin/Utils/Debug/AdvancedProfilerCollector.js +406 -0
  344. package/bin/Utils/Debug/AdvancedProfilerCollector.js.map +1 -0
  345. package/bin/Utils/Debug/ComponentDataCollector.d.ts +32 -0
  346. package/bin/Utils/Debug/ComponentDataCollector.d.ts.map +1 -0
  347. package/bin/Utils/Debug/ComponentDataCollector.js +250 -0
  348. package/bin/Utils/Debug/ComponentDataCollector.js.map +1 -0
  349. package/bin/Utils/Debug/DebugConfigService.d.ts +16 -0
  350. package/bin/Utils/Debug/DebugConfigService.d.ts.map +1 -0
  351. package/bin/Utils/Debug/DebugConfigService.js +42 -0
  352. package/bin/Utils/Debug/DebugConfigService.js.map +1 -0
  353. package/bin/Utils/Debug/DebugManager.d.ts +131 -0
  354. package/bin/Utils/Debug/DebugManager.d.ts.map +1 -0
  355. package/bin/Utils/Debug/DebugManager.js +848 -0
  356. package/bin/Utils/Debug/DebugManager.js.map +1 -0
  357. package/bin/Utils/Debug/EntityDataCollector.d.ts +115 -0
  358. package/bin/Utils/Debug/EntityDataCollector.d.ts.map +1 -0
  359. package/bin/Utils/Debug/EntityDataCollector.js +870 -0
  360. package/bin/Utils/Debug/EntityDataCollector.js.map +1 -0
  361. package/bin/Utils/Debug/PerformanceDataCollector.d.ts +31 -0
  362. package/bin/Utils/Debug/PerformanceDataCollector.d.ts.map +1 -0
  363. package/bin/Utils/Debug/PerformanceDataCollector.js +203 -0
  364. package/bin/Utils/Debug/PerformanceDataCollector.js.map +1 -0
  365. package/bin/Utils/Debug/SceneDataCollector.d.ts +18 -0
  366. package/bin/Utils/Debug/SceneDataCollector.d.ts.map +1 -0
  367. package/bin/Utils/Debug/SceneDataCollector.js +43 -0
  368. package/bin/Utils/Debug/SceneDataCollector.js.map +1 -0
  369. package/bin/Utils/Debug/SystemDataCollector.d.ts +14 -0
  370. package/bin/Utils/Debug/SystemDataCollector.d.ts.map +1 -0
  371. package/bin/Utils/Debug/SystemDataCollector.js +60 -0
  372. package/bin/Utils/Debug/SystemDataCollector.js.map +1 -0
  373. package/bin/Utils/Debug/WebSocketManager.d.ts +54 -0
  374. package/bin/Utils/Debug/WebSocketManager.d.ts.map +1 -0
  375. package/bin/Utils/Debug/WebSocketManager.js +141 -0
  376. package/bin/Utils/Debug/WebSocketManager.js.map +1 -0
  377. package/bin/Utils/Debug/index.d.ts +11 -0
  378. package/bin/Utils/Debug/index.d.ts.map +1 -0
  379. package/bin/Utils/Debug/index.js +10 -0
  380. package/bin/Utils/Debug/index.js.map +1 -0
  381. package/bin/Utils/Emitter.d.ts +61 -0
  382. package/bin/Utils/Emitter.d.ts.map +1 -0
  383. package/bin/Utils/Emitter.js +101 -0
  384. package/bin/Utils/Emitter.js.map +1 -0
  385. package/bin/Utils/Extensions/NumberExtension.d.ts +13 -0
  386. package/bin/Utils/Extensions/NumberExtension.d.ts.map +1 -0
  387. package/bin/Utils/Extensions/NumberExtension.js +17 -0
  388. package/bin/Utils/Extensions/NumberExtension.js.map +1 -0
  389. package/bin/Utils/Extensions/TypeUtils.d.ts +13 -0
  390. package/bin/Utils/Extensions/TypeUtils.d.ts.map +1 -0
  391. package/bin/Utils/Extensions/TypeUtils.js +15 -0
  392. package/bin/Utils/Extensions/TypeUtils.js.map +1 -0
  393. package/bin/Utils/Extensions/index.d.ts +3 -0
  394. package/bin/Utils/Extensions/index.d.ts.map +1 -0
  395. package/bin/Utils/Extensions/index.js +4 -0
  396. package/bin/Utils/Extensions/index.js.map +1 -0
  397. package/bin/Utils/GlobalManager.d.ts +29 -0
  398. package/bin/Utils/GlobalManager.d.ts.map +1 -0
  399. package/bin/Utils/GlobalManager.js +50 -0
  400. package/bin/Utils/GlobalManager.js.map +1 -0
  401. package/bin/Utils/Logger/ConsoleLogger.d.ts +74 -0
  402. package/bin/Utils/Logger/ConsoleLogger.d.ts.map +1 -0
  403. package/bin/Utils/Logger/ConsoleLogger.js +187 -0
  404. package/bin/Utils/Logger/ConsoleLogger.js.map +1 -0
  405. package/bin/Utils/Logger/Constants.d.ts +36 -0
  406. package/bin/Utils/Logger/Constants.d.ts.map +1 -0
  407. package/bin/Utils/Logger/Constants.js +40 -0
  408. package/bin/Utils/Logger/Constants.js.map +1 -0
  409. package/bin/Utils/Logger/LoggerManager.d.ts +91 -0
  410. package/bin/Utils/Logger/LoggerManager.d.ts.map +1 -0
  411. package/bin/Utils/Logger/LoggerManager.js +167 -0
  412. package/bin/Utils/Logger/LoggerManager.js.map +1 -0
  413. package/bin/Utils/Logger/Types.d.ts +40 -0
  414. package/bin/Utils/Logger/Types.d.ts.map +1 -0
  415. package/bin/Utils/Logger/Types.js +2 -0
  416. package/bin/Utils/Logger/Types.js.map +1 -0
  417. package/bin/Utils/Logger/index.d.ts +5 -0
  418. package/bin/Utils/Logger/index.d.ts.map +1 -0
  419. package/bin/Utils/Logger/index.js +5 -0
  420. package/bin/Utils/Logger/index.js.map +1 -0
  421. package/bin/Utils/PerformanceMonitor.d.ts +196 -0
  422. package/bin/Utils/PerformanceMonitor.d.ts.map +1 -0
  423. package/bin/Utils/PerformanceMonitor.js +244 -0
  424. package/bin/Utils/PerformanceMonitor.js.map +1 -0
  425. package/bin/Utils/Pool/IPoolable.d.ts +29 -0
  426. package/bin/Utils/Pool/IPoolable.d.ts.map +1 -0
  427. package/bin/Utils/Pool/IPoolable.js +2 -0
  428. package/bin/Utils/Pool/IPoolable.js.map +1 -0
  429. package/bin/Utils/Pool/Pool.d.ts +109 -0
  430. package/bin/Utils/Pool/Pool.d.ts.map +1 -0
  431. package/bin/Utils/Pool/Pool.js +238 -0
  432. package/bin/Utils/Pool/Pool.js.map +1 -0
  433. package/bin/Utils/Pool/PoolManager.d.ts +96 -0
  434. package/bin/Utils/Pool/PoolManager.d.ts.map +1 -0
  435. package/bin/Utils/Pool/PoolManager.js +199 -0
  436. package/bin/Utils/Pool/PoolManager.js.map +1 -0
  437. package/bin/Utils/Pool/index.d.ts +4 -0
  438. package/bin/Utils/Pool/index.d.ts.map +1 -0
  439. package/bin/Utils/Pool/index.js +4 -0
  440. package/bin/Utils/Pool/index.js.map +1 -0
  441. package/bin/Utils/Profiler/AutoProfiler.d.ts +160 -0
  442. package/bin/Utils/Profiler/AutoProfiler.d.ts.map +1 -0
  443. package/bin/Utils/Profiler/AutoProfiler.js +503 -0
  444. package/bin/Utils/Profiler/AutoProfiler.js.map +1 -0
  445. package/bin/Utils/Profiler/ProfilerSDK.d.ts +175 -0
  446. package/bin/Utils/Profiler/ProfilerSDK.d.ts.map +1 -0
  447. package/bin/Utils/Profiler/ProfilerSDK.js +727 -0
  448. package/bin/Utils/Profiler/ProfilerSDK.js.map +1 -0
  449. package/bin/Utils/Profiler/ProfilerTypes.d.ts +218 -0
  450. package/bin/Utils/Profiler/ProfilerTypes.d.ts.map +1 -0
  451. package/bin/Utils/Profiler/ProfilerTypes.js +47 -0
  452. package/bin/Utils/Profiler/ProfilerTypes.js.map +1 -0
  453. package/bin/Utils/Profiler/index.d.ts +8 -0
  454. package/bin/Utils/Profiler/index.d.ts.map +1 -0
  455. package/bin/Utils/Profiler/index.js +7 -0
  456. package/bin/Utils/Profiler/index.js.map +1 -0
  457. package/bin/Utils/Time.d.ts +47 -0
  458. package/bin/Utils/Time.d.ts.map +1 -0
  459. package/bin/Utils/Time.js +64 -0
  460. package/bin/Utils/Time.js.map +1 -0
  461. package/bin/Utils/Timers/ITimer.d.ts +16 -0
  462. package/bin/Utils/Timers/ITimer.d.ts.map +1 -0
  463. package/bin/Utils/Timers/ITimer.js +2 -0
  464. package/bin/Utils/Timers/ITimer.js.map +1 -0
  465. package/bin/Utils/Timers/Timer.d.ts +30 -0
  466. package/bin/Utils/Timers/Timer.d.ts.map +1 -0
  467. package/bin/Utils/Timers/Timer.js +58 -0
  468. package/bin/Utils/Timers/Timer.js.map +1 -0
  469. package/bin/Utils/Timers/TimerManager.d.ts +26 -0
  470. package/bin/Utils/Timers/TimerManager.d.ts.map +1 -0
  471. package/bin/Utils/Timers/TimerManager.js +48 -0
  472. package/bin/Utils/Timers/TimerManager.js.map +1 -0
  473. package/bin/Utils/index.d.ts +11 -0
  474. package/bin/Utils/index.d.ts.map +1 -0
  475. package/bin/Utils/index.js +11 -0
  476. package/bin/Utils/index.js.map +1 -0
  477. package/bin/index.d.ts +29 -0
  478. package/bin/index.d.ts.map +1 -0
  479. package/bin/index.js +36 -0
  480. package/bin/index.js.map +1 -0
  481. package/package.json +84 -47
  482. package/index.cjs +0 -2
  483. package/index.cjs.map +0 -1
  484. package/index.d.ts +0 -13129
  485. package/index.es5.js +0 -4
  486. package/index.es5.js.map +0 -1
  487. package/index.mjs +0 -2
  488. package/index.mjs.map +0 -1
  489. package/index.umd.js +0 -4
  490. package/index.umd.js.map +0 -1
package/bin/Core.js ADDED
@@ -0,0 +1,553 @@
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 { DebugManager } from './Utils/Debug';
6
+ import { createLogger } from './Utils/Logger';
7
+ import { SceneManager } from './ECS/SceneManager';
8
+ import { ServiceContainer } from './Core/ServiceContainer';
9
+ import { PluginManager } from './Core/PluginManager';
10
+ import { WorldManager } from './ECS/WorldManager';
11
+ import { DebugConfigService } from './Utils/Debug/DebugConfigService';
12
+ import { createInstance } from './Core/DI/Decorators';
13
+ /**
14
+ * 游戏引擎核心类
15
+ *
16
+ * 职责:
17
+ * - 提供全局服务(Timer、Performance、Pool等)
18
+ * - 管理场景生命周期(内置SceneManager)
19
+ * - 管理全局管理器的生命周期
20
+ * - 提供统一的游戏循环更新入口
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * // 初始化并设置场景
25
+ * Core.create({ debug: true });
26
+ * Core.setScene(new GameScene());
27
+ *
28
+ * // 游戏循环(自动更新全局服务和场景)
29
+ * function gameLoop(deltaTime: number) {
30
+ * Core.update(deltaTime);
31
+ * }
32
+ *
33
+ * // 使用定时器
34
+ * Core.schedule(1.0, false, null, (timer) => {
35
+ * console.log("1秒后执行");
36
+ * });
37
+ *
38
+ * // 切换场景
39
+ * Core.loadScene(new MenuScene()); // 延迟切换
40
+ * Core.setScene(new GameScene()); // 立即切换
41
+ *
42
+ * // 获取当前场景
43
+ * const currentScene = Core.scene;
44
+ * ```
45
+ */
46
+ export class Core {
47
+ /**
48
+ * 创建核心实例
49
+ *
50
+ * @param config - Core配置对象
51
+ */
52
+ constructor(config = {}) {
53
+ Core._instance = this;
54
+ // 保存配置
55
+ this._config = {
56
+ debug: true,
57
+ ...config
58
+ };
59
+ // 初始化服务容器
60
+ this._serviceContainer = new ServiceContainer();
61
+ // 初始化定时器管理器
62
+ this._timerManager = new TimerManager();
63
+ this._serviceContainer.registerInstance(TimerManager, this._timerManager);
64
+ // 初始化性能监控器
65
+ this._performanceMonitor = new PerformanceMonitor();
66
+ this._serviceContainer.registerInstance(PerformanceMonitor, this._performanceMonitor);
67
+ // 在调试模式下启用性能监控
68
+ if (this._config.debug) {
69
+ this._performanceMonitor.enable();
70
+ }
71
+ // 初始化对象池管理器
72
+ this._poolManager = new PoolManager();
73
+ this._serviceContainer.registerInstance(PoolManager, this._poolManager);
74
+ // 初始化场景管理器
75
+ this._sceneManager = new SceneManager(this._performanceMonitor);
76
+ this._serviceContainer.registerInstance(SceneManager, this._sceneManager);
77
+ // 设置场景切换回调,通知调试管理器
78
+ this._sceneManager.setSceneChangedCallback(() => {
79
+ if (this._debugManager) {
80
+ this._debugManager.onSceneChanged();
81
+ }
82
+ });
83
+ // 初始化World管理器
84
+ this._worldManager = new WorldManager({ debug: !!this._config.debug, ...this._config.worldManagerConfig });
85
+ this._serviceContainer.registerInstance(WorldManager, this._worldManager);
86
+ // 初始化插件管理器
87
+ this._pluginManager = new PluginManager();
88
+ this._pluginManager.initialize(this, this._serviceContainer);
89
+ this._serviceContainer.registerInstance(PluginManager, this._pluginManager);
90
+ this.debug = this._config.debug ?? true;
91
+ // 初始化调试管理器
92
+ if (this._config.debugConfig?.enabled) {
93
+ const configService = new DebugConfigService();
94
+ configService.setConfig(this._config.debugConfig);
95
+ this._serviceContainer.registerInstance(DebugConfigService, configService);
96
+ this._serviceContainer.registerSingleton(DebugManager, (c) => createInstance(DebugManager, c));
97
+ this._debugManager = this._serviceContainer.resolve(DebugManager);
98
+ this._debugManager.onInitialize();
99
+ }
100
+ this.initialize();
101
+ }
102
+ /**
103
+ * 获取核心实例
104
+ *
105
+ * @returns 全局核心实例
106
+ */
107
+ static get Instance() {
108
+ return this._instance;
109
+ }
110
+ /**
111
+ * 获取服务容器
112
+ *
113
+ * 用于注册和解析自定义服务。
114
+ *
115
+ * @returns 服务容器实例
116
+ * @throws 如果Core实例未创建
117
+ *
118
+ * @example
119
+ * ```typescript
120
+ * // 注册自定义服务
121
+ * Core.services.registerSingleton(MyService);
122
+ *
123
+ * // 解析服务
124
+ * const myService = Core.services.resolve(MyService);
125
+ * ```
126
+ */
127
+ static get services() {
128
+ if (!this._instance) {
129
+ throw new Error('Core实例未创建,请先调用Core.create()');
130
+ }
131
+ return this._instance._serviceContainer;
132
+ }
133
+ /**
134
+ * 获取World管理器
135
+ *
136
+ * 用于管理多个独立的World实例(高级用户)。
137
+ *
138
+ * @returns WorldManager实例
139
+ * @throws 如果Core实例未创建
140
+ *
141
+ * @example
142
+ * ```typescript
143
+ * // 创建多个游戏房间
144
+ * const wm = Core.worldManager;
145
+ * const room1 = wm.createWorld('room_001');
146
+ * room1.createScene('game', new GameScene());
147
+ * room1.start();
148
+ * ```
149
+ */
150
+ static get worldManager() {
151
+ if (!this._instance) {
152
+ throw new Error('Core实例未创建,请先调用Core.create()');
153
+ }
154
+ return this._instance._worldManager;
155
+ }
156
+ /**
157
+ * 创建Core实例
158
+ *
159
+ * 如果实例已存在,则返回现有实例。
160
+ *
161
+ * @param config - Core配置,也可以直接传入boolean表示debug模式(向后兼容)
162
+ * @returns Core实例
163
+ *
164
+ * @example
165
+ * ```typescript
166
+ * // 方式1:使用配置对象
167
+ * Core.create({
168
+ * debug: true,
169
+ * debugConfig: {
170
+ * enabled: true,
171
+ * websocketUrl: 'ws://localhost:9229'
172
+ * }
173
+ * });
174
+ *
175
+ * // 方式2:简单模式(向后兼容)
176
+ * Core.create(true); // debug = true
177
+ * ```
178
+ */
179
+ static create(config = true) {
180
+ if (this._instance == null) {
181
+ // 向后兼容:如果传入boolean,转换为配置对象
182
+ const coreConfig = typeof config === 'boolean'
183
+ ? { debug: config }
184
+ : config;
185
+ this._instance = new Core(coreConfig);
186
+ }
187
+ else {
188
+ this._logger.warn('Core实例已创建,返回现有实例');
189
+ }
190
+ return this._instance;
191
+ }
192
+ /**
193
+ * 设置当前场景
194
+ *
195
+ * @param scene - 要设置的场景
196
+ * @returns 设置的场景实例
197
+ *
198
+ * @example
199
+ * ```typescript
200
+ * Core.create({ debug: true });
201
+ *
202
+ * // 创建并设置场景
203
+ * const gameScene = new GameScene();
204
+ * Core.setScene(gameScene);
205
+ * ```
206
+ */
207
+ static setScene(scene) {
208
+ if (!this._instance) {
209
+ Core._logger.warn('Core实例未创建,请先调用Core.create()');
210
+ throw new Error('Core实例未创建');
211
+ }
212
+ return this._instance._sceneManager.setScene(scene);
213
+ }
214
+ /**
215
+ * 获取当前场景
216
+ *
217
+ * @returns 当前场景,如果没有场景则返回null
218
+ */
219
+ static get scene() {
220
+ if (!this._instance) {
221
+ return null;
222
+ }
223
+ return this._instance._sceneManager.currentScene;
224
+ }
225
+ /**
226
+ * 获取ECS流式API
227
+ *
228
+ * @returns ECS API实例,如果当前没有场景则返回null
229
+ *
230
+ * @example
231
+ * ```typescript
232
+ * // 使用流式API创建实体
233
+ * const player = Core.ecsAPI?.createEntity('Player')
234
+ * .addComponent(Position, 100, 100)
235
+ * .addComponent(Velocity, 50, 0);
236
+ *
237
+ * // 查询实体
238
+ * const enemies = Core.ecsAPI?.query(Enemy, Transform);
239
+ *
240
+ * // 发射事件
241
+ * Core.ecsAPI?.emit('game:start', { level: 1 });
242
+ * ```
243
+ */
244
+ static get ecsAPI() {
245
+ if (!this._instance) {
246
+ return null;
247
+ }
248
+ return this._instance._sceneManager.api;
249
+ }
250
+ /**
251
+ * 延迟加载场景(下一帧切换)
252
+ *
253
+ * @param scene - 要加载的场景
254
+ *
255
+ * @example
256
+ * ```typescript
257
+ * // 延迟切换场景(在下一帧生效)
258
+ * Core.loadScene(new MenuScene());
259
+ * ```
260
+ */
261
+ static loadScene(scene) {
262
+ if (!this._instance) {
263
+ Core._logger.warn('Core实例未创建,请先调用Core.create()');
264
+ return;
265
+ }
266
+ this._instance._sceneManager.loadScene(scene);
267
+ }
268
+ /**
269
+ * 更新游戏逻辑
270
+ *
271
+ * 此方法应该在游戏引擎的更新循环中调用。
272
+ * 会自动更新全局服务和当前场景。
273
+ *
274
+ * @param deltaTime - 外部引擎提供的帧时间间隔(秒)
275
+ *
276
+ * @example
277
+ * ```typescript
278
+ * // 初始化
279
+ * Core.create({ debug: true });
280
+ * Core.setScene(new GameScene());
281
+ *
282
+ * // Laya引擎集成
283
+ * Laya.timer.frameLoop(1, this, () => {
284
+ * const deltaTime = Laya.timer.delta / 1000;
285
+ * Core.update(deltaTime); // 自动更新全局服务和场景
286
+ * });
287
+ *
288
+ * // Cocos Creator集成
289
+ * update(deltaTime: number) {
290
+ * Core.update(deltaTime); // 自动更新全局服务和场景
291
+ * }
292
+ * ```
293
+ */
294
+ static update(deltaTime) {
295
+ if (!this._instance) {
296
+ Core._logger.warn('Core实例未创建,请先调用Core.create()');
297
+ return;
298
+ }
299
+ this._instance.updateInternal(deltaTime);
300
+ }
301
+ /**
302
+ * 调度定时器
303
+ *
304
+ * 创建一个定时器,在指定时间后执行回调函数。
305
+ *
306
+ * @param timeInSeconds - 延迟时间(秒)
307
+ * @param repeats - 是否重复执行,默认为false
308
+ * @param context - 回调函数的上下文,默认为null
309
+ * @param onTime - 定时器触发时的回调函数
310
+ * @returns 创建的定时器实例
311
+ * @throws 如果Core实例未创建或onTime回调未提供
312
+ *
313
+ * @example
314
+ * ```typescript
315
+ * // 一次性定时器
316
+ * Core.schedule(1.0, false, null, (timer) => {
317
+ * console.log("1秒后执行一次");
318
+ * });
319
+ *
320
+ * // 重复定时器
321
+ * Core.schedule(0.5, true, null, (timer) => {
322
+ * console.log("每0.5秒执行一次");
323
+ * });
324
+ * ```
325
+ */
326
+ static schedule(timeInSeconds, repeats = false, context, onTime) {
327
+ if (!this._instance) {
328
+ throw new Error('Core实例未创建,请先调用Core.create()');
329
+ }
330
+ if (!onTime) {
331
+ throw new Error('onTime callback is required');
332
+ }
333
+ return this._instance._timerManager.schedule(timeInSeconds, repeats, context, onTime);
334
+ }
335
+ /**
336
+ * 启用调试功能
337
+ *
338
+ * @param config 调试配置
339
+ */
340
+ static enableDebug(config) {
341
+ if (!this._instance) {
342
+ Core._logger.warn('Core实例未创建,请先调用Core.create()');
343
+ return;
344
+ }
345
+ if (this._instance._debugManager) {
346
+ this._instance._debugManager.updateConfig(config);
347
+ }
348
+ else {
349
+ const configService = new DebugConfigService();
350
+ configService.setConfig(config);
351
+ this._instance._serviceContainer.registerInstance(DebugConfigService, configService);
352
+ this._instance._serviceContainer.registerSingleton(DebugManager, (c) => createInstance(DebugManager, c));
353
+ this._instance._debugManager = this._instance._serviceContainer.resolve(DebugManager);
354
+ this._instance._debugManager.onInitialize();
355
+ }
356
+ // 更新Core配置
357
+ this._instance._config.debugConfig = config;
358
+ }
359
+ /**
360
+ * 禁用调试功能
361
+ */
362
+ static disableDebug() {
363
+ if (!this._instance)
364
+ return;
365
+ if (this._instance._debugManager) {
366
+ this._instance._debugManager.stop();
367
+ delete this._instance._debugManager;
368
+ }
369
+ // 更新Core配置
370
+ if (this._instance._config.debugConfig) {
371
+ this._instance._config.debugConfig.enabled = false;
372
+ }
373
+ }
374
+ /**
375
+ * 获取调试数据
376
+ *
377
+ * @returns 当前调试数据,如果调试未启用则返回null
378
+ */
379
+ static getDebugData() {
380
+ if (!this._instance?._debugManager) {
381
+ return null;
382
+ }
383
+ return this._instance._debugManager.getDebugData();
384
+ }
385
+ /**
386
+ * 检查调试是否启用
387
+ *
388
+ * @returns 调试状态
389
+ */
390
+ static get isDebugEnabled() {
391
+ return this._instance?._config.debugConfig?.enabled || false;
392
+ }
393
+ /**
394
+ * 获取性能监视器实例
395
+ *
396
+ * @returns 性能监视器,如果Core未初始化则返回null
397
+ */
398
+ static get performanceMonitor() {
399
+ return this._instance?._performanceMonitor || null;
400
+ }
401
+ /**
402
+ * 安装插件
403
+ *
404
+ * @param plugin - 插件实例
405
+ * @throws 如果Core实例未创建或插件安装失败
406
+ *
407
+ * @example
408
+ * ```typescript
409
+ * Core.create({ debug: true });
410
+ *
411
+ * // 安装插件
412
+ * await Core.installPlugin(new MyPlugin());
413
+ * ```
414
+ */
415
+ static async installPlugin(plugin) {
416
+ if (!this._instance) {
417
+ throw new Error('Core实例未创建,请先调用Core.create()');
418
+ }
419
+ await this._instance._pluginManager.install(plugin);
420
+ }
421
+ /**
422
+ * 卸载插件
423
+ *
424
+ * @param name - 插件名称
425
+ * @throws 如果Core实例未创建或插件卸载失败
426
+ *
427
+ * @example
428
+ * ```typescript
429
+ * await Core.uninstallPlugin('my-plugin');
430
+ * ```
431
+ */
432
+ static async uninstallPlugin(name) {
433
+ if (!this._instance) {
434
+ throw new Error('Core实例未创建,请先调用Core.create()');
435
+ }
436
+ await this._instance._pluginManager.uninstall(name);
437
+ }
438
+ /**
439
+ * 获取插件实例
440
+ *
441
+ * @param name - 插件名称
442
+ * @returns 插件实例,如果未安装则返回undefined
443
+ *
444
+ * @example
445
+ * ```typescript
446
+ * const myPlugin = Core.getPlugin('my-plugin');
447
+ * if (myPlugin) {
448
+ * console.log(myPlugin.version);
449
+ * }
450
+ * ```
451
+ */
452
+ static getPlugin(name) {
453
+ if (!this._instance) {
454
+ return undefined;
455
+ }
456
+ return this._instance._pluginManager.getPlugin(name);
457
+ }
458
+ /**
459
+ * 检查插件是否已安装
460
+ *
461
+ * @param name - 插件名称
462
+ * @returns 是否已安装
463
+ *
464
+ * @example
465
+ * ```typescript
466
+ * if (Core.isPluginInstalled('my-plugin')) {
467
+ * console.log('Plugin is installed');
468
+ * }
469
+ * ```
470
+ */
471
+ static isPluginInstalled(name) {
472
+ if (!this._instance) {
473
+ return false;
474
+ }
475
+ return this._instance._pluginManager.isInstalled(name);
476
+ }
477
+ /**
478
+ * 初始化核心系统
479
+ *
480
+ * 执行核心系统的初始化逻辑。
481
+ */
482
+ initialize() {
483
+ // 核心系统初始化
484
+ Core._logger.info('Core initialized', {
485
+ debug: this.debug,
486
+ debugEnabled: this._config.debugConfig?.enabled || false
487
+ });
488
+ }
489
+ /**
490
+ * 内部更新方法
491
+ *
492
+ * @param deltaTime - 帧时间间隔(秒)
493
+ */
494
+ updateInternal(deltaTime) {
495
+ if (Core.paused)
496
+ return;
497
+ // 开始性能监控
498
+ const frameStartTime = this._performanceMonitor.startMonitoring('Core.update');
499
+ // 更新时间系统
500
+ Time.update(deltaTime);
501
+ // 更新FPS监控(如果性能监控器支持)
502
+ if ('updateFPS' in this._performanceMonitor && typeof this._performanceMonitor.updateFPS === 'function') {
503
+ this._performanceMonitor.updateFPS(Time.deltaTime);
504
+ }
505
+ // 更新所有可更新的服务
506
+ const servicesStartTime = this._performanceMonitor.startMonitoring('Services.update');
507
+ this._serviceContainer.updateAll(deltaTime);
508
+ this._performanceMonitor.endMonitoring('Services.update', servicesStartTime, this._serviceContainer.getUpdatableCount());
509
+ // 更新对象池管理器
510
+ this._poolManager.update();
511
+ // 更新默认场景(通过 SceneManager)
512
+ this._sceneManager.update();
513
+ // 更新额外的 WorldManager
514
+ this._worldManager.updateAll();
515
+ // 结束性能监控
516
+ this._performanceMonitor.endMonitoring('Core.update', frameStartTime);
517
+ }
518
+ /**
519
+ * 销毁Core实例
520
+ *
521
+ * 清理所有资源,通常在应用程序关闭时调用。
522
+ */
523
+ static destroy() {
524
+ if (!this._instance)
525
+ return;
526
+ // 停止调试管理器
527
+ if (this._instance._debugManager) {
528
+ this._instance._debugManager.stop();
529
+ }
530
+ // 清理所有服务
531
+ this._instance._serviceContainer.clear();
532
+ Core._logger.info('Core destroyed');
533
+ // 清空实例引用,允许重新创建Core实例
534
+ this._instance = null;
535
+ }
536
+ }
537
+ /**
538
+ * 游戏暂停状态
539
+ *
540
+ * 当设置为true时,游戏循环将暂停执行。
541
+ */
542
+ Core.paused = false;
543
+ /**
544
+ * 全局核心实例
545
+ *
546
+ * 可能为null表示Core尚未初始化或已被销毁
547
+ */
548
+ Core._instance = null;
549
+ /**
550
+ * Core专用日志器
551
+ */
552
+ Core._logger = createLogger('Core');
553
+ //# sourceMappingURL=Core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Core.js","sourceRoot":"","sources":["../src/Core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAG3D,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,OAAO,IAAI;IAiEb;;;;OAIG;IACH,YAAoB,SAAsB,EAAE;QACxC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,OAAO;QACP,IAAI,CAAC,OAAO,GAAG;YACX,KAAK,EAAE,IAAI;YACX,GAAG,MAAM;SACZ,CAAC;QAEF,UAAU;QACV,IAAI,CAAC,iBAAiB,GAAG,IAAI,gBAAgB,EAAE,CAAC;QAEhD,YAAY;QACZ,IAAI,CAAC,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;QACxC,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAE1E,WAAW;QACX,IAAI,CAAC,mBAAmB,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACpD,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAEtF,eAAe;QACf,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACrB,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC;QACtC,CAAC;QAED,YAAY;QACZ,IAAI,CAAC,YAAY,GAAG,IAAI,WAAW,EAAE,CAAC;QACtC,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAExE,WAAW;QACX,IAAI,CAAC,aAAa,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAChE,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAE1E,mBAAmB;QACnB,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,GAAG,EAAE;YAC5C,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;YACxC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,cAAc;QACd,IAAI,CAAC,aAAa,GAAG,IAAI,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAC3G,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAE1E,WAAW;QACX,IAAI,CAAC,cAAc,GAAG,IAAI,aAAa,EAAE,CAAC;QAC1C,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC7D,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAE5E,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC;QAExC,WAAW;QACX,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC;YACpC,MAAM,aAAa,GAAG,IAAI,kBAAkB,EAAE,CAAC;YAC/C,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAClD,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;YAE3E,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,CACzD,cAAc,CAAC,YAAY,EAAE,CAAC,CAAC,CAClC,CAAC;YAEF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAClE,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;QACtC,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACI,MAAM,KAAK,QAAQ;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACI,MAAM,KAAK,QAAQ;QACtB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;IAC5C,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACI,MAAM,KAAK,YAAY;QAC1B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;IACxC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACI,MAAM,CAAC,MAAM,CAAC,SAAgC,IAAI;QACrD,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;YACzB,2BAA2B;YAC3B,MAAM,UAAU,GAAgB,OAAO,MAAM,KAAK,SAAS;gBACvD,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;gBACnB,CAAC,CAAC,MAAM,CAAC;YACb,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACI,MAAM,CAAC,QAAQ,CAAmB,KAAQ;QAC7C,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;QACjC,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;IAED;;;;OAIG;IACI,MAAM,KAAK,KAAK;QACnB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,YAAY,CAAC;IACrD,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACI,MAAM,KAAK,MAAM;QACpB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC;IAC5C,CAAC;IAED;;;;;;;;;;OAUG;IACI,MAAM,CAAC,SAAS,CAAmB,KAAQ;QAC9C,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YACjD,OAAO;QACX,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACI,MAAM,CAAC,MAAM,CAAC,SAAiB;QAClC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YACjD,OAAO;QACX,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IAGD;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACI,MAAM,CAAC,QAAQ,CAAqB,aAAqB,EAAE,UAAmB,KAAK,EAAE,OAAkB,EAAE,MAA0C;QACtJ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,EAAE,OAAmB,EAAE,MAAM,CAAC,CAAC;IACtG,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,WAAW,CAAC,MAAuB;QAC7C,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YACjD,OAAO;QACX,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;YAC/B,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACJ,MAAM,aAAa,GAAG,IAAI,kBAAkB,EAAE,CAAC;YAC/C,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAChC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;YAErF,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,CACnE,cAAc,CAAC,YAAY,EAAE,CAAC,CAAC,CAClC,CAAC;YAEF,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YACtF,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;QAChD,CAAC;QAED,WAAW;QACX,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC;IAChD,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,YAAY;QACtB,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAE5B,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;YAC/B,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;QACxC,CAAC;QAED,WAAW;QACX,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YACrC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;QACvD,CAAC;IACL,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,YAAY;QACtB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;IACvD,CAAC;IAED;;;;OAIG;IACI,MAAM,KAAK,cAAc;QAC5B,OAAO,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,IAAI,KAAK,CAAC;IACjE,CAAC;IAED;;;;OAIG;IACI,MAAM,KAAK,kBAAkB;QAChC,OAAO,IAAI,CAAC,SAAS,EAAE,mBAAmB,IAAI,IAAI,CAAC;IACvD,CAAC;IAED;;;;;;;;;;;;;OAaG;IACI,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,MAAe;QAC7C,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACxD,CAAC;IAED;;;;;;;;;;OAUG;IACI,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,IAAY;QAC5C,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACxD,CAAC;IAED;;;;;;;;;;;;;OAaG;IACI,MAAM,CAAC,SAAS,CAAC,IAAY;QAChC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IAED;;;;;;;;;;;;OAYG;IACI,MAAM,CAAC,iBAAiB,CAAC,IAAY;QACxC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED;;;;OAIG;IACO,UAAU;QAChB,UAAU;QACV,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAClC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,IAAI,KAAK;SAC3D,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACK,cAAc,CAAC,SAAiB;QACpC,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QAExB,SAAS;QACT,MAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;QAE/E,SAAS;QACT,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAEvB,qBAAqB;QACrB,IAAI,WAAW,IAAI,IAAI,CAAC,mBAAmB,IAAI,OAAO,IAAI,CAAC,mBAAmB,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;YACtG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvD,CAAC;QAED,aAAa;QACb,MAAM,iBAAiB,GAAG,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;QACtF,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAEzH,WAAW;QACX,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;QAE3B,0BAA0B;QAC1B,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;QAE5B,qBAAqB;QACrB,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;QAE/B,SAAS;QACT,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IAC1E,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,OAAO;QACjB,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAE5B,UAAU;QACV,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;YAC/B,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QACxC,CAAC;QAED,SAAS;QACT,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAEzC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAEpC,sBAAsB;QACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC1B,CAAC;;AAvmBD;;;;GAIG;AACW,WAAM,GAAG,KAAK,CAAC;AAE7B;;;;GAIG;AACY,cAAS,GAAgB,IAAI,CAAC;AAE7C;;GAEG;AACY,YAAO,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC"}
@@ -0,0 +1,104 @@
1
+ import type { IComponent } from '../Types';
2
+ /**
3
+ * 游戏组件基类
4
+ *
5
+ * ECS架构中的组件(Component)应该是纯数据容器。
6
+ * 所有游戏逻辑应该在 EntitySystem 中实现,而不是在组件内部。
7
+ *
8
+ * @example
9
+ * 推荐做法:纯数据组件
10
+ * ```typescript
11
+ * class HealthComponent extends Component {
12
+ * public health: number = 100;
13
+ * public maxHealth: number = 100;
14
+ * }
15
+ * ```
16
+ *
17
+ * @example
18
+ * 推荐做法:在 System 中处理逻辑
19
+ * ```typescript
20
+ * class HealthSystem extends EntitySystem {
21
+ * process(entities: Entity[]): void {
22
+ * for (const entity of entities) {
23
+ * const health = entity.getComponent(HealthComponent);
24
+ * if (health && health.health <= 0) {
25
+ * entity.destroy();
26
+ * }
27
+ * }
28
+ * }
29
+ * }
30
+ * ```
31
+ */
32
+ export declare abstract class Component implements IComponent {
33
+ /**
34
+ * 组件ID生成器
35
+ *
36
+ * 用于为每个组件分配唯一的ID。
37
+ */
38
+ private static idGenerator;
39
+ /**
40
+ * 组件唯一标识符
41
+ *
42
+ * 在整个游戏生命周期中唯一的数字ID。
43
+ */
44
+ readonly id: number;
45
+ /**
46
+ * 所属实体ID
47
+ *
48
+ * 存储实体ID而非引用,避免循环引用,符合ECS数据导向设计。
49
+ */
50
+ entityId: number | null;
51
+ /**
52
+ * 创建组件实例
53
+ *
54
+ * 自动分配唯一ID给组件。
55
+ */
56
+ constructor();
57
+ /**
58
+ * 组件添加到实体时的回调
59
+ *
60
+ * 当组件被添加到实体时调用,可以在此方法中进行初始化操作。
61
+ *
62
+ * @remarks
63
+ * 这是一个生命周期钩子,用于组件的初始化逻辑。
64
+ * 虽然保留此方法,但建议将复杂的初始化逻辑放在 System 中处理。
65
+ */
66
+ onAddedToEntity(): void;
67
+ /**
68
+ * 组件从实体移除时的回调
69
+ *
70
+ * 当组件从实体中移除时调用,可以在此方法中进行清理操作。
71
+ *
72
+ * @remarks
73
+ * 这是一个生命周期钩子,用于组件的清理逻辑。
74
+ * 虽然保留此方法,但建议将复杂的清理逻辑放在 System 中处理。
75
+ */
76
+ onRemovedFromEntity(): void;
77
+ /**
78
+ * 组件反序列化后的回调
79
+ *
80
+ * 当组件从场景文件加载或快照恢复后调用,可以在此方法中恢复运行时数据。
81
+ *
82
+ * @remarks
83
+ * 这是一个生命周期钩子,用于恢复无法序列化的运行时数据。
84
+ * 例如:从图片路径重新加载图片尺寸信息,重建缓存等。
85
+ *
86
+ * @example
87
+ * ```typescript
88
+ * class TilemapComponent extends Component {
89
+ * public tilesetImage: string = '';
90
+ * private _tilesetData: TilesetData | undefined;
91
+ *
92
+ * public async onDeserialized(): Promise<void> {
93
+ * if (this.tilesetImage) {
94
+ * // 重新加载 tileset 图片并恢复运行时数据
95
+ * const img = await loadImage(this.tilesetImage);
96
+ * this.setTilesetInfo(img.width, img.height, ...);
97
+ * }
98
+ * }
99
+ * }
100
+ * ```
101
+ */
102
+ onDeserialized(): void | Promise<void>;
103
+ }
104
+ //# sourceMappingURL=Component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Component.d.ts","sourceRoot":"","sources":["../../src/ECS/Component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,8BAAsB,SAAU,YAAW,UAAU;IACjD;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW,CAAa;IAEvC;;;;OAIG;IACH,SAAgB,EAAE,EAAE,MAAM,CAAC;IAE3B;;;;OAIG;IAEI,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEtC;;;;OAIG;;IAKH;;;;;;;;OAQG;IACI,eAAe,IAAI,IAAI;IAE9B;;;;;;;;OAQG;IACI,mBAAmB,IAAI,IAAI;IAElC;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACI,cAAc,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAChD"}