@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,498 +0,0 @@
1
- import { EntitySystem } from './EntitySystem';
2
- import { Matcher } from '../Utils/Matcher';
3
- import { HierarchyComponent } from '../Components/HierarchyComponent';
4
- /**
5
- * 层级关系系统 - 管理实体间的父子关系
6
- *
7
- * 提供层级操作的统一 API,维护层级缓存(depth、activeInHierarchy)。
8
- * 所有层级操作应通过此系统进行,而非直接修改 HierarchyComponent。
9
- *
10
- * @example
11
- * ```typescript
12
- * const hierarchySystem = scene.getSystem(HierarchySystem);
13
- *
14
- * // 设置父子关系
15
- * hierarchySystem.setParent(child, parent);
16
- *
17
- * // 查询层级
18
- * const parent = hierarchySystem.getParent(entity);
19
- * const children = hierarchySystem.getChildren(entity);
20
- * const depth = hierarchySystem.getDepth(entity);
21
- * ```
22
- */
23
- export class HierarchySystem extends EntitySystem {
24
- constructor() {
25
- super(Matcher.empty().all(HierarchyComponent));
26
- /**
27
- * 脏实体集合 - 只有这些实体需要在 process() 中更新缓存
28
- * Dirty entity set - only these entities need cache update in process()
29
- */
30
- this.dirtyEntities = new Set();
31
- }
32
- /**
33
- * 系统优先级,确保在其他系统之前更新层级缓存
34
- */
35
- get updateOrder() {
36
- return -1000;
37
- }
38
- process(_entities) {
39
- // 只更新脏实体,不遍历所有实体 | Only update dirty entities, no full iteration
40
- if (this.dirtyEntities.size === 0) {
41
- return;
42
- }
43
- for (const entity of this.dirtyEntities) {
44
- // 确保实体仍然有效 | Ensure entity is still valid
45
- if (entity.scene) {
46
- this.updateHierarchyCache(entity);
47
- }
48
- }
49
- this.dirtyEntities.clear();
50
- }
51
- /**
52
- * 设置实体的父级
53
- *
54
- * @param child - 子实体
55
- * @param parent - 父实体,null 表示移动到根级
56
- */
57
- setParent(child, parent) {
58
- let childHierarchy = child.getComponent(HierarchyComponent);
59
- // 如果子实体没有 HierarchyComponent,自动添加
60
- if (!childHierarchy) {
61
- childHierarchy = new HierarchyComponent();
62
- child.addComponent(childHierarchy);
63
- }
64
- // 检查是否需要变更
65
- const currentParentId = childHierarchy.parentId;
66
- const newParentId = parent?.id ?? null;
67
- if (currentParentId === newParentId) {
68
- return;
69
- }
70
- // 防止循环引用
71
- if (parent && this.isAncestorOf(child, parent)) {
72
- throw new Error('Cannot set parent: would create circular reference');
73
- }
74
- // 从旧父级移除
75
- if (currentParentId !== null) {
76
- const oldParent = this.scene?.findEntityById(currentParentId);
77
- if (oldParent) {
78
- const oldParentHierarchy = oldParent.getComponent(HierarchyComponent);
79
- if (oldParentHierarchy) {
80
- const idx = oldParentHierarchy.childIds.indexOf(child.id);
81
- if (idx !== -1) {
82
- oldParentHierarchy.childIds.splice(idx, 1);
83
- }
84
- }
85
- }
86
- }
87
- // 添加到新父级
88
- if (parent) {
89
- let parentHierarchy = parent.getComponent(HierarchyComponent);
90
- if (!parentHierarchy) {
91
- parentHierarchy = new HierarchyComponent();
92
- parent.addComponent(parentHierarchy);
93
- }
94
- childHierarchy.parentId = parent.id;
95
- parentHierarchy.childIds.push(child.id);
96
- }
97
- else {
98
- childHierarchy.parentId = null;
99
- }
100
- // 标记缓存脏
101
- this.markCacheDirty(child);
102
- }
103
- /**
104
- * 在指定位置插入子实体
105
- *
106
- * @param parent - 父实体
107
- * @param child - 子实体
108
- * @param index - 插入位置索引,-1 表示追加到末尾
109
- */
110
- insertChildAt(parent, child, index) {
111
- let childHierarchy = child.getComponent(HierarchyComponent);
112
- let parentHierarchy = parent.getComponent(HierarchyComponent);
113
- // 自动添加 HierarchyComponent
114
- if (!childHierarchy) {
115
- childHierarchy = new HierarchyComponent();
116
- child.addComponent(childHierarchy);
117
- }
118
- if (!parentHierarchy) {
119
- parentHierarchy = new HierarchyComponent();
120
- parent.addComponent(parentHierarchy);
121
- }
122
- // 防止循环引用
123
- if (this.isAncestorOf(child, parent)) {
124
- throw new Error('Cannot set parent: would create circular reference');
125
- }
126
- // 从旧父级移除
127
- if (childHierarchy.parentId !== null && childHierarchy.parentId !== parent.id) {
128
- const oldParent = this.scene?.findEntityById(childHierarchy.parentId);
129
- if (oldParent) {
130
- const oldParentHierarchy = oldParent.getComponent(HierarchyComponent);
131
- if (oldParentHierarchy) {
132
- const idx = oldParentHierarchy.childIds.indexOf(child.id);
133
- if (idx !== -1) {
134
- oldParentHierarchy.childIds.splice(idx, 1);
135
- }
136
- }
137
- }
138
- }
139
- // 设置新父级
140
- childHierarchy.parentId = parent.id;
141
- // 从当前父级的子列表中移除(如果已存在)
142
- const existingIdx = parentHierarchy.childIds.indexOf(child.id);
143
- if (existingIdx !== -1) {
144
- parentHierarchy.childIds.splice(existingIdx, 1);
145
- }
146
- // 插入到指定位置
147
- if (index < 0 || index >= parentHierarchy.childIds.length) {
148
- parentHierarchy.childIds.push(child.id);
149
- }
150
- else {
151
- parentHierarchy.childIds.splice(index, 0, child.id);
152
- }
153
- // 标记缓存脏
154
- this.markCacheDirty(child);
155
- }
156
- /**
157
- * 移除子实体(将其移动到根级)
158
- */
159
- removeChild(parent, child) {
160
- const parentHierarchy = parent.getComponent(HierarchyComponent);
161
- const childHierarchy = child.getComponent(HierarchyComponent);
162
- if (!parentHierarchy || !childHierarchy) {
163
- return false;
164
- }
165
- if (childHierarchy.parentId !== parent.id) {
166
- return false;
167
- }
168
- const idx = parentHierarchy.childIds.indexOf(child.id);
169
- if (idx !== -1) {
170
- parentHierarchy.childIds.splice(idx, 1);
171
- }
172
- childHierarchy.parentId = null;
173
- this.markCacheDirty(child);
174
- return true;
175
- }
176
- /**
177
- * 移除所有子实体
178
- */
179
- removeAllChildren(parent) {
180
- const parentHierarchy = parent.getComponent(HierarchyComponent);
181
- if (!parentHierarchy)
182
- return;
183
- const childIds = [...parentHierarchy.childIds];
184
- for (const childId of childIds) {
185
- const child = this.scene?.findEntityById(childId);
186
- if (child) {
187
- this.removeChild(parent, child);
188
- }
189
- }
190
- }
191
- /**
192
- * 获取实体的父级
193
- */
194
- getParent(entity) {
195
- const hierarchy = entity.getComponent(HierarchyComponent);
196
- if (!hierarchy || hierarchy.parentId === null) {
197
- return null;
198
- }
199
- return this.scene?.findEntityById(hierarchy.parentId) ?? null;
200
- }
201
- /**
202
- * 获取实体的子级列表
203
- */
204
- getChildren(entity) {
205
- const hierarchy = entity.getComponent(HierarchyComponent);
206
- if (!hierarchy)
207
- return [];
208
- const children = [];
209
- for (const childId of hierarchy.childIds) {
210
- const child = this.scene?.findEntityById(childId);
211
- if (child) {
212
- children.push(child);
213
- }
214
- }
215
- return children;
216
- }
217
- /**
218
- * 获取子级数量
219
- */
220
- getChildCount(entity) {
221
- const hierarchy = entity.getComponent(HierarchyComponent);
222
- return hierarchy?.childIds.length ?? 0;
223
- }
224
- /**
225
- * 检查实体是否有子级
226
- */
227
- hasChildren(entity) {
228
- return this.getChildCount(entity) > 0;
229
- }
230
- /**
231
- * 检查 ancestor 是否是 entity 的祖先
232
- */
233
- isAncestorOf(ancestor, entity) {
234
- let current = this.getParent(entity);
235
- let depth = 0;
236
- while (current && depth < HierarchySystem.MAX_DEPTH) {
237
- if (current.id === ancestor.id) {
238
- return true;
239
- }
240
- current = this.getParent(current);
241
- depth++;
242
- }
243
- return false;
244
- }
245
- /**
246
- * 检查 descendant 是否是 entity 的后代
247
- */
248
- isDescendantOf(descendant, entity) {
249
- return this.isAncestorOf(entity, descendant);
250
- }
251
- /**
252
- * 获取根实体
253
- */
254
- getRoot(entity) {
255
- let current = entity;
256
- let parent = this.getParent(current);
257
- let depth = 0;
258
- while (parent && depth < HierarchySystem.MAX_DEPTH) {
259
- current = parent;
260
- parent = this.getParent(current);
261
- depth++;
262
- }
263
- return current;
264
- }
265
- /**
266
- * 获取实体在层级中的深度
267
- */
268
- getDepth(entity) {
269
- const hierarchy = entity.getComponent(HierarchyComponent);
270
- if (!hierarchy)
271
- return 0;
272
- // 如果缓存有效,直接返回
273
- if (!hierarchy.bCacheDirty) {
274
- return hierarchy.depth;
275
- }
276
- // 重新计算
277
- let depth = 0;
278
- let current = this.getParent(entity);
279
- while (current && depth < HierarchySystem.MAX_DEPTH) {
280
- depth++;
281
- current = this.getParent(current);
282
- }
283
- hierarchy.depth = depth;
284
- return depth;
285
- }
286
- /**
287
- * 检查实体在层级中是否激活
288
- */
289
- isActiveInHierarchy(entity) {
290
- if (!entity.active)
291
- return false;
292
- const hierarchy = entity.getComponent(HierarchyComponent);
293
- if (!hierarchy)
294
- return entity.active;
295
- // 如果缓存有效,直接返回
296
- if (!hierarchy.bCacheDirty) {
297
- return hierarchy.bActiveInHierarchy;
298
- }
299
- // 重新计算
300
- const parent = this.getParent(entity);
301
- if (!parent) {
302
- hierarchy.bActiveInHierarchy = entity.active;
303
- }
304
- else {
305
- hierarchy.bActiveInHierarchy = entity.active && this.isActiveInHierarchy(parent);
306
- }
307
- return hierarchy.bActiveInHierarchy;
308
- }
309
- /**
310
- * 获取所有根实体(没有父级的实体)
311
- */
312
- getRootEntities() {
313
- const roots = [];
314
- for (const entity of this.entities) {
315
- const hierarchy = entity.getComponent(HierarchyComponent);
316
- if (hierarchy && hierarchy.parentId === null) {
317
- roots.push(entity);
318
- }
319
- }
320
- return roots;
321
- }
322
- /**
323
- * 根据名称查找子实体
324
- *
325
- * @param entity - 父实体
326
- * @param name - 子实体名称
327
- * @param bRecursive - 是否递归查找
328
- */
329
- findChild(entity, name, bRecursive = false) {
330
- const children = this.getChildren(entity);
331
- for (const child of children) {
332
- if (child.name === name) {
333
- return child;
334
- }
335
- }
336
- if (bRecursive) {
337
- for (const child of children) {
338
- const found = this.findChild(child, name, true);
339
- if (found) {
340
- return found;
341
- }
342
- }
343
- }
344
- return null;
345
- }
346
- /**
347
- * 根据标签查找子实体
348
- *
349
- * @param entity - 父实体
350
- * @param tag - 标签值
351
- * @param bRecursive - 是否递归查找
352
- */
353
- findChildrenByTag(entity, tag, bRecursive = false) {
354
- const result = [];
355
- const children = this.getChildren(entity);
356
- for (const child of children) {
357
- if ((child.tag & tag) !== 0) {
358
- result.push(child);
359
- }
360
- if (bRecursive) {
361
- result.push(...this.findChildrenByTag(child, tag, true));
362
- }
363
- }
364
- return result;
365
- }
366
- /**
367
- * 遍历所有子级
368
- *
369
- * @param entity - 父实体
370
- * @param callback - 回调函数
371
- * @param bRecursive - 是否递归遍历
372
- */
373
- forEachChild(entity, callback, bRecursive = false) {
374
- const children = this.getChildren(entity);
375
- for (const child of children) {
376
- callback(child);
377
- if (bRecursive) {
378
- this.forEachChild(child, callback, true);
379
- }
380
- }
381
- }
382
- /**
383
- * 扁平化层级树(用于虚拟化渲染)
384
- *
385
- * @param expandedIds - 展开的实体 ID 集合
386
- * @returns 扁平化的节点列表
387
- */
388
- flattenHierarchy(expandedIds) {
389
- const result = [];
390
- const traverse = (entity, depth) => {
391
- const bHasChildren = this.hasChildren(entity);
392
- const bIsExpanded = expandedIds.has(entity.id);
393
- result.push({
394
- entity,
395
- depth,
396
- bHasChildren,
397
- bIsExpanded
398
- });
399
- if (bHasChildren && bIsExpanded) {
400
- for (const child of this.getChildren(entity)) {
401
- traverse(child, depth + 1);
402
- }
403
- }
404
- };
405
- for (const root of this.getRootEntities()) {
406
- traverse(root, 0);
407
- }
408
- return result;
409
- }
410
- /**
411
- * 标记缓存为脏,并添加到脏实体集合
412
- * Mark cache as dirty and add to dirty entity set
413
- */
414
- markCacheDirty(entity) {
415
- const hierarchy = entity.getComponent(HierarchyComponent);
416
- if (!hierarchy)
417
- return;
418
- // 如果已经是脏的,跳过(避免重复递归)
419
- // Skip if already dirty (avoid redundant recursion)
420
- if (hierarchy.bCacheDirty)
421
- return;
422
- hierarchy.bCacheDirty = true;
423
- this.dirtyEntities.add(entity);
424
- // 递归标记所有子级 | Recursively mark all children
425
- for (const childId of hierarchy.childIds) {
426
- const child = this.scene?.findEntityById(childId);
427
- if (child) {
428
- this.markCacheDirty(child);
429
- }
430
- }
431
- }
432
- /**
433
- * 更新层级缓存
434
- */
435
- updateHierarchyCache(entity) {
436
- const hierarchy = entity.getComponent(HierarchyComponent);
437
- if (!hierarchy)
438
- return;
439
- // 计算深度
440
- hierarchy.depth = this.getDepth(entity);
441
- // 计算激活状态
442
- hierarchy.bActiveInHierarchy = this.isActiveInHierarchy(entity);
443
- // 标记缓存有效
444
- hierarchy.bCacheDirty = false;
445
- }
446
- /**
447
- * 当实体被添加到系统时,将其加入脏集合
448
- * When entity is added to system, add it to dirty set
449
- */
450
- onAdded(entity) {
451
- const hierarchy = entity.getComponent(HierarchyComponent);
452
- if (hierarchy && hierarchy.bCacheDirty) {
453
- this.dirtyEntities.add(entity);
454
- }
455
- }
456
- /**
457
- * 当实体被移除时清理层级关系
458
- * When entity is removed, clean up hierarchy relationships
459
- */
460
- onRemoved(entity) {
461
- // 从脏集合中移除 | Remove from dirty set
462
- this.dirtyEntities.delete(entity);
463
- const hierarchy = entity.getComponent(HierarchyComponent);
464
- if (!hierarchy)
465
- return;
466
- // 从父级移除 | Remove from parent
467
- if (hierarchy.parentId !== null) {
468
- const parent = this.scene?.findEntityById(hierarchy.parentId);
469
- if (parent) {
470
- const parentHierarchy = parent.getComponent(HierarchyComponent);
471
- if (parentHierarchy) {
472
- const idx = parentHierarchy.childIds.indexOf(entity.id);
473
- if (idx !== -1) {
474
- parentHierarchy.childIds.splice(idx, 1);
475
- }
476
- }
477
- }
478
- }
479
- // 处理子级:将子级移动到根级
480
- // Handle children: move children to root level
481
- for (const childId of hierarchy.childIds) {
482
- const child = this.scene?.findEntityById(childId);
483
- if (child) {
484
- const childHierarchy = child.getComponent(HierarchyComponent);
485
- if (childHierarchy) {
486
- childHierarchy.parentId = null;
487
- this.markCacheDirty(child);
488
- }
489
- }
490
- }
491
- }
492
- dispose() {
493
- // 清理脏实体集合 | Clear dirty entity set
494
- this.dirtyEntities.clear();
495
- }
496
- }
497
- HierarchySystem.MAX_DEPTH = 32;
498
- //# sourceMappingURL=HierarchySystem.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"HierarchySystem.js","sourceRoot":"","sources":["../../../src/ECS/Systems/HierarchySystem.ts"],"names":[],"mappings":"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"}
@@ -1,33 +0,0 @@
1
- import { EntitySystem } from './EntitySystem';
2
- import { Matcher } from '../Utils/Matcher';
3
- /**
4
- * 间隔系统抽象类
5
- * 定义一个按时间间隔处理的抽象类,继承自EntitySystem类
6
- * 子类需要实现process方法,用于实现具体的处理逻辑
7
- */
8
- export declare abstract class IntervalSystem extends EntitySystem {
9
- /** 累积增量以跟踪间隔 */
10
- private acc;
11
- /** 更新之间需要等待多长时间 */
12
- private readonly interval;
13
- /** 时间间隔的余数,用于计算下一次需要等待的时间 */
14
- private intervalRemainder;
15
- /**
16
- * 构造函数,初始化时间间隔
17
- * @param interval 时间间隔
18
- * @param matcher 实体匹配器
19
- */
20
- constructor(interval: number, matcher?: Matcher);
21
- /**
22
- * 判断是否需要进行处理
23
- * 如果需要进行处理,则更新累积增量和时间间隔余数,返回true
24
- * 否则返回false
25
- */
26
- protected onCheckProcessing(): boolean;
27
- /**
28
- * 获取本系统上次处理后的实际delta值
29
- * 实际delta值等于时间间隔加上时间间隔余数
30
- */
31
- protected getIntervalDelta(): number;
32
- }
33
- //# sourceMappingURL=IntervalSystem.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IntervalSystem.d.ts","sourceRoot":"","sources":["../../../src/ECS/Systems/IntervalSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAG3C;;;;GAIG;AACH,8BAAsB,cAAe,SAAQ,YAAY;IACrD,gBAAgB;IAChB,OAAO,CAAC,GAAG,CAAa;IACxB,mBAAmB;IACnB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,6BAA6B;IAC7B,OAAO,CAAC,iBAAiB,CAAa;IAEtC;;;;OAIG;gBACS,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO;IAK/C;;;;OAIG;cACgB,iBAAiB,IAAI,OAAO;IAkB/C;;;OAGG;IACH,SAAS,CAAC,gBAAgB,IAAI,MAAM;CAGvC"}
@@ -1,50 +0,0 @@
1
- import { EntitySystem } from './EntitySystem';
2
- import { Time } from '../../Utils/Time';
3
- /**
4
- * 间隔系统抽象类
5
- * 定义一个按时间间隔处理的抽象类,继承自EntitySystem类
6
- * 子类需要实现process方法,用于实现具体的处理逻辑
7
- */
8
- export class IntervalSystem extends EntitySystem {
9
- /**
10
- * 构造函数,初始化时间间隔
11
- * @param interval 时间间隔
12
- * @param matcher 实体匹配器
13
- */
14
- constructor(interval, matcher) {
15
- super(matcher);
16
- /** 累积增量以跟踪间隔 */
17
- this.acc = 0;
18
- /** 时间间隔的余数,用于计算下一次需要等待的时间 */
19
- this.intervalRemainder = 0;
20
- this.interval = interval;
21
- }
22
- /**
23
- * 判断是否需要进行处理
24
- * 如果需要进行处理,则更新累积增量和时间间隔余数,返回true
25
- * 否则返回false
26
- */
27
- onCheckProcessing() {
28
- // 更新累积增量
29
- this.acc += Time.deltaTime;
30
- // 如果累积增量超过时间间隔,则进行处理
31
- if (this.acc >= this.interval) {
32
- // 更新时间间隔余数
33
- this.intervalRemainder = this.acc - this.interval;
34
- // 重置累积增量
35
- this.acc = 0;
36
- // 返回true,表示需要进行处理
37
- return true;
38
- }
39
- // 返回false,表示不需要进行处理
40
- return false;
41
- }
42
- /**
43
- * 获取本系统上次处理后的实际delta值
44
- * 实际delta值等于时间间隔加上时间间隔余数
45
- */
46
- getIntervalDelta() {
47
- return this.interval + this.intervalRemainder;
48
- }
49
- }
50
- //# sourceMappingURL=IntervalSystem.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IntervalSystem.js","sourceRoot":"","sources":["../../../src/ECS/Systems/IntervalSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC;;;;GAIG;AACH,MAAM,OAAgB,cAAe,SAAQ,YAAY;IAQrD;;;;OAIG;IACH,YAAY,QAAgB,EAAE,OAAiB;QAC3C,KAAK,CAAC,OAAO,CAAC,CAAC;QAbnB,gBAAgB;QACR,QAAG,GAAW,CAAC,CAAC;QAGxB,6BAA6B;QACrB,sBAAiB,GAAW,CAAC,CAAC;QASlC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACgB,iBAAiB;QAChC,SAAS;QACT,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC;QAE3B,qBAAqB;QACrB,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,WAAW;YACX,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;YAClD,SAAS;YACT,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;YACb,kBAAkB;YAClB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,oBAAoB;QACpB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;OAGG;IACO,gBAAgB;QACtB,OAAO,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC;IAClD,CAAC;CACJ"}
@@ -1,17 +0,0 @@
1
- import { EntitySystem } from './EntitySystem';
2
- import { Entity } from '../Entity';
3
- import { Matcher } from '../Utils/Matcher';
4
- /**
5
- * 被动实体系统
6
- * 定义一个被动的实体系统,继承自EntitySystem类
7
- * 被动的实体系统不会对实体进行任何修改,只会被动地接收实体的变化事件
8
- */
9
- export declare abstract class PassiveSystem extends EntitySystem {
10
- constructor(matcher?: Matcher);
11
- /**
12
- * 不进行任何处理
13
- * @param entities 实体数组,未被使用
14
- */
15
- protected process(_entities: Entity[]): void;
16
- }
17
- //# sourceMappingURL=PassiveSystem.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PassiveSystem.d.ts","sourceRoot":"","sources":["../../../src/ECS/Systems/PassiveSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C;;;;GAIG;AACH,8BAAsB,aAAc,SAAQ,YAAY;gBAExC,OAAO,CAAC,EAAE,OAAO;IAI7B;;;OAGG;cACgB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;CAGxD"}
@@ -1,19 +0,0 @@
1
- import { EntitySystem } from './EntitySystem';
2
- /**
3
- * 被动实体系统
4
- * 定义一个被动的实体系统,继承自EntitySystem类
5
- * 被动的实体系统不会对实体进行任何修改,只会被动地接收实体的变化事件
6
- */
7
- export class PassiveSystem extends EntitySystem {
8
- constructor(matcher) {
9
- super(matcher);
10
- }
11
- /**
12
- * 不进行任何处理
13
- * @param entities 实体数组,未被使用
14
- */
15
- process(_entities) {
16
- // 被动系统不进行任何处理
17
- }
18
- }
19
- //# sourceMappingURL=PassiveSystem.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PassiveSystem.js","sourceRoot":"","sources":["../../../src/ECS/Systems/PassiveSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAI9C;;;;GAIG;AACH,MAAM,OAAgB,aAAc,SAAQ,YAAY;IAEpD,YAAY,OAAiB;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;IAED;;;OAGG;IACgB,OAAO,CAAC,SAAmB;QAC1C,cAAc;IAClB,CAAC;CACJ"}
@@ -1,21 +0,0 @@
1
- import { EntitySystem } from './EntitySystem';
2
- import { Entity } from '../Entity';
3
- import { Matcher } from '../Utils/Matcher';
4
- /**
5
- * 处理系统抽象类
6
- * 定义一个处理实体的抽象类,继承自EntitySystem类
7
- * 子类需要实现processSystem方法,用于实现具体的处理逻辑
8
- */
9
- export declare abstract class ProcessingSystem extends EntitySystem {
10
- constructor(matcher?: Matcher);
11
- /**
12
- * 处理实体,每帧调用processSystem方法进行处理
13
- * @param entities 实体数组,未被使用
14
- */
15
- protected process(_entities: Entity[]): void;
16
- /**
17
- * 处理实体的具体方法,由子类实现
18
- */
19
- abstract processSystem(): void;
20
- }
21
- //# sourceMappingURL=ProcessingSystem.d.ts.map