@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,683 @@
1
+ import { ComponentRegistry } from './Core/ComponentStorage';
2
+ import { BitMask64Utils } from './Utils/BigIntCompatibility';
3
+ import { createLogger } from '../Utils/Logger';
4
+ import { getComponentInstanceTypeName, getComponentTypeName } from './Decorators';
5
+ /**
6
+ * 实体比较器
7
+ *
8
+ * 用于比较两个实体的优先级,首先按更新顺序比较,然后按ID比较。
9
+ */
10
+ export class EntityComparer {
11
+ /**
12
+ * 比较两个实体
13
+ *
14
+ * @param self - 第一个实体
15
+ * @param other - 第二个实体
16
+ * @returns 比较结果,负数表示self优先级更高,正数表示other优先级更高,0表示相等
17
+ */
18
+ compare(self, other) {
19
+ let compare = self.updateOrder - other.updateOrder;
20
+ if (compare == 0)
21
+ compare = self.id - other.id;
22
+ return compare;
23
+ }
24
+ }
25
+ /**
26
+ * 游戏实体类
27
+ *
28
+ * ECS架构中的实体(Entity),作为组件的容器。
29
+ * 实体本身不包含游戏逻辑,所有功能都通过组件来实现。
30
+ *
31
+ * 层级关系通过 HierarchyComponent 和 HierarchySystem 管理,
32
+ * 而非 Entity 内置属性,符合 ECS 组合原则。
33
+ *
34
+ * @example
35
+ * ```typescript
36
+ * // 创建实体
37
+ * const entity = scene.createEntity("Player");
38
+ *
39
+ * // 添加组件
40
+ * const healthComponent = entity.addComponent(new HealthComponent(100));
41
+ *
42
+ * // 获取组件
43
+ * const health = entity.getComponent(HealthComponent);
44
+ *
45
+ * // 层级关系使用 HierarchySystem
46
+ * const hierarchySystem = scene.getSystem(HierarchySystem);
47
+ * hierarchySystem.setParent(childEntity, parentEntity);
48
+ * ```
49
+ */
50
+ export class Entity {
51
+ /**
52
+ * 构造函数
53
+ *
54
+ * @param name - 实体名称
55
+ * @param id - 实体唯一标识符
56
+ */
57
+ constructor(name, id) {
58
+ /**
59
+ * 所属场景引用
60
+ */
61
+ this.scene = null;
62
+ /**
63
+ * 销毁状态标志
64
+ */
65
+ this._isDestroyed = false;
66
+ /**
67
+ * 激活状态
68
+ */
69
+ this._active = true;
70
+ /**
71
+ * 实体标签
72
+ */
73
+ this._tag = 0;
74
+ /**
75
+ * 启用状态
76
+ */
77
+ this._enabled = true;
78
+ /**
79
+ * 更新顺序
80
+ */
81
+ this._updateOrder = 0;
82
+ /**
83
+ * 组件位掩码(用于快速 hasComponent 检查)
84
+ */
85
+ this._componentMask = BitMask64Utils.clone(BitMask64Utils.ZERO);
86
+ /**
87
+ * 懒加载的组件数组缓存
88
+ */
89
+ this._componentCache = null;
90
+ /**
91
+ * 生命周期策略
92
+ *
93
+ * Lifecycle policy for scene transitions.
94
+ */
95
+ this._lifecyclePolicy = 0 /* EEntityLifecyclePolicy.SceneLocal */;
96
+ this.name = name;
97
+ this.id = id;
98
+ }
99
+ /**
100
+ * 获取生命周期策略
101
+ *
102
+ * Get lifecycle policy.
103
+ */
104
+ get lifecyclePolicy() {
105
+ return this._lifecyclePolicy;
106
+ }
107
+ /**
108
+ * 检查实体是否为持久化实体
109
+ *
110
+ * Check if entity is persistent (survives scene transitions).
111
+ */
112
+ get isPersistent() {
113
+ return this._lifecyclePolicy === 1 /* EEntityLifecyclePolicy.Persistent */;
114
+ }
115
+ /**
116
+ * 设置实体为持久化(跨场景保留)
117
+ *
118
+ * 标记后的实体在场景切换时不会被销毁,会自动迁移到新场景。
119
+ *
120
+ * Mark entity as persistent (survives scene transitions).
121
+ * Persistent entities are automatically migrated to the new scene.
122
+ *
123
+ * @returns this,支持链式调用 | Returns this for chaining
124
+ *
125
+ * @example
126
+ * ```typescript
127
+ * const player = scene.createEntity('Player')
128
+ * .setPersistent()
129
+ * .addComponent(new PlayerComponent());
130
+ * ```
131
+ */
132
+ setPersistent() {
133
+ this._lifecyclePolicy = 1 /* EEntityLifecyclePolicy.Persistent */;
134
+ return this;
135
+ }
136
+ /**
137
+ * 设置实体为场景本地(随场景销毁)
138
+ *
139
+ * 将实体恢复为默认行为。
140
+ *
141
+ * Mark entity as scene-local (destroyed with scene).
142
+ * Restores default behavior.
143
+ *
144
+ * @returns this,支持链式调用 | Returns this for chaining
145
+ */
146
+ setSceneLocal() {
147
+ this._lifecyclePolicy = 0 /* EEntityLifecyclePolicy.SceneLocal */;
148
+ return this;
149
+ }
150
+ /**
151
+ * 获取销毁状态
152
+ * @returns 如果实体已被销毁则返回true
153
+ */
154
+ get isDestroyed() {
155
+ return this._isDestroyed;
156
+ }
157
+ /**
158
+ * 设置销毁状态(内部使用)
159
+ *
160
+ * 此方法供Scene和批量操作使用,以提高性能。
161
+ * 不应在普通业务逻辑中调用,应使用destroy()方法。
162
+ *
163
+ * @internal
164
+ */
165
+ setDestroyedState(destroyed) {
166
+ this._isDestroyed = destroyed;
167
+ }
168
+ /**
169
+ * 获取组件数组(懒加载)
170
+ * @returns 只读的组件数组
171
+ */
172
+ get components() {
173
+ if (this._componentCache === null) {
174
+ this._rebuildComponentCache();
175
+ }
176
+ return this._componentCache;
177
+ }
178
+ /**
179
+ * 从存储重建组件缓存
180
+ */
181
+ _rebuildComponentCache() {
182
+ const components = [];
183
+ if (!this.scene?.componentStorageManager) {
184
+ this._componentCache = components;
185
+ return;
186
+ }
187
+ const mask = this._componentMask;
188
+ const maxBitIndex = ComponentRegistry.getRegisteredCount();
189
+ for (let bitIndex = 0; bitIndex < maxBitIndex; bitIndex++) {
190
+ if (BitMask64Utils.getBit(mask, bitIndex)) {
191
+ const componentType = ComponentRegistry.getTypeByBitIndex(bitIndex);
192
+ if (componentType) {
193
+ const component = this.scene.componentStorageManager.getComponent(this.id, componentType);
194
+ if (component) {
195
+ components.push(component);
196
+ }
197
+ }
198
+ }
199
+ }
200
+ this._componentCache = components;
201
+ }
202
+ /**
203
+ * 获取活跃状态
204
+ *
205
+ * @returns 如果实体处于活跃状态则返回true
206
+ */
207
+ get active() {
208
+ return this._active;
209
+ }
210
+ /**
211
+ * 设置活跃状态
212
+ *
213
+ * @param value - 新的活跃状态
214
+ */
215
+ set active(value) {
216
+ if (this._active !== value) {
217
+ this._active = value;
218
+ this.onActiveChanged();
219
+ }
220
+ }
221
+ /**
222
+ * 获取实体标签
223
+ *
224
+ * @returns 实体的数字标签
225
+ */
226
+ get tag() {
227
+ return this._tag;
228
+ }
229
+ /**
230
+ * 设置实体标签
231
+ *
232
+ * @param value - 新的标签值
233
+ */
234
+ set tag(value) {
235
+ this._tag = value;
236
+ }
237
+ /**
238
+ * 获取启用状态
239
+ *
240
+ * @returns 如果实体已启用则返回true
241
+ */
242
+ get enabled() {
243
+ return this._enabled;
244
+ }
245
+ /**
246
+ * 设置启用状态
247
+ *
248
+ * @param value - 新的启用状态
249
+ */
250
+ set enabled(value) {
251
+ this._enabled = value;
252
+ }
253
+ /**
254
+ * 获取更新顺序
255
+ *
256
+ * @returns 实体的更新顺序值
257
+ */
258
+ get updateOrder() {
259
+ return this._updateOrder;
260
+ }
261
+ /**
262
+ * 设置更新顺序
263
+ *
264
+ * @param value - 新的更新顺序值
265
+ */
266
+ set updateOrder(value) {
267
+ this._updateOrder = value;
268
+ }
269
+ /**
270
+ * 获取组件位掩码
271
+ *
272
+ * @returns 实体的组件位掩码
273
+ */
274
+ get componentMask() {
275
+ return this._componentMask;
276
+ }
277
+ /**
278
+ * 创建并添加组件
279
+ *
280
+ * @param componentType - 组件类型构造函数
281
+ * @param args - 组件构造函数参数
282
+ * @returns 创建的组件实例
283
+ *
284
+ * @example
285
+ * ```typescript
286
+ * const position = entity.createComponent(Position, 100, 200);
287
+ * const health = entity.createComponent(Health, 100);
288
+ * ```
289
+ */
290
+ createComponent(componentType, ...args) {
291
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
292
+ const component = new componentType(...args);
293
+ return this.addComponent(component);
294
+ }
295
+ /**
296
+ * 内部添加组件方法(不进行重复检查,用于初始化)
297
+ *
298
+ * @param component - 要添加的组件实例
299
+ * @returns 添加的组件实例
300
+ */
301
+ addComponentInternal(component) {
302
+ const componentType = component.constructor;
303
+ if (!ComponentRegistry.isRegistered(componentType)) {
304
+ ComponentRegistry.register(componentType);
305
+ }
306
+ // 更新位掩码
307
+ const componentMask = ComponentRegistry.getBitMask(componentType);
308
+ BitMask64Utils.orInPlace(this._componentMask, componentMask);
309
+ // 使缓存失效
310
+ this._componentCache = null;
311
+ return component;
312
+ }
313
+ /**
314
+ * 通知Scene中的QuerySystem实体组件发生变动
315
+ *
316
+ * Notify the QuerySystem in Scene that entity components have changed
317
+ *
318
+ * @param changedComponentType 变化的组件类型(可选,用于优化通知) | Changed component type (optional, for optimized notification)
319
+ */
320
+ notifyQuerySystems(changedComponentType) {
321
+ if (this.scene && this.scene.querySystem) {
322
+ this.scene.querySystem.updateEntity(this);
323
+ this.scene.clearSystemEntityCaches();
324
+ // 事件驱动:立即通知关心该组件的系统 | Event-driven: notify systems that care about this component
325
+ if (this.scene.notifyEntityComponentChanged) {
326
+ this.scene.notifyEntityComponentChanged(this, changedComponentType);
327
+ }
328
+ }
329
+ }
330
+ /**
331
+ * 添加组件到实体
332
+ *
333
+ * @param component - 要添加的组件实例
334
+ * @returns 添加的组件实例
335
+ * @throws {Error} 如果实体已存在该类型的组件
336
+ *
337
+ * @example
338
+ * ```typescript
339
+ * const position = new Position(100, 200);
340
+ * entity.addComponent(position);
341
+ * ```
342
+ */
343
+ addComponent(component) {
344
+ const componentType = component.constructor;
345
+ if (!this.scene) {
346
+ throw new Error('Entity must be added to Scene before adding components. Use scene.createEntity() instead of new Entity()');
347
+ }
348
+ if (!this.scene.componentStorageManager) {
349
+ throw new Error('Scene does not have componentStorageManager');
350
+ }
351
+ if (this.hasComponent(componentType)) {
352
+ throw new Error(`Entity ${this.name} already has component ${getComponentTypeName(componentType)}`);
353
+ }
354
+ this.addComponentInternal(component);
355
+ this.scene.componentStorageManager.addComponent(this.id, component);
356
+ component.entityId = this.id;
357
+ if (this.scene.referenceTracker) {
358
+ this.scene.referenceTracker.registerEntityScene(this.id, this.scene);
359
+ }
360
+ // 编辑器模式下延迟执行 onAddedToEntity | Defer onAddedToEntity in editor mode
361
+ if (this.scene.isEditorMode) {
362
+ this.scene.queueDeferredComponentCallback(() => {
363
+ component.onAddedToEntity();
364
+ });
365
+ }
366
+ else {
367
+ component.onAddedToEntity();
368
+ }
369
+ if (this.scene && this.scene.eventSystem) {
370
+ this.scene.eventSystem.emitSync('component:added', {
371
+ timestamp: Date.now(),
372
+ source: 'Entity',
373
+ entityId: this.id,
374
+ entityName: this.name,
375
+ entityTag: this.tag?.toString(),
376
+ componentType: getComponentTypeName(componentType),
377
+ component: component
378
+ });
379
+ }
380
+ this.notifyQuerySystems(componentType);
381
+ return component;
382
+ }
383
+ /**
384
+ * 获取指定类型的组件
385
+ *
386
+ * @param type - 组件类型构造函数
387
+ * @returns 组件实例,如果不存在则返回null
388
+ *
389
+ * @example
390
+ * ```typescript
391
+ * const position = entity.getComponent(Position);
392
+ * if (position) {
393
+ * position.x += 10;
394
+ * position.y += 20;
395
+ * }
396
+ * ```
397
+ */
398
+ getComponent(type) {
399
+ // 快速检查:位掩码
400
+ if (!this.hasComponent(type)) {
401
+ return null;
402
+ }
403
+ // 从Scene存储获取
404
+ if (!this.scene?.componentStorageManager) {
405
+ return null;
406
+ }
407
+ const component = this.scene.componentStorageManager.getComponent(this.id, type);
408
+ return component;
409
+ }
410
+ /**
411
+ * 检查实体是否拥有指定类型的组件
412
+ *
413
+ * @param type - 组件类型构造函数
414
+ * @returns 如果实体拥有该组件返回true,否则返回false
415
+ *
416
+ * @example
417
+ * ```typescript
418
+ * if (entity.hasComponent(Position)) {
419
+ * const position = entity.getComponent(Position)!;
420
+ * position.x += 10;
421
+ * }
422
+ * ```
423
+ */
424
+ hasComponent(type) {
425
+ if (!ComponentRegistry.isRegistered(type)) {
426
+ return false;
427
+ }
428
+ const mask = ComponentRegistry.getBitMask(type);
429
+ return BitMask64Utils.hasAny(this._componentMask, mask);
430
+ }
431
+ /**
432
+ * 获取或创建指定类型的组件
433
+ *
434
+ * 如果组件已存在则返回现有组件,否则创建新组件并添加到实体
435
+ *
436
+ * @param type - 组件类型构造函数
437
+ * @param args - 组件构造函数参数(仅在创建新组件时使用)
438
+ * @returns 组件实例
439
+ *
440
+ * @example
441
+ * ```typescript
442
+ * // 确保实体拥有Position组件
443
+ * const position = entity.getOrCreateComponent(Position, 0, 0);
444
+ * position.x = 100;
445
+ * ```
446
+ */
447
+ getOrCreateComponent(type, ...args) {
448
+ let component = this.getComponent(type);
449
+ if (!component) {
450
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
451
+ component = this.createComponent(type, ...args);
452
+ }
453
+ return component;
454
+ }
455
+ /**
456
+ * 移除指定的组件
457
+ *
458
+ * @param component - 要移除的组件实例
459
+ */
460
+ removeComponent(component) {
461
+ const componentType = component.constructor;
462
+ if (!ComponentRegistry.isRegistered(componentType)) {
463
+ return;
464
+ }
465
+ const bitIndex = ComponentRegistry.getBitIndex(componentType);
466
+ // 更新位掩码
467
+ BitMask64Utils.clearBit(this._componentMask, bitIndex);
468
+ // 使缓存失效
469
+ this._componentCache = null;
470
+ // 从Scene存储移除
471
+ if (this.scene?.componentStorageManager) {
472
+ this.scene.componentStorageManager.removeComponent(this.id, componentType);
473
+ }
474
+ if (this.scene?.referenceTracker) {
475
+ this.scene.referenceTracker.clearComponentReferences(component);
476
+ }
477
+ if (component.onRemovedFromEntity) {
478
+ component.onRemovedFromEntity();
479
+ }
480
+ component.entityId = null;
481
+ if (this.scene && this.scene.eventSystem) {
482
+ this.scene.eventSystem.emitSync('component:removed', {
483
+ timestamp: Date.now(),
484
+ source: 'Entity',
485
+ entityId: this.id,
486
+ entityName: this.name,
487
+ entityTag: this.tag?.toString(),
488
+ componentType: getComponentTypeName(componentType),
489
+ component: component
490
+ });
491
+ }
492
+ this.notifyQuerySystems(componentType);
493
+ }
494
+ /**
495
+ * 移除指定类型的组件
496
+ *
497
+ * @param type - 组件类型
498
+ * @returns 被移除的组件实例或null
499
+ */
500
+ removeComponentByType(type) {
501
+ const component = this.getComponent(type);
502
+ if (component) {
503
+ this.removeComponent(component);
504
+ return component;
505
+ }
506
+ return null;
507
+ }
508
+ /**
509
+ * 移除所有组件
510
+ */
511
+ removeAllComponents() {
512
+ const componentsToRemove = [...this.components];
513
+ // 清除位掩码
514
+ BitMask64Utils.clear(this._componentMask);
515
+ // 使缓存失效
516
+ this._componentCache = null;
517
+ for (const component of componentsToRemove) {
518
+ const componentType = component.constructor;
519
+ if (this.scene?.componentStorageManager) {
520
+ this.scene.componentStorageManager.removeComponent(this.id, componentType);
521
+ }
522
+ component.onRemovedFromEntity();
523
+ }
524
+ this.notifyQuerySystems();
525
+ }
526
+ /**
527
+ * 批量添加组件
528
+ *
529
+ * @param components - 要添加的组件数组
530
+ * @returns 添加的组件数组
531
+ */
532
+ addComponents(components) {
533
+ const addedComponents = [];
534
+ for (const component of components) {
535
+ try {
536
+ addedComponents.push(this.addComponent(component));
537
+ }
538
+ catch (error) {
539
+ Entity._logger.warn(`添加组件失败 ${getComponentInstanceTypeName(component)}:`, error);
540
+ }
541
+ }
542
+ return addedComponents;
543
+ }
544
+ /**
545
+ * 批量移除组件类型
546
+ *
547
+ * @param componentTypes - 要移除的组件类型数组
548
+ * @returns 被移除的组件数组
549
+ */
550
+ removeComponentsByTypes(componentTypes) {
551
+ const removedComponents = [];
552
+ for (const componentType of componentTypes) {
553
+ removedComponents.push(this.removeComponentByType(componentType));
554
+ }
555
+ return removedComponents;
556
+ }
557
+ /**
558
+ * 获取所有指定类型的组件
559
+ *
560
+ * @param type - 组件类型
561
+ * @returns 组件实例数组
562
+ */
563
+ getComponents(type) {
564
+ const result = [];
565
+ for (const component of this.components) {
566
+ if (component instanceof type) {
567
+ result.push(component);
568
+ }
569
+ }
570
+ return result;
571
+ }
572
+ /**
573
+ * 获取指定基类的组件(支持继承查找)
574
+ *
575
+ * 与 getComponent() 不同,此方法使用 instanceof 检查,支持子类查找。
576
+ * 性能比位掩码查询稍慢,但支持继承层次结构。
577
+ *
578
+ * @param baseType - 组件基类类型
579
+ * @returns 第一个匹配的组件实例,如果不存在则返回 null
580
+ *
581
+ * @example
582
+ * ```typescript
583
+ * // 查找 CompositeNodeComponent 或其子类
584
+ * const composite = entity.getComponentByType(CompositeNodeComponent);
585
+ * if (composite) {
586
+ * // composite 可能是 SequenceNode, SelectorNode 等
587
+ * }
588
+ * ```
589
+ */
590
+ getComponentByType(baseType) {
591
+ for (const component of this.components) {
592
+ if (component instanceof baseType) {
593
+ return component;
594
+ }
595
+ }
596
+ return null;
597
+ }
598
+ /**
599
+ * 活跃状态改变时的回调
600
+ */
601
+ onActiveChanged() {
602
+ for (const component of this.components) {
603
+ if ('onActiveChanged' in component && typeof component.onActiveChanged === 'function') {
604
+ component.onActiveChanged();
605
+ }
606
+ }
607
+ if (this.scene && this.scene.eventSystem) {
608
+ this.scene.eventSystem.emitSync('entity:activeChanged', {
609
+ entity: this,
610
+ active: this._active
611
+ });
612
+ }
613
+ }
614
+ /**
615
+ * 销毁实体
616
+ *
617
+ * 移除所有组件并标记为已销毁。
618
+ * 层级关系的清理由 HierarchySystem 处理。
619
+ */
620
+ destroy() {
621
+ if (this._isDestroyed) {
622
+ return;
623
+ }
624
+ this._isDestroyed = true;
625
+ if (this.scene && this.scene.referenceTracker) {
626
+ this.scene.referenceTracker.clearReferencesTo(this.id);
627
+ this.scene.referenceTracker.unregisterEntityScene(this.id);
628
+ }
629
+ this.removeAllComponents();
630
+ if (this.scene) {
631
+ if (this.scene.querySystem) {
632
+ this.scene.querySystem.removeEntity(this);
633
+ }
634
+ if (this.scene.entities) {
635
+ this.scene.entities.remove(this);
636
+ }
637
+ }
638
+ }
639
+ /**
640
+ * 比较实体
641
+ *
642
+ * @param other - 另一个实体
643
+ * @returns 比较结果
644
+ */
645
+ compareTo(other) {
646
+ return EntityComparer.prototype.compare(this, other);
647
+ }
648
+ /**
649
+ * 获取实体的字符串表示
650
+ *
651
+ * @returns 实体的字符串描述
652
+ */
653
+ toString() {
654
+ return `Entity[${this.name}:${this.id}]`;
655
+ }
656
+ /**
657
+ * 获取实体的调试信息(包含组件缓存信息)
658
+ *
659
+ * @returns 包含实体详细信息的对象
660
+ */
661
+ getDebugInfo() {
662
+ return {
663
+ name: this.name,
664
+ id: this.id,
665
+ enabled: this._enabled,
666
+ active: this._active,
667
+ destroyed: this._isDestroyed,
668
+ componentCount: this.components.length,
669
+ componentTypes: this.components.map((c) => getComponentInstanceTypeName(c)),
670
+ componentMask: BitMask64Utils.toString(this._componentMask, 2),
671
+ cacheBuilt: this._componentCache !== null
672
+ };
673
+ }
674
+ }
675
+ /**
676
+ * Entity专用日志器
677
+ */
678
+ Entity._logger = createLogger('Entity');
679
+ /**
680
+ * 实体比较器实例
681
+ */
682
+ Entity.entityComparer = new EntityComparer();
683
+ //# sourceMappingURL=Entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Entity.js","sourceRoot":"","sources":["../../src/ECS/Entity.ts"],"names":[],"mappings":"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"}