@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
@@ -0,0 +1,154 @@
1
+ import { Entity } from '../Entity';
2
+ import { Component } from '../Component';
3
+ import { ComponentType } from './ComponentStorage';
4
+ import { IScene } from '../IScene';
5
+ /**
6
+ * 延迟命令类型
7
+ * Deferred command type
8
+ */
9
+ export declare enum CommandType {
10
+ /** 添加组件 | Add component */
11
+ ADD_COMPONENT = "add_component",
12
+ /** 移除组件 | Remove component */
13
+ REMOVE_COMPONENT = "remove_component",
14
+ /** 销毁实体 | Destroy entity */
15
+ DESTROY_ENTITY = "destroy_entity",
16
+ /** 设置实体激活状态 | Set entity active state */
17
+ SET_ENTITY_ACTIVE = "set_entity_active"
18
+ }
19
+ /**
20
+ * 延迟命令接口
21
+ * Deferred command interface
22
+ */
23
+ export interface DeferredCommand {
24
+ /** 命令类型 | Command type */
25
+ type: CommandType;
26
+ /** 目标实体 | Target entity */
27
+ entity: Entity;
28
+ /** 组件实例(用于 ADD_COMPONENT)| Component instance (for ADD_COMPONENT) */
29
+ component?: Component;
30
+ /** 组件类型(用于 REMOVE_COMPONENT)| Component type (for REMOVE_COMPONENT) */
31
+ componentType?: ComponentType;
32
+ /** 布尔值(用于启用/激活状态)| Boolean value (for enabled/active state) */
33
+ value?: boolean;
34
+ }
35
+ /**
36
+ * 命令缓冲区 - 用于延迟执行实体操作
37
+ * Command Buffer - for deferred entity operations
38
+ *
39
+ * 在系统的 process() 方法中使用 CommandBuffer 可以避免迭代过程中修改实体列表,
40
+ * 从而提高性能(无需每帧拷贝数组)并保证迭代安全。
41
+ *
42
+ * Using CommandBuffer in system's process() method avoids modifying entity list during iteration,
43
+ * improving performance (no array copy per frame) and ensuring iteration safety.
44
+ *
45
+ * @example
46
+ * ```typescript
47
+ * class DamageSystem extends EntitySystem {
48
+ * protected process(entities: readonly Entity[]): void {
49
+ * for (const entity of entities) {
50
+ * const health = entity.getComponent(Health);
51
+ * if (health.value <= 0) {
52
+ * // 延迟到帧末执行,不影响当前迭代
53
+ * // Deferred to end of frame, doesn't affect current iteration
54
+ * this.commands.addComponent(entity, new DeadMarker());
55
+ * this.commands.destroyEntity(entity);
56
+ * }
57
+ * }
58
+ * }
59
+ * }
60
+ * ```
61
+ */
62
+ export declare class CommandBuffer {
63
+ /** 命令队列 | Command queue */
64
+ private _commands;
65
+ /** 关联的场景 | Associated scene */
66
+ private _scene;
67
+ /** 是否启用调试日志 | Enable debug logging */
68
+ private _debug;
69
+ /**
70
+ * 创建命令缓冲区
71
+ * Create command buffer
72
+ *
73
+ * @param scene - 关联的场景 | Associated scene
74
+ * @param debug - 是否启用调试 | Enable debug
75
+ */
76
+ constructor(scene?: IScene, debug?: boolean);
77
+ /**
78
+ * 设置关联的场景
79
+ * Set associated scene
80
+ */
81
+ setScene(scene: IScene | null): void;
82
+ /**
83
+ * 获取关联的场景
84
+ * Get associated scene
85
+ */
86
+ get scene(): IScene | null;
87
+ /**
88
+ * 获取待执行的命令数量
89
+ * Get pending command count
90
+ */
91
+ get pendingCount(): number;
92
+ /**
93
+ * 检查是否有待执行的命令
94
+ * Check if there are pending commands
95
+ */
96
+ get hasPending(): boolean;
97
+ /**
98
+ * 延迟添加组件
99
+ * Deferred add component
100
+ *
101
+ * @param entity - 目标实体 | Target entity
102
+ * @param component - 要添加的组件 | Component to add
103
+ */
104
+ addComponent(entity: Entity, component: Component): void;
105
+ /**
106
+ * 延迟移除组件
107
+ * Deferred remove component
108
+ *
109
+ * @param entity - 目标实体 | Target entity
110
+ * @param componentType - 要移除的组件类型 | Component type to remove
111
+ */
112
+ removeComponent<T extends Component>(entity: Entity, componentType: ComponentType<T>): void;
113
+ /**
114
+ * 延迟销毁实体
115
+ * Deferred destroy entity
116
+ *
117
+ * @param entity - 要销毁的实体 | Entity to destroy
118
+ */
119
+ destroyEntity(entity: Entity): void;
120
+ /**
121
+ * 延迟设置实体激活状态
122
+ * Deferred set entity active state
123
+ *
124
+ * @param entity - 目标实体 | Target entity
125
+ * @param active - 激活状态 | Active state
126
+ */
127
+ setEntityActive(entity: Entity, active: boolean): void;
128
+ /**
129
+ * 执行所有待处理的命令
130
+ * Execute all pending commands
131
+ *
132
+ * 通常在帧末由 Scene 自动调用。
133
+ * Usually called automatically by Scene at end of frame.
134
+ *
135
+ * @returns 执行的命令数量 | Number of commands executed
136
+ */
137
+ flush(): number;
138
+ /**
139
+ * 执行单个命令
140
+ * Execute single command
141
+ */
142
+ private executeCommand;
143
+ /**
144
+ * 清空所有待处理的命令(不执行)
145
+ * Clear all pending commands (without executing)
146
+ */
147
+ clear(): void;
148
+ /**
149
+ * 销毁命令缓冲区
150
+ * Dispose command buffer
151
+ */
152
+ dispose(): void;
153
+ }
154
+ //# sourceMappingURL=CommandBuffer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommandBuffer.d.ts","sourceRoot":"","sources":["../../../src/ECS/Core/CommandBuffer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAKnC;;;GAGG;AACH,oBAAY,WAAW;IACnB,2BAA2B;IAC3B,aAAa,kBAAkB;IAC/B,8BAA8B;IAC9B,gBAAgB,qBAAqB;IACrC,4BAA4B;IAC5B,cAAc,mBAAmB;IACjC,yCAAyC;IACzC,iBAAiB,sBAAsB;CAC1C;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC5B,0BAA0B;IAC1B,IAAI,EAAE,WAAW,CAAC;IAClB,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,uEAAuE;IACvE,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,+DAA+D;IAC/D,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,aAAa;IACtB,2BAA2B;IAC3B,OAAO,CAAC,SAAS,CAAyB;IAE1C,+BAA+B;IAC/B,OAAO,CAAC,MAAM,CAAuB;IAErC,sCAAsC;IACtC,OAAO,CAAC,MAAM,CAAkB;IAEhC;;;;;;OAMG;gBACS,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,OAAe;IAKlD;;;OAGG;IACI,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAI3C;;;OAGG;IACH,IAAW,KAAK,IAAI,MAAM,GAAG,IAAI,CAEhC;IAED;;;OAGG;IACH,IAAW,YAAY,IAAI,MAAM,CAEhC;IAED;;;OAGG;IACH,IAAW,UAAU,IAAI,OAAO,CAE/B;IAED;;;;;;OAMG;IACI,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;IAY/D;;;;;;OAMG;IACI,eAAe,CAAC,CAAC,SAAS,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI;IAYlG;;;;;OAKG;IACI,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAW1C;;;;;;OAMG;IACI,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAY7D;;;;;;;;OAQG;IACI,KAAK,IAAI,MAAM;IA2BtB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAuCtB;;;OAGG;IACI,KAAK,IAAI,IAAI;IAOpB;;;OAGG;IACI,OAAO,IAAI,IAAI;CAIzB"}
@@ -0,0 +1,244 @@
1
+ import { createLogger } from '../../Utils/Logger';
2
+ const logger = createLogger('CommandBuffer');
3
+ /**
4
+ * 延迟命令类型
5
+ * Deferred command type
6
+ */
7
+ export var CommandType;
8
+ (function (CommandType) {
9
+ /** 添加组件 | Add component */
10
+ CommandType["ADD_COMPONENT"] = "add_component";
11
+ /** 移除组件 | Remove component */
12
+ CommandType["REMOVE_COMPONENT"] = "remove_component";
13
+ /** 销毁实体 | Destroy entity */
14
+ CommandType["DESTROY_ENTITY"] = "destroy_entity";
15
+ /** 设置实体激活状态 | Set entity active state */
16
+ CommandType["SET_ENTITY_ACTIVE"] = "set_entity_active";
17
+ })(CommandType || (CommandType = {}));
18
+ /**
19
+ * 命令缓冲区 - 用于延迟执行实体操作
20
+ * Command Buffer - for deferred entity operations
21
+ *
22
+ * 在系统的 process() 方法中使用 CommandBuffer 可以避免迭代过程中修改实体列表,
23
+ * 从而提高性能(无需每帧拷贝数组)并保证迭代安全。
24
+ *
25
+ * Using CommandBuffer in system's process() method avoids modifying entity list during iteration,
26
+ * improving performance (no array copy per frame) and ensuring iteration safety.
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * class DamageSystem extends EntitySystem {
31
+ * protected process(entities: readonly Entity[]): void {
32
+ * for (const entity of entities) {
33
+ * const health = entity.getComponent(Health);
34
+ * if (health.value <= 0) {
35
+ * // 延迟到帧末执行,不影响当前迭代
36
+ * // Deferred to end of frame, doesn't affect current iteration
37
+ * this.commands.addComponent(entity, new DeadMarker());
38
+ * this.commands.destroyEntity(entity);
39
+ * }
40
+ * }
41
+ * }
42
+ * }
43
+ * ```
44
+ */
45
+ export class CommandBuffer {
46
+ /**
47
+ * 创建命令缓冲区
48
+ * Create command buffer
49
+ *
50
+ * @param scene - 关联的场景 | Associated scene
51
+ * @param debug - 是否启用调试 | Enable debug
52
+ */
53
+ constructor(scene, debug = false) {
54
+ /** 命令队列 | Command queue */
55
+ this._commands = [];
56
+ /** 关联的场景 | Associated scene */
57
+ this._scene = null;
58
+ /** 是否启用调试日志 | Enable debug logging */
59
+ this._debug = false;
60
+ this._scene = scene ?? null;
61
+ this._debug = debug;
62
+ }
63
+ /**
64
+ * 设置关联的场景
65
+ * Set associated scene
66
+ */
67
+ setScene(scene) {
68
+ this._scene = scene;
69
+ }
70
+ /**
71
+ * 获取关联的场景
72
+ * Get associated scene
73
+ */
74
+ get scene() {
75
+ return this._scene;
76
+ }
77
+ /**
78
+ * 获取待执行的命令数量
79
+ * Get pending command count
80
+ */
81
+ get pendingCount() {
82
+ return this._commands.length;
83
+ }
84
+ /**
85
+ * 检查是否有待执行的命令
86
+ * Check if there are pending commands
87
+ */
88
+ get hasPending() {
89
+ return this._commands.length > 0;
90
+ }
91
+ /**
92
+ * 延迟添加组件
93
+ * Deferred add component
94
+ *
95
+ * @param entity - 目标实体 | Target entity
96
+ * @param component - 要添加的组件 | Component to add
97
+ */
98
+ addComponent(entity, component) {
99
+ this._commands.push({
100
+ type: CommandType.ADD_COMPONENT,
101
+ entity,
102
+ component
103
+ });
104
+ if (this._debug) {
105
+ logger.debug(`CommandBuffer: 延迟添加组件 ${component.constructor.name} 到实体 ${entity.name}`);
106
+ }
107
+ }
108
+ /**
109
+ * 延迟移除组件
110
+ * Deferred remove component
111
+ *
112
+ * @param entity - 目标实体 | Target entity
113
+ * @param componentType - 要移除的组件类型 | Component type to remove
114
+ */
115
+ removeComponent(entity, componentType) {
116
+ this._commands.push({
117
+ type: CommandType.REMOVE_COMPONENT,
118
+ entity,
119
+ componentType
120
+ });
121
+ if (this._debug) {
122
+ logger.debug(`CommandBuffer: 延迟移除组件 ${componentType.name} 从实体 ${entity.name}`);
123
+ }
124
+ }
125
+ /**
126
+ * 延迟销毁实体
127
+ * Deferred destroy entity
128
+ *
129
+ * @param entity - 要销毁的实体 | Entity to destroy
130
+ */
131
+ destroyEntity(entity) {
132
+ this._commands.push({
133
+ type: CommandType.DESTROY_ENTITY,
134
+ entity
135
+ });
136
+ if (this._debug) {
137
+ logger.debug(`CommandBuffer: 延迟销毁实体 ${entity.name}`);
138
+ }
139
+ }
140
+ /**
141
+ * 延迟设置实体激活状态
142
+ * Deferred set entity active state
143
+ *
144
+ * @param entity - 目标实体 | Target entity
145
+ * @param active - 激活状态 | Active state
146
+ */
147
+ setEntityActive(entity, active) {
148
+ this._commands.push({
149
+ type: CommandType.SET_ENTITY_ACTIVE,
150
+ entity,
151
+ value: active
152
+ });
153
+ if (this._debug) {
154
+ logger.debug(`CommandBuffer: 延迟设置实体 ${entity.name} 激活状态为 ${active}`);
155
+ }
156
+ }
157
+ /**
158
+ * 执行所有待处理的命令
159
+ * Execute all pending commands
160
+ *
161
+ * 通常在帧末由 Scene 自动调用。
162
+ * Usually called automatically by Scene at end of frame.
163
+ *
164
+ * @returns 执行的命令数量 | Number of commands executed
165
+ */
166
+ flush() {
167
+ if (this._commands.length === 0) {
168
+ return 0;
169
+ }
170
+ const count = this._commands.length;
171
+ if (this._debug) {
172
+ logger.debug(`CommandBuffer: 开始执行 ${count} 个延迟命令`);
173
+ }
174
+ // 复制命令列表并清空,防止执行过程中有新命令加入
175
+ // Copy and clear command list to prevent new commands during execution
176
+ const commands = this._commands;
177
+ this._commands = [];
178
+ for (const cmd of commands) {
179
+ this.executeCommand(cmd);
180
+ }
181
+ if (this._debug) {
182
+ logger.debug(`CommandBuffer: 完成执行 ${count} 个延迟命令`);
183
+ }
184
+ return count;
185
+ }
186
+ /**
187
+ * 执行单个命令
188
+ * Execute single command
189
+ */
190
+ executeCommand(cmd) {
191
+ // 检查实体是否仍然有效
192
+ // Check if entity is still valid
193
+ if (!cmd.entity.scene) {
194
+ if (this._debug) {
195
+ logger.debug(`CommandBuffer: 跳过命令,实体 ${cmd.entity.name} 已无效`);
196
+ }
197
+ return;
198
+ }
199
+ try {
200
+ switch (cmd.type) {
201
+ case CommandType.ADD_COMPONENT:
202
+ if (cmd.component) {
203
+ cmd.entity.addComponent(cmd.component);
204
+ }
205
+ break;
206
+ case CommandType.REMOVE_COMPONENT:
207
+ if (cmd.componentType) {
208
+ cmd.entity.removeComponentByType(cmd.componentType);
209
+ }
210
+ break;
211
+ case CommandType.DESTROY_ENTITY:
212
+ cmd.entity.destroy();
213
+ break;
214
+ case CommandType.SET_ENTITY_ACTIVE:
215
+ if (cmd.value !== undefined) {
216
+ cmd.entity.active = cmd.value;
217
+ }
218
+ break;
219
+ }
220
+ }
221
+ catch (error) {
222
+ logger.error(`CommandBuffer: 执行命令失败`, { command: cmd, error });
223
+ }
224
+ }
225
+ /**
226
+ * 清空所有待处理的命令(不执行)
227
+ * Clear all pending commands (without executing)
228
+ */
229
+ clear() {
230
+ if (this._debug && this._commands.length > 0) {
231
+ logger.debug(`CommandBuffer: 清空 ${this._commands.length} 个未执行的命令`);
232
+ }
233
+ this._commands.length = 0;
234
+ }
235
+ /**
236
+ * 销毁命令缓冲区
237
+ * Dispose command buffer
238
+ */
239
+ dispose() {
240
+ this.clear();
241
+ this._scene = null;
242
+ }
243
+ }
244
+ //# sourceMappingURL=CommandBuffer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommandBuffer.js","sourceRoot":"","sources":["../../../src/ECS/Core/CommandBuffer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,139 @@
1
+ import { Component } from '../Component';
2
+ /**
3
+ * 组件对象池,用于复用组件实例以减少内存分配
4
+ */
5
+ export declare class ComponentPool<T extends Component> {
6
+ private pool;
7
+ private createFn;
8
+ private resetFn?;
9
+ private maxSize;
10
+ private minSize;
11
+ private stats;
12
+ constructor(createFn: () => T, resetFn?: (component: T) => void, maxSize?: number, minSize?: number);
13
+ /**
14
+ * 获取一个组件实例
15
+ */
16
+ acquire(): T;
17
+ /**
18
+ * 释放一个组件实例回池中
19
+ */
20
+ release(component: T): void;
21
+ /**
22
+ * 预填充对象池
23
+ */
24
+ prewarm(count: number): void;
25
+ /**
26
+ * 自动收缩池大小
27
+ */
28
+ shrink(): void;
29
+ /**
30
+ * 清空对象池
31
+ */
32
+ clear(): void;
33
+ /**
34
+ * 获取池中可用对象数量
35
+ */
36
+ getAvailableCount(): number;
37
+ /**
38
+ * 获取池的最大容量
39
+ */
40
+ getMaxSize(): number;
41
+ /**
42
+ * 获取统计信息
43
+ */
44
+ getStats(): {
45
+ totalCreated: number;
46
+ totalAcquired: number;
47
+ totalReleased: number;
48
+ hitRate: number;
49
+ currentSize: number;
50
+ maxSize: number;
51
+ minSize: number;
52
+ utilizationRate: number;
53
+ };
54
+ }
55
+ /**
56
+ * 组件使用追踪
57
+ */
58
+ interface ComponentUsageTracker {
59
+ createCount: number;
60
+ releaseCount: number;
61
+ lastAccessTime: number;
62
+ }
63
+ /**
64
+ * 全局组件池管理器
65
+ */
66
+ export declare class ComponentPoolManager {
67
+ private static instance;
68
+ private pools;
69
+ private usageTracker;
70
+ private autoCleanupInterval;
71
+ private lastCleanupTime;
72
+ private constructor();
73
+ static getInstance(): ComponentPoolManager;
74
+ /**
75
+ * 注册组件池
76
+ */
77
+ registerPool<T extends Component>(componentName: string, createFn: () => T, resetFn?: (component: T) => void, maxSize?: number, minSize?: number): void;
78
+ /**
79
+ * 获取组件实例
80
+ */
81
+ acquireComponent<T extends Component>(componentName: string): T | null;
82
+ /**
83
+ * 释放组件实例
84
+ */
85
+ releaseComponent<T extends Component>(componentName: string, component: T): void;
86
+ /**
87
+ * 追踪使用情况
88
+ */
89
+ private trackUsage;
90
+ /**
91
+ * 自动清理(定期调用)
92
+ */
93
+ update(): void;
94
+ /**
95
+ * 获取热点组件列表
96
+ */
97
+ getHotComponents(threshold?: number): string[];
98
+ /**
99
+ * 预热所有池
100
+ */
101
+ prewarmAll(count?: number): void;
102
+ /**
103
+ * 清空所有池
104
+ */
105
+ clearAll(): void;
106
+ /**
107
+ * 重置管理器
108
+ */
109
+ reset(): void;
110
+ /**
111
+ * 获取全局统计信息
112
+ */
113
+ getGlobalStats(): Array<{
114
+ componentName: string;
115
+ poolStats: ReturnType<ComponentPool<Component>['getStats']>;
116
+ usage: ComponentUsageTracker | undefined;
117
+ }>;
118
+ /**
119
+ * 获取池统计信息
120
+ */
121
+ getPoolStats(): Map<string, {
122
+ available: number;
123
+ maxSize: number;
124
+ }>;
125
+ /**
126
+ * 获取池利用率信息
127
+ */
128
+ getPoolUtilization(): Map<string, {
129
+ used: number;
130
+ total: number;
131
+ utilization: number;
132
+ }>;
133
+ /**
134
+ * 获取指定组件的池利用率
135
+ */
136
+ getComponentUtilization(componentName: string): number;
137
+ }
138
+ export {};
139
+ //# sourceMappingURL=ComponentPool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComponentPool.d.ts","sourceRoot":"","sources":["../../../src/ECS/Core/ComponentPool.ts"],"names":[],"mappings":"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"}