@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,251 +0,0 @@
1
- /**
2
- * 组件序列化器
3
- *
4
- * 负责组件的序列化和反序列化操作
5
- */
6
- import { getComponentTypeName } from '../Decorators';
7
- import { getSerializationMetadata } from './SerializationDecorators';
8
- /**
9
- * 组件序列化器类
10
- */
11
- export class ComponentSerializer {
12
- /**
13
- * 序列化单个组件
14
- *
15
- * @param component 要序列化的组件实例
16
- * @returns 序列化后的组件数据,如果组件不可序列化则返回null
17
- */
18
- static serialize(component) {
19
- const metadata = getSerializationMetadata(component);
20
- if (!metadata) {
21
- // 组件没有使用@Serializable装饰器,不可序列化
22
- return null;
23
- }
24
- const componentType = component.constructor;
25
- const typeName = metadata.options.typeId || getComponentTypeName(componentType);
26
- const data = {};
27
- // 序列化标记的字段
28
- for (const [fieldName, options] of metadata.fields) {
29
- const fieldKey = typeof fieldName === 'symbol' ? fieldName.toString() : fieldName;
30
- const value = component[fieldName];
31
- // 跳过忽略的字段
32
- if (metadata.ignoredFields.has(fieldName)) {
33
- continue;
34
- }
35
- // 使用自定义序列化器或默认序列化
36
- const serializedValue = options.serializer
37
- ? options.serializer(value)
38
- : this.serializeValue(value);
39
- // 使用别名或原始字段名
40
- const key = options.alias || fieldKey;
41
- data[key] = serializedValue;
42
- }
43
- return {
44
- type: typeName,
45
- version: metadata.options.version,
46
- data
47
- };
48
- }
49
- /**
50
- * 反序列化组件
51
- *
52
- * @param serializedData 序列化的组件数据
53
- * @param componentRegistry 组件类型注册表 (类型名 -> 构造函数)
54
- * @returns 反序列化后的组件实例,如果失败则返回null
55
- */
56
- static deserialize(serializedData, componentRegistry) {
57
- const componentClass = componentRegistry.get(serializedData.type);
58
- if (!componentClass) {
59
- console.warn(`未找到组件类型: ${serializedData.type}`);
60
- return null;
61
- }
62
- const metadata = getSerializationMetadata(componentClass);
63
- if (!metadata) {
64
- console.warn(`组件 ${serializedData.type} 不可序列化`);
65
- return null;
66
- }
67
- // 创建组件实例
68
- const component = new componentClass();
69
- // 反序列化字段
70
- for (const [fieldName, options] of metadata.fields) {
71
- const fieldKey = typeof fieldName === 'symbol' ? fieldName.toString() : fieldName;
72
- const key = options.alias || fieldKey;
73
- const serializedValue = serializedData.data[key];
74
- if (serializedValue === undefined) {
75
- continue; // 字段不存在于序列化数据中
76
- }
77
- // 使用自定义反序列化器或默认反序列化
78
- const value = options.deserializer
79
- ? options.deserializer(serializedValue)
80
- : this.deserializeValue(serializedValue);
81
- component[fieldName] = value;
82
- }
83
- return component;
84
- }
85
- /**
86
- * 批量序列化组件
87
- *
88
- * @param components 组件数组
89
- * @returns 序列化后的组件数据数组
90
- */
91
- static serializeComponents(components) {
92
- const result = [];
93
- for (const component of components) {
94
- const serialized = this.serialize(component);
95
- if (serialized) {
96
- result.push(serialized);
97
- }
98
- }
99
- return result;
100
- }
101
- /**
102
- * 批量反序列化组件
103
- *
104
- * @param serializedComponents 序列化的组件数据数组
105
- * @param componentRegistry 组件类型注册表
106
- * @returns 反序列化后的组件数组
107
- */
108
- static deserializeComponents(serializedComponents, componentRegistry) {
109
- const result = [];
110
- for (const serialized of serializedComponents) {
111
- const component = this.deserialize(serialized, componentRegistry);
112
- if (component) {
113
- result.push(component);
114
- }
115
- }
116
- return result;
117
- }
118
- /**
119
- * 默认值序列化
120
- *
121
- * 处理基本类型、数组、对象等的序列化
122
- */
123
- static serializeValue(value) {
124
- if (value === null || value === undefined) {
125
- return value;
126
- }
127
- // 基本类型
128
- const type = typeof value;
129
- if (type === 'string' || type === 'number' || type === 'boolean') {
130
- return value;
131
- }
132
- // 日期
133
- if (value instanceof Date) {
134
- return {
135
- __type: 'Date',
136
- value: value.toISOString()
137
- };
138
- }
139
- // 数组
140
- if (Array.isArray(value)) {
141
- return value.map((item) => this.serializeValue(item));
142
- }
143
- // Map (如果没有使用@SerializeMap装饰器)
144
- if (value instanceof Map) {
145
- return {
146
- __type: 'Map',
147
- value: Array.from(value.entries())
148
- };
149
- }
150
- // Set
151
- if (value instanceof Set) {
152
- return {
153
- __type: 'Set',
154
- value: Array.from(value)
155
- };
156
- }
157
- // 普通对象
158
- if (type === 'object' && typeof value === 'object' && !Array.isArray(value)) {
159
- const result = {};
160
- const obj = value;
161
- for (const key in obj) {
162
- if (Object.prototype.hasOwnProperty.call(obj, key)) {
163
- result[key] = this.serializeValue(obj[key]);
164
- }
165
- }
166
- return result;
167
- }
168
- // 其他类型(函数等)不序列化
169
- return undefined;
170
- }
171
- /**
172
- * 默认值反序列化
173
- */
174
- static deserializeValue(value) {
175
- if (value === null || value === undefined) {
176
- return value;
177
- }
178
- // 基本类型直接返回
179
- const type = typeof value;
180
- if (type === 'string' || type === 'number' || type === 'boolean') {
181
- return value;
182
- }
183
- // 处理特殊类型标记
184
- if (type === 'object' && typeof value === 'object' && '__type' in value) {
185
- const typedValue = value;
186
- switch (typedValue.__type) {
187
- case 'Date':
188
- return { __type: 'Date', value: typeof typedValue.value === 'string' ? typedValue.value : String(typedValue.value) };
189
- case 'Map':
190
- return { __type: 'Map', value: typedValue.value };
191
- case 'Set':
192
- return { __type: 'Set', value: typedValue.value };
193
- }
194
- }
195
- // 数组
196
- if (Array.isArray(value)) {
197
- return value.map((item) => this.deserializeValue(item));
198
- }
199
- // 普通对象
200
- if (type === 'object' && typeof value === 'object' && !Array.isArray(value)) {
201
- const result = {};
202
- const obj = value;
203
- for (const key in obj) {
204
- if (Object.prototype.hasOwnProperty.call(obj, key)) {
205
- result[key] = this.deserializeValue(obj[key]);
206
- }
207
- }
208
- return result;
209
- }
210
- return value;
211
- }
212
- /**
213
- * 验证序列化数据的版本
214
- *
215
- * @param serializedData 序列化数据
216
- * @param expectedVersion 期望的版本号
217
- * @returns 版本是否匹配
218
- */
219
- static validateVersion(serializedData, expectedVersion) {
220
- return serializedData.version === expectedVersion;
221
- }
222
- /**
223
- * 获取组件的序列化信息
224
- *
225
- * @param component 组件实例或组件类
226
- * @returns 序列化信息对象,包含类型名、版本、可序列化字段列表
227
- */
228
- static getSerializationInfo(component) {
229
- const metadata = getSerializationMetadata(component);
230
- if (!metadata) {
231
- return {
232
- type: 'unknown',
233
- version: 0,
234
- fields: [],
235
- ignoredFields: [],
236
- isSerializable: false
237
- };
238
- }
239
- const componentType = typeof component === 'function'
240
- ? component
241
- : component.constructor;
242
- return {
243
- type: metadata.options.typeId || getComponentTypeName(componentType),
244
- version: metadata.options.version,
245
- fields: Array.from(metadata.fields.keys()).map((k) => typeof k === 'symbol' ? k.toString() : k),
246
- ignoredFields: Array.from(metadata.ignoredFields).map((k) => typeof k === 'symbol' ? k.toString() : k),
247
- isSerializable: true
248
- };
249
- }
250
- }
251
- //# sourceMappingURL=ComponentSerializer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ComponentSerializer.js","sourceRoot":"","sources":["../../../src/ECS/Serialization/ComponentSerializer.ts"],"names":[],"mappings":"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"}
@@ -1,111 +0,0 @@
1
- /**
2
- * 实体序列化器
3
- *
4
- * 负责实体的序列化和反序列化操作
5
- */
6
- import { Entity } from '../Entity';
7
- import { ComponentType } from '../Core/ComponentStorage';
8
- import { SerializedComponent } from './ComponentSerializer';
9
- import { IScene } from '../IScene';
10
- import { HierarchySystem } from '../Systems/HierarchySystem';
11
- /**
12
- * 序列化后的实体数据
13
- */
14
- export interface SerializedEntity {
15
- /**
16
- * 实体ID
17
- */
18
- id: number;
19
- /**
20
- * 实体名称
21
- */
22
- name: string;
23
- /**
24
- * 实体标签
25
- */
26
- tag: number;
27
- /**
28
- * 激活状态
29
- */
30
- active: boolean;
31
- /**
32
- * 启用状态
33
- */
34
- enabled: boolean;
35
- /**
36
- * 更新顺序
37
- */
38
- updateOrder: number;
39
- /**
40
- * 组件列表
41
- */
42
- components: SerializedComponent[];
43
- /**
44
- * 子实体列表
45
- */
46
- children: SerializedEntity[];
47
- /**
48
- * 父实体ID(如果有)
49
- */
50
- parentId?: number;
51
- }
52
- /**
53
- * 实体序列化器类
54
- */
55
- export declare class EntitySerializer {
56
- /**
57
- * 序列化单个实体
58
- *
59
- * @param entity 要序列化的实体
60
- * @param includeChildren 是否包含子实体(默认true)
61
- * @param hierarchySystem 层级系统(可选,用于获取层级信息)
62
- * @returns 序列化后的实体数据
63
- */
64
- static serialize(entity: Entity, includeChildren?: boolean, hierarchySystem?: HierarchySystem): SerializedEntity;
65
- /**
66
- * 反序列化实体
67
- *
68
- * @param serializedEntity 序列化的实体数据
69
- * @param componentRegistry 组件类型注册表
70
- * @param idGenerator 实体ID生成器(用于生成新ID或保持原ID)
71
- * @param preserveIds 是否保持原始ID(默认false)
72
- * @param scene 目标场景(可选,用于设置entity.scene以支持添加组件)
73
- * @param hierarchySystem 层级系统(可选,用于建立层级关系)
74
- * @returns 反序列化后的实体
75
- */
76
- static deserialize(serializedEntity: SerializedEntity, componentRegistry: Map<string, ComponentType>, idGenerator: () => number, preserveIds?: boolean, scene?: IScene, hierarchySystem?: HierarchySystem | null, allEntities?: Map<number, Entity>): Entity;
77
- /**
78
- * 批量序列化实体
79
- *
80
- * @param entities 实体数组
81
- * @param includeChildren 是否包含子实体
82
- * @param hierarchySystem 层级系统(可选,用于获取层级信息)
83
- * @returns 序列化后的实体数据数组
84
- */
85
- static serializeEntities(entities: Entity[], includeChildren?: boolean, hierarchySystem?: HierarchySystem): SerializedEntity[];
86
- /**
87
- * 批量反序列化实体
88
- *
89
- * @param serializedEntities 序列化的实体数据数组
90
- * @param componentRegistry 组件类型注册表
91
- * @param idGenerator 实体ID生成器
92
- * @param preserveIds 是否保持原始ID
93
- * @param scene 目标场景(可选,用于设置entity.scene以支持添加组件)
94
- * @param hierarchySystem 层级系统(可选,用于建立层级关系)
95
- * @returns 反序列化后的实体数组
96
- */
97
- static deserializeEntities(serializedEntities: SerializedEntity[], componentRegistry: Map<string, ComponentType>, idGenerator: () => number, preserveIds?: boolean, scene?: IScene, hierarchySystem?: HierarchySystem | null): {
98
- rootEntities: Entity[];
99
- allEntities: Map<number, Entity>;
100
- };
101
- /**
102
- * 创建实体的深拷贝
103
- *
104
- * @param entity 要拷贝的实体
105
- * @param componentRegistry 组件类型注册表
106
- * @param idGenerator ID生成器
107
- * @returns 拷贝后的新实体
108
- */
109
- static clone(entity: Entity, componentRegistry: Map<string, ComponentType>, idGenerator: () => number): Entity;
110
- }
111
- //# sourceMappingURL=EntitySerializer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EntitySerializer.d.ts","sourceRoot":"","sources":["../../../src/ECS/Serialization/EntitySerializer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAuB,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAElC;;OAEG;IACH,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,qBAAa,gBAAgB;IACzB;;;;;;;OAOG;WACW,SAAS,CACnB,MAAM,EAAE,MAAM,EACd,eAAe,GAAE,OAAc,EAC/B,eAAe,CAAC,EAAE,eAAe,GAClC,gBAAgB;IAwCnB;;;;;;;;;;OAUG;WACW,WAAW,CACrB,gBAAgB,EAAE,gBAAgB,EAClC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,EAC7C,WAAW,EAAE,MAAM,MAAM,EACzB,WAAW,GAAE,OAAe,EAC5B,KAAK,CAAC,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,EACxC,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAClC,MAAM;IAwDT;;;;;;;OAOG;WACW,iBAAiB,CAC3B,QAAQ,EAAE,MAAM,EAAE,EAClB,eAAe,GAAE,OAAc,EAC/B,eAAe,CAAC,EAAE,eAAe,GAClC,gBAAgB,EAAE;IAgBrB;;;;;;;;;;OAUG;WACW,mBAAmB,CAC7B,kBAAkB,EAAE,gBAAgB,EAAE,EACtC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,EAC7C,WAAW,EAAE,MAAM,MAAM,EACzB,WAAW,GAAE,OAAe,EAC5B,KAAK,CAAC,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,GACzC;QAAE,YAAY,EAAE,MAAM,EAAE,CAAC;QAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE;IAoB/D;;;;;;;OAOG;WACW,KAAK,CACf,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,EAC7C,WAAW,EAAE,MAAM,MAAM,GAC1B,MAAM;CAIZ"}
@@ -1,155 +0,0 @@
1
- /**
2
- * 实体序列化器
3
- *
4
- * 负责实体的序列化和反序列化操作
5
- */
6
- import { Entity } from '../Entity';
7
- import { ComponentSerializer } from './ComponentSerializer';
8
- import { HierarchyComponent } from '../Components/HierarchyComponent';
9
- /**
10
- * 实体序列化器类
11
- */
12
- export class EntitySerializer {
13
- /**
14
- * 序列化单个实体
15
- *
16
- * @param entity 要序列化的实体
17
- * @param includeChildren 是否包含子实体(默认true)
18
- * @param hierarchySystem 层级系统(可选,用于获取层级信息)
19
- * @returns 序列化后的实体数据
20
- */
21
- static serialize(entity, includeChildren = true, hierarchySystem) {
22
- const serializedComponents = ComponentSerializer.serializeComponents(Array.from(entity.components));
23
- const serializedEntity = {
24
- id: entity.id,
25
- name: entity.name,
26
- tag: entity.tag,
27
- active: entity.active,
28
- enabled: entity.enabled,
29
- updateOrder: entity.updateOrder,
30
- components: serializedComponents,
31
- children: []
32
- };
33
- // 通过 HierarchyComponent 获取层级信息
34
- const hierarchy = entity.getComponent(HierarchyComponent);
35
- if (hierarchy?.parentId !== null && hierarchy?.parentId !== undefined) {
36
- serializedEntity.parentId = hierarchy.parentId;
37
- }
38
- // 序列化子实体
39
- // 直接使用 HierarchyComponent.childIds 获取子实体
40
- if (includeChildren && hierarchy && hierarchy.childIds.length > 0) {
41
- // 获取场景引用:优先从 hierarchySystem,否则从 entity.scene
42
- const scene = hierarchySystem?.scene ?? entity.scene;
43
- if (scene) {
44
- for (const childId of hierarchy.childIds) {
45
- const child = scene.findEntityById(childId);
46
- if (child) {
47
- serializedEntity.children.push(this.serialize(child, true, hierarchySystem));
48
- }
49
- }
50
- }
51
- }
52
- return serializedEntity;
53
- }
54
- /**
55
- * 反序列化实体
56
- *
57
- * @param serializedEntity 序列化的实体数据
58
- * @param componentRegistry 组件类型注册表
59
- * @param idGenerator 实体ID生成器(用于生成新ID或保持原ID)
60
- * @param preserveIds 是否保持原始ID(默认false)
61
- * @param scene 目标场景(可选,用于设置entity.scene以支持添加组件)
62
- * @param hierarchySystem 层级系统(可选,用于建立层级关系)
63
- * @returns 反序列化后的实体
64
- */
65
- static deserialize(serializedEntity, componentRegistry, idGenerator, preserveIds = false, scene, hierarchySystem, allEntities) {
66
- // 创建实体(使用原始ID或新生成的ID)
67
- const entityId = preserveIds ? serializedEntity.id : idGenerator();
68
- const entity = new Entity(serializedEntity.name, entityId);
69
- // 将实体添加到收集 Map 中(用于后续添加到场景)
70
- allEntities?.set(entity.id, entity);
71
- // 如果提供了scene,先设置entity.scene以支持添加组件
72
- if (scene) {
73
- entity.scene = scene;
74
- }
75
- // 恢复实体属性
76
- entity.tag = serializedEntity.tag;
77
- entity.active = serializedEntity.active;
78
- entity.enabled = serializedEntity.enabled;
79
- entity.updateOrder = serializedEntity.updateOrder;
80
- // 反序列化组件
81
- const components = ComponentSerializer.deserializeComponents(serializedEntity.components, componentRegistry);
82
- for (const component of components) {
83
- entity.addComponent(component);
84
- }
85
- // 重要:清除 HierarchyComponent 中的旧 ID
86
- // 当 preserveIds=false 时,序列化的 parentId 和 childIds 是旧 ID,需要重新建立
87
- // 通过 hierarchySystem.setParent 会正确设置新的 ID
88
- const hierarchy = entity.getComponent(HierarchyComponent);
89
- if (hierarchy) {
90
- hierarchy.parentId = null;
91
- hierarchy.childIds = [];
92
- }
93
- // 反序列化子实体并建立层级关系
94
- for (const childData of serializedEntity.children) {
95
- const childEntity = this.deserialize(childData, componentRegistry, idGenerator, preserveIds, scene, hierarchySystem, allEntities);
96
- // 使用 HierarchySystem 建立层级关系
97
- hierarchySystem?.setParent(childEntity, entity);
98
- }
99
- return entity;
100
- }
101
- /**
102
- * 批量序列化实体
103
- *
104
- * @param entities 实体数组
105
- * @param includeChildren 是否包含子实体
106
- * @param hierarchySystem 层级系统(可选,用于获取层级信息)
107
- * @returns 序列化后的实体数据数组
108
- */
109
- static serializeEntities(entities, includeChildren = true, hierarchySystem) {
110
- const result = [];
111
- for (const entity of entities) {
112
- // 只序列化顶层实体(没有父实体的实体)
113
- // 子实体会在父实体序列化时一并处理
114
- const hierarchy = entity.getComponent(HierarchyComponent);
115
- const bHasParent = hierarchy?.parentId !== null && hierarchy?.parentId !== undefined;
116
- if (!bHasParent || !includeChildren) {
117
- result.push(this.serialize(entity, includeChildren, hierarchySystem));
118
- }
119
- }
120
- return result;
121
- }
122
- /**
123
- * 批量反序列化实体
124
- *
125
- * @param serializedEntities 序列化的实体数据数组
126
- * @param componentRegistry 组件类型注册表
127
- * @param idGenerator 实体ID生成器
128
- * @param preserveIds 是否保持原始ID
129
- * @param scene 目标场景(可选,用于设置entity.scene以支持添加组件)
130
- * @param hierarchySystem 层级系统(可选,用于建立层级关系)
131
- * @returns 反序列化后的实体数组
132
- */
133
- static deserializeEntities(serializedEntities, componentRegistry, idGenerator, preserveIds = false, scene, hierarchySystem) {
134
- const rootEntities = [];
135
- const allEntities = new Map();
136
- for (const serialized of serializedEntities) {
137
- const entity = this.deserialize(serialized, componentRegistry, idGenerator, preserveIds, scene, hierarchySystem, allEntities);
138
- rootEntities.push(entity);
139
- }
140
- return { rootEntities, allEntities };
141
- }
142
- /**
143
- * 创建实体的深拷贝
144
- *
145
- * @param entity 要拷贝的实体
146
- * @param componentRegistry 组件类型注册表
147
- * @param idGenerator ID生成器
148
- * @returns 拷贝后的新实体
149
- */
150
- static clone(entity, componentRegistry, idGenerator) {
151
- const serialized = this.serialize(entity, true);
152
- return this.deserialize(serialized, componentRegistry, idGenerator, false);
153
- }
154
- }
155
- //# sourceMappingURL=EntitySerializer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EntitySerializer.js","sourceRoot":"","sources":["../../../src/ECS/Serialization/EntitySerializer.ts"],"names":[],"mappings":"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"}