@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
@@ -1,870 +0,0 @@
1
- import { getComponentInstanceTypeName } from '../../ECS/Decorators';
2
- import { HierarchyComponent } from '../../ECS/Components/HierarchyComponent';
3
- import { HierarchySystem } from '../../ECS/Systems/HierarchySystem';
4
- /**
5
- * 实体数据收集器
6
- */
7
- export class EntityDataCollector {
8
- /**
9
- * 收集实体数据
10
- * @param scene 场景实例
11
- */
12
- collectEntityData(scene) {
13
- if (!scene) {
14
- return this.getEmptyEntityDebugData();
15
- }
16
- const entityList = scene.entities;
17
- if (!entityList) {
18
- return this.getEmptyEntityDebugData();
19
- }
20
- let stats;
21
- try {
22
- stats = entityList.getStats ? entityList.getStats() : this.calculateFallbackEntityStats(entityList);
23
- }
24
- catch (error) {
25
- return {
26
- totalEntities: 0,
27
- activeEntities: 0,
28
- pendingAdd: 0,
29
- pendingRemove: 0,
30
- entitiesPerArchetype: [],
31
- topEntitiesByComponents: [],
32
- entityHierarchy: [],
33
- entityDetailsMap: {}
34
- };
35
- }
36
- const archetypeData = this.collectArchetypeData(scene);
37
- return {
38
- totalEntities: stats.totalEntities,
39
- activeEntities: stats.activeEntities,
40
- pendingAdd: stats.pendingAdd || 0,
41
- pendingRemove: stats.pendingRemove || 0,
42
- entitiesPerArchetype: archetypeData.distribution,
43
- topEntitiesByComponents: archetypeData.topEntities,
44
- entityHierarchy: [],
45
- entityDetailsMap: {}
46
- };
47
- }
48
- /**
49
- * 获取原始实体列表
50
- * @param scene 场景实例
51
- */
52
- getRawEntityList(scene) {
53
- if (!scene)
54
- return [];
55
- const entityList = scene.entities;
56
- if (!entityList?.buffer)
57
- return [];
58
- const hierarchySystem = scene.getSystem(HierarchySystem);
59
- return entityList.buffer.map((entity) => {
60
- const hierarchy = entity.getComponent(HierarchyComponent);
61
- const bActiveInHierarchy = hierarchySystem?.isActiveInHierarchy(entity) ?? entity.active;
62
- const depth = hierarchySystem?.getDepth(entity) ?? 0;
63
- return {
64
- id: entity.id,
65
- name: entity.name || `Entity_${entity.id}`,
66
- active: entity.active !== false,
67
- enabled: entity.enabled !== false,
68
- activeInHierarchy: bActiveInHierarchy,
69
- componentCount: entity.components.length,
70
- componentTypes: entity.components.map((component) => getComponentInstanceTypeName(component)),
71
- parentId: hierarchy?.parentId ?? null,
72
- childIds: hierarchy?.childIds ?? [],
73
- depth,
74
- tag: entity.tag || 0,
75
- updateOrder: entity.updateOrder || 0
76
- };
77
- });
78
- }
79
- /**
80
- * 获取实体详细信息
81
- * @param entityId 实体ID
82
- * @param scene 场景实例
83
- */
84
- getEntityDetails(entityId, scene) {
85
- try {
86
- if (!scene)
87
- return null;
88
- const entityList = scene.entities;
89
- if (!entityList?.buffer)
90
- return null;
91
- const entity = entityList.buffer.find((e) => e.id === entityId);
92
- if (!entity)
93
- return null;
94
- const baseDebugInfo = entity.getDebugInfo
95
- ? entity.getDebugInfo()
96
- : this.buildFallbackEntityInfo(entity, scene);
97
- const componentDetails = this.extractComponentDetails(entity.components);
98
- const sceneInfo = this.getSceneInfo(scene);
99
- return {
100
- ...baseDebugInfo,
101
- scene: sceneInfo.name,
102
- sceneName: sceneInfo.name,
103
- sceneType: sceneInfo.type,
104
- parentName: entity.parent?.name || null,
105
- components: componentDetails || [],
106
- componentCount: entity.components?.length || 0,
107
- componentTypes: entity.components?.map((comp) => getComponentInstanceTypeName(comp)) || []
108
- };
109
- }
110
- catch (error) {
111
- return {
112
- error: `获取实体详情失败: ${error instanceof Error ? error.message : String(error)}`,
113
- scene: '获取失败',
114
- components: [],
115
- componentCount: 0,
116
- componentTypes: []
117
- };
118
- }
119
- }
120
- getSceneInfo(scene) {
121
- let sceneName = '当前场景';
122
- let sceneType = 'Scene';
123
- try {
124
- if (scene.name && typeof scene.name === 'string' && scene.name.trim()) {
125
- sceneName = scene.name.trim();
126
- }
127
- else if (scene.constructor && scene.constructor.name) {
128
- sceneName = scene.constructor.name;
129
- sceneType = scene.constructor.name;
130
- }
131
- else if (scene._name && typeof scene._name === 'string' && scene._name.trim()) {
132
- sceneName = scene._name.trim();
133
- }
134
- else {
135
- const sceneClassName = Object.getPrototypeOf(scene)?.constructor?.name;
136
- if (sceneClassName && sceneClassName !== 'Object') {
137
- sceneName = sceneClassName;
138
- sceneType = sceneClassName;
139
- }
140
- }
141
- }
142
- catch (error) {
143
- sceneName = '场景名获取失败';
144
- }
145
- return { name: sceneName, type: sceneType };
146
- }
147
- /**
148
- * 收集实体数据(包含内存信息)
149
- * @param scene 场景实例
150
- */
151
- collectEntityDataWithMemory(scene) {
152
- if (!scene) {
153
- return this.getEmptyEntityDebugData();
154
- }
155
- const entityList = scene.entities;
156
- if (!entityList) {
157
- return this.getEmptyEntityDebugData();
158
- }
159
- let stats;
160
- try {
161
- stats = entityList.getStats ? entityList.getStats() : this.calculateFallbackEntityStats(entityList);
162
- }
163
- catch (error) {
164
- return {
165
- totalEntities: 0,
166
- activeEntities: 0,
167
- pendingAdd: 0,
168
- pendingRemove: 0,
169
- entitiesPerArchetype: [],
170
- topEntitiesByComponents: [],
171
- entityHierarchy: [],
172
- entityDetailsMap: {}
173
- };
174
- }
175
- const archetypeData = this.collectArchetypeDataWithMemory(scene);
176
- return {
177
- totalEntities: stats.totalEntities,
178
- activeEntities: stats.activeEntities,
179
- pendingAdd: stats.pendingAdd || 0,
180
- pendingRemove: stats.pendingRemove || 0,
181
- entitiesPerArchetype: archetypeData.distribution,
182
- topEntitiesByComponents: archetypeData.topEntities,
183
- entityHierarchy: this.buildEntityHierarchyTree(entityList, scene),
184
- entityDetailsMap: this.buildEntityDetailsMap(entityList, scene)
185
- };
186
- }
187
- collectArchetypeData(scene) {
188
- if (scene && scene.archetypeSystem && typeof scene.archetypeSystem.getAllArchetypes === 'function') {
189
- return this.extractArchetypeStatistics(scene.archetypeSystem);
190
- }
191
- const entityContainer = { entities: scene.entities?.buffer || [] };
192
- return {
193
- distribution: this.getArchetypeDistributionFast(entityContainer),
194
- topEntities: this.getTopEntitiesByComponentsFast(entityContainer)
195
- };
196
- }
197
- getArchetypeDistributionFast(entityContainer) {
198
- const distribution = new Map();
199
- if (entityContainer && entityContainer.entities) {
200
- entityContainer.entities.forEach((entity) => {
201
- const componentTypes = entity.components?.map((comp) => getComponentInstanceTypeName(comp)) || [];
202
- const signature = componentTypes.length > 0 ? componentTypes.sort().join(', ') : '无组件';
203
- const existing = distribution.get(signature);
204
- if (existing) {
205
- existing.count++;
206
- }
207
- else {
208
- distribution.set(signature, { count: 1, componentTypes });
209
- }
210
- });
211
- }
212
- return Array.from(distribution.entries())
213
- .map(([signature, data]) => ({
214
- signature,
215
- count: data.count,
216
- memory: 0
217
- }))
218
- .sort((a, b) => b.count - a.count)
219
- .slice(0, 20);
220
- }
221
- getTopEntitiesByComponentsFast(entityContainer) {
222
- if (!entityContainer || !entityContainer.entities) {
223
- return [];
224
- }
225
- return entityContainer.entities
226
- .map((entity) => ({
227
- id: entity.id.toString(),
228
- name: entity.name || `Entity_${entity.id}`,
229
- componentCount: entity.components?.length || 0,
230
- memory: 0
231
- }))
232
- .sort((a, b) => b.componentCount - a.componentCount);
233
- }
234
- collectArchetypeDataWithMemory(scene) {
235
- if (scene && scene.archetypeSystem && typeof scene.archetypeSystem.getAllArchetypes === 'function') {
236
- return this.extractArchetypeStatisticsWithMemory(scene.archetypeSystem);
237
- }
238
- const entityContainer = { entities: scene.entities?.buffer || [] };
239
- return {
240
- distribution: this.getArchetypeDistributionWithMemory(entityContainer),
241
- topEntities: this.getTopEntitiesByComponentsWithMemory(entityContainer)
242
- };
243
- }
244
- extractArchetypeStatistics(archetypeSystem) {
245
- const archetypes = archetypeSystem.getAllArchetypes();
246
- const distribution = [];
247
- const topEntities = [];
248
- archetypes.forEach((archetype) => {
249
- const signature = archetype.componentTypes?.map((type) => type.name).join(',') || 'Unknown';
250
- const entityCount = archetype.entities?.length || 0;
251
- distribution.push({
252
- signature,
253
- count: entityCount,
254
- memory: 0
255
- });
256
- if (archetype.entities) {
257
- archetype.entities.forEach((entity) => {
258
- topEntities.push({
259
- id: entity.id.toString(),
260
- name: entity.name || `Entity_${entity.id}`,
261
- componentCount: entity.components?.length || 0,
262
- memory: 0
263
- });
264
- });
265
- }
266
- });
267
- distribution.sort((a, b) => b.count - a.count);
268
- topEntities.sort((a, b) => b.componentCount - a.componentCount);
269
- return { distribution, topEntities };
270
- }
271
- extractArchetypeStatisticsWithMemory(archetypeSystem) {
272
- const archetypes = archetypeSystem.getAllArchetypes();
273
- const distribution = [];
274
- const topEntities = [];
275
- archetypes.forEach((archetype) => {
276
- const signature = archetype.componentTypes?.map((type) => type.name).join(',') || 'Unknown';
277
- const entityCount = archetype.entities?.length || 0;
278
- let actualMemory = 0;
279
- if (archetype.entities && archetype.entities.length > 0) {
280
- const sampleSize = Math.min(5, archetype.entities.length);
281
- let sampleMemory = 0;
282
- for (let i = 0; i < sampleSize; i++) {
283
- sampleMemory += this.estimateEntityMemoryUsage(archetype.entities[i]);
284
- }
285
- actualMemory = (sampleMemory / sampleSize) * entityCount;
286
- }
287
- distribution.push({
288
- signature,
289
- count: entityCount,
290
- memory: actualMemory
291
- });
292
- if (archetype.entities) {
293
- archetype.entities.forEach((entity) => {
294
- topEntities.push({
295
- id: entity.id.toString(),
296
- name: entity.name || `Entity_${entity.id}`,
297
- componentCount: entity.components?.length || 0,
298
- memory: this.estimateEntityMemoryUsage(entity)
299
- });
300
- });
301
- }
302
- });
303
- distribution.sort((a, b) => b.count - a.count);
304
- topEntities.sort((a, b) => b.componentCount - a.componentCount);
305
- return { distribution, topEntities };
306
- }
307
- getArchetypeDistributionWithMemory(entityContainer) {
308
- const distribution = new Map();
309
- if (entityContainer && entityContainer.entities) {
310
- entityContainer.entities.forEach((entity) => {
311
- const componentTypes = entity.components?.map((comp) => getComponentInstanceTypeName(comp)) || [];
312
- const signature = componentTypes.length > 0 ? componentTypes.sort().join(', ') : '无组件';
313
- const existing = distribution.get(signature);
314
- let memory = this.estimateEntityMemoryUsage(entity);
315
- if (isNaN(memory) || memory < 0) {
316
- memory = 0;
317
- }
318
- if (existing) {
319
- existing.count++;
320
- existing.memory += memory;
321
- }
322
- else {
323
- distribution.set(signature, { count: 1, memory, componentTypes });
324
- }
325
- });
326
- }
327
- return Array.from(distribution.entries())
328
- .map(([signature, data]) => ({
329
- signature,
330
- count: data.count,
331
- memory: isNaN(data.memory) ? 0 : data.memory
332
- }))
333
- .sort((a, b) => b.count - a.count);
334
- }
335
- getTopEntitiesByComponentsWithMemory(entityContainer) {
336
- if (!entityContainer || !entityContainer.entities) {
337
- return [];
338
- }
339
- return entityContainer.entities
340
- .map((entity) => ({
341
- id: entity.id.toString(),
342
- name: entity.name || `Entity_${entity.id}`,
343
- componentCount: entity.components?.length || 0,
344
- memory: this.estimateEntityMemoryUsage(entity)
345
- }))
346
- .sort((a, b) => b.componentCount - a.componentCount);
347
- }
348
- getEmptyEntityDebugData() {
349
- return {
350
- totalEntities: 0,
351
- activeEntities: 0,
352
- pendingAdd: 0,
353
- pendingRemove: 0,
354
- entitiesPerArchetype: [],
355
- topEntitiesByComponents: [],
356
- entityHierarchy: [],
357
- entityDetailsMap: {}
358
- };
359
- }
360
- calculateFallbackEntityStats(entityList) {
361
- const allEntities = entityList.buffer || [];
362
- const activeEntities = allEntities.filter((entity) => entity.enabled && !entity.isDestroyed);
363
- return {
364
- totalEntities: allEntities.length,
365
- activeEntities: activeEntities.length,
366
- pendingAdd: 0,
367
- pendingRemove: 0,
368
- averageComponentsPerEntity: activeEntities.length > 0
369
- ? allEntities.reduce((sum, e) => sum + (e.components?.length || 0), 0) /
370
- activeEntities.length
371
- : 0
372
- };
373
- }
374
- estimateEntityMemoryUsage(entity) {
375
- try {
376
- let totalSize = 0;
377
- const entitySize = this.calculateObjectSize(entity, ['components', 'children', 'parent']);
378
- if (!isNaN(entitySize) && entitySize > 0) {
379
- totalSize += entitySize;
380
- }
381
- if (entity.components && Array.isArray(entity.components)) {
382
- entity.components.forEach((component) => {
383
- const componentSize = this.calculateObjectSize(component, ['entity']);
384
- if (!isNaN(componentSize) && componentSize > 0) {
385
- totalSize += componentSize;
386
- }
387
- });
388
- }
389
- return isNaN(totalSize) || totalSize < 0 ? 0 : totalSize;
390
- }
391
- catch (error) {
392
- return 0;
393
- }
394
- }
395
- calculateObjectSize(obj, excludeKeys = []) {
396
- if (!obj || typeof obj !== 'object')
397
- return 0;
398
- const visited = new WeakSet();
399
- const maxDepth = 2;
400
- const calculate = (item, depth = 0) => {
401
- if (!item || typeof item !== 'object' || depth >= maxDepth) {
402
- return 0;
403
- }
404
- if (visited.has(item))
405
- return 0;
406
- visited.add(item);
407
- let itemSize = 32;
408
- try {
409
- const keys = Object.keys(item);
410
- const maxKeys = Math.min(keys.length, 20);
411
- for (let i = 0; i < maxKeys; i++) {
412
- const key = keys[i];
413
- if (!key ||
414
- excludeKeys.includes(key) ||
415
- key === 'constructor' ||
416
- key === '__proto__' ||
417
- key.startsWith('_cc_') ||
418
- key.startsWith('__')) {
419
- continue;
420
- }
421
- const value = item[key];
422
- itemSize += key.length * 2;
423
- if (typeof value === 'string') {
424
- itemSize += Math.min(value.length * 2, 200);
425
- }
426
- else if (typeof value === 'number') {
427
- itemSize += 8;
428
- }
429
- else if (typeof value === 'boolean') {
430
- itemSize += 4;
431
- }
432
- else if (Array.isArray(value)) {
433
- itemSize += 40 + Math.min(value.length * 8, 160);
434
- }
435
- else if (typeof value === 'object' && value !== null) {
436
- itemSize += calculate(value, depth + 1);
437
- }
438
- }
439
- }
440
- catch (error) {
441
- return 64;
442
- }
443
- return itemSize;
444
- };
445
- try {
446
- const size = calculate(obj);
447
- return Math.max(size, 32);
448
- }
449
- catch (error) {
450
- return 64;
451
- }
452
- }
453
- buildEntityHierarchyTree(entityList, scene) {
454
- if (!entityList?.buffer)
455
- return [];
456
- const hierarchySystem = scene?.getSystem(HierarchySystem);
457
- const rootEntities = [];
458
- entityList.buffer.forEach((entity) => {
459
- const hierarchy = entity.getComponent(HierarchyComponent);
460
- const bHasNoParent = hierarchy?.parentId === null || hierarchy?.parentId === undefined;
461
- if (bHasNoParent) {
462
- const hierarchyNode = this.buildEntityHierarchyNode(entity, hierarchySystem);
463
- rootEntities.push(hierarchyNode);
464
- }
465
- });
466
- // 按实体名称排序,提供一致的显示顺序
467
- rootEntities.sort((nodeA, nodeB) => {
468
- if (nodeA.name < nodeB.name)
469
- return -1;
470
- if (nodeA.name > nodeB.name)
471
- return 1;
472
- return nodeA.id - nodeB.id;
473
- });
474
- return rootEntities;
475
- }
476
- /**
477
- * 构建实体层次结构节点
478
- */
479
- buildEntityHierarchyNode(entity, hierarchySystem) {
480
- const hierarchy = entity.getComponent(HierarchyComponent);
481
- const bActiveInHierarchy = hierarchySystem?.isActiveInHierarchy(entity) ?? entity.active;
482
- const depth = hierarchySystem?.getDepth(entity) ?? 0;
483
- let node = {
484
- id: entity.id,
485
- name: entity.name || `Entity_${entity.id}`,
486
- active: entity.active !== false,
487
- enabled: entity.enabled !== false,
488
- activeInHierarchy: bActiveInHierarchy,
489
- componentCount: entity.components.length,
490
- componentTypes: entity.components.map((component) => getComponentInstanceTypeName(component)),
491
- parentId: hierarchy?.parentId ?? null,
492
- children: [],
493
- depth,
494
- tag: entity.tag || 0,
495
- updateOrder: entity.updateOrder || 0
496
- };
497
- // 递归构建子实体节点
498
- if (hierarchySystem) {
499
- const children = hierarchySystem.getChildren(entity);
500
- if (children.length > 0) {
501
- node.children = children.map((child) => this.buildEntityHierarchyNode(child, hierarchySystem));
502
- }
503
- }
504
- // 优先使用Entity的getDebugInfo方法
505
- if (typeof entity.getDebugInfo === 'function') {
506
- const debugInfo = entity.getDebugInfo();
507
- node = {
508
- ...node,
509
- ...debugInfo
510
- };
511
- }
512
- // 收集所有组件详细属性信息
513
- if (entity.components && entity.components.length > 0) {
514
- node.componentDetails = this.extractComponentDetails(entity.components);
515
- }
516
- return node;
517
- }
518
- /**
519
- * 构建实体详情映射
520
- */
521
- buildEntityDetailsMap(entityList, scene) {
522
- if (!entityList?.buffer)
523
- return {};
524
- const hierarchySystem = scene?.getSystem(HierarchySystem);
525
- const entityDetailsMap = {};
526
- const entities = entityList.buffer;
527
- const batchSize = 100;
528
- for (let i = 0; i < entities.length; i += batchSize) {
529
- const batch = entities.slice(i, i + batchSize);
530
- batch.forEach((entity) => {
531
- const baseDebugInfo = entity.getDebugInfo
532
- ? entity.getDebugInfo()
533
- : this.buildFallbackEntityInfo(entity, scene, hierarchySystem);
534
- const componentCacheStats = entity.getComponentCacheStats
535
- ? entity.getComponentCacheStats()
536
- : null;
537
- const componentDetails = this.extractComponentDetails(entity.components);
538
- // 获取父实体名称
539
- const parent = hierarchySystem?.getParent(entity);
540
- const parentName = parent?.name ?? null;
541
- entityDetailsMap[entity.id] = {
542
- ...baseDebugInfo,
543
- parentName,
544
- components: componentDetails,
545
- componentTypes: baseDebugInfo.componentTypes || componentDetails.map((comp) => comp.typeName),
546
- cachePerformance: componentCacheStats
547
- ? {
548
- hitRate: componentCacheStats.cacheStats.hitRate,
549
- size: componentCacheStats.cacheStats.size,
550
- maxSize: componentCacheStats.cacheStats.maxSize
551
- }
552
- : null
553
- };
554
- });
555
- }
556
- return entityDetailsMap;
557
- }
558
- /**
559
- * 构建实体基础信息
560
- */
561
- buildFallbackEntityInfo(entity, scene, hierarchySystem) {
562
- const sceneInfo = this.getSceneInfo(scene);
563
- const hierarchy = entity.getComponent(HierarchyComponent);
564
- const bActiveInHierarchy = hierarchySystem?.isActiveInHierarchy(entity) ?? entity.active;
565
- const depth = hierarchySystem?.getDepth(entity) ?? 0;
566
- return {
567
- name: entity.name || `Entity_${entity.id}`,
568
- id: entity.id,
569
- enabled: entity.enabled !== false,
570
- active: entity.active !== false,
571
- activeInHierarchy: bActiveInHierarchy,
572
- destroyed: entity.isDestroyed || false,
573
- scene: sceneInfo.name,
574
- sceneName: sceneInfo.name,
575
- sceneType: sceneInfo.type,
576
- componentCount: entity.components.length,
577
- componentTypes: entity.components.map((component) => getComponentInstanceTypeName(component)),
578
- componentMask: entity.componentMask?.toString() || '0',
579
- parentId: hierarchy?.parentId ?? null,
580
- childCount: hierarchy?.childIds?.length ?? 0,
581
- childIds: hierarchy?.childIds ?? [],
582
- depth,
583
- tag: entity.tag || 0,
584
- updateOrder: entity.updateOrder || 0
585
- };
586
- }
587
- /**
588
- * 提取组件详细信息
589
- */
590
- extractComponentDetails(components) {
591
- return components.map((component) => {
592
- const typeName = getComponentInstanceTypeName(component);
593
- const properties = {};
594
- try {
595
- const propertyKeys = Object.keys(component);
596
- propertyKeys.forEach((propertyKey) => {
597
- if (!propertyKey.startsWith('_') && propertyKey !== 'entity' && propertyKey !== 'constructor') {
598
- const propertyValue = component[propertyKey];
599
- if (propertyValue !== undefined && propertyValue !== null) {
600
- properties[propertyKey] = this.formatPropertyValue(propertyValue);
601
- }
602
- }
603
- });
604
- // 如果没有找到任何属性,添加一些调试信息
605
- if (Object.keys(properties).length === 0) {
606
- properties['_info'] = '该组件没有公开属性';
607
- properties['_componentId'] = getComponentInstanceTypeName(component);
608
- }
609
- }
610
- catch (error) {
611
- properties['_error'] = '属性提取失败';
612
- properties['_componentId'] = getComponentInstanceTypeName(component);
613
- }
614
- return {
615
- typeName: typeName,
616
- properties: properties
617
- };
618
- });
619
- }
620
- /**
621
- * 获取组件的完整属性信息(仅在需要时调用)
622
- * @param entityId 实体ID
623
- * @param componentIndex 组件索引
624
- * @param scene 场景实例
625
- */
626
- getComponentProperties(entityId, componentIndex, scene) {
627
- try {
628
- if (!scene)
629
- return {};
630
- const entityList = scene.entities;
631
- if (!entityList?.buffer)
632
- return {};
633
- const entity = entityList.buffer.find((e) => e.id === entityId);
634
- if (!entity || componentIndex >= entity.components.length)
635
- return {};
636
- const component = entity.components[componentIndex];
637
- const properties = {};
638
- const propertyKeys = Object.keys(component);
639
- propertyKeys.forEach((propertyKey) => {
640
- if (!propertyKey.startsWith('_') && propertyKey !== 'entity') {
641
- const propertyValue = component[propertyKey];
642
- if (propertyValue !== undefined && propertyValue !== null) {
643
- properties[propertyKey] = this.formatPropertyValue(propertyValue);
644
- }
645
- }
646
- });
647
- return properties;
648
- }
649
- catch (error) {
650
- return { _error: '属性提取失败' };
651
- }
652
- }
653
- /**
654
- * 格式化属性值
655
- */
656
- formatPropertyValue(value, depth = 0) {
657
- if (value === null || value === undefined) {
658
- return value;
659
- }
660
- if (typeof value !== 'object') {
661
- if (typeof value === 'string' && value.length > 200) {
662
- return `[长字符串: ${value.length}字符] ${value.substring(0, 100)}...`;
663
- }
664
- return value;
665
- }
666
- if (depth === 0) {
667
- return this.formatObjectFirstLevel(value);
668
- }
669
- else {
670
- return this.createLazyLoadPlaceholder(value);
671
- }
672
- }
673
- /**
674
- * 格式化对象第一层
675
- */
676
- formatObjectFirstLevel(obj) {
677
- try {
678
- if (Array.isArray(obj)) {
679
- if (obj.length === 0)
680
- return [];
681
- if (obj.length > 10) {
682
- const sample = obj.slice(0, 3).map((item) => this.formatPropertyValue(item, 1));
683
- return {
684
- _isLazyArray: true,
685
- _arrayLength: obj.length,
686
- _sample: sample,
687
- _summary: `数组[${obj.length}个元素]`
688
- };
689
- }
690
- return obj.map((item) => this.formatPropertyValue(item, 1));
691
- }
692
- const keys = Object.keys(obj);
693
- if (keys.length === 0)
694
- return {};
695
- const result = {};
696
- let processedCount = 0;
697
- const maxProperties = 15;
698
- for (const key of keys) {
699
- if (processedCount >= maxProperties) {
700
- result._hasMoreProperties = true;
701
- result._totalProperties = keys.length;
702
- result._hiddenCount = keys.length - processedCount;
703
- break;
704
- }
705
- if (key.startsWith('_') || key.startsWith('$') || typeof obj[key] === 'function') {
706
- continue;
707
- }
708
- try {
709
- const value = obj[key];
710
- if (value !== null && value !== undefined) {
711
- result[key] = this.formatPropertyValue(value, 1);
712
- processedCount++;
713
- }
714
- }
715
- catch (error) {
716
- result[key] = `[访问失败: ${error instanceof Error ? error.message : String(error)}]`;
717
- processedCount++;
718
- }
719
- }
720
- return result;
721
- }
722
- catch (error) {
723
- return `[对象解析失败: ${error instanceof Error ? error.message : String(error)}]`;
724
- }
725
- }
726
- /**
727
- * 创建懒加载占位符
728
- */
729
- createLazyLoadPlaceholder(obj) {
730
- try {
731
- const typeName = obj.constructor?.name || 'Object';
732
- const summary = this.getObjectSummary(obj, typeName);
733
- return {
734
- _isLazyObject: true,
735
- _typeName: typeName,
736
- _summary: summary,
737
- _objectId: this.generateObjectId(obj)
738
- };
739
- }
740
- catch (error) {
741
- return {
742
- _isLazyObject: true,
743
- _typeName: 'Unknown',
744
- _summary: `无法分析的对象: ${error instanceof Error ? error.message : String(error)}`,
745
- _objectId: Math.random().toString(36).substr(2, 9)
746
- };
747
- }
748
- }
749
- /**
750
- * 获取对象摘要信息
751
- */
752
- getObjectSummary(obj, typeName) {
753
- try {
754
- if (typeName.toLowerCase().includes('vec') || typeName.toLowerCase().includes('vector')) {
755
- if (obj.x !== undefined && obj.y !== undefined) {
756
- const z = obj.z !== undefined ? obj.z : '';
757
- return `${typeName}(${obj.x}, ${obj.y}${z ? ', ' + z : ''})`;
758
- }
759
- }
760
- if (typeName.toLowerCase().includes('color')) {
761
- if (obj.r !== undefined && obj.g !== undefined && obj.b !== undefined) {
762
- const a = obj.a !== undefined ? obj.a : 1;
763
- return `${typeName}(${obj.r}, ${obj.g}, ${obj.b}, ${a})`;
764
- }
765
- }
766
- if (typeName.toLowerCase().includes('node')) {
767
- const name = obj.name || obj._name || '未命名';
768
- return `${typeName}: ${name}`;
769
- }
770
- if (typeName.toLowerCase().includes('component')) {
771
- const nodeName = obj.node?.name || obj.node?._name || '';
772
- return `${typeName}${nodeName ? ` on ${nodeName}` : ''}`;
773
- }
774
- const keys = Object.keys(obj);
775
- if (keys.length === 0) {
776
- return `${typeName} (空对象)`;
777
- }
778
- return `${typeName} (${keys.length}个属性)`;
779
- }
780
- catch (error) {
781
- return `${typeName} (无法分析)`;
782
- }
783
- }
784
- /**
785
- * 生成对象ID
786
- */
787
- generateObjectId(obj) {
788
- try {
789
- if (obj.id !== undefined)
790
- return `obj_${obj.id}`;
791
- if (obj._id !== undefined)
792
- return `obj_${obj._id}`;
793
- if (obj.uuid !== undefined)
794
- return `obj_${obj.uuid}`;
795
- if (obj._uuid !== undefined)
796
- return `obj_${obj._uuid}`;
797
- return `obj_${Math.random().toString(36).substr(2, 9)}`;
798
- }
799
- catch {
800
- return `obj_${Math.random().toString(36).substr(2, 9)}`;
801
- }
802
- }
803
- /**
804
- * 展开懒加载对象(供调试面板调用)
805
- * @param entityId 实体ID
806
- * @param componentIndex 组件索引
807
- * @param propertyPath 属性路径
808
- * @param scene 场景实例
809
- */
810
- expandLazyObject(entityId, componentIndex, propertyPath, scene) {
811
- try {
812
- if (!scene)
813
- return null;
814
- const entityList = scene.entities;
815
- if (!entityList?.buffer)
816
- return null;
817
- // 找到对应的实体
818
- const entity = entityList.buffer.find((e) => e.id === entityId);
819
- if (!entity)
820
- return null;
821
- // 找到对应的组件
822
- if (componentIndex >= entity.components.length)
823
- return null;
824
- const component = entity.components[componentIndex];
825
- // 根据属性路径找到对象
826
- const targetObject = this.getObjectByPath(component, propertyPath);
827
- if (!targetObject)
828
- return null;
829
- // 展开这个对象的第一层属性
830
- return this.formatObjectFirstLevel(targetObject);
831
- }
832
- catch (error) {
833
- return {
834
- error: `展开失败: ${error instanceof Error ? error.message : String(error)}`
835
- };
836
- }
837
- }
838
- /**
839
- * 根据路径获取对象
840
- */
841
- getObjectByPath(root, path) {
842
- if (!path)
843
- return root;
844
- const parts = path.split('.');
845
- let current = root;
846
- for (const part of parts) {
847
- if (current === null || current === undefined)
848
- return null;
849
- // 处理数组索引
850
- if (part.includes('[') && part.includes(']')) {
851
- const arrayName = part.substring(0, part.indexOf('['));
852
- const index = parseInt(part.substring(part.indexOf('[') + 1, part.indexOf(']')));
853
- if (arrayName) {
854
- current = current[arrayName];
855
- }
856
- if (Array.isArray(current) && index >= 0 && index < current.length) {
857
- current = current[index];
858
- }
859
- else {
860
- return null;
861
- }
862
- }
863
- else {
864
- current = current[part];
865
- }
866
- }
867
- return current;
868
- }
869
- }
870
- //# sourceMappingURL=EntityDataCollector.js.map