@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,105 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { Int32 } from './Core/SoAStorage';
3
- /**
4
- * 游戏组件基类
5
- *
6
- * ECS架构中的组件(Component)应该是纯数据容器。
7
- * 所有游戏逻辑应该在 EntitySystem 中实现,而不是在组件内部。
8
- *
9
- * @example
10
- * 推荐做法:纯数据组件
11
- * ```typescript
12
- * class HealthComponent extends Component {
13
- * public health: number = 100;
14
- * public maxHealth: number = 100;
15
- * }
16
- * ```
17
- *
18
- * @example
19
- * 推荐做法:在 System 中处理逻辑
20
- * ```typescript
21
- * class HealthSystem extends EntitySystem {
22
- * process(entities: Entity[]): void {
23
- * for (const entity of entities) {
24
- * const health = entity.getComponent(HealthComponent);
25
- * if (health && health.health <= 0) {
26
- * entity.destroy();
27
- * }
28
- * }
29
- * }
30
- * }
31
- * ```
32
- */
33
- export class Component {
34
- /**
35
- * 创建组件实例
36
- *
37
- * 自动分配唯一ID给组件。
38
- */
39
- constructor() {
40
- /**
41
- * 所属实体ID
42
- *
43
- * 存储实体ID而非引用,避免循环引用,符合ECS数据导向设计。
44
- */
45
- this.entityId = null;
46
- this.id = Component.idGenerator++;
47
- }
48
- /**
49
- * 组件添加到实体时的回调
50
- *
51
- * 当组件被添加到实体时调用,可以在此方法中进行初始化操作。
52
- *
53
- * @remarks
54
- * 这是一个生命周期钩子,用于组件的初始化逻辑。
55
- * 虽然保留此方法,但建议将复杂的初始化逻辑放在 System 中处理。
56
- */
57
- onAddedToEntity() { }
58
- /**
59
- * 组件从实体移除时的回调
60
- *
61
- * 当组件从实体中移除时调用,可以在此方法中进行清理操作。
62
- *
63
- * @remarks
64
- * 这是一个生命周期钩子,用于组件的清理逻辑。
65
- * 虽然保留此方法,但建议将复杂的清理逻辑放在 System 中处理。
66
- */
67
- onRemovedFromEntity() { }
68
- /**
69
- * 组件反序列化后的回调
70
- *
71
- * 当组件从场景文件加载或快照恢复后调用,可以在此方法中恢复运行时数据。
72
- *
73
- * @remarks
74
- * 这是一个生命周期钩子,用于恢复无法序列化的运行时数据。
75
- * 例如:从图片路径重新加载图片尺寸信息,重建缓存等。
76
- *
77
- * @example
78
- * ```typescript
79
- * class TilemapComponent extends Component {
80
- * public tilesetImage: string = '';
81
- * private _tilesetData: TilesetData | undefined;
82
- *
83
- * public async onDeserialized(): Promise<void> {
84
- * if (this.tilesetImage) {
85
- * // 重新加载 tileset 图片并恢复运行时数据
86
- * const img = await loadImage(this.tilesetImage);
87
- * this.setTilesetInfo(img.width, img.height, ...);
88
- * }
89
- * }
90
- * }
91
- * ```
92
- */
93
- onDeserialized() { }
94
- }
95
- /**
96
- * 组件ID生成器
97
- *
98
- * 用于为每个组件分配唯一的ID。
99
- */
100
- Component.idGenerator = 0;
101
- __decorate([
102
- Int32,
103
- __metadata("design:type", Object)
104
- ], Component.prototype, "entityId", void 0);
105
- //# sourceMappingURL=Component.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Component.js","sourceRoot":"","sources":["../../src/ECS/Component.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,OAAgB,SAAS;IAuB3B;;;;OAIG;IACH;QAbA;;;;WAIG;QAEI,aAAQ,GAAkB,IAAI,CAAC;QAQlC,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IACtC,CAAC;IAED;;;;;;;;OAQG;IACI,eAAe,KAAU,CAAC;IAEjC;;;;;;;;OAQG;IACI,mBAAmB,KAAU,CAAC;IAErC;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACI,cAAc,KAA0B,CAAC;;AA9EhD;;;;GAIG;AACY,qBAAW,GAAW,CAAC,AAAZ,CAAa;AAehC;IADN,KAAK;;2CACgC"}
@@ -1,46 +0,0 @@
1
- import { Component } from '../Component';
2
- /**
3
- * 层级关系组件 - 用于建立实体间的父子关系
4
- *
5
- * 只有需要层级关系的实体才添加此组件,遵循 ECS 组合原则。
6
- * 层级操作应通过 HierarchySystem 进行,而非直接修改此组件。
7
- *
8
- * @example
9
- * ```typescript
10
- * // 通过 HierarchySystem 设置父子关系
11
- * const hierarchySystem = scene.getSystem(HierarchySystem);
12
- * hierarchySystem.setParent(childEntity, parentEntity);
13
- *
14
- * // 查询层级信息
15
- * const parent = hierarchySystem.getParent(entity);
16
- * const children = hierarchySystem.getChildren(entity);
17
- * ```
18
- */
19
- export declare class HierarchyComponent extends Component {
20
- /**
21
- * 父实体 ID
22
- * null 表示根实体(无父级)
23
- */
24
- parentId: number | null;
25
- /**
26
- * 子实体 ID 列表
27
- * 顺序即为子级的排列顺序
28
- */
29
- childIds: number[];
30
- /**
31
- * 在层级中的深度
32
- * 根实体深度为 0,由 HierarchySystem 维护
33
- */
34
- depth: number;
35
- /**
36
- * 层级中是否激活
37
- * 考虑所有祖先的激活状态,由 HierarchySystem 维护
38
- */
39
- bActiveInHierarchy: boolean;
40
- /**
41
- * 层级缓存是否脏
42
- * 用于优化缓存更新
43
- */
44
- bCacheDirty: boolean;
45
- }
46
- //# sourceMappingURL=HierarchyComponent.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"HierarchyComponent.d.ts","sourceRoot":"","sources":["../../../src/ECS/Components/HierarchyComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIzC;;;;;;;;;;;;;;;;GAgBG;AACH,qBAEa,kBAAmB,SAAQ,SAAS;IAC7C;;;OAGG;IAEI,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEtC;;;OAGG;IAEI,QAAQ,EAAE,MAAM,EAAE,CAAM;IAE/B;;;OAGG;IACI,KAAK,EAAE,MAAM,CAAK;IAEzB;;;OAGG;IACI,kBAAkB,EAAE,OAAO,CAAQ;IAE1C;;;OAGG;IACI,WAAW,EAAE,OAAO,CAAQ;CACtC"}
@@ -1,65 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { Component } from '../Component';
3
- import { ECSComponent } from '../Decorators';
4
- import { Serializable, Serialize } from '../Serialization/SerializationDecorators';
5
- /**
6
- * 层级关系组件 - 用于建立实体间的父子关系
7
- *
8
- * 只有需要层级关系的实体才添加此组件,遵循 ECS 组合原则。
9
- * 层级操作应通过 HierarchySystem 进行,而非直接修改此组件。
10
- *
11
- * @example
12
- * ```typescript
13
- * // 通过 HierarchySystem 设置父子关系
14
- * const hierarchySystem = scene.getSystem(HierarchySystem);
15
- * hierarchySystem.setParent(childEntity, parentEntity);
16
- *
17
- * // 查询层级信息
18
- * const parent = hierarchySystem.getParent(entity);
19
- * const children = hierarchySystem.getChildren(entity);
20
- * ```
21
- */
22
- let HierarchyComponent = class HierarchyComponent extends Component {
23
- constructor() {
24
- super(...arguments);
25
- /**
26
- * 父实体 ID
27
- * null 表示根实体(无父级)
28
- */
29
- this.parentId = null;
30
- /**
31
- * 子实体 ID 列表
32
- * 顺序即为子级的排列顺序
33
- */
34
- this.childIds = [];
35
- /**
36
- * 在层级中的深度
37
- * 根实体深度为 0,由 HierarchySystem 维护
38
- */
39
- this.depth = 0;
40
- /**
41
- * 层级中是否激活
42
- * 考虑所有祖先的激活状态,由 HierarchySystem 维护
43
- */
44
- this.bActiveInHierarchy = true;
45
- /**
46
- * 层级缓存是否脏
47
- * 用于优化缓存更新
48
- */
49
- this.bCacheDirty = true;
50
- }
51
- };
52
- __decorate([
53
- Serialize(),
54
- __metadata("design:type", Object)
55
- ], HierarchyComponent.prototype, "parentId", void 0);
56
- __decorate([
57
- Serialize(),
58
- __metadata("design:type", Array)
59
- ], HierarchyComponent.prototype, "childIds", void 0);
60
- HierarchyComponent = __decorate([
61
- ECSComponent('Hierarchy'),
62
- Serializable({ version: 1, typeId: 'Hierarchy' })
63
- ], HierarchyComponent);
64
- export { HierarchyComponent };
65
- //# sourceMappingURL=HierarchyComponent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"HierarchyComponent.js","sourceRoot":"","sources":["../../../src/ECS/Components/HierarchyComponent.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AAEnF;;;;;;;;;;;;;;;;GAgBG;AAGI,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,SAAS;IAA1C;;QACH;;;WAGG;QAEI,aAAQ,GAAkB,IAAI,CAAC;QAEtC;;;WAGG;QAEI,aAAQ,GAAa,EAAE,CAAC;QAE/B;;;WAGG;QACI,UAAK,GAAW,CAAC,CAAC;QAEzB;;;WAGG;QACI,uBAAkB,GAAY,IAAI,CAAC;QAE1C;;;WAGG;QACI,gBAAW,GAAY,IAAI,CAAC;IACvC,CAAC;CAAA,CAAA;AA1BU;IADN,SAAS,EAAE;;oDAC0B;AAO/B;IADN,SAAS,EAAE;;oDACmB;AAbtB,kBAAkB;IAF9B,YAAY,CAAC,WAAW,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;GACrC,kBAAkB,CAgC9B"}
@@ -1,2 +0,0 @@
1
- export { HierarchyComponent } from './HierarchyComponent';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ECS/Components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -1,2 +0,0 @@
1
- export { HierarchyComponent } from './HierarchyComponent';
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ECS/Components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -1,103 +0,0 @@
1
- import { Entity } from '../Entity';
2
- import { ComponentType } from './ComponentStorage';
3
- import { BitMask64Data } from '../Utils';
4
- /**
5
- * 原型标识符
6
- */
7
- export type ArchetypeId = BitMask64Data;
8
- /**
9
- * 原型数据结构
10
- */
11
- export interface Archetype {
12
- /** 原型唯一标识符 */
13
- id: ArchetypeId;
14
- /** 包含的组件类型 */
15
- componentTypes: ComponentType[];
16
- /** 属于该原型的实体集合 */
17
- entities: Set<Entity>;
18
- }
19
- /**
20
- * 原型查询结果
21
- */
22
- export interface ArchetypeQueryResult {
23
- /** 匹配的原型列表 */
24
- archetypes: Archetype[];
25
- /** 所有匹配实体的总数 */
26
- totalEntities: number;
27
- }
28
- /**
29
- * Archetype系统
30
- *
31
- * 根据实体的组件组合将实体分组到不同的原型中,提供高效的查询性能。
32
- */
33
- export declare class ArchetypeSystem {
34
- /** 所有原型的映射表 */
35
- private _archetypes;
36
- /** 实体到原型的映射 */
37
- private _entityToArchetype;
38
- /** 组件类型到原型的映射 */
39
- private _componentToArchetypes;
40
- /** 实体组件类型缓存 */
41
- private _entityComponentTypesCache;
42
- /** 所有原型 */
43
- private _allArchetypes;
44
- /**
45
- * 添加实体到原型系统
46
- */
47
- addEntity(entity: Entity): void;
48
- /**
49
- * 从原型系统中移除实体
50
- */
51
- removeEntity(entity: Entity): void;
52
- /**
53
- * 更新实体的原型归属
54
- *
55
- * 当实体的组件组合发生变化时调用此方法,将实体从旧原型移动到新原型。
56
- * 如果新的组件组合对应的原型不存在,将自动创建新原型。
57
- *
58
- * @param entity 要更新的实体
59
- */
60
- updateEntity(entity: Entity): void;
61
- /**
62
- * 查询包含指定组件组合的原型
63
- *
64
- * @param componentTypes 要查询的组件类型列表
65
- * @param operation 查询操作类型:'AND'(包含所有)或 'OR'(包含任意)
66
- * @returns 匹配的原型列表及实体总数
67
- */
68
- queryArchetypes(componentTypes: ComponentType[], operation?: 'AND' | 'OR'): ArchetypeQueryResult;
69
- /**
70
- * 获取实体所属的原型
71
- */
72
- getEntityArchetype(entity: Entity): Archetype | undefined;
73
- /**
74
- * 获取所有原型
75
- */
76
- getAllArchetypes(): Archetype[];
77
- /**
78
- * 获取包含指定组件类型的所有实体
79
- */
80
- getEntitiesByComponent(componentType: ComponentType): Entity[];
81
- /**
82
- * 清空所有数据
83
- */
84
- clear(): void;
85
- /**
86
- * 更新所有原型数组
87
- */
88
- private updateAllArchetypeArrays;
89
- /**
90
- * 获取实体的组件类型列表
91
- */
92
- private getEntityComponentTypes;
93
- /**
94
- * 生成原型ID
95
- * 使用ComponentRegistry确保与Entity.componentMask使用相同的bitIndex
96
- */
97
- private generateArchetypeId;
98
- /**
99
- * 创建新原型
100
- */
101
- private createArchetype;
102
- }
103
- //# sourceMappingURL=ArchetypeSystem.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ArchetypeSystem.d.ts","sourceRoot":"","sources":["../../../src/ECS/Core/ArchetypeSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,aAAa,EAAqB,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAkB,MAAM,UAAU,CAAC;AAGzD;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,aAAa,CAAC;AAExC;;GAEG;AACH,MAAM,WAAW,SAAS;IACtB,cAAc;IACd,EAAE,EAAE,WAAW,CAAC;IAChB,cAAc;IACd,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,iBAAiB;IACjB,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,cAAc;IACd,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,gBAAgB;IAChB,aAAa,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,qBAAa,eAAe;IACxB,eAAe;IACf,OAAO,CAAC,WAAW,CAAmC;IAEtD,eAAe;IACf,OAAO,CAAC,kBAAkB,CAAgC;IAE1D,iBAAiB;IACjB,OAAO,CAAC,sBAAsB,CAA4C;IAE1E,eAAe;IACf,OAAO,CAAC,0BAA0B,CAAsC;IAExE,WAAW;IACX,OAAO,CAAC,cAAc,CAAmB;IAEzC;;OAEG;IACI,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAatC;;OAEG;IACI,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAWzC;;;;;;;OAOG;IACI,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IA8BzC;;;;;;OAMG;IACI,eAAe,CAAC,cAAc,EAAE,aAAa,EAAE,EAAE,SAAS,GAAE,KAAK,GAAG,IAAY,GAAG,oBAAoB;IAyE9G;;OAEG;IACI,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAIhE;;OAEG;IACI,gBAAgB,IAAI,SAAS,EAAE;IAItC;;OAEG;IACI,sBAAsB,CAAC,aAAa,EAAE,aAAa,GAAG,MAAM,EAAE;IAerE;;OAEG;IACI,KAAK,IAAI,IAAI;IAQpB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAOhC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAS/B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAY3B;;OAEG;IACH,OAAO,CAAC,eAAe;CAwB1B"}
@@ -1,244 +0,0 @@
1
- import { ComponentRegistry } from './ComponentStorage';
2
- import { BitMask64Utils } from '../Utils';
3
- import { BitMaskHashMap } from '../Utils/BitMaskHashMap';
4
- /**
5
- * Archetype系统
6
- *
7
- * 根据实体的组件组合将实体分组到不同的原型中,提供高效的查询性能。
8
- */
9
- export class ArchetypeSystem {
10
- constructor() {
11
- /** 所有原型的映射表 */
12
- this._archetypes = new BitMaskHashMap();
13
- /** 实体到原型的映射 */
14
- this._entityToArchetype = new Map();
15
- /** 组件类型到原型的映射 */
16
- this._componentToArchetypes = new Map();
17
- /** 实体组件类型缓存 */
18
- this._entityComponentTypesCache = new Map();
19
- /** 所有原型 */
20
- this._allArchetypes = [];
21
- }
22
- /**
23
- * 添加实体到原型系统
24
- */
25
- addEntity(entity) {
26
- const componentTypes = this.getEntityComponentTypes(entity);
27
- const archetypeId = this.generateArchetypeId(componentTypes);
28
- let archetype = this._archetypes.get(archetypeId);
29
- if (!archetype) {
30
- archetype = this.createArchetype(componentTypes);
31
- }
32
- archetype.entities.add(entity);
33
- this._entityToArchetype.set(entity, archetype);
34
- }
35
- /**
36
- * 从原型系统中移除实体
37
- */
38
- removeEntity(entity) {
39
- const archetype = this._entityToArchetype.get(entity);
40
- if (!archetype)
41
- return;
42
- archetype.entities.delete(entity);
43
- // 清理实体相关缓存
44
- this._entityComponentTypesCache.delete(entity);
45
- this._entityToArchetype.delete(entity);
46
- }
47
- /**
48
- * 更新实体的原型归属
49
- *
50
- * 当实体的组件组合发生变化时调用此方法,将实体从旧原型移动到新原型。
51
- * 如果新的组件组合对应的原型不存在,将自动创建新原型。
52
- *
53
- * @param entity 要更新的实体
54
- */
55
- updateEntity(entity) {
56
- const currentArchetype = this._entityToArchetype.get(entity);
57
- // 清理实体组件类型缓存,强制重新计算
58
- this._entityComponentTypesCache.delete(entity);
59
- const newComponentTypes = this.getEntityComponentTypes(entity);
60
- const newArchetypeId = this.generateArchetypeId(newComponentTypes);
61
- // 如果实体已在正确的原型中,无需更新
62
- if (currentArchetype && currentArchetype.id === newArchetypeId) {
63
- return;
64
- }
65
- // 从旧原型中移除实体
66
- if (currentArchetype) {
67
- currentArchetype.entities.delete(entity);
68
- }
69
- // 获取或创建新原型
70
- let newArchetype = this._archetypes.get(newArchetypeId);
71
- if (!newArchetype) {
72
- newArchetype = this.createArchetype(newComponentTypes);
73
- }
74
- // 将实体添加到新原型
75
- newArchetype.entities.add(entity);
76
- this._entityToArchetype.set(entity, newArchetype);
77
- }
78
- /**
79
- * 查询包含指定组件组合的原型
80
- *
81
- * @param componentTypes 要查询的组件类型列表
82
- * @param operation 查询操作类型:'AND'(包含所有)或 'OR'(包含任意)
83
- * @returns 匹配的原型列表及实体总数
84
- */
85
- queryArchetypes(componentTypes, operation = 'AND') {
86
- const matchingArchetypes = [];
87
- let totalEntities = 0;
88
- if (operation === 'AND') {
89
- if (componentTypes.length === 0) {
90
- for (const archetype of this._allArchetypes) {
91
- matchingArchetypes.push(archetype);
92
- totalEntities += archetype.entities.size;
93
- }
94
- return { archetypes: matchingArchetypes, totalEntities };
95
- }
96
- if (componentTypes.length === 1) {
97
- const archetypes = this._componentToArchetypes.get(componentTypes[0]);
98
- if (archetypes) {
99
- for (const archetype of archetypes) {
100
- matchingArchetypes.push(archetype);
101
- totalEntities += archetype.entities.size;
102
- }
103
- }
104
- return { archetypes: matchingArchetypes, totalEntities };
105
- }
106
- let smallestSet;
107
- let smallestSize = Infinity;
108
- for (const componentType of componentTypes) {
109
- const archetypes = this._componentToArchetypes.get(componentType);
110
- if (!archetypes || archetypes.size === 0) {
111
- return { archetypes: [], totalEntities: 0 };
112
- }
113
- if (archetypes.size < smallestSize) {
114
- smallestSize = archetypes.size;
115
- smallestSet = archetypes;
116
- }
117
- }
118
- const queryMask = this.generateArchetypeId(componentTypes);
119
- if (smallestSet) {
120
- for (const archetype of smallestSet) {
121
- if (BitMask64Utils.hasAll(archetype.id, queryMask)) {
122
- matchingArchetypes.push(archetype);
123
- totalEntities += archetype.entities.size;
124
- }
125
- }
126
- }
127
- }
128
- else {
129
- const foundArchetypes = new Set();
130
- for (const componentType of componentTypes) {
131
- const archetypes = this._componentToArchetypes.get(componentType);
132
- if (archetypes) {
133
- for (const archetype of archetypes) {
134
- foundArchetypes.add(archetype);
135
- }
136
- }
137
- }
138
- for (const archetype of foundArchetypes) {
139
- matchingArchetypes.push(archetype);
140
- totalEntities += archetype.entities.size;
141
- }
142
- }
143
- return {
144
- archetypes: matchingArchetypes,
145
- totalEntities
146
- };
147
- }
148
- /**
149
- * 获取实体所属的原型
150
- */
151
- getEntityArchetype(entity) {
152
- return this._entityToArchetype.get(entity);
153
- }
154
- /**
155
- * 获取所有原型
156
- */
157
- getAllArchetypes() {
158
- return this._allArchetypes.slice();
159
- }
160
- /**
161
- * 获取包含指定组件类型的所有实体
162
- */
163
- getEntitiesByComponent(componentType) {
164
- const archetypes = this._componentToArchetypes.get(componentType);
165
- if (!archetypes || archetypes.size === 0) {
166
- return [];
167
- }
168
- const entities = [];
169
- for (const archetype of archetypes) {
170
- for (const entity of archetype.entities) {
171
- entities.push(entity);
172
- }
173
- }
174
- return entities;
175
- }
176
- /**
177
- * 清空所有数据
178
- */
179
- clear() {
180
- this._archetypes.clear();
181
- this._entityToArchetype.clear();
182
- this._componentToArchetypes.clear();
183
- this._entityComponentTypesCache.clear();
184
- this._allArchetypes = [];
185
- }
186
- /**
187
- * 更新所有原型数组
188
- */
189
- updateAllArchetypeArrays() {
190
- this._allArchetypes = [];
191
- for (const archetype of this._archetypes.values()) {
192
- this._allArchetypes.push(archetype);
193
- }
194
- }
195
- /**
196
- * 获取实体的组件类型列表
197
- */
198
- getEntityComponentTypes(entity) {
199
- let componentTypes = this._entityComponentTypesCache.get(entity);
200
- if (!componentTypes) {
201
- componentTypes = entity.components.map((component) => component.constructor);
202
- this._entityComponentTypesCache.set(entity, componentTypes);
203
- }
204
- return componentTypes;
205
- }
206
- /**
207
- * 生成原型ID
208
- * 使用ComponentRegistry确保与Entity.componentMask使用相同的bitIndex
209
- */
210
- generateArchetypeId(componentTypes) {
211
- const mask = BitMask64Utils.clone(BitMask64Utils.ZERO);
212
- for (const type of componentTypes) {
213
- if (!ComponentRegistry.isRegistered(type)) {
214
- ComponentRegistry.register(type);
215
- }
216
- const bitMask = ComponentRegistry.getBitMask(type);
217
- BitMask64Utils.orInPlace(mask, bitMask);
218
- }
219
- return mask;
220
- }
221
- /**
222
- * 创建新原型
223
- */
224
- createArchetype(componentTypes) {
225
- const id = this.generateArchetypeId(componentTypes);
226
- const archetype = {
227
- id,
228
- componentTypes: [...componentTypes],
229
- entities: new Set()
230
- };
231
- this._archetypes.set(id, archetype);
232
- this.updateAllArchetypeArrays();
233
- for (const componentType of componentTypes) {
234
- let archetypes = this._componentToArchetypes.get(componentType);
235
- if (!archetypes) {
236
- archetypes = new Set();
237
- this._componentToArchetypes.set(componentType, archetypes);
238
- }
239
- archetypes.add(archetype);
240
- }
241
- return archetype;
242
- }
243
- }
244
- //# sourceMappingURL=ArchetypeSystem.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ArchetypeSystem.js","sourceRoot":"","sources":["../../../src/ECS/Core/ArchetypeSystem.ts"],"names":[],"mappings":"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"}