@esengine/ecs-framework 2.3.0 → 2.3.1

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/dist/index.cjs +2 -0
  2. package/dist/index.cjs.map +1 -0
  3. package/dist/index.d.ts +13451 -0
  4. package/dist/index.es5.js +4 -0
  5. package/dist/index.es5.js.map +1 -0
  6. package/dist/index.mjs +2 -0
  7. package/dist/index.mjs.map +1 -0
  8. package/dist/index.umd.js +4 -0
  9. package/dist/index.umd.js.map +1 -0
  10. package/dist/package.json +47 -0
  11. package/package.json +87 -84
  12. package/bin/Core/DI/Decorators.d.ts +0 -206
  13. package/bin/Core/DI/Decorators.d.ts.map +0 -1
  14. package/bin/Core/DI/Decorators.js +0 -253
  15. package/bin/Core/DI/Decorators.js.map +0 -1
  16. package/bin/Core/DI/index.d.ts +0 -8
  17. package/bin/Core/DI/index.d.ts.map +0 -1
  18. package/bin/Core/DI/index.js +0 -7
  19. package/bin/Core/DI/index.js.map +0 -1
  20. package/bin/Core/Plugin.d.ts +0 -112
  21. package/bin/Core/Plugin.d.ts.map +0 -1
  22. package/bin/Core/Plugin.js +0 -19
  23. package/bin/Core/Plugin.js.map +0 -1
  24. package/bin/Core/PluginManager.d.ts +0 -118
  25. package/bin/Core/PluginManager.d.ts.map +0 -1
  26. package/bin/Core/PluginManager.js +0 -229
  27. package/bin/Core/PluginManager.js.map +0 -1
  28. package/bin/Core/ServiceContainer.d.ts +0 -221
  29. package/bin/Core/ServiceContainer.d.ts.map +0 -1
  30. package/bin/Core/ServiceContainer.js +0 -352
  31. package/bin/Core/ServiceContainer.js.map +0 -1
  32. package/bin/Core.d.ts +0 -379
  33. package/bin/Core.d.ts.map +0 -1
  34. package/bin/Core.js +0 -553
  35. package/bin/Core.js.map +0 -1
  36. package/bin/ECS/Component.d.ts +0 -104
  37. package/bin/ECS/Component.d.ts.map +0 -1
  38. package/bin/ECS/Component.js +0 -105
  39. package/bin/ECS/Component.js.map +0 -1
  40. package/bin/ECS/Components/HierarchyComponent.d.ts +0 -46
  41. package/bin/ECS/Components/HierarchyComponent.d.ts.map +0 -1
  42. package/bin/ECS/Components/HierarchyComponent.js +0 -65
  43. package/bin/ECS/Components/HierarchyComponent.js.map +0 -1
  44. package/bin/ECS/Components/index.d.ts +0 -2
  45. package/bin/ECS/Components/index.d.ts.map +0 -1
  46. package/bin/ECS/Components/index.js +0 -2
  47. package/bin/ECS/Components/index.js.map +0 -1
  48. package/bin/ECS/Core/ArchetypeSystem.d.ts +0 -103
  49. package/bin/ECS/Core/ArchetypeSystem.d.ts.map +0 -1
  50. package/bin/ECS/Core/ArchetypeSystem.js +0 -244
  51. package/bin/ECS/Core/ArchetypeSystem.js.map +0 -1
  52. package/bin/ECS/Core/CommandBuffer.d.ts +0 -154
  53. package/bin/ECS/Core/CommandBuffer.d.ts.map +0 -1
  54. package/bin/ECS/Core/CommandBuffer.js +0 -244
  55. package/bin/ECS/Core/CommandBuffer.js.map +0 -1
  56. package/bin/ECS/Core/ComponentPool.d.ts +0 -139
  57. package/bin/ECS/Core/ComponentPool.d.ts.map +0 -1
  58. package/bin/ECS/Core/ComponentPool.js +0 -276
  59. package/bin/ECS/Core/ComponentPool.js.map +0 -1
  60. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.d.ts +0 -127
  61. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.d.ts.map +0 -1
  62. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.js +0 -235
  63. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.js.map +0 -1
  64. package/bin/ECS/Core/ComponentStorage.d.ts +0 -185
  65. package/bin/ECS/Core/ComponentStorage.d.ts.map +0 -1
  66. package/bin/ECS/Core/ComponentStorage.js +0 -321
  67. package/bin/ECS/Core/ComponentStorage.js.map +0 -1
  68. package/bin/ECS/Core/EntityLifecyclePolicy.d.ts +0 -26
  69. package/bin/ECS/Core/EntityLifecyclePolicy.d.ts.map +0 -1
  70. package/bin/ECS/Core/EntityLifecyclePolicy.js +0 -2
  71. package/bin/ECS/Core/EntityLifecyclePolicy.js.map +0 -1
  72. package/bin/ECS/Core/EventBus.d.ts +0 -210
  73. package/bin/ECS/Core/EventBus.d.ts.map +0 -1
  74. package/bin/ECS/Core/EventBus.js +0 -370
  75. package/bin/ECS/Core/EventBus.js.map +0 -1
  76. package/bin/ECS/Core/EventSystem.d.ts +0 -225
  77. package/bin/ECS/Core/EventSystem.d.ts.map +0 -1
  78. package/bin/ECS/Core/EventSystem.js +0 -448
  79. package/bin/ECS/Core/EventSystem.js.map +0 -1
  80. package/bin/ECS/Core/Events/index.d.ts +0 -3
  81. package/bin/ECS/Core/Events/index.d.ts.map +0 -1
  82. package/bin/ECS/Core/Events/index.js +0 -3
  83. package/bin/ECS/Core/Events/index.js.map +0 -1
  84. package/bin/ECS/Core/FluentAPI/ComponentBuilder.d.ts +0 -35
  85. package/bin/ECS/Core/FluentAPI/ComponentBuilder.d.ts.map +0 -1
  86. package/bin/ECS/Core/FluentAPI/ComponentBuilder.js +0 -48
  87. package/bin/ECS/Core/FluentAPI/ComponentBuilder.js.map +0 -1
  88. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.d.ts +0 -135
  89. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.d.ts.map +0 -1
  90. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.js +0 -166
  91. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.js.map +0 -1
  92. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.d.ts +0 -58
  93. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.d.ts.map +0 -1
  94. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.js +0 -85
  95. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.js.map +0 -1
  96. package/bin/ECS/Core/FluentAPI/EntityBuilder.d.ts +0 -110
  97. package/bin/ECS/Core/FluentAPI/EntityBuilder.d.ts.map +0 -1
  98. package/bin/ECS/Core/FluentAPI/EntityBuilder.js +0 -181
  99. package/bin/ECS/Core/FluentAPI/EntityBuilder.js.map +0 -1
  100. package/bin/ECS/Core/FluentAPI/SceneBuilder.d.ts +0 -53
  101. package/bin/ECS/Core/FluentAPI/SceneBuilder.d.ts.map +0 -1
  102. package/bin/ECS/Core/FluentAPI/SceneBuilder.js +0 -79
  103. package/bin/ECS/Core/FluentAPI/SceneBuilder.js.map +0 -1
  104. package/bin/ECS/Core/FluentAPI/index.d.ts +0 -6
  105. package/bin/ECS/Core/FluentAPI/index.d.ts.map +0 -1
  106. package/bin/ECS/Core/FluentAPI/index.js +0 -6
  107. package/bin/ECS/Core/FluentAPI/index.js.map +0 -1
  108. package/bin/ECS/Core/FluentAPI.d.ts +0 -2
  109. package/bin/ECS/Core/FluentAPI.d.ts.map +0 -1
  110. package/bin/ECS/Core/FluentAPI.js +0 -3
  111. package/bin/ECS/Core/FluentAPI.js.map +0 -1
  112. package/bin/ECS/Core/Query/TypedQuery.d.ts +0 -214
  113. package/bin/ECS/Core/Query/TypedQuery.d.ts.map +0 -1
  114. package/bin/ECS/Core/Query/TypedQuery.js +0 -294
  115. package/bin/ECS/Core/Query/TypedQuery.js.map +0 -1
  116. package/bin/ECS/Core/Query/index.d.ts +0 -3
  117. package/bin/ECS/Core/Query/index.d.ts.map +0 -1
  118. package/bin/ECS/Core/Query/index.js +0 -3
  119. package/bin/ECS/Core/Query/index.js.map +0 -1
  120. package/bin/ECS/Core/QuerySystem.d.ts +0 -458
  121. package/bin/ECS/Core/QuerySystem.d.ts.map +0 -1
  122. package/bin/ECS/Core/QuerySystem.js +0 -1069
  123. package/bin/ECS/Core/QuerySystem.js.map +0 -1
  124. package/bin/ECS/Core/QueryTypes.d.ts +0 -34
  125. package/bin/ECS/Core/QueryTypes.d.ts.map +0 -1
  126. package/bin/ECS/Core/QueryTypes.js +0 -13
  127. package/bin/ECS/Core/QueryTypes.js.map +0 -1
  128. package/bin/ECS/Core/ReactiveQuery.d.ts +0 -211
  129. package/bin/ECS/Core/ReactiveQuery.d.ts.map +0 -1
  130. package/bin/ECS/Core/ReactiveQuery.js +0 -401
  131. package/bin/ECS/Core/ReactiveQuery.js.map +0 -1
  132. package/bin/ECS/Core/ReferenceTracker.d.ts +0 -111
  133. package/bin/ECS/Core/ReferenceTracker.d.ts.map +0 -1
  134. package/bin/ECS/Core/ReferenceTracker.js +0 -254
  135. package/bin/ECS/Core/ReferenceTracker.js.map +0 -1
  136. package/bin/ECS/Core/SoASerializer.d.ts +0 -28
  137. package/bin/ECS/Core/SoASerializer.d.ts.map +0 -1
  138. package/bin/ECS/Core/SoASerializer.js +0 -85
  139. package/bin/ECS/Core/SoASerializer.js.map +0 -1
  140. package/bin/ECS/Core/SoAStorage.d.ts +0 -129
  141. package/bin/ECS/Core/SoAStorage.d.ts.map +0 -1
  142. package/bin/ECS/Core/SoAStorage.js +0 -685
  143. package/bin/ECS/Core/SoAStorage.js.map +0 -1
  144. package/bin/ECS/Core/SoATypeRegistry.d.ts +0 -50
  145. package/bin/ECS/Core/SoATypeRegistry.d.ts.map +0 -1
  146. package/bin/ECS/Core/SoATypeRegistry.js +0 -135
  147. package/bin/ECS/Core/SoATypeRegistry.js.map +0 -1
  148. package/bin/ECS/Core/Storage/index.d.ts +0 -4
  149. package/bin/ECS/Core/Storage/index.d.ts.map +0 -1
  150. package/bin/ECS/Core/Storage/index.js +0 -4
  151. package/bin/ECS/Core/Storage/index.js.map +0 -1
  152. package/bin/ECS/Core/StorageDecorators.d.ts +0 -20
  153. package/bin/ECS/Core/StorageDecorators.d.ts.map +0 -1
  154. package/bin/ECS/Core/StorageDecorators.js +0 -27
  155. package/bin/ECS/Core/StorageDecorators.js.map +0 -1
  156. package/bin/ECS/CoreEvents.d.ts +0 -131
  157. package/bin/ECS/CoreEvents.d.ts.map +0 -1
  158. package/bin/ECS/CoreEvents.js +0 -163
  159. package/bin/ECS/CoreEvents.js.map +0 -1
  160. package/bin/ECS/Decorators/EntityRefDecorator.d.ts +0 -46
  161. package/bin/ECS/Decorators/EntityRefDecorator.d.ts.map +0 -1
  162. package/bin/ECS/Decorators/EntityRefDecorator.js +0 -118
  163. package/bin/ECS/Decorators/EntityRefDecorator.js.map +0 -1
  164. package/bin/ECS/Decorators/PropertyDecorator.d.ts +0 -168
  165. package/bin/ECS/Decorators/PropertyDecorator.d.ts.map +0 -1
  166. package/bin/ECS/Decorators/PropertyDecorator.js +0 -40
  167. package/bin/ECS/Decorators/PropertyDecorator.js.map +0 -1
  168. package/bin/ECS/Decorators/TypeDecorators.d.ts +0 -124
  169. package/bin/ECS/Decorators/TypeDecorators.d.ts.map +0 -1
  170. package/bin/ECS/Decorators/TypeDecorators.js +0 -151
  171. package/bin/ECS/Decorators/TypeDecorators.js.map +0 -1
  172. package/bin/ECS/Decorators/index.d.ts +0 -7
  173. package/bin/ECS/Decorators/index.d.ts.map +0 -1
  174. package/bin/ECS/Decorators/index.js +0 -4
  175. package/bin/ECS/Decorators/index.js.map +0 -1
  176. package/bin/ECS/Entity.d.ts +0 -415
  177. package/bin/ECS/Entity.d.ts.map +0 -1
  178. package/bin/ECS/Entity.js +0 -683
  179. package/bin/ECS/Entity.js.map +0 -1
  180. package/bin/ECS/EntityTags.d.ts +0 -71
  181. package/bin/ECS/EntityTags.d.ts.map +0 -1
  182. package/bin/ECS/EntityTags.js +0 -82
  183. package/bin/ECS/EntityTags.js.map +0 -1
  184. package/bin/ECS/IScene.d.ts +0 -308
  185. package/bin/ECS/IScene.d.ts.map +0 -1
  186. package/bin/ECS/IScene.js +0 -2
  187. package/bin/ECS/IScene.js.map +0 -1
  188. package/bin/ECS/Scene.d.ts +0 -799
  189. package/bin/ECS/Scene.d.ts.map +0 -1
  190. package/bin/ECS/Scene.js +0 -1203
  191. package/bin/ECS/Scene.js.map +0 -1
  192. package/bin/ECS/SceneManager.d.ts +0 -197
  193. package/bin/ECS/SceneManager.d.ts.map +0 -1
  194. package/bin/ECS/SceneManager.js +0 -264
  195. package/bin/ECS/SceneManager.js.map +0 -1
  196. package/bin/ECS/Serialization/ComponentSerializer.d.ts +0 -106
  197. package/bin/ECS/Serialization/ComponentSerializer.d.ts.map +0 -1
  198. package/bin/ECS/Serialization/ComponentSerializer.js +0 -251
  199. package/bin/ECS/Serialization/ComponentSerializer.js.map +0 -1
  200. package/bin/ECS/Serialization/EntitySerializer.d.ts +0 -111
  201. package/bin/ECS/Serialization/EntitySerializer.d.ts.map +0 -1
  202. package/bin/ECS/Serialization/EntitySerializer.js +0 -155
  203. package/bin/ECS/Serialization/EntitySerializer.js.map +0 -1
  204. package/bin/ECS/Serialization/IncrementalSerializer.d.ts +0 -259
  205. package/bin/ECS/Serialization/IncrementalSerializer.d.ts.map +0 -1
  206. package/bin/ECS/Serialization/IncrementalSerializer.js +0 -500
  207. package/bin/ECS/Serialization/IncrementalSerializer.js.map +0 -1
  208. package/bin/ECS/Serialization/SceneSerializer.d.ts +0 -213
  209. package/bin/ECS/Serialization/SceneSerializer.d.ts.map +0 -1
  210. package/bin/ECS/Serialization/SceneSerializer.js +0 -387
  211. package/bin/ECS/Serialization/SceneSerializer.js.map +0 -1
  212. package/bin/ECS/Serialization/SerializationDecorators.d.ts +0 -136
  213. package/bin/ECS/Serialization/SerializationDecorators.d.ts.map +0 -1
  214. package/bin/ECS/Serialization/SerializationDecorators.js +0 -216
  215. package/bin/ECS/Serialization/SerializationDecorators.js.map +0 -1
  216. package/bin/ECS/Serialization/VersionMigration.d.ts +0 -156
  217. package/bin/ECS/Serialization/VersionMigration.d.ts.map +0 -1
  218. package/bin/ECS/Serialization/VersionMigration.js +0 -279
  219. package/bin/ECS/Serialization/VersionMigration.js.map +0 -1
  220. package/bin/ECS/Serialization/index.d.ts +0 -18
  221. package/bin/ECS/Serialization/index.d.ts.map +0 -1
  222. package/bin/ECS/Serialization/index.js +0 -18
  223. package/bin/ECS/Serialization/index.js.map +0 -1
  224. package/bin/ECS/Systems/EntityCache.d.ts +0 -114
  225. package/bin/ECS/Systems/EntityCache.d.ts.map +0 -1
  226. package/bin/ECS/Systems/EntityCache.js +0 -145
  227. package/bin/ECS/Systems/EntityCache.js.map +0 -1
  228. package/bin/ECS/Systems/EntitySystem.d.ts +0 -591
  229. package/bin/ECS/Systems/EntitySystem.d.ts.map +0 -1
  230. package/bin/ECS/Systems/EntitySystem.js +0 -1102
  231. package/bin/ECS/Systems/EntitySystem.js.map +0 -1
  232. package/bin/ECS/Systems/HierarchySystem.d.ts +0 -155
  233. package/bin/ECS/Systems/HierarchySystem.d.ts.map +0 -1
  234. package/bin/ECS/Systems/HierarchySystem.js +0 -498
  235. package/bin/ECS/Systems/HierarchySystem.js.map +0 -1
  236. package/bin/ECS/Systems/IntervalSystem.d.ts +0 -33
  237. package/bin/ECS/Systems/IntervalSystem.d.ts.map +0 -1
  238. package/bin/ECS/Systems/IntervalSystem.js +0 -50
  239. package/bin/ECS/Systems/IntervalSystem.js.map +0 -1
  240. package/bin/ECS/Systems/PassiveSystem.d.ts +0 -17
  241. package/bin/ECS/Systems/PassiveSystem.d.ts.map +0 -1
  242. package/bin/ECS/Systems/PassiveSystem.js +0 -19
  243. package/bin/ECS/Systems/PassiveSystem.js.map +0 -1
  244. package/bin/ECS/Systems/ProcessingSystem.d.ts +0 -21
  245. package/bin/ECS/Systems/ProcessingSystem.d.ts.map +0 -1
  246. package/bin/ECS/Systems/ProcessingSystem.js +0 -20
  247. package/bin/ECS/Systems/ProcessingSystem.js.map +0 -1
  248. package/bin/ECS/Systems/WorkerEntitySystem.d.ts +0 -313
  249. package/bin/ECS/Systems/WorkerEntitySystem.d.ts.map +0 -1
  250. package/bin/ECS/Systems/WorkerEntitySystem.js +0 -792
  251. package/bin/ECS/Systems/WorkerEntitySystem.js.map +0 -1
  252. package/bin/ECS/Systems/index.d.ts +0 -8
  253. package/bin/ECS/Systems/index.d.ts.map +0 -1
  254. package/bin/ECS/Systems/index.js +0 -8
  255. package/bin/ECS/Systems/index.js.map +0 -1
  256. package/bin/ECS/TypedEntity.d.ts +0 -192
  257. package/bin/ECS/TypedEntity.d.ts.map +0 -1
  258. package/bin/ECS/TypedEntity.js +0 -254
  259. package/bin/ECS/TypedEntity.js.map +0 -1
  260. package/bin/ECS/Utils/BigIntCompatibility.d.ts +0 -151
  261. package/bin/ECS/Utils/BigIntCompatibility.d.ts.map +0 -1
  262. package/bin/ECS/Utils/BigIntCompatibility.js +0 -476
  263. package/bin/ECS/Utils/BigIntCompatibility.js.map +0 -1
  264. package/bin/ECS/Utils/BitMaskHashMap.d.ts +0 -28
  265. package/bin/ECS/Utils/BitMaskHashMap.d.ts.map +0 -1
  266. package/bin/ECS/Utils/BitMaskHashMap.js +0 -127
  267. package/bin/ECS/Utils/BitMaskHashMap.js.map +0 -1
  268. package/bin/ECS/Utils/Bits.d.ts +0 -154
  269. package/bin/ECS/Utils/Bits.d.ts.map +0 -1
  270. package/bin/ECS/Utils/Bits.js +0 -331
  271. package/bin/ECS/Utils/Bits.js.map +0 -1
  272. package/bin/ECS/Utils/ComponentSparseSet.d.ts +0 -143
  273. package/bin/ECS/Utils/ComponentSparseSet.d.ts.map +0 -1
  274. package/bin/ECS/Utils/ComponentSparseSet.js +0 -347
  275. package/bin/ECS/Utils/ComponentSparseSet.js.map +0 -1
  276. package/bin/ECS/Utils/EntityList.d.ts +0 -115
  277. package/bin/ECS/Utils/EntityList.d.ts.map +0 -1
  278. package/bin/ECS/Utils/EntityList.js +0 -258
  279. package/bin/ECS/Utils/EntityList.js.map +0 -1
  280. package/bin/ECS/Utils/EntityProcessorList.d.ts +0 -56
  281. package/bin/ECS/Utils/EntityProcessorList.d.ts.map +0 -1
  282. package/bin/ECS/Utils/EntityProcessorList.js +0 -113
  283. package/bin/ECS/Utils/EntityProcessorList.js.map +0 -1
  284. package/bin/ECS/Utils/IdentifierPool.d.ts +0 -203
  285. package/bin/ECS/Utils/IdentifierPool.d.ts.map +0 -1
  286. package/bin/ECS/Utils/IdentifierPool.js +0 -325
  287. package/bin/ECS/Utils/IdentifierPool.js.map +0 -1
  288. package/bin/ECS/Utils/Matcher.d.ts +0 -171
  289. package/bin/ECS/Utils/Matcher.d.ts.map +0 -1
  290. package/bin/ECS/Utils/Matcher.js +0 -293
  291. package/bin/ECS/Utils/Matcher.js.map +0 -1
  292. package/bin/ECS/Utils/SparseSet.d.ts +0 -170
  293. package/bin/ECS/Utils/SparseSet.d.ts.map +0 -1
  294. package/bin/ECS/Utils/SparseSet.js +0 -280
  295. package/bin/ECS/Utils/SparseSet.js.map +0 -1
  296. package/bin/ECS/Utils/index.d.ts +0 -9
  297. package/bin/ECS/Utils/index.d.ts.map +0 -1
  298. package/bin/ECS/Utils/index.js +0 -10
  299. package/bin/ECS/Utils/index.js.map +0 -1
  300. package/bin/ECS/World.d.ts +0 -238
  301. package/bin/ECS/World.d.ts.map +0 -1
  302. package/bin/ECS/World.js +0 -416
  303. package/bin/ECS/World.js.map +0 -1
  304. package/bin/ECS/WorldManager.d.ts +0 -224
  305. package/bin/ECS/WorldManager.d.ts.map +0 -1
  306. package/bin/ECS/WorldManager.js +0 -365
  307. package/bin/ECS/WorldManager.js.map +0 -1
  308. package/bin/ECS/index.d.ts +0 -26
  309. package/bin/ECS/index.d.ts.map +0 -1
  310. package/bin/ECS/index.js +0 -21
  311. package/bin/ECS/index.js.map +0 -1
  312. package/bin/Platform/IPlatformAdapter.d.ts +0 -169
  313. package/bin/Platform/IPlatformAdapter.d.ts.map +0 -1
  314. package/bin/Platform/IPlatformAdapter.js +0 -2
  315. package/bin/Platform/IPlatformAdapter.js.map +0 -1
  316. package/bin/Platform/PlatformDetector.d.ts +0 -56
  317. package/bin/Platform/PlatformDetector.d.ts.map +0 -1
  318. package/bin/Platform/PlatformDetector.js +0 -247
  319. package/bin/Platform/PlatformDetector.js.map +0 -1
  320. package/bin/Platform/PlatformManager.d.ts +0 -50
  321. package/bin/Platform/PlatformManager.d.ts.map +0 -1
  322. package/bin/Platform/PlatformManager.js +0 -114
  323. package/bin/Platform/PlatformManager.js.map +0 -1
  324. package/bin/Platform/index.d.ts +0 -19
  325. package/bin/Platform/index.d.ts.map +0 -1
  326. package/bin/Platform/index.js +0 -29
  327. package/bin/Platform/index.js.map +0 -1
  328. package/bin/Plugins/DebugPlugin.d.ts +0 -156
  329. package/bin/Plugins/DebugPlugin.d.ts.map +0 -1
  330. package/bin/Plugins/DebugPlugin.js +0 -248
  331. package/bin/Plugins/DebugPlugin.js.map +0 -1
  332. package/bin/Plugins/index.d.ts +0 -2
  333. package/bin/Plugins/index.d.ts.map +0 -1
  334. package/bin/Plugins/index.js +0 -2
  335. package/bin/Plugins/index.js.map +0 -1
  336. package/bin/Types/IUpdatable.d.ts +0 -18
  337. package/bin/Types/IUpdatable.d.ts.map +0 -1
  338. package/bin/Types/IUpdatable.js +0 -7
  339. package/bin/Types/IUpdatable.js.map +0 -1
  340. package/bin/Types/TypeHelpers.d.ts +0 -238
  341. package/bin/Types/TypeHelpers.d.ts.map +0 -1
  342. package/bin/Types/TypeHelpers.js +0 -19
  343. package/bin/Types/TypeHelpers.js.map +0 -1
  344. package/bin/Types/index.d.ts +0 -466
  345. package/bin/Types/index.d.ts.map +0 -1
  346. package/bin/Types/index.js +0 -7
  347. package/bin/Types/index.js.map +0 -1
  348. package/bin/Utils/BinarySerializer.d.ts +0 -23
  349. package/bin/Utils/BinarySerializer.d.ts.map +0 -1
  350. package/bin/Utils/BinarySerializer.js +0 -100
  351. package/bin/Utils/BinarySerializer.js.map +0 -1
  352. package/bin/Utils/Debug/AdvancedProfilerCollector.d.ts +0 -153
  353. package/bin/Utils/Debug/AdvancedProfilerCollector.d.ts.map +0 -1
  354. package/bin/Utils/Debug/AdvancedProfilerCollector.js +0 -406
  355. package/bin/Utils/Debug/AdvancedProfilerCollector.js.map +0 -1
  356. package/bin/Utils/Debug/ComponentDataCollector.d.ts +0 -32
  357. package/bin/Utils/Debug/ComponentDataCollector.d.ts.map +0 -1
  358. package/bin/Utils/Debug/ComponentDataCollector.js +0 -250
  359. package/bin/Utils/Debug/ComponentDataCollector.js.map +0 -1
  360. package/bin/Utils/Debug/DebugConfigService.d.ts +0 -16
  361. package/bin/Utils/Debug/DebugConfigService.d.ts.map +0 -1
  362. package/bin/Utils/Debug/DebugConfigService.js +0 -42
  363. package/bin/Utils/Debug/DebugConfigService.js.map +0 -1
  364. package/bin/Utils/Debug/DebugManager.d.ts +0 -131
  365. package/bin/Utils/Debug/DebugManager.d.ts.map +0 -1
  366. package/bin/Utils/Debug/DebugManager.js +0 -848
  367. package/bin/Utils/Debug/DebugManager.js.map +0 -1
  368. package/bin/Utils/Debug/EntityDataCollector.d.ts +0 -115
  369. package/bin/Utils/Debug/EntityDataCollector.d.ts.map +0 -1
  370. package/bin/Utils/Debug/EntityDataCollector.js +0 -870
  371. package/bin/Utils/Debug/EntityDataCollector.js.map +0 -1
  372. package/bin/Utils/Debug/PerformanceDataCollector.d.ts +0 -31
  373. package/bin/Utils/Debug/PerformanceDataCollector.d.ts.map +0 -1
  374. package/bin/Utils/Debug/PerformanceDataCollector.js +0 -203
  375. package/bin/Utils/Debug/PerformanceDataCollector.js.map +0 -1
  376. package/bin/Utils/Debug/SceneDataCollector.d.ts +0 -18
  377. package/bin/Utils/Debug/SceneDataCollector.d.ts.map +0 -1
  378. package/bin/Utils/Debug/SceneDataCollector.js +0 -43
  379. package/bin/Utils/Debug/SceneDataCollector.js.map +0 -1
  380. package/bin/Utils/Debug/SystemDataCollector.d.ts +0 -14
  381. package/bin/Utils/Debug/SystemDataCollector.d.ts.map +0 -1
  382. package/bin/Utils/Debug/SystemDataCollector.js +0 -60
  383. package/bin/Utils/Debug/SystemDataCollector.js.map +0 -1
  384. package/bin/Utils/Debug/WebSocketManager.d.ts +0 -54
  385. package/bin/Utils/Debug/WebSocketManager.d.ts.map +0 -1
  386. package/bin/Utils/Debug/WebSocketManager.js +0 -141
  387. package/bin/Utils/Debug/WebSocketManager.js.map +0 -1
  388. package/bin/Utils/Debug/index.d.ts +0 -11
  389. package/bin/Utils/Debug/index.d.ts.map +0 -1
  390. package/bin/Utils/Debug/index.js +0 -10
  391. package/bin/Utils/Debug/index.js.map +0 -1
  392. package/bin/Utils/Emitter.d.ts +0 -61
  393. package/bin/Utils/Emitter.d.ts.map +0 -1
  394. package/bin/Utils/Emitter.js +0 -101
  395. package/bin/Utils/Emitter.js.map +0 -1
  396. package/bin/Utils/Extensions/NumberExtension.d.ts +0 -13
  397. package/bin/Utils/Extensions/NumberExtension.d.ts.map +0 -1
  398. package/bin/Utils/Extensions/NumberExtension.js +0 -17
  399. package/bin/Utils/Extensions/NumberExtension.js.map +0 -1
  400. package/bin/Utils/Extensions/TypeUtils.d.ts +0 -13
  401. package/bin/Utils/Extensions/TypeUtils.d.ts.map +0 -1
  402. package/bin/Utils/Extensions/TypeUtils.js +0 -15
  403. package/bin/Utils/Extensions/TypeUtils.js.map +0 -1
  404. package/bin/Utils/Extensions/index.d.ts +0 -3
  405. package/bin/Utils/Extensions/index.d.ts.map +0 -1
  406. package/bin/Utils/Extensions/index.js +0 -4
  407. package/bin/Utils/Extensions/index.js.map +0 -1
  408. package/bin/Utils/GlobalManager.d.ts +0 -29
  409. package/bin/Utils/GlobalManager.d.ts.map +0 -1
  410. package/bin/Utils/GlobalManager.js +0 -50
  411. package/bin/Utils/GlobalManager.js.map +0 -1
  412. package/bin/Utils/Logger/ConsoleLogger.d.ts +0 -74
  413. package/bin/Utils/Logger/ConsoleLogger.d.ts.map +0 -1
  414. package/bin/Utils/Logger/ConsoleLogger.js +0 -187
  415. package/bin/Utils/Logger/ConsoleLogger.js.map +0 -1
  416. package/bin/Utils/Logger/Constants.d.ts +0 -36
  417. package/bin/Utils/Logger/Constants.d.ts.map +0 -1
  418. package/bin/Utils/Logger/Constants.js +0 -40
  419. package/bin/Utils/Logger/Constants.js.map +0 -1
  420. package/bin/Utils/Logger/LoggerManager.d.ts +0 -91
  421. package/bin/Utils/Logger/LoggerManager.d.ts.map +0 -1
  422. package/bin/Utils/Logger/LoggerManager.js +0 -167
  423. package/bin/Utils/Logger/LoggerManager.js.map +0 -1
  424. package/bin/Utils/Logger/Types.d.ts +0 -40
  425. package/bin/Utils/Logger/Types.d.ts.map +0 -1
  426. package/bin/Utils/Logger/Types.js +0 -2
  427. package/bin/Utils/Logger/Types.js.map +0 -1
  428. package/bin/Utils/Logger/index.d.ts +0 -5
  429. package/bin/Utils/Logger/index.d.ts.map +0 -1
  430. package/bin/Utils/Logger/index.js +0 -5
  431. package/bin/Utils/Logger/index.js.map +0 -1
  432. package/bin/Utils/PerformanceMonitor.d.ts +0 -196
  433. package/bin/Utils/PerformanceMonitor.d.ts.map +0 -1
  434. package/bin/Utils/PerformanceMonitor.js +0 -244
  435. package/bin/Utils/PerformanceMonitor.js.map +0 -1
  436. package/bin/Utils/Pool/IPoolable.d.ts +0 -29
  437. package/bin/Utils/Pool/IPoolable.d.ts.map +0 -1
  438. package/bin/Utils/Pool/IPoolable.js +0 -2
  439. package/bin/Utils/Pool/IPoolable.js.map +0 -1
  440. package/bin/Utils/Pool/Pool.d.ts +0 -109
  441. package/bin/Utils/Pool/Pool.d.ts.map +0 -1
  442. package/bin/Utils/Pool/Pool.js +0 -238
  443. package/bin/Utils/Pool/Pool.js.map +0 -1
  444. package/bin/Utils/Pool/PoolManager.d.ts +0 -96
  445. package/bin/Utils/Pool/PoolManager.d.ts.map +0 -1
  446. package/bin/Utils/Pool/PoolManager.js +0 -199
  447. package/bin/Utils/Pool/PoolManager.js.map +0 -1
  448. package/bin/Utils/Pool/index.d.ts +0 -4
  449. package/bin/Utils/Pool/index.d.ts.map +0 -1
  450. package/bin/Utils/Pool/index.js +0 -4
  451. package/bin/Utils/Pool/index.js.map +0 -1
  452. package/bin/Utils/Profiler/AutoProfiler.d.ts +0 -160
  453. package/bin/Utils/Profiler/AutoProfiler.d.ts.map +0 -1
  454. package/bin/Utils/Profiler/AutoProfiler.js +0 -503
  455. package/bin/Utils/Profiler/AutoProfiler.js.map +0 -1
  456. package/bin/Utils/Profiler/ProfilerSDK.d.ts +0 -175
  457. package/bin/Utils/Profiler/ProfilerSDK.d.ts.map +0 -1
  458. package/bin/Utils/Profiler/ProfilerSDK.js +0 -727
  459. package/bin/Utils/Profiler/ProfilerSDK.js.map +0 -1
  460. package/bin/Utils/Profiler/ProfilerTypes.d.ts +0 -218
  461. package/bin/Utils/Profiler/ProfilerTypes.d.ts.map +0 -1
  462. package/bin/Utils/Profiler/ProfilerTypes.js +0 -47
  463. package/bin/Utils/Profiler/ProfilerTypes.js.map +0 -1
  464. package/bin/Utils/Profiler/index.d.ts +0 -8
  465. package/bin/Utils/Profiler/index.d.ts.map +0 -1
  466. package/bin/Utils/Profiler/index.js +0 -7
  467. package/bin/Utils/Profiler/index.js.map +0 -1
  468. package/bin/Utils/Time.d.ts +0 -47
  469. package/bin/Utils/Time.d.ts.map +0 -1
  470. package/bin/Utils/Time.js +0 -64
  471. package/bin/Utils/Time.js.map +0 -1
  472. package/bin/Utils/Timers/ITimer.d.ts +0 -16
  473. package/bin/Utils/Timers/ITimer.d.ts.map +0 -1
  474. package/bin/Utils/Timers/ITimer.js +0 -2
  475. package/bin/Utils/Timers/ITimer.js.map +0 -1
  476. package/bin/Utils/Timers/Timer.d.ts +0 -30
  477. package/bin/Utils/Timers/Timer.d.ts.map +0 -1
  478. package/bin/Utils/Timers/Timer.js +0 -58
  479. package/bin/Utils/Timers/Timer.js.map +0 -1
  480. package/bin/Utils/Timers/TimerManager.d.ts +0 -26
  481. package/bin/Utils/Timers/TimerManager.d.ts.map +0 -1
  482. package/bin/Utils/Timers/TimerManager.js +0 -48
  483. package/bin/Utils/Timers/TimerManager.js.map +0 -1
  484. package/bin/Utils/index.d.ts +0 -11
  485. package/bin/Utils/index.d.ts.map +0 -1
  486. package/bin/Utils/index.js +0 -11
  487. package/bin/Utils/index.js.map +0 -1
  488. package/bin/index.d.ts +0 -29
  489. package/bin/index.d.ts.map +0 -1
  490. package/bin/index.js +0 -36
  491. package/bin/index.js.map +0 -1
package/bin/ECS/Entity.js DELETED
@@ -1,683 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"Entity.js","sourceRoot":"","sources":["../../src/ECS/Entity.ts"],"names":[],"mappings":"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"}