@esengine/ecs-framework 2.3.0 → 2.3.2

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 (490) hide show
  1. package/index.cjs +2 -0
  2. package/index.cjs.map +1 -0
  3. package/index.d.ts +13466 -0
  4. package/index.es5.js +4 -0
  5. package/index.es5.js.map +1 -0
  6. package/index.mjs +2 -0
  7. package/index.mjs.map +1 -0
  8. package/index.umd.js +4 -0
  9. package/index.umd.js.map +1 -0
  10. package/package.json +47 -84
  11. package/bin/Core/DI/Decorators.d.ts +0 -206
  12. package/bin/Core/DI/Decorators.d.ts.map +0 -1
  13. package/bin/Core/DI/Decorators.js +0 -253
  14. package/bin/Core/DI/Decorators.js.map +0 -1
  15. package/bin/Core/DI/index.d.ts +0 -8
  16. package/bin/Core/DI/index.d.ts.map +0 -1
  17. package/bin/Core/DI/index.js +0 -7
  18. package/bin/Core/DI/index.js.map +0 -1
  19. package/bin/Core/Plugin.d.ts +0 -112
  20. package/bin/Core/Plugin.d.ts.map +0 -1
  21. package/bin/Core/Plugin.js +0 -19
  22. package/bin/Core/Plugin.js.map +0 -1
  23. package/bin/Core/PluginManager.d.ts +0 -118
  24. package/bin/Core/PluginManager.d.ts.map +0 -1
  25. package/bin/Core/PluginManager.js +0 -229
  26. package/bin/Core/PluginManager.js.map +0 -1
  27. package/bin/Core/ServiceContainer.d.ts +0 -221
  28. package/bin/Core/ServiceContainer.d.ts.map +0 -1
  29. package/bin/Core/ServiceContainer.js +0 -352
  30. package/bin/Core/ServiceContainer.js.map +0 -1
  31. package/bin/Core.d.ts +0 -379
  32. package/bin/Core.d.ts.map +0 -1
  33. package/bin/Core.js +0 -553
  34. package/bin/Core.js.map +0 -1
  35. package/bin/ECS/Component.d.ts +0 -104
  36. package/bin/ECS/Component.d.ts.map +0 -1
  37. package/bin/ECS/Component.js +0 -105
  38. package/bin/ECS/Component.js.map +0 -1
  39. package/bin/ECS/Components/HierarchyComponent.d.ts +0 -46
  40. package/bin/ECS/Components/HierarchyComponent.d.ts.map +0 -1
  41. package/bin/ECS/Components/HierarchyComponent.js +0 -65
  42. package/bin/ECS/Components/HierarchyComponent.js.map +0 -1
  43. package/bin/ECS/Components/index.d.ts +0 -2
  44. package/bin/ECS/Components/index.d.ts.map +0 -1
  45. package/bin/ECS/Components/index.js +0 -2
  46. package/bin/ECS/Components/index.js.map +0 -1
  47. package/bin/ECS/Core/ArchetypeSystem.d.ts +0 -103
  48. package/bin/ECS/Core/ArchetypeSystem.d.ts.map +0 -1
  49. package/bin/ECS/Core/ArchetypeSystem.js +0 -244
  50. package/bin/ECS/Core/ArchetypeSystem.js.map +0 -1
  51. package/bin/ECS/Core/CommandBuffer.d.ts +0 -154
  52. package/bin/ECS/Core/CommandBuffer.d.ts.map +0 -1
  53. package/bin/ECS/Core/CommandBuffer.js +0 -244
  54. package/bin/ECS/Core/CommandBuffer.js.map +0 -1
  55. package/bin/ECS/Core/ComponentPool.d.ts +0 -139
  56. package/bin/ECS/Core/ComponentPool.d.ts.map +0 -1
  57. package/bin/ECS/Core/ComponentPool.js +0 -276
  58. package/bin/ECS/Core/ComponentPool.js.map +0 -1
  59. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.d.ts +0 -127
  60. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.d.ts.map +0 -1
  61. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.js +0 -235
  62. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.js.map +0 -1
  63. package/bin/ECS/Core/ComponentStorage.d.ts +0 -185
  64. package/bin/ECS/Core/ComponentStorage.d.ts.map +0 -1
  65. package/bin/ECS/Core/ComponentStorage.js +0 -321
  66. package/bin/ECS/Core/ComponentStorage.js.map +0 -1
  67. package/bin/ECS/Core/EntityLifecyclePolicy.d.ts +0 -26
  68. package/bin/ECS/Core/EntityLifecyclePolicy.d.ts.map +0 -1
  69. package/bin/ECS/Core/EntityLifecyclePolicy.js +0 -2
  70. package/bin/ECS/Core/EntityLifecyclePolicy.js.map +0 -1
  71. package/bin/ECS/Core/EventBus.d.ts +0 -210
  72. package/bin/ECS/Core/EventBus.d.ts.map +0 -1
  73. package/bin/ECS/Core/EventBus.js +0 -370
  74. package/bin/ECS/Core/EventBus.js.map +0 -1
  75. package/bin/ECS/Core/EventSystem.d.ts +0 -225
  76. package/bin/ECS/Core/EventSystem.d.ts.map +0 -1
  77. package/bin/ECS/Core/EventSystem.js +0 -448
  78. package/bin/ECS/Core/EventSystem.js.map +0 -1
  79. package/bin/ECS/Core/Events/index.d.ts +0 -3
  80. package/bin/ECS/Core/Events/index.d.ts.map +0 -1
  81. package/bin/ECS/Core/Events/index.js +0 -3
  82. package/bin/ECS/Core/Events/index.js.map +0 -1
  83. package/bin/ECS/Core/FluentAPI/ComponentBuilder.d.ts +0 -35
  84. package/bin/ECS/Core/FluentAPI/ComponentBuilder.d.ts.map +0 -1
  85. package/bin/ECS/Core/FluentAPI/ComponentBuilder.js +0 -48
  86. package/bin/ECS/Core/FluentAPI/ComponentBuilder.js.map +0 -1
  87. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.d.ts +0 -135
  88. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.d.ts.map +0 -1
  89. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.js +0 -166
  90. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.js.map +0 -1
  91. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.d.ts +0 -58
  92. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.d.ts.map +0 -1
  93. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.js +0 -85
  94. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.js.map +0 -1
  95. package/bin/ECS/Core/FluentAPI/EntityBuilder.d.ts +0 -110
  96. package/bin/ECS/Core/FluentAPI/EntityBuilder.d.ts.map +0 -1
  97. package/bin/ECS/Core/FluentAPI/EntityBuilder.js +0 -181
  98. package/bin/ECS/Core/FluentAPI/EntityBuilder.js.map +0 -1
  99. package/bin/ECS/Core/FluentAPI/SceneBuilder.d.ts +0 -53
  100. package/bin/ECS/Core/FluentAPI/SceneBuilder.d.ts.map +0 -1
  101. package/bin/ECS/Core/FluentAPI/SceneBuilder.js +0 -79
  102. package/bin/ECS/Core/FluentAPI/SceneBuilder.js.map +0 -1
  103. package/bin/ECS/Core/FluentAPI/index.d.ts +0 -6
  104. package/bin/ECS/Core/FluentAPI/index.d.ts.map +0 -1
  105. package/bin/ECS/Core/FluentAPI/index.js +0 -6
  106. package/bin/ECS/Core/FluentAPI/index.js.map +0 -1
  107. package/bin/ECS/Core/FluentAPI.d.ts +0 -2
  108. package/bin/ECS/Core/FluentAPI.d.ts.map +0 -1
  109. package/bin/ECS/Core/FluentAPI.js +0 -3
  110. package/bin/ECS/Core/FluentAPI.js.map +0 -1
  111. package/bin/ECS/Core/Query/TypedQuery.d.ts +0 -214
  112. package/bin/ECS/Core/Query/TypedQuery.d.ts.map +0 -1
  113. package/bin/ECS/Core/Query/TypedQuery.js +0 -294
  114. package/bin/ECS/Core/Query/TypedQuery.js.map +0 -1
  115. package/bin/ECS/Core/Query/index.d.ts +0 -3
  116. package/bin/ECS/Core/Query/index.d.ts.map +0 -1
  117. package/bin/ECS/Core/Query/index.js +0 -3
  118. package/bin/ECS/Core/Query/index.js.map +0 -1
  119. package/bin/ECS/Core/QuerySystem.d.ts +0 -458
  120. package/bin/ECS/Core/QuerySystem.d.ts.map +0 -1
  121. package/bin/ECS/Core/QuerySystem.js +0 -1069
  122. package/bin/ECS/Core/QuerySystem.js.map +0 -1
  123. package/bin/ECS/Core/QueryTypes.d.ts +0 -34
  124. package/bin/ECS/Core/QueryTypes.d.ts.map +0 -1
  125. package/bin/ECS/Core/QueryTypes.js +0 -13
  126. package/bin/ECS/Core/QueryTypes.js.map +0 -1
  127. package/bin/ECS/Core/ReactiveQuery.d.ts +0 -211
  128. package/bin/ECS/Core/ReactiveQuery.d.ts.map +0 -1
  129. package/bin/ECS/Core/ReactiveQuery.js +0 -401
  130. package/bin/ECS/Core/ReactiveQuery.js.map +0 -1
  131. package/bin/ECS/Core/ReferenceTracker.d.ts +0 -111
  132. package/bin/ECS/Core/ReferenceTracker.d.ts.map +0 -1
  133. package/bin/ECS/Core/ReferenceTracker.js +0 -254
  134. package/bin/ECS/Core/ReferenceTracker.js.map +0 -1
  135. package/bin/ECS/Core/SoASerializer.d.ts +0 -28
  136. package/bin/ECS/Core/SoASerializer.d.ts.map +0 -1
  137. package/bin/ECS/Core/SoASerializer.js +0 -85
  138. package/bin/ECS/Core/SoASerializer.js.map +0 -1
  139. package/bin/ECS/Core/SoAStorage.d.ts +0 -129
  140. package/bin/ECS/Core/SoAStorage.d.ts.map +0 -1
  141. package/bin/ECS/Core/SoAStorage.js +0 -685
  142. package/bin/ECS/Core/SoAStorage.js.map +0 -1
  143. package/bin/ECS/Core/SoATypeRegistry.d.ts +0 -50
  144. package/bin/ECS/Core/SoATypeRegistry.d.ts.map +0 -1
  145. package/bin/ECS/Core/SoATypeRegistry.js +0 -135
  146. package/bin/ECS/Core/SoATypeRegistry.js.map +0 -1
  147. package/bin/ECS/Core/Storage/index.d.ts +0 -4
  148. package/bin/ECS/Core/Storage/index.d.ts.map +0 -1
  149. package/bin/ECS/Core/Storage/index.js +0 -4
  150. package/bin/ECS/Core/Storage/index.js.map +0 -1
  151. package/bin/ECS/Core/StorageDecorators.d.ts +0 -20
  152. package/bin/ECS/Core/StorageDecorators.d.ts.map +0 -1
  153. package/bin/ECS/Core/StorageDecorators.js +0 -27
  154. package/bin/ECS/Core/StorageDecorators.js.map +0 -1
  155. package/bin/ECS/CoreEvents.d.ts +0 -131
  156. package/bin/ECS/CoreEvents.d.ts.map +0 -1
  157. package/bin/ECS/CoreEvents.js +0 -163
  158. package/bin/ECS/CoreEvents.js.map +0 -1
  159. package/bin/ECS/Decorators/EntityRefDecorator.d.ts +0 -46
  160. package/bin/ECS/Decorators/EntityRefDecorator.d.ts.map +0 -1
  161. package/bin/ECS/Decorators/EntityRefDecorator.js +0 -118
  162. package/bin/ECS/Decorators/EntityRefDecorator.js.map +0 -1
  163. package/bin/ECS/Decorators/PropertyDecorator.d.ts +0 -168
  164. package/bin/ECS/Decorators/PropertyDecorator.d.ts.map +0 -1
  165. package/bin/ECS/Decorators/PropertyDecorator.js +0 -40
  166. package/bin/ECS/Decorators/PropertyDecorator.js.map +0 -1
  167. package/bin/ECS/Decorators/TypeDecorators.d.ts +0 -124
  168. package/bin/ECS/Decorators/TypeDecorators.d.ts.map +0 -1
  169. package/bin/ECS/Decorators/TypeDecorators.js +0 -151
  170. package/bin/ECS/Decorators/TypeDecorators.js.map +0 -1
  171. package/bin/ECS/Decorators/index.d.ts +0 -7
  172. package/bin/ECS/Decorators/index.d.ts.map +0 -1
  173. package/bin/ECS/Decorators/index.js +0 -4
  174. package/bin/ECS/Decorators/index.js.map +0 -1
  175. package/bin/ECS/Entity.d.ts +0 -415
  176. package/bin/ECS/Entity.d.ts.map +0 -1
  177. package/bin/ECS/Entity.js +0 -683
  178. package/bin/ECS/Entity.js.map +0 -1
  179. package/bin/ECS/EntityTags.d.ts +0 -71
  180. package/bin/ECS/EntityTags.d.ts.map +0 -1
  181. package/bin/ECS/EntityTags.js +0 -82
  182. package/bin/ECS/EntityTags.js.map +0 -1
  183. package/bin/ECS/IScene.d.ts +0 -308
  184. package/bin/ECS/IScene.d.ts.map +0 -1
  185. package/bin/ECS/IScene.js +0 -2
  186. package/bin/ECS/IScene.js.map +0 -1
  187. package/bin/ECS/Scene.d.ts +0 -799
  188. package/bin/ECS/Scene.d.ts.map +0 -1
  189. package/bin/ECS/Scene.js +0 -1203
  190. package/bin/ECS/Scene.js.map +0 -1
  191. package/bin/ECS/SceneManager.d.ts +0 -197
  192. package/bin/ECS/SceneManager.d.ts.map +0 -1
  193. package/bin/ECS/SceneManager.js +0 -264
  194. package/bin/ECS/SceneManager.js.map +0 -1
  195. package/bin/ECS/Serialization/ComponentSerializer.d.ts +0 -106
  196. package/bin/ECS/Serialization/ComponentSerializer.d.ts.map +0 -1
  197. package/bin/ECS/Serialization/ComponentSerializer.js +0 -251
  198. package/bin/ECS/Serialization/ComponentSerializer.js.map +0 -1
  199. package/bin/ECS/Serialization/EntitySerializer.d.ts +0 -111
  200. package/bin/ECS/Serialization/EntitySerializer.d.ts.map +0 -1
  201. package/bin/ECS/Serialization/EntitySerializer.js +0 -155
  202. package/bin/ECS/Serialization/EntitySerializer.js.map +0 -1
  203. package/bin/ECS/Serialization/IncrementalSerializer.d.ts +0 -259
  204. package/bin/ECS/Serialization/IncrementalSerializer.d.ts.map +0 -1
  205. package/bin/ECS/Serialization/IncrementalSerializer.js +0 -500
  206. package/bin/ECS/Serialization/IncrementalSerializer.js.map +0 -1
  207. package/bin/ECS/Serialization/SceneSerializer.d.ts +0 -213
  208. package/bin/ECS/Serialization/SceneSerializer.d.ts.map +0 -1
  209. package/bin/ECS/Serialization/SceneSerializer.js +0 -387
  210. package/bin/ECS/Serialization/SceneSerializer.js.map +0 -1
  211. package/bin/ECS/Serialization/SerializationDecorators.d.ts +0 -136
  212. package/bin/ECS/Serialization/SerializationDecorators.d.ts.map +0 -1
  213. package/bin/ECS/Serialization/SerializationDecorators.js +0 -216
  214. package/bin/ECS/Serialization/SerializationDecorators.js.map +0 -1
  215. package/bin/ECS/Serialization/VersionMigration.d.ts +0 -156
  216. package/bin/ECS/Serialization/VersionMigration.d.ts.map +0 -1
  217. package/bin/ECS/Serialization/VersionMigration.js +0 -279
  218. package/bin/ECS/Serialization/VersionMigration.js.map +0 -1
  219. package/bin/ECS/Serialization/index.d.ts +0 -18
  220. package/bin/ECS/Serialization/index.d.ts.map +0 -1
  221. package/bin/ECS/Serialization/index.js +0 -18
  222. package/bin/ECS/Serialization/index.js.map +0 -1
  223. package/bin/ECS/Systems/EntityCache.d.ts +0 -114
  224. package/bin/ECS/Systems/EntityCache.d.ts.map +0 -1
  225. package/bin/ECS/Systems/EntityCache.js +0 -145
  226. package/bin/ECS/Systems/EntityCache.js.map +0 -1
  227. package/bin/ECS/Systems/EntitySystem.d.ts +0 -591
  228. package/bin/ECS/Systems/EntitySystem.d.ts.map +0 -1
  229. package/bin/ECS/Systems/EntitySystem.js +0 -1102
  230. package/bin/ECS/Systems/EntitySystem.js.map +0 -1
  231. package/bin/ECS/Systems/HierarchySystem.d.ts +0 -155
  232. package/bin/ECS/Systems/HierarchySystem.d.ts.map +0 -1
  233. package/bin/ECS/Systems/HierarchySystem.js +0 -498
  234. package/bin/ECS/Systems/HierarchySystem.js.map +0 -1
  235. package/bin/ECS/Systems/IntervalSystem.d.ts +0 -33
  236. package/bin/ECS/Systems/IntervalSystem.d.ts.map +0 -1
  237. package/bin/ECS/Systems/IntervalSystem.js +0 -50
  238. package/bin/ECS/Systems/IntervalSystem.js.map +0 -1
  239. package/bin/ECS/Systems/PassiveSystem.d.ts +0 -17
  240. package/bin/ECS/Systems/PassiveSystem.d.ts.map +0 -1
  241. package/bin/ECS/Systems/PassiveSystem.js +0 -19
  242. package/bin/ECS/Systems/PassiveSystem.js.map +0 -1
  243. package/bin/ECS/Systems/ProcessingSystem.d.ts +0 -21
  244. package/bin/ECS/Systems/ProcessingSystem.d.ts.map +0 -1
  245. package/bin/ECS/Systems/ProcessingSystem.js +0 -20
  246. package/bin/ECS/Systems/ProcessingSystem.js.map +0 -1
  247. package/bin/ECS/Systems/WorkerEntitySystem.d.ts +0 -313
  248. package/bin/ECS/Systems/WorkerEntitySystem.d.ts.map +0 -1
  249. package/bin/ECS/Systems/WorkerEntitySystem.js +0 -792
  250. package/bin/ECS/Systems/WorkerEntitySystem.js.map +0 -1
  251. package/bin/ECS/Systems/index.d.ts +0 -8
  252. package/bin/ECS/Systems/index.d.ts.map +0 -1
  253. package/bin/ECS/Systems/index.js +0 -8
  254. package/bin/ECS/Systems/index.js.map +0 -1
  255. package/bin/ECS/TypedEntity.d.ts +0 -192
  256. package/bin/ECS/TypedEntity.d.ts.map +0 -1
  257. package/bin/ECS/TypedEntity.js +0 -254
  258. package/bin/ECS/TypedEntity.js.map +0 -1
  259. package/bin/ECS/Utils/BigIntCompatibility.d.ts +0 -151
  260. package/bin/ECS/Utils/BigIntCompatibility.d.ts.map +0 -1
  261. package/bin/ECS/Utils/BigIntCompatibility.js +0 -476
  262. package/bin/ECS/Utils/BigIntCompatibility.js.map +0 -1
  263. package/bin/ECS/Utils/BitMaskHashMap.d.ts +0 -28
  264. package/bin/ECS/Utils/BitMaskHashMap.d.ts.map +0 -1
  265. package/bin/ECS/Utils/BitMaskHashMap.js +0 -127
  266. package/bin/ECS/Utils/BitMaskHashMap.js.map +0 -1
  267. package/bin/ECS/Utils/Bits.d.ts +0 -154
  268. package/bin/ECS/Utils/Bits.d.ts.map +0 -1
  269. package/bin/ECS/Utils/Bits.js +0 -331
  270. package/bin/ECS/Utils/Bits.js.map +0 -1
  271. package/bin/ECS/Utils/ComponentSparseSet.d.ts +0 -143
  272. package/bin/ECS/Utils/ComponentSparseSet.d.ts.map +0 -1
  273. package/bin/ECS/Utils/ComponentSparseSet.js +0 -347
  274. package/bin/ECS/Utils/ComponentSparseSet.js.map +0 -1
  275. package/bin/ECS/Utils/EntityList.d.ts +0 -115
  276. package/bin/ECS/Utils/EntityList.d.ts.map +0 -1
  277. package/bin/ECS/Utils/EntityList.js +0 -258
  278. package/bin/ECS/Utils/EntityList.js.map +0 -1
  279. package/bin/ECS/Utils/EntityProcessorList.d.ts +0 -56
  280. package/bin/ECS/Utils/EntityProcessorList.d.ts.map +0 -1
  281. package/bin/ECS/Utils/EntityProcessorList.js +0 -113
  282. package/bin/ECS/Utils/EntityProcessorList.js.map +0 -1
  283. package/bin/ECS/Utils/IdentifierPool.d.ts +0 -203
  284. package/bin/ECS/Utils/IdentifierPool.d.ts.map +0 -1
  285. package/bin/ECS/Utils/IdentifierPool.js +0 -325
  286. package/bin/ECS/Utils/IdentifierPool.js.map +0 -1
  287. package/bin/ECS/Utils/Matcher.d.ts +0 -171
  288. package/bin/ECS/Utils/Matcher.d.ts.map +0 -1
  289. package/bin/ECS/Utils/Matcher.js +0 -293
  290. package/bin/ECS/Utils/Matcher.js.map +0 -1
  291. package/bin/ECS/Utils/SparseSet.d.ts +0 -170
  292. package/bin/ECS/Utils/SparseSet.d.ts.map +0 -1
  293. package/bin/ECS/Utils/SparseSet.js +0 -280
  294. package/bin/ECS/Utils/SparseSet.js.map +0 -1
  295. package/bin/ECS/Utils/index.d.ts +0 -9
  296. package/bin/ECS/Utils/index.d.ts.map +0 -1
  297. package/bin/ECS/Utils/index.js +0 -10
  298. package/bin/ECS/Utils/index.js.map +0 -1
  299. package/bin/ECS/World.d.ts +0 -238
  300. package/bin/ECS/World.d.ts.map +0 -1
  301. package/bin/ECS/World.js +0 -416
  302. package/bin/ECS/World.js.map +0 -1
  303. package/bin/ECS/WorldManager.d.ts +0 -224
  304. package/bin/ECS/WorldManager.d.ts.map +0 -1
  305. package/bin/ECS/WorldManager.js +0 -365
  306. package/bin/ECS/WorldManager.js.map +0 -1
  307. package/bin/ECS/index.d.ts +0 -26
  308. package/bin/ECS/index.d.ts.map +0 -1
  309. package/bin/ECS/index.js +0 -21
  310. package/bin/ECS/index.js.map +0 -1
  311. package/bin/Platform/IPlatformAdapter.d.ts +0 -169
  312. package/bin/Platform/IPlatformAdapter.d.ts.map +0 -1
  313. package/bin/Platform/IPlatformAdapter.js +0 -2
  314. package/bin/Platform/IPlatformAdapter.js.map +0 -1
  315. package/bin/Platform/PlatformDetector.d.ts +0 -56
  316. package/bin/Platform/PlatformDetector.d.ts.map +0 -1
  317. package/bin/Platform/PlatformDetector.js +0 -247
  318. package/bin/Platform/PlatformDetector.js.map +0 -1
  319. package/bin/Platform/PlatformManager.d.ts +0 -50
  320. package/bin/Platform/PlatformManager.d.ts.map +0 -1
  321. package/bin/Platform/PlatformManager.js +0 -114
  322. package/bin/Platform/PlatformManager.js.map +0 -1
  323. package/bin/Platform/index.d.ts +0 -19
  324. package/bin/Platform/index.d.ts.map +0 -1
  325. package/bin/Platform/index.js +0 -29
  326. package/bin/Platform/index.js.map +0 -1
  327. package/bin/Plugins/DebugPlugin.d.ts +0 -156
  328. package/bin/Plugins/DebugPlugin.d.ts.map +0 -1
  329. package/bin/Plugins/DebugPlugin.js +0 -248
  330. package/bin/Plugins/DebugPlugin.js.map +0 -1
  331. package/bin/Plugins/index.d.ts +0 -2
  332. package/bin/Plugins/index.d.ts.map +0 -1
  333. package/bin/Plugins/index.js +0 -2
  334. package/bin/Plugins/index.js.map +0 -1
  335. package/bin/Types/IUpdatable.d.ts +0 -18
  336. package/bin/Types/IUpdatable.d.ts.map +0 -1
  337. package/bin/Types/IUpdatable.js +0 -7
  338. package/bin/Types/IUpdatable.js.map +0 -1
  339. package/bin/Types/TypeHelpers.d.ts +0 -238
  340. package/bin/Types/TypeHelpers.d.ts.map +0 -1
  341. package/bin/Types/TypeHelpers.js +0 -19
  342. package/bin/Types/TypeHelpers.js.map +0 -1
  343. package/bin/Types/index.d.ts +0 -466
  344. package/bin/Types/index.d.ts.map +0 -1
  345. package/bin/Types/index.js +0 -7
  346. package/bin/Types/index.js.map +0 -1
  347. package/bin/Utils/BinarySerializer.d.ts +0 -23
  348. package/bin/Utils/BinarySerializer.d.ts.map +0 -1
  349. package/bin/Utils/BinarySerializer.js +0 -100
  350. package/bin/Utils/BinarySerializer.js.map +0 -1
  351. package/bin/Utils/Debug/AdvancedProfilerCollector.d.ts +0 -153
  352. package/bin/Utils/Debug/AdvancedProfilerCollector.d.ts.map +0 -1
  353. package/bin/Utils/Debug/AdvancedProfilerCollector.js +0 -406
  354. package/bin/Utils/Debug/AdvancedProfilerCollector.js.map +0 -1
  355. package/bin/Utils/Debug/ComponentDataCollector.d.ts +0 -32
  356. package/bin/Utils/Debug/ComponentDataCollector.d.ts.map +0 -1
  357. package/bin/Utils/Debug/ComponentDataCollector.js +0 -250
  358. package/bin/Utils/Debug/ComponentDataCollector.js.map +0 -1
  359. package/bin/Utils/Debug/DebugConfigService.d.ts +0 -16
  360. package/bin/Utils/Debug/DebugConfigService.d.ts.map +0 -1
  361. package/bin/Utils/Debug/DebugConfigService.js +0 -42
  362. package/bin/Utils/Debug/DebugConfigService.js.map +0 -1
  363. package/bin/Utils/Debug/DebugManager.d.ts +0 -131
  364. package/bin/Utils/Debug/DebugManager.d.ts.map +0 -1
  365. package/bin/Utils/Debug/DebugManager.js +0 -848
  366. package/bin/Utils/Debug/DebugManager.js.map +0 -1
  367. package/bin/Utils/Debug/EntityDataCollector.d.ts +0 -115
  368. package/bin/Utils/Debug/EntityDataCollector.d.ts.map +0 -1
  369. package/bin/Utils/Debug/EntityDataCollector.js +0 -870
  370. package/bin/Utils/Debug/EntityDataCollector.js.map +0 -1
  371. package/bin/Utils/Debug/PerformanceDataCollector.d.ts +0 -31
  372. package/bin/Utils/Debug/PerformanceDataCollector.d.ts.map +0 -1
  373. package/bin/Utils/Debug/PerformanceDataCollector.js +0 -203
  374. package/bin/Utils/Debug/PerformanceDataCollector.js.map +0 -1
  375. package/bin/Utils/Debug/SceneDataCollector.d.ts +0 -18
  376. package/bin/Utils/Debug/SceneDataCollector.d.ts.map +0 -1
  377. package/bin/Utils/Debug/SceneDataCollector.js +0 -43
  378. package/bin/Utils/Debug/SceneDataCollector.js.map +0 -1
  379. package/bin/Utils/Debug/SystemDataCollector.d.ts +0 -14
  380. package/bin/Utils/Debug/SystemDataCollector.d.ts.map +0 -1
  381. package/bin/Utils/Debug/SystemDataCollector.js +0 -60
  382. package/bin/Utils/Debug/SystemDataCollector.js.map +0 -1
  383. package/bin/Utils/Debug/WebSocketManager.d.ts +0 -54
  384. package/bin/Utils/Debug/WebSocketManager.d.ts.map +0 -1
  385. package/bin/Utils/Debug/WebSocketManager.js +0 -141
  386. package/bin/Utils/Debug/WebSocketManager.js.map +0 -1
  387. package/bin/Utils/Debug/index.d.ts +0 -11
  388. package/bin/Utils/Debug/index.d.ts.map +0 -1
  389. package/bin/Utils/Debug/index.js +0 -10
  390. package/bin/Utils/Debug/index.js.map +0 -1
  391. package/bin/Utils/Emitter.d.ts +0 -61
  392. package/bin/Utils/Emitter.d.ts.map +0 -1
  393. package/bin/Utils/Emitter.js +0 -101
  394. package/bin/Utils/Emitter.js.map +0 -1
  395. package/bin/Utils/Extensions/NumberExtension.d.ts +0 -13
  396. package/bin/Utils/Extensions/NumberExtension.d.ts.map +0 -1
  397. package/bin/Utils/Extensions/NumberExtension.js +0 -17
  398. package/bin/Utils/Extensions/NumberExtension.js.map +0 -1
  399. package/bin/Utils/Extensions/TypeUtils.d.ts +0 -13
  400. package/bin/Utils/Extensions/TypeUtils.d.ts.map +0 -1
  401. package/bin/Utils/Extensions/TypeUtils.js +0 -15
  402. package/bin/Utils/Extensions/TypeUtils.js.map +0 -1
  403. package/bin/Utils/Extensions/index.d.ts +0 -3
  404. package/bin/Utils/Extensions/index.d.ts.map +0 -1
  405. package/bin/Utils/Extensions/index.js +0 -4
  406. package/bin/Utils/Extensions/index.js.map +0 -1
  407. package/bin/Utils/GlobalManager.d.ts +0 -29
  408. package/bin/Utils/GlobalManager.d.ts.map +0 -1
  409. package/bin/Utils/GlobalManager.js +0 -50
  410. package/bin/Utils/GlobalManager.js.map +0 -1
  411. package/bin/Utils/Logger/ConsoleLogger.d.ts +0 -74
  412. package/bin/Utils/Logger/ConsoleLogger.d.ts.map +0 -1
  413. package/bin/Utils/Logger/ConsoleLogger.js +0 -187
  414. package/bin/Utils/Logger/ConsoleLogger.js.map +0 -1
  415. package/bin/Utils/Logger/Constants.d.ts +0 -36
  416. package/bin/Utils/Logger/Constants.d.ts.map +0 -1
  417. package/bin/Utils/Logger/Constants.js +0 -40
  418. package/bin/Utils/Logger/Constants.js.map +0 -1
  419. package/bin/Utils/Logger/LoggerManager.d.ts +0 -91
  420. package/bin/Utils/Logger/LoggerManager.d.ts.map +0 -1
  421. package/bin/Utils/Logger/LoggerManager.js +0 -167
  422. package/bin/Utils/Logger/LoggerManager.js.map +0 -1
  423. package/bin/Utils/Logger/Types.d.ts +0 -40
  424. package/bin/Utils/Logger/Types.d.ts.map +0 -1
  425. package/bin/Utils/Logger/Types.js +0 -2
  426. package/bin/Utils/Logger/Types.js.map +0 -1
  427. package/bin/Utils/Logger/index.d.ts +0 -5
  428. package/bin/Utils/Logger/index.d.ts.map +0 -1
  429. package/bin/Utils/Logger/index.js +0 -5
  430. package/bin/Utils/Logger/index.js.map +0 -1
  431. package/bin/Utils/PerformanceMonitor.d.ts +0 -196
  432. package/bin/Utils/PerformanceMonitor.d.ts.map +0 -1
  433. package/bin/Utils/PerformanceMonitor.js +0 -244
  434. package/bin/Utils/PerformanceMonitor.js.map +0 -1
  435. package/bin/Utils/Pool/IPoolable.d.ts +0 -29
  436. package/bin/Utils/Pool/IPoolable.d.ts.map +0 -1
  437. package/bin/Utils/Pool/IPoolable.js +0 -2
  438. package/bin/Utils/Pool/IPoolable.js.map +0 -1
  439. package/bin/Utils/Pool/Pool.d.ts +0 -109
  440. package/bin/Utils/Pool/Pool.d.ts.map +0 -1
  441. package/bin/Utils/Pool/Pool.js +0 -238
  442. package/bin/Utils/Pool/Pool.js.map +0 -1
  443. package/bin/Utils/Pool/PoolManager.d.ts +0 -96
  444. package/bin/Utils/Pool/PoolManager.d.ts.map +0 -1
  445. package/bin/Utils/Pool/PoolManager.js +0 -199
  446. package/bin/Utils/Pool/PoolManager.js.map +0 -1
  447. package/bin/Utils/Pool/index.d.ts +0 -4
  448. package/bin/Utils/Pool/index.d.ts.map +0 -1
  449. package/bin/Utils/Pool/index.js +0 -4
  450. package/bin/Utils/Pool/index.js.map +0 -1
  451. package/bin/Utils/Profiler/AutoProfiler.d.ts +0 -160
  452. package/bin/Utils/Profiler/AutoProfiler.d.ts.map +0 -1
  453. package/bin/Utils/Profiler/AutoProfiler.js +0 -503
  454. package/bin/Utils/Profiler/AutoProfiler.js.map +0 -1
  455. package/bin/Utils/Profiler/ProfilerSDK.d.ts +0 -175
  456. package/bin/Utils/Profiler/ProfilerSDK.d.ts.map +0 -1
  457. package/bin/Utils/Profiler/ProfilerSDK.js +0 -727
  458. package/bin/Utils/Profiler/ProfilerSDK.js.map +0 -1
  459. package/bin/Utils/Profiler/ProfilerTypes.d.ts +0 -218
  460. package/bin/Utils/Profiler/ProfilerTypes.d.ts.map +0 -1
  461. package/bin/Utils/Profiler/ProfilerTypes.js +0 -47
  462. package/bin/Utils/Profiler/ProfilerTypes.js.map +0 -1
  463. package/bin/Utils/Profiler/index.d.ts +0 -8
  464. package/bin/Utils/Profiler/index.d.ts.map +0 -1
  465. package/bin/Utils/Profiler/index.js +0 -7
  466. package/bin/Utils/Profiler/index.js.map +0 -1
  467. package/bin/Utils/Time.d.ts +0 -47
  468. package/bin/Utils/Time.d.ts.map +0 -1
  469. package/bin/Utils/Time.js +0 -64
  470. package/bin/Utils/Time.js.map +0 -1
  471. package/bin/Utils/Timers/ITimer.d.ts +0 -16
  472. package/bin/Utils/Timers/ITimer.d.ts.map +0 -1
  473. package/bin/Utils/Timers/ITimer.js +0 -2
  474. package/bin/Utils/Timers/ITimer.js.map +0 -1
  475. package/bin/Utils/Timers/Timer.d.ts +0 -30
  476. package/bin/Utils/Timers/Timer.d.ts.map +0 -1
  477. package/bin/Utils/Timers/Timer.js +0 -58
  478. package/bin/Utils/Timers/Timer.js.map +0 -1
  479. package/bin/Utils/Timers/TimerManager.d.ts +0 -26
  480. package/bin/Utils/Timers/TimerManager.d.ts.map +0 -1
  481. package/bin/Utils/Timers/TimerManager.js +0 -48
  482. package/bin/Utils/Timers/TimerManager.js.map +0 -1
  483. package/bin/Utils/index.d.ts +0 -11
  484. package/bin/Utils/index.d.ts.map +0 -1
  485. package/bin/Utils/index.js +0 -11
  486. package/bin/Utils/index.js.map +0 -1
  487. package/bin/index.d.ts +0 -29
  488. package/bin/index.d.ts.map +0 -1
  489. package/bin/index.js +0 -36
  490. 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":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,OAAO,eAAgB,SAAQ,YAAY;IAS7C;QACI,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAPnD;;;WAGG;QACK,kBAAa,GAAgB,IAAI,GAAG,EAAE,CAAC;IAI/C,CAAC;IAED;;OAEG;IACH,IAAoB,WAAW;QAC3B,OAAO,CAAC,IAAI,CAAC;IACjB,CAAC;IAEkB,OAAO,CAAC,SAA4B;QACnD,iEAAiE;QACjE,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO;QACX,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACtC,0CAA0C;YAC1C,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;YACtC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;IAED;;;;;OAKG;IACI,SAAS,CAAC,KAAa,EAAE,MAAqB;QACjD,IAAI,cAAc,GAAG,KAAK,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;QAE5D,kCAAkC;QAClC,IAAI,CAAC,cAAc,EAAE,CAAC;YAClB,cAAc,GAAG,IAAI,kBAAkB,EAAE,CAAC;YAC1C,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;QACvC,CAAC;QAED,WAAW;QACX,MAAM,eAAe,GAAG,cAAc,CAAC,QAAQ,CAAC;QAChD,MAAM,WAAW,GAAG,MAAM,EAAE,EAAE,IAAI,IAAI,CAAC;QACvC,IAAI,eAAe,KAAK,WAAW,EAAE,CAAC;YAClC,OAAO;QACX,CAAC;QAED,SAAS;QACT,IAAI,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QAC1E,CAAC;QAED,SAAS;QACT,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,eAAe,CAAC,CAAC;YAC9D,IAAI,SAAS,EAAE,CAAC;gBACZ,MAAM,kBAAkB,GAAG,SAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;gBACtE,IAAI,kBAAkB,EAAE,CAAC;oBACrB,MAAM,GAAG,GAAG,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAC1D,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;wBACb,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;oBAC/C,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAED,SAAS;QACT,IAAI,MAAM,EAAE,CAAC;YACT,IAAI,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;YAC9D,IAAI,CAAC,eAAe,EAAE,CAAC;gBACnB,eAAe,GAAG,IAAI,kBAAkB,EAAE,CAAC;gBAC3C,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;YACzC,CAAC;YACD,cAAc,CAAC,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;YACpC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACJ,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC;QACnC,CAAC;QAED,QAAQ;QACR,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED;;;;;;OAMG;IACI,aAAa,CAAC,MAAc,EAAE,KAAa,EAAE,KAAa;QAC7D,IAAI,cAAc,GAAG,KAAK,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;QAC5D,IAAI,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;QAE9D,0BAA0B;QAC1B,IAAI,CAAC,cAAc,EAAE,CAAC;YAClB,cAAc,GAAG,IAAI,kBAAkB,EAAE,CAAC;YAC1C,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;YACnB,eAAe,GAAG,IAAI,kBAAkB,EAAE,CAAC;YAC3C,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;QACzC,CAAC;QAED,SAAS;QACT,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QAC1E,CAAC;QAED,SAAS;QACT,IAAI,cAAc,CAAC,QAAQ,KAAK,IAAI,IAAI,cAAc,CAAC,QAAQ,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC;YAC5E,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YACtE,IAAI,SAAS,EAAE,CAAC;gBACZ,MAAM,kBAAkB,GAAG,SAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;gBACtE,IAAI,kBAAkB,EAAE,CAAC;oBACrB,MAAM,GAAG,GAAG,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAC1D,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;wBACb,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;oBAC/C,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAED,QAAQ;QACR,cAAc,CAAC,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;QAEpC,sBAAsB;QACtB,MAAM,WAAW,GAAG,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/D,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;YACrB,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACpD,CAAC;QAED,UAAU;QACV,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,eAAe,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACxD,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACJ,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,QAAQ;QACR,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,MAAc,EAAE,KAAa;QAC5C,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;QAChE,MAAM,cAAc,GAAG,KAAK,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;QAE9D,IAAI,CAAC,eAAe,IAAI,CAAC,cAAc,EAAE,CAAC;YACtC,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,cAAc,CAAC,QAAQ,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC;YACxC,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,MAAM,GAAG,GAAG,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACvD,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;YACb,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC5C,CAAC;QAED,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE3B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,iBAAiB,CAAC,MAAc;QACnC,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;QAChE,IAAI,CAAC,eAAe;YAAE,OAAO;QAE7B,MAAM,QAAQ,GAAG,CAAC,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC/C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;YAClD,IAAI,KAAK,EAAE,CAAC;gBACR,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACpC,CAAC;QACL,CAAC;IACL,CAAC;IAED;;OAEG;IACI,SAAS,CAAC,MAAc;QAC3B,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;QAC1D,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;IAClE,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,MAAc;QAC7B,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;QAC1D,IAAI,CAAC,SAAS;YAAE,OAAO,EAAE,CAAC;QAE1B,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;YAClD,IAAI,KAAK,EAAE,CAAC;gBACR,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;QACL,CAAC;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;OAEG;IACI,aAAa,CAAC,MAAc;QAC/B,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;QAC1D,OAAO,SAAS,EAAE,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,MAAc;QAC7B,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACI,YAAY,CAAC,QAAgB,EAAE,MAAc;QAChD,IAAI,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,OAAO,OAAO,IAAI,KAAK,GAAG,eAAe,CAAC,SAAS,EAAE,CAAC;YAClD,IAAI,OAAO,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,EAAE,CAAC;gBAC7B,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAClC,KAAK,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;OAEG;IACI,cAAc,CAAC,UAAkB,EAAE,MAAc;QACpD,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACI,OAAO,CAAC,MAAc;QACzB,IAAI,OAAO,GAAG,MAAM,CAAC;QACrB,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,OAAO,MAAM,IAAI,KAAK,GAAG,eAAe,CAAC,SAAS,EAAE,CAAC;YACjD,OAAO,GAAG,MAAM,CAAC;YACjB,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACjC,KAAK,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;OAEG;IACI,QAAQ,CAAC,MAAc;QAC1B,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;QAC1D,IAAI,CAAC,SAAS;YAAE,OAAO,CAAC,CAAC;QAEzB,cAAc;QACd,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;YACzB,OAAO,SAAS,CAAC,KAAK,CAAC;QAC3B,CAAC;QAED,OAAO;QACP,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACrC,OAAO,OAAO,IAAI,KAAK,GAAG,eAAe,CAAC,SAAS,EAAE,CAAC;YAClD,KAAK,EAAE,CAAC;YACR,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;QAED,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC;QACxB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;OAEG;IACI,mBAAmB,CAAC,MAAc;QACrC,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAEjC,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;QAC1D,IAAI,CAAC,SAAS;YAAE,OAAO,MAAM,CAAC,MAAM,CAAC;QAErC,cAAc;QACd,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;YACzB,OAAO,SAAS,CAAC,kBAAkB,CAAC;QACxC,CAAC;QAED,OAAO;QACP,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,SAAS,CAAC,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC;QACjD,CAAC;aAAM,CAAC;YACJ,SAAS,CAAC,kBAAkB,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACrF,CAAC;QAED,OAAO,SAAS,CAAC,kBAAkB,CAAC;IACxC,CAAC;IAED;;OAEG;IACI,eAAe;QAClB,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjC,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;YAC1D,IAAI,SAAS,IAAI,SAAS,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gBAC3C,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;;;OAMG;IACI,SAAS,CAAC,MAAc,EAAE,IAAY,EAAE,aAAsB,KAAK;QACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAE1C,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACtB,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YACb,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;gBAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBAChD,IAAI,KAAK,EAAE,CAAC;oBACR,OAAO,KAAK,CAAC;gBACjB,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACI,iBAAiB,CAAC,MAAc,EAAE,GAAW,EAAE,aAAsB,KAAK;QAC7E,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAE1C,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC;YAED,IAAI,UAAU,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;YAC7D,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;;;OAMG;IACI,YAAY,CACf,MAAc,EACd,QAAiC,EACjC,aAAsB,KAAK;QAE3B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAE1C,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC3B,QAAQ,CAAC,KAAK,CAAC,CAAC;YAEhB,IAAI,UAAU,EAAE,CAAC;gBACb,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC7C,CAAC;QACL,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACI,gBAAgB,CAAC,WAAwB;QAM5C,MAAM,MAAM,GAKP,EAAE,CAAC;QAER,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAE,KAAa,EAAQ,EAAE;YACrD,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC9C,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAE/C,MAAM,CAAC,IAAI,CAAC;gBACR,MAAM;gBACN,KAAK;gBACL,YAAY;gBACZ,WAAW;aACd,CAAC,CAAC;YAEH,IAAI,YAAY,IAAI,WAAW,EAAE,CAAC;gBAC9B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC3C,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBAC/B,CAAC;YACL,CAAC;QACL,CAAC,CAAC;QAEF,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;YACxC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACtB,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;OAGG;IACK,cAAc,CAAC,MAAc;QACjC,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;QAC1D,IAAI,CAAC,SAAS;YAAE,OAAO;QAEvB,qBAAqB;QACrB,oDAAoD;QACpD,IAAI,SAAS,CAAC,WAAW;YAAE,OAAO;QAElC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAE/B,2CAA2C;QAC3C,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;YAClD,IAAI,KAAK,EAAE,CAAC;gBACR,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC;QACL,CAAC;IACL,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,MAAc;QACvC,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;QAC1D,IAAI,CAAC,SAAS;YAAE,OAAO;QAEvB,OAAO;QACP,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAExC,SAAS;QACT,SAAS,CAAC,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAEhE,SAAS;QACT,SAAS,CAAC,WAAW,GAAG,KAAK,CAAC;IAClC,CAAC;IAED;;;OAGG;IACgB,OAAO,CAAC,MAAc;QACrC,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;QAC1D,IAAI,SAAS,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;YACrC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;IACL,CAAC;IAED;;;OAGG;IACgB,SAAS,CAAC,MAAc;QACvC,kCAAkC;QAClC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAElC,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;QAC1D,IAAI,CAAC,SAAS;YAAE,OAAO;QAEvB,6BAA6B;QAC7B,IAAI,SAAS,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAC9D,IAAI,MAAM,EAAE,CAAC;gBACT,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;gBAChE,IAAI,eAAe,EAAE,CAAC;oBAClB,MAAM,GAAG,GAAG,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACxD,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;wBACb,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;oBAC5C,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAED,gBAAgB;QAChB,+CAA+C;QAC/C,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;YAClD,IAAI,KAAK,EAAE,CAAC;gBACR,MAAM,cAAc,GAAG,KAAK,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;gBAC9D,IAAI,cAAc,EAAE,CAAC;oBACjB,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC;oBAC/B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;gBAC/B,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAEe,OAAO;QACnB,mCAAmC;QACnC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;;AA3iBuB,yBAAS,GAAG,EAAE,AAAL,CAAM"}
@@ -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