@esengine/ecs-framework 2.2.20 → 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 (491) 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/LICENSE +0 -21
  483. package/index.cjs +0 -2
  484. package/index.cjs.map +0 -1
  485. package/index.d.ts +0 -13021
  486. package/index.es5.js +0 -4
  487. package/index.es5.js.map +0 -1
  488. package/index.mjs +0 -2
  489. package/index.mjs.map +0 -1
  490. package/index.umd.js +0 -4
  491. package/index.umd.js.map +0 -1
@@ -0,0 +1,591 @@
1
+ import { Entity } from '../Entity';
2
+ import { PerformanceMonitor } from '../../Utils/PerformanceMonitor';
3
+ import { Matcher } from '../Utils/Matcher';
4
+ import type { Scene } from '../Scene';
5
+ import type { ISystemBase } from '../../Types';
6
+ import { createLogger } from '../../Utils/Logger';
7
+ import type { EventListenerConfig, EventHandler } from '../Core/EventSystem';
8
+ import type { ComponentConstructor, ComponentInstance } from '../../Types/TypeHelpers';
9
+ import type { IService } from '../../Core/ServiceContainer';
10
+ import { CommandBuffer } from '../Core/CommandBuffer';
11
+ /**
12
+ * 实体系统的基类
13
+ *
14
+ * 用于处理一组符合特定条件的实体。系统是ECS架构中的逻辑处理单元,
15
+ * 负责对拥有特定组件组合的实体执行业务逻辑。
16
+ *
17
+ * 支持泛型参数以提供类型安全的组件访问:
18
+ *
19
+ * @template TComponents - 系统需要的组件类型数组
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * // 传统方式
24
+ * class MovementSystem extends EntitySystem {
25
+ * constructor() {
26
+ * super(Matcher.empty().all(Transform, Velocity));
27
+ * }
28
+ *
29
+ * protected process(entities: readonly Entity[]): void {
30
+ * for (const entity of entities) {
31
+ * const transform = entity.getComponent(Transform);
32
+ * const velocity = entity.getComponent(Velocity);
33
+ * transform.position.add(velocity.value);
34
+ * }
35
+ * }
36
+ * }
37
+ *
38
+ * // 类型安全方式
39
+ * class MovementSystem extends EntitySystem<[typeof Transform, typeof Velocity]> {
40
+ * constructor() {
41
+ * super(Matcher.empty().all(Transform, Velocity));
42
+ * }
43
+ *
44
+ * protected process(entities: readonly Entity[]): void {
45
+ * for (const entity of entities) {
46
+ * // 类型安全的组件访问
47
+ * const [transform, velocity] = this.getComponents(entity);
48
+ * transform.position.add(velocity.value);
49
+ * }
50
+ * }
51
+ * }
52
+ * ```
53
+ */
54
+ export declare abstract class EntitySystem implements ISystemBase, IService {
55
+ private _updateOrder;
56
+ /**
57
+ * 添加顺序,用于 updateOrder 相同时的稳定排序
58
+ * Add order for stable sorting when updateOrder is the same
59
+ * @internal
60
+ */
61
+ private _addOrder;
62
+ private _enabled;
63
+ private _performanceMonitor;
64
+ private _systemName;
65
+ private _initialized;
66
+ private _matcher;
67
+ private _eventListeners;
68
+ private _scene;
69
+ private _destroyed;
70
+ protected logger: ReturnType<typeof createLogger>;
71
+ /**
72
+ * 实体ID映射缓存
73
+ */
74
+ private _entityIdMap;
75
+ private _entityIdMapVersion;
76
+ /**
77
+ * 统一的实体缓存管理器
78
+ */
79
+ private _entityCache;
80
+ /**
81
+ * 命令缓冲区 - 用于延迟执行实体操作
82
+ * Command buffer - for deferred entity operations
83
+ *
84
+ * 在 process() 中使用 commands 可以避免迭代过程中修改实体列表,
85
+ * 提高性能并保证迭代安全。命令会在帧末由 Scene 统一执行。
86
+ *
87
+ * Using commands in process() avoids modifying entity list during iteration,
88
+ * improving performance and ensuring iteration safety. Commands are executed by Scene at end of frame.
89
+ *
90
+ * @example
91
+ * ```typescript
92
+ * protected process(entities: readonly Entity[]): void {
93
+ * for (const entity of entities) {
94
+ * if (shouldDie(entity)) {
95
+ * // 延迟执行,不影响当前迭代
96
+ * this.commands.destroyEntity(entity);
97
+ * }
98
+ * }
99
+ * }
100
+ * ```
101
+ */
102
+ protected readonly commands: CommandBuffer;
103
+ /**
104
+ * 获取系统处理的实体列表
105
+ */
106
+ get entities(): readonly Entity[];
107
+ /**
108
+ * 获取系统的更新时序
109
+ */
110
+ get updateOrder(): number;
111
+ set updateOrder(value: number);
112
+ /**
113
+ * 获取系统的添加顺序
114
+ * Get the add order of the system
115
+ * @internal
116
+ */
117
+ get addOrder(): number;
118
+ /**
119
+ * 设置系统的添加顺序(由 Scene 在添加时设置)
120
+ * Set the add order of the system (set by Scene when adding)
121
+ * @internal
122
+ */
123
+ set addOrder(value: number);
124
+ /**
125
+ * 获取系统的启用状态
126
+ */
127
+ get enabled(): boolean;
128
+ /**
129
+ * 设置系统的启用状态
130
+ */
131
+ set enabled(value: boolean);
132
+ /**
133
+ * 获取系统名称
134
+ */
135
+ get systemName(): string;
136
+ constructor(matcher?: Matcher);
137
+ /**
138
+ * 这个系统所属的场景
139
+ */
140
+ get scene(): Scene | null;
141
+ set scene(value: Scene | null);
142
+ /**
143
+ * 设置性能监控器
144
+ */
145
+ setPerformanceMonitor(monitor: PerformanceMonitor): void;
146
+ /**
147
+ * 获取性能监控器
148
+ */
149
+ private getPerformanceMonitor;
150
+ /**
151
+ * 获取实体匹配器
152
+ */
153
+ get matcher(): Matcher;
154
+ /**
155
+ * 设置更新时序
156
+ * @param order 更新时序
157
+ */
158
+ setUpdateOrder(order: number): void;
159
+ /**
160
+ * 系统初始化(框架调用)
161
+ *
162
+ * 在系统创建时调用。框架内部使用,用户不应直接调用。
163
+ */
164
+ initialize(): void;
165
+ /**
166
+ * 系统初始化回调
167
+ *
168
+ * 子类可以重写此方法进行初始化操作。
169
+ */
170
+ protected onInitialize(): void;
171
+ /**
172
+ * 清除实体缓存(内部使用)
173
+ * 当Scene中的实体发生变化时调用
174
+ */
175
+ clearEntityCache(): void;
176
+ /**
177
+ * 完全重置实体跟踪状态
178
+ * 清除所有缓存和跟踪的实体,强制下次 update 时重新扫描所有实体并触发 onAdded
179
+ * 用于场景重载/预览重置等场景
180
+ */
181
+ resetEntityTracking(): void;
182
+ /**
183
+ * 重置系统状态
184
+ *
185
+ * 当系统从场景中移除时调用,重置初始化状态以便重新添加时能正确初始化。
186
+ *
187
+ * 注意:此方法由 Scene.removeEntityProcessor 调用,在 unregister(触发dispose)之后调用。
188
+ * dispose 已经调用了 onDestroy 并设置了 _destroyed 标志,所以这里不需要重置该标志。
189
+ * 重置 _destroyed 会违反服务容器的语义(dispose 后不应重用)。
190
+ */
191
+ reset(): void;
192
+ /**
193
+ * 查询匹配的实体
194
+ */
195
+ private queryEntities;
196
+ /**
197
+ * 检查是否为单一条件查询
198
+ *
199
+ * 使用位运算优化多条件检测。将每种查询条件映射到不同的位:
200
+ * - all: 第0位 (1)
201
+ * - any: 第1位 (2)
202
+ * - none: 第2位 (4)
203
+ * - tag: 第3位 (8)
204
+ * - name: 第4位 (16)
205
+ * - component: 第5位 (32)
206
+ */
207
+ private isSingleCondition;
208
+ /**
209
+ * 执行单一条件查询
210
+ */
211
+ private executeSingleConditionQuery;
212
+ /**
213
+ * 执行复合查询
214
+ */
215
+ private executeComplexQueryWithIdSets;
216
+ /**
217
+ * 提取实体ID集合
218
+ */
219
+ private extractEntityIds;
220
+ /**
221
+ * ID集合交集运算
222
+ */
223
+ private intersectIdSets;
224
+ /**
225
+ * ID集合差集运算
226
+ */
227
+ private differenceIdSets;
228
+ /**
229
+ * 获取或构建实体ID映射
230
+ */
231
+ private getEntityIdMap;
232
+ /**
233
+ * 重建实体ID映射
234
+ */
235
+ private rebuildEntityIdMap;
236
+ /**
237
+ * 从ID集合构建Entity数组
238
+ */
239
+ private idSetToEntityArray;
240
+ /**
241
+ * 执行复合查询
242
+ *
243
+ * 使用基于ID集合的单次扫描算法进行复杂查询
244
+ */
245
+ private executeComplexQuery;
246
+ /**
247
+ * 更新系统
248
+ */
249
+ update(): void;
250
+ /**
251
+ * 后期更新系统
252
+ */
253
+ lateUpdate(): void;
254
+ /**
255
+ * 执行命令缓冲区中的所有延迟命令
256
+ * Flush all deferred commands in the command buffer
257
+ *
258
+ * 由 Scene 在帧末自动调用。
259
+ * Called automatically by Scene at end of frame.
260
+ *
261
+ * @returns 执行的命令数量 | Number of commands executed
262
+ */
263
+ flushCommands(): number;
264
+ /**
265
+ * 在系统处理开始前调用
266
+ *
267
+ * 子类可以重写此方法进行预处理操作。
268
+ */
269
+ protected onBegin(): void;
270
+ /**
271
+ * 处理实体列表
272
+ *
273
+ * 系统的核心逻辑,子类必须实现此方法来定义具体的处理逻辑。
274
+ *
275
+ * @param entities 要处理的实体列表
276
+ */
277
+ protected process(_entities: readonly Entity[]): void;
278
+ /**
279
+ * 后期处理实体列表
280
+ *
281
+ * 在主要处理逻辑之后执行,子类可以重写此方法。
282
+ *
283
+ * @param entities 要处理的实体列表
284
+ */
285
+ protected lateProcess(_entities: readonly Entity[]): void;
286
+ /**
287
+ * 系统处理完毕后调用
288
+ *
289
+ * 子类可以重写此方法进行后处理操作。
290
+ */
291
+ protected onEnd(): void;
292
+ /**
293
+ * 检查系统是否需要处理
294
+ *
295
+ * 在启用系统时有用,但仅偶尔需要处理。
296
+ * 这只影响处理,不影响事件或订阅列表。
297
+ *
298
+ * @returns 如果系统应该处理,则为true,如果不处理则为false
299
+ */
300
+ protected onCheckProcessing(): boolean;
301
+ /**
302
+ * 获取系统的性能数据
303
+ *
304
+ * @returns 性能数据或undefined
305
+ */
306
+ getPerformanceData(): import("../../Utils/PerformanceMonitor").PerformanceData | undefined;
307
+ /**
308
+ * 获取系统的性能统计
309
+ *
310
+ * @returns 性能统计或undefined
311
+ */
312
+ getPerformanceStats(): import("../../Utils/PerformanceMonitor").PerformanceStats | undefined;
313
+ /**
314
+ * 重置系统的性能数据
315
+ */
316
+ resetPerformanceData(): void;
317
+ /**
318
+ * 获取系统信息的字符串表示
319
+ *
320
+ * @returns 系统信息字符串
321
+ */
322
+ toString(): string;
323
+ /**
324
+ * 检查实体是否匹配当前系统的查询条件
325
+ * Check if an entity matches this system's query condition
326
+ *
327
+ * @param entity 要检查的实体 / The entity to check
328
+ * @returns 是否匹配 / Whether the entity matches
329
+ */
330
+ matchesEntity(entity: Entity): boolean;
331
+ /**
332
+ * 检查实体是否正在被此系统跟踪
333
+ * Check if an entity is being tracked by this system
334
+ *
335
+ * @param entity 要检查的实体 / The entity to check
336
+ * @returns 是否正在跟踪 / Whether the entity is being tracked
337
+ */
338
+ isTracking(entity: Entity): boolean;
339
+ /**
340
+ * 当实体的组件发生变化时由 Scene 调用
341
+ *
342
+ * 立即检查实体是否匹配并触发 onAdded/onRemoved 回调。
343
+ * 这是事件驱动设计的核心:组件变化时立即通知相关系统。
344
+ *
345
+ * Called by Scene when an entity's components change.
346
+ * Immediately checks if the entity matches and triggers onAdded/onRemoved callbacks.
347
+ * This is the core of event-driven design: notify relevant systems immediately when components change.
348
+ *
349
+ * @param entity 组件发生变化的实体 / The entity whose components changed
350
+ * @internal 由 Scene.notifyEntityComponentChanged 调用 / Called by Scene.notifyEntityComponentChanged
351
+ */
352
+ handleEntityComponentChanged(entity: Entity): void;
353
+ /**
354
+ * 更新实体跟踪,检查新增和移除的实体
355
+ *
356
+ * 由于采用了事件驱动设计,运行时的 onAdded/onRemoved 已在 handleEntityComponentChanged 中
357
+ * 立即触发。此方法不再触发回调,只同步跟踪状态。
358
+ *
359
+ * With event-driven design, runtime onAdded/onRemoved are triggered immediately in
360
+ * handleEntityComponentChanged. This method no longer triggers callbacks, only syncs tracking state.
361
+ */
362
+ private updateEntityTracking;
363
+ /**
364
+ * 当实体被添加到系统时调用
365
+ *
366
+ * 子类可以重写此方法来处理实体添加事件。
367
+ *
368
+ * @param entity 被添加的实体
369
+ */
370
+ protected onAdded(_entity: Entity): void;
371
+ /**
372
+ * 当实体从系统中移除时调用
373
+ *
374
+ * 子类可以重写此方法来处理实体移除事件。
375
+ *
376
+ * @param entity 被移除的实体
377
+ */
378
+ protected onRemoved(_entity: Entity): void;
379
+ /**
380
+ * 释放系统资源
381
+ *
382
+ * 实现IService接口要求的dispose方法。
383
+ * 当系统从Scene中移除或Scene销毁时调用。
384
+ *
385
+ * 默认行为:
386
+ * - 移除所有事件监听器
387
+ * - 调用 onDestroy 回调(仅首次)
388
+ * - 清空所有缓存
389
+ * - 重置初始化状态
390
+ *
391
+ * 子类可以重写此方法来清理自定义资源,但应该调用super.dispose()。
392
+ */
393
+ dispose(): void;
394
+ /**
395
+ * 添加事件监听器
396
+ *
397
+ * 推荐使用此方法而不是直接调用eventSystem.on(),
398
+ * 这样可以确保系统移除时自动清理监听器,避免内存泄漏。
399
+ *
400
+ * @param eventType 事件类型
401
+ * @param handler 事件处理函数
402
+ * @param config 监听器配置
403
+ * @returns 监听器引用ID,可用于手动移除监听器
404
+ */
405
+ protected addEventListener<T>(eventType: string, handler: EventHandler<T>, config?: EventListenerConfig): string | null;
406
+ /**
407
+ * 移除特定的事件监听器
408
+ *
409
+ * @param eventType 事件类型
410
+ * @param listenerRef 监听器引用ID(由 addEventListener 返回)
411
+ */
412
+ protected removeEventListener(eventType: string, listenerRef: string): void;
413
+ /**
414
+ * 清理手动添加的事件监听器
415
+ */
416
+ private cleanupManualEventListeners;
417
+ /**
418
+ * 框架内部销毁方法
419
+ * 由框架调用,处理系统的完整销毁流程
420
+ */
421
+ destroy(): void;
422
+ /**
423
+ * 获取Logger名称
424
+ * 默认返回类的构造函数名称, 子类可以重写此方法来自定义logger名称
425
+ */
426
+ protected getLoggerName(): string;
427
+ /**
428
+ * 用户销毁回调
429
+ *
430
+ * 当系统从场景中移除时调用,子类可以重写此方法进行清理操作。
431
+ * 注意:事件监听器会被框架自动清理,无需手动处理。
432
+ */
433
+ protected onDestroy(): void;
434
+ /**
435
+ * 类型安全地获取单个组件
436
+ *
437
+ * 相比Entity.getComponent,此方法保证返回非空值,
438
+ * 如果组件不存在会抛出错误而不是返回null
439
+ *
440
+ * @param entity 实体
441
+ * @param componentType 组件类型
442
+ * @returns 组件实例(保证非空)
443
+ * @throws 如果组件不存在则抛出错误
444
+ *
445
+ * @example
446
+ * ```typescript
447
+ * protected process(entities: readonly Entity[]): void {
448
+ * for (const entity of entities) {
449
+ * const transform = this.requireComponent(entity, Transform);
450
+ * // transform 保证非空,类型为 Transform
451
+ * }
452
+ * }
453
+ * ```
454
+ */
455
+ protected requireComponent<T extends ComponentConstructor>(entity: Entity, componentType: T): ComponentInstance<T>;
456
+ /**
457
+ * 批量获取实体的所有必需组件
458
+ *
459
+ * 根据泛型参数TComponents推断返回类型,
460
+ * 返回一个元组,包含所有组件实例
461
+ *
462
+ * @param entity 实体
463
+ * @param components 组件类型数组
464
+ * @returns 组件实例元组
465
+ *
466
+ * @example
467
+ * ```typescript
468
+ * class MySystem extends EntitySystem<[typeof Position, typeof Velocity]> {
469
+ * protected process(entities: readonly Entity[]): void {
470
+ * for (const entity of entities) {
471
+ * const [pos, vel] = this.getComponents(entity, Position, Velocity);
472
+ * // pos: Position, vel: Velocity (自动类型推断)
473
+ * pos.x += vel.x;
474
+ * }
475
+ * }
476
+ * }
477
+ * ```
478
+ */
479
+ protected getComponents<T extends readonly ComponentConstructor[]>(entity: Entity, ...components: T): {
480
+ [K in keyof T]: ComponentInstance<T[K]>;
481
+ };
482
+ /**
483
+ * 遍历实体并处理每个实体
484
+ *
485
+ * 提供更简洁的语法糖,避免手动遍历
486
+ *
487
+ * @param entities 实体列表
488
+ * @param processor 处理函数
489
+ *
490
+ * @example
491
+ * ```typescript
492
+ * protected process(entities: readonly Entity[]): void {
493
+ * this.forEach(entities, (entity) => {
494
+ * const transform = this.requireComponent(entity, Transform);
495
+ * transform.position.y -= 9.8 * Time.deltaTime;
496
+ * });
497
+ * }
498
+ * ```
499
+ */
500
+ protected forEach(entities: readonly Entity[], processor: (entity: Entity, index: number) => void): void;
501
+ /**
502
+ * 过滤实体
503
+ *
504
+ * @param entities 实体列表
505
+ * @param predicate 过滤条件
506
+ * @returns 过滤后的实体数组
507
+ *
508
+ * @example
509
+ * ```typescript
510
+ * protected process(entities: readonly Entity[]): void {
511
+ * const activeEntities = this.filterEntities(entities, (entity) => {
512
+ * const health = this.requireComponent(entity, Health);
513
+ * return health.value > 0;
514
+ * });
515
+ * }
516
+ * ```
517
+ */
518
+ protected filterEntities(entities: readonly Entity[], predicate: (entity: Entity, index: number) => boolean): Entity[];
519
+ /**
520
+ * 映射实体到另一种类型
521
+ *
522
+ * @param entities 实体列表
523
+ * @param mapper 映射函数
524
+ * @returns 映射后的结果数组
525
+ *
526
+ * @example
527
+ * ```typescript
528
+ * protected process(entities: readonly Entity[]): void {
529
+ * const positions = this.mapEntities(entities, (entity) => {
530
+ * const transform = this.requireComponent(entity, Transform);
531
+ * return transform.position;
532
+ * });
533
+ * }
534
+ * ```
535
+ */
536
+ protected mapEntities<R>(entities: readonly Entity[], mapper: (entity: Entity, index: number) => R): R[];
537
+ /**
538
+ * 查找第一个满足条件的实体
539
+ *
540
+ * @param entities 实体列表
541
+ * @param predicate 查找条件
542
+ * @returns 第一个满足条件的实体,或undefined
543
+ *
544
+ * @example
545
+ * ```typescript
546
+ * protected process(entities: readonly Entity[]): void {
547
+ * const player = this.findEntity(entities, (entity) =>
548
+ * entity.hasComponent(PlayerTag)
549
+ * );
550
+ * }
551
+ * ```
552
+ */
553
+ protected findEntity(entities: readonly Entity[], predicate: (entity: Entity, index: number) => boolean): Entity | undefined;
554
+ /**
555
+ * 检查是否存在满足条件的实体
556
+ *
557
+ * @param entities 实体列表
558
+ * @param predicate 检查条件
559
+ * @returns 是否存在满足条件的实体
560
+ *
561
+ * @example
562
+ * ```typescript
563
+ * protected process(entities: readonly Entity[]): void {
564
+ * const hasLowHealth = this.someEntity(entities, (entity) => {
565
+ * const health = this.requireComponent(entity, Health);
566
+ * return health.value < 20;
567
+ * });
568
+ * }
569
+ * ```
570
+ */
571
+ protected someEntity(entities: readonly Entity[], predicate: (entity: Entity, index: number) => boolean): boolean;
572
+ /**
573
+ * 检查是否所有实体都满足条件
574
+ *
575
+ * @param entities 实体列表
576
+ * @param predicate 检查条件
577
+ * @returns 是否所有实体都满足条件
578
+ *
579
+ * @example
580
+ * ```typescript
581
+ * protected process(entities: readonly Entity[]): void {
582
+ * const allHealthy = this.everyEntity(entities, (entity) => {
583
+ * const health = this.requireComponent(entity, Health);
584
+ * return health.value > 50;
585
+ * });
586
+ * }
587
+ * ```
588
+ */
589
+ protected everyEntity(entities: readonly Entity[], predicate: (entity: Entity, index: number) => boolean): boolean;
590
+ }
591
+ //# sourceMappingURL=EntitySystem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EntitySystem.d.ts","sourceRoot":"","sources":["../../../src/ECS/Systems/EntitySystem.ts"],"names":[],"mappings":"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"}