@esengine/ecs-framework 2.2.21 → 2.3.0

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