@esengine/ecs-framework 2.3.0 → 2.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (490) hide show
  1. package/index.cjs +2 -0
  2. package/index.cjs.map +1 -0
  3. package/index.d.ts +13466 -0
  4. package/index.es5.js +4 -0
  5. package/index.es5.js.map +1 -0
  6. package/index.mjs +2 -0
  7. package/index.mjs.map +1 -0
  8. package/index.umd.js +4 -0
  9. package/index.umd.js.map +1 -0
  10. package/package.json +47 -84
  11. package/bin/Core/DI/Decorators.d.ts +0 -206
  12. package/bin/Core/DI/Decorators.d.ts.map +0 -1
  13. package/bin/Core/DI/Decorators.js +0 -253
  14. package/bin/Core/DI/Decorators.js.map +0 -1
  15. package/bin/Core/DI/index.d.ts +0 -8
  16. package/bin/Core/DI/index.d.ts.map +0 -1
  17. package/bin/Core/DI/index.js +0 -7
  18. package/bin/Core/DI/index.js.map +0 -1
  19. package/bin/Core/Plugin.d.ts +0 -112
  20. package/bin/Core/Plugin.d.ts.map +0 -1
  21. package/bin/Core/Plugin.js +0 -19
  22. package/bin/Core/Plugin.js.map +0 -1
  23. package/bin/Core/PluginManager.d.ts +0 -118
  24. package/bin/Core/PluginManager.d.ts.map +0 -1
  25. package/bin/Core/PluginManager.js +0 -229
  26. package/bin/Core/PluginManager.js.map +0 -1
  27. package/bin/Core/ServiceContainer.d.ts +0 -221
  28. package/bin/Core/ServiceContainer.d.ts.map +0 -1
  29. package/bin/Core/ServiceContainer.js +0 -352
  30. package/bin/Core/ServiceContainer.js.map +0 -1
  31. package/bin/Core.d.ts +0 -379
  32. package/bin/Core.d.ts.map +0 -1
  33. package/bin/Core.js +0 -553
  34. package/bin/Core.js.map +0 -1
  35. package/bin/ECS/Component.d.ts +0 -104
  36. package/bin/ECS/Component.d.ts.map +0 -1
  37. package/bin/ECS/Component.js +0 -105
  38. package/bin/ECS/Component.js.map +0 -1
  39. package/bin/ECS/Components/HierarchyComponent.d.ts +0 -46
  40. package/bin/ECS/Components/HierarchyComponent.d.ts.map +0 -1
  41. package/bin/ECS/Components/HierarchyComponent.js +0 -65
  42. package/bin/ECS/Components/HierarchyComponent.js.map +0 -1
  43. package/bin/ECS/Components/index.d.ts +0 -2
  44. package/bin/ECS/Components/index.d.ts.map +0 -1
  45. package/bin/ECS/Components/index.js +0 -2
  46. package/bin/ECS/Components/index.js.map +0 -1
  47. package/bin/ECS/Core/ArchetypeSystem.d.ts +0 -103
  48. package/bin/ECS/Core/ArchetypeSystem.d.ts.map +0 -1
  49. package/bin/ECS/Core/ArchetypeSystem.js +0 -244
  50. package/bin/ECS/Core/ArchetypeSystem.js.map +0 -1
  51. package/bin/ECS/Core/CommandBuffer.d.ts +0 -154
  52. package/bin/ECS/Core/CommandBuffer.d.ts.map +0 -1
  53. package/bin/ECS/Core/CommandBuffer.js +0 -244
  54. package/bin/ECS/Core/CommandBuffer.js.map +0 -1
  55. package/bin/ECS/Core/ComponentPool.d.ts +0 -139
  56. package/bin/ECS/Core/ComponentPool.d.ts.map +0 -1
  57. package/bin/ECS/Core/ComponentPool.js +0 -276
  58. package/bin/ECS/Core/ComponentPool.js.map +0 -1
  59. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.d.ts +0 -127
  60. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.d.ts.map +0 -1
  61. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.js +0 -235
  62. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.js.map +0 -1
  63. package/bin/ECS/Core/ComponentStorage.d.ts +0 -185
  64. package/bin/ECS/Core/ComponentStorage.d.ts.map +0 -1
  65. package/bin/ECS/Core/ComponentStorage.js +0 -321
  66. package/bin/ECS/Core/ComponentStorage.js.map +0 -1
  67. package/bin/ECS/Core/EntityLifecyclePolicy.d.ts +0 -26
  68. package/bin/ECS/Core/EntityLifecyclePolicy.d.ts.map +0 -1
  69. package/bin/ECS/Core/EntityLifecyclePolicy.js +0 -2
  70. package/bin/ECS/Core/EntityLifecyclePolicy.js.map +0 -1
  71. package/bin/ECS/Core/EventBus.d.ts +0 -210
  72. package/bin/ECS/Core/EventBus.d.ts.map +0 -1
  73. package/bin/ECS/Core/EventBus.js +0 -370
  74. package/bin/ECS/Core/EventBus.js.map +0 -1
  75. package/bin/ECS/Core/EventSystem.d.ts +0 -225
  76. package/bin/ECS/Core/EventSystem.d.ts.map +0 -1
  77. package/bin/ECS/Core/EventSystem.js +0 -448
  78. package/bin/ECS/Core/EventSystem.js.map +0 -1
  79. package/bin/ECS/Core/Events/index.d.ts +0 -3
  80. package/bin/ECS/Core/Events/index.d.ts.map +0 -1
  81. package/bin/ECS/Core/Events/index.js +0 -3
  82. package/bin/ECS/Core/Events/index.js.map +0 -1
  83. package/bin/ECS/Core/FluentAPI/ComponentBuilder.d.ts +0 -35
  84. package/bin/ECS/Core/FluentAPI/ComponentBuilder.d.ts.map +0 -1
  85. package/bin/ECS/Core/FluentAPI/ComponentBuilder.js +0 -48
  86. package/bin/ECS/Core/FluentAPI/ComponentBuilder.js.map +0 -1
  87. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.d.ts +0 -135
  88. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.d.ts.map +0 -1
  89. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.js +0 -166
  90. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.js.map +0 -1
  91. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.d.ts +0 -58
  92. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.d.ts.map +0 -1
  93. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.js +0 -85
  94. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.js.map +0 -1
  95. package/bin/ECS/Core/FluentAPI/EntityBuilder.d.ts +0 -110
  96. package/bin/ECS/Core/FluentAPI/EntityBuilder.d.ts.map +0 -1
  97. package/bin/ECS/Core/FluentAPI/EntityBuilder.js +0 -181
  98. package/bin/ECS/Core/FluentAPI/EntityBuilder.js.map +0 -1
  99. package/bin/ECS/Core/FluentAPI/SceneBuilder.d.ts +0 -53
  100. package/bin/ECS/Core/FluentAPI/SceneBuilder.d.ts.map +0 -1
  101. package/bin/ECS/Core/FluentAPI/SceneBuilder.js +0 -79
  102. package/bin/ECS/Core/FluentAPI/SceneBuilder.js.map +0 -1
  103. package/bin/ECS/Core/FluentAPI/index.d.ts +0 -6
  104. package/bin/ECS/Core/FluentAPI/index.d.ts.map +0 -1
  105. package/bin/ECS/Core/FluentAPI/index.js +0 -6
  106. package/bin/ECS/Core/FluentAPI/index.js.map +0 -1
  107. package/bin/ECS/Core/FluentAPI.d.ts +0 -2
  108. package/bin/ECS/Core/FluentAPI.d.ts.map +0 -1
  109. package/bin/ECS/Core/FluentAPI.js +0 -3
  110. package/bin/ECS/Core/FluentAPI.js.map +0 -1
  111. package/bin/ECS/Core/Query/TypedQuery.d.ts +0 -214
  112. package/bin/ECS/Core/Query/TypedQuery.d.ts.map +0 -1
  113. package/bin/ECS/Core/Query/TypedQuery.js +0 -294
  114. package/bin/ECS/Core/Query/TypedQuery.js.map +0 -1
  115. package/bin/ECS/Core/Query/index.d.ts +0 -3
  116. package/bin/ECS/Core/Query/index.d.ts.map +0 -1
  117. package/bin/ECS/Core/Query/index.js +0 -3
  118. package/bin/ECS/Core/Query/index.js.map +0 -1
  119. package/bin/ECS/Core/QuerySystem.d.ts +0 -458
  120. package/bin/ECS/Core/QuerySystem.d.ts.map +0 -1
  121. package/bin/ECS/Core/QuerySystem.js +0 -1069
  122. package/bin/ECS/Core/QuerySystem.js.map +0 -1
  123. package/bin/ECS/Core/QueryTypes.d.ts +0 -34
  124. package/bin/ECS/Core/QueryTypes.d.ts.map +0 -1
  125. package/bin/ECS/Core/QueryTypes.js +0 -13
  126. package/bin/ECS/Core/QueryTypes.js.map +0 -1
  127. package/bin/ECS/Core/ReactiveQuery.d.ts +0 -211
  128. package/bin/ECS/Core/ReactiveQuery.d.ts.map +0 -1
  129. package/bin/ECS/Core/ReactiveQuery.js +0 -401
  130. package/bin/ECS/Core/ReactiveQuery.js.map +0 -1
  131. package/bin/ECS/Core/ReferenceTracker.d.ts +0 -111
  132. package/bin/ECS/Core/ReferenceTracker.d.ts.map +0 -1
  133. package/bin/ECS/Core/ReferenceTracker.js +0 -254
  134. package/bin/ECS/Core/ReferenceTracker.js.map +0 -1
  135. package/bin/ECS/Core/SoASerializer.d.ts +0 -28
  136. package/bin/ECS/Core/SoASerializer.d.ts.map +0 -1
  137. package/bin/ECS/Core/SoASerializer.js +0 -85
  138. package/bin/ECS/Core/SoASerializer.js.map +0 -1
  139. package/bin/ECS/Core/SoAStorage.d.ts +0 -129
  140. package/bin/ECS/Core/SoAStorage.d.ts.map +0 -1
  141. package/bin/ECS/Core/SoAStorage.js +0 -685
  142. package/bin/ECS/Core/SoAStorage.js.map +0 -1
  143. package/bin/ECS/Core/SoATypeRegistry.d.ts +0 -50
  144. package/bin/ECS/Core/SoATypeRegistry.d.ts.map +0 -1
  145. package/bin/ECS/Core/SoATypeRegistry.js +0 -135
  146. package/bin/ECS/Core/SoATypeRegistry.js.map +0 -1
  147. package/bin/ECS/Core/Storage/index.d.ts +0 -4
  148. package/bin/ECS/Core/Storage/index.d.ts.map +0 -1
  149. package/bin/ECS/Core/Storage/index.js +0 -4
  150. package/bin/ECS/Core/Storage/index.js.map +0 -1
  151. package/bin/ECS/Core/StorageDecorators.d.ts +0 -20
  152. package/bin/ECS/Core/StorageDecorators.d.ts.map +0 -1
  153. package/bin/ECS/Core/StorageDecorators.js +0 -27
  154. package/bin/ECS/Core/StorageDecorators.js.map +0 -1
  155. package/bin/ECS/CoreEvents.d.ts +0 -131
  156. package/bin/ECS/CoreEvents.d.ts.map +0 -1
  157. package/bin/ECS/CoreEvents.js +0 -163
  158. package/bin/ECS/CoreEvents.js.map +0 -1
  159. package/bin/ECS/Decorators/EntityRefDecorator.d.ts +0 -46
  160. package/bin/ECS/Decorators/EntityRefDecorator.d.ts.map +0 -1
  161. package/bin/ECS/Decorators/EntityRefDecorator.js +0 -118
  162. package/bin/ECS/Decorators/EntityRefDecorator.js.map +0 -1
  163. package/bin/ECS/Decorators/PropertyDecorator.d.ts +0 -168
  164. package/bin/ECS/Decorators/PropertyDecorator.d.ts.map +0 -1
  165. package/bin/ECS/Decorators/PropertyDecorator.js +0 -40
  166. package/bin/ECS/Decorators/PropertyDecorator.js.map +0 -1
  167. package/bin/ECS/Decorators/TypeDecorators.d.ts +0 -124
  168. package/bin/ECS/Decorators/TypeDecorators.d.ts.map +0 -1
  169. package/bin/ECS/Decorators/TypeDecorators.js +0 -151
  170. package/bin/ECS/Decorators/TypeDecorators.js.map +0 -1
  171. package/bin/ECS/Decorators/index.d.ts +0 -7
  172. package/bin/ECS/Decorators/index.d.ts.map +0 -1
  173. package/bin/ECS/Decorators/index.js +0 -4
  174. package/bin/ECS/Decorators/index.js.map +0 -1
  175. package/bin/ECS/Entity.d.ts +0 -415
  176. package/bin/ECS/Entity.d.ts.map +0 -1
  177. package/bin/ECS/Entity.js +0 -683
  178. package/bin/ECS/Entity.js.map +0 -1
  179. package/bin/ECS/EntityTags.d.ts +0 -71
  180. package/bin/ECS/EntityTags.d.ts.map +0 -1
  181. package/bin/ECS/EntityTags.js +0 -82
  182. package/bin/ECS/EntityTags.js.map +0 -1
  183. package/bin/ECS/IScene.d.ts +0 -308
  184. package/bin/ECS/IScene.d.ts.map +0 -1
  185. package/bin/ECS/IScene.js +0 -2
  186. package/bin/ECS/IScene.js.map +0 -1
  187. package/bin/ECS/Scene.d.ts +0 -799
  188. package/bin/ECS/Scene.d.ts.map +0 -1
  189. package/bin/ECS/Scene.js +0 -1203
  190. package/bin/ECS/Scene.js.map +0 -1
  191. package/bin/ECS/SceneManager.d.ts +0 -197
  192. package/bin/ECS/SceneManager.d.ts.map +0 -1
  193. package/bin/ECS/SceneManager.js +0 -264
  194. package/bin/ECS/SceneManager.js.map +0 -1
  195. package/bin/ECS/Serialization/ComponentSerializer.d.ts +0 -106
  196. package/bin/ECS/Serialization/ComponentSerializer.d.ts.map +0 -1
  197. package/bin/ECS/Serialization/ComponentSerializer.js +0 -251
  198. package/bin/ECS/Serialization/ComponentSerializer.js.map +0 -1
  199. package/bin/ECS/Serialization/EntitySerializer.d.ts +0 -111
  200. package/bin/ECS/Serialization/EntitySerializer.d.ts.map +0 -1
  201. package/bin/ECS/Serialization/EntitySerializer.js +0 -155
  202. package/bin/ECS/Serialization/EntitySerializer.js.map +0 -1
  203. package/bin/ECS/Serialization/IncrementalSerializer.d.ts +0 -259
  204. package/bin/ECS/Serialization/IncrementalSerializer.d.ts.map +0 -1
  205. package/bin/ECS/Serialization/IncrementalSerializer.js +0 -500
  206. package/bin/ECS/Serialization/IncrementalSerializer.js.map +0 -1
  207. package/bin/ECS/Serialization/SceneSerializer.d.ts +0 -213
  208. package/bin/ECS/Serialization/SceneSerializer.d.ts.map +0 -1
  209. package/bin/ECS/Serialization/SceneSerializer.js +0 -387
  210. package/bin/ECS/Serialization/SceneSerializer.js.map +0 -1
  211. package/bin/ECS/Serialization/SerializationDecorators.d.ts +0 -136
  212. package/bin/ECS/Serialization/SerializationDecorators.d.ts.map +0 -1
  213. package/bin/ECS/Serialization/SerializationDecorators.js +0 -216
  214. package/bin/ECS/Serialization/SerializationDecorators.js.map +0 -1
  215. package/bin/ECS/Serialization/VersionMigration.d.ts +0 -156
  216. package/bin/ECS/Serialization/VersionMigration.d.ts.map +0 -1
  217. package/bin/ECS/Serialization/VersionMigration.js +0 -279
  218. package/bin/ECS/Serialization/VersionMigration.js.map +0 -1
  219. package/bin/ECS/Serialization/index.d.ts +0 -18
  220. package/bin/ECS/Serialization/index.d.ts.map +0 -1
  221. package/bin/ECS/Serialization/index.js +0 -18
  222. package/bin/ECS/Serialization/index.js.map +0 -1
  223. package/bin/ECS/Systems/EntityCache.d.ts +0 -114
  224. package/bin/ECS/Systems/EntityCache.d.ts.map +0 -1
  225. package/bin/ECS/Systems/EntityCache.js +0 -145
  226. package/bin/ECS/Systems/EntityCache.js.map +0 -1
  227. package/bin/ECS/Systems/EntitySystem.d.ts +0 -591
  228. package/bin/ECS/Systems/EntitySystem.d.ts.map +0 -1
  229. package/bin/ECS/Systems/EntitySystem.js +0 -1102
  230. package/bin/ECS/Systems/EntitySystem.js.map +0 -1
  231. package/bin/ECS/Systems/HierarchySystem.d.ts +0 -155
  232. package/bin/ECS/Systems/HierarchySystem.d.ts.map +0 -1
  233. package/bin/ECS/Systems/HierarchySystem.js +0 -498
  234. package/bin/ECS/Systems/HierarchySystem.js.map +0 -1
  235. package/bin/ECS/Systems/IntervalSystem.d.ts +0 -33
  236. package/bin/ECS/Systems/IntervalSystem.d.ts.map +0 -1
  237. package/bin/ECS/Systems/IntervalSystem.js +0 -50
  238. package/bin/ECS/Systems/IntervalSystem.js.map +0 -1
  239. package/bin/ECS/Systems/PassiveSystem.d.ts +0 -17
  240. package/bin/ECS/Systems/PassiveSystem.d.ts.map +0 -1
  241. package/bin/ECS/Systems/PassiveSystem.js +0 -19
  242. package/bin/ECS/Systems/PassiveSystem.js.map +0 -1
  243. package/bin/ECS/Systems/ProcessingSystem.d.ts +0 -21
  244. package/bin/ECS/Systems/ProcessingSystem.d.ts.map +0 -1
  245. package/bin/ECS/Systems/ProcessingSystem.js +0 -20
  246. package/bin/ECS/Systems/ProcessingSystem.js.map +0 -1
  247. package/bin/ECS/Systems/WorkerEntitySystem.d.ts +0 -313
  248. package/bin/ECS/Systems/WorkerEntitySystem.d.ts.map +0 -1
  249. package/bin/ECS/Systems/WorkerEntitySystem.js +0 -792
  250. package/bin/ECS/Systems/WorkerEntitySystem.js.map +0 -1
  251. package/bin/ECS/Systems/index.d.ts +0 -8
  252. package/bin/ECS/Systems/index.d.ts.map +0 -1
  253. package/bin/ECS/Systems/index.js +0 -8
  254. package/bin/ECS/Systems/index.js.map +0 -1
  255. package/bin/ECS/TypedEntity.d.ts +0 -192
  256. package/bin/ECS/TypedEntity.d.ts.map +0 -1
  257. package/bin/ECS/TypedEntity.js +0 -254
  258. package/bin/ECS/TypedEntity.js.map +0 -1
  259. package/bin/ECS/Utils/BigIntCompatibility.d.ts +0 -151
  260. package/bin/ECS/Utils/BigIntCompatibility.d.ts.map +0 -1
  261. package/bin/ECS/Utils/BigIntCompatibility.js +0 -476
  262. package/bin/ECS/Utils/BigIntCompatibility.js.map +0 -1
  263. package/bin/ECS/Utils/BitMaskHashMap.d.ts +0 -28
  264. package/bin/ECS/Utils/BitMaskHashMap.d.ts.map +0 -1
  265. package/bin/ECS/Utils/BitMaskHashMap.js +0 -127
  266. package/bin/ECS/Utils/BitMaskHashMap.js.map +0 -1
  267. package/bin/ECS/Utils/Bits.d.ts +0 -154
  268. package/bin/ECS/Utils/Bits.d.ts.map +0 -1
  269. package/bin/ECS/Utils/Bits.js +0 -331
  270. package/bin/ECS/Utils/Bits.js.map +0 -1
  271. package/bin/ECS/Utils/ComponentSparseSet.d.ts +0 -143
  272. package/bin/ECS/Utils/ComponentSparseSet.d.ts.map +0 -1
  273. package/bin/ECS/Utils/ComponentSparseSet.js +0 -347
  274. package/bin/ECS/Utils/ComponentSparseSet.js.map +0 -1
  275. package/bin/ECS/Utils/EntityList.d.ts +0 -115
  276. package/bin/ECS/Utils/EntityList.d.ts.map +0 -1
  277. package/bin/ECS/Utils/EntityList.js +0 -258
  278. package/bin/ECS/Utils/EntityList.js.map +0 -1
  279. package/bin/ECS/Utils/EntityProcessorList.d.ts +0 -56
  280. package/bin/ECS/Utils/EntityProcessorList.d.ts.map +0 -1
  281. package/bin/ECS/Utils/EntityProcessorList.js +0 -113
  282. package/bin/ECS/Utils/EntityProcessorList.js.map +0 -1
  283. package/bin/ECS/Utils/IdentifierPool.d.ts +0 -203
  284. package/bin/ECS/Utils/IdentifierPool.d.ts.map +0 -1
  285. package/bin/ECS/Utils/IdentifierPool.js +0 -325
  286. package/bin/ECS/Utils/IdentifierPool.js.map +0 -1
  287. package/bin/ECS/Utils/Matcher.d.ts +0 -171
  288. package/bin/ECS/Utils/Matcher.d.ts.map +0 -1
  289. package/bin/ECS/Utils/Matcher.js +0 -293
  290. package/bin/ECS/Utils/Matcher.js.map +0 -1
  291. package/bin/ECS/Utils/SparseSet.d.ts +0 -170
  292. package/bin/ECS/Utils/SparseSet.d.ts.map +0 -1
  293. package/bin/ECS/Utils/SparseSet.js +0 -280
  294. package/bin/ECS/Utils/SparseSet.js.map +0 -1
  295. package/bin/ECS/Utils/index.d.ts +0 -9
  296. package/bin/ECS/Utils/index.d.ts.map +0 -1
  297. package/bin/ECS/Utils/index.js +0 -10
  298. package/bin/ECS/Utils/index.js.map +0 -1
  299. package/bin/ECS/World.d.ts +0 -238
  300. package/bin/ECS/World.d.ts.map +0 -1
  301. package/bin/ECS/World.js +0 -416
  302. package/bin/ECS/World.js.map +0 -1
  303. package/bin/ECS/WorldManager.d.ts +0 -224
  304. package/bin/ECS/WorldManager.d.ts.map +0 -1
  305. package/bin/ECS/WorldManager.js +0 -365
  306. package/bin/ECS/WorldManager.js.map +0 -1
  307. package/bin/ECS/index.d.ts +0 -26
  308. package/bin/ECS/index.d.ts.map +0 -1
  309. package/bin/ECS/index.js +0 -21
  310. package/bin/ECS/index.js.map +0 -1
  311. package/bin/Platform/IPlatformAdapter.d.ts +0 -169
  312. package/bin/Platform/IPlatformAdapter.d.ts.map +0 -1
  313. package/bin/Platform/IPlatformAdapter.js +0 -2
  314. package/bin/Platform/IPlatformAdapter.js.map +0 -1
  315. package/bin/Platform/PlatformDetector.d.ts +0 -56
  316. package/bin/Platform/PlatformDetector.d.ts.map +0 -1
  317. package/bin/Platform/PlatformDetector.js +0 -247
  318. package/bin/Platform/PlatformDetector.js.map +0 -1
  319. package/bin/Platform/PlatformManager.d.ts +0 -50
  320. package/bin/Platform/PlatformManager.d.ts.map +0 -1
  321. package/bin/Platform/PlatformManager.js +0 -114
  322. package/bin/Platform/PlatformManager.js.map +0 -1
  323. package/bin/Platform/index.d.ts +0 -19
  324. package/bin/Platform/index.d.ts.map +0 -1
  325. package/bin/Platform/index.js +0 -29
  326. package/bin/Platform/index.js.map +0 -1
  327. package/bin/Plugins/DebugPlugin.d.ts +0 -156
  328. package/bin/Plugins/DebugPlugin.d.ts.map +0 -1
  329. package/bin/Plugins/DebugPlugin.js +0 -248
  330. package/bin/Plugins/DebugPlugin.js.map +0 -1
  331. package/bin/Plugins/index.d.ts +0 -2
  332. package/bin/Plugins/index.d.ts.map +0 -1
  333. package/bin/Plugins/index.js +0 -2
  334. package/bin/Plugins/index.js.map +0 -1
  335. package/bin/Types/IUpdatable.d.ts +0 -18
  336. package/bin/Types/IUpdatable.d.ts.map +0 -1
  337. package/bin/Types/IUpdatable.js +0 -7
  338. package/bin/Types/IUpdatable.js.map +0 -1
  339. package/bin/Types/TypeHelpers.d.ts +0 -238
  340. package/bin/Types/TypeHelpers.d.ts.map +0 -1
  341. package/bin/Types/TypeHelpers.js +0 -19
  342. package/bin/Types/TypeHelpers.js.map +0 -1
  343. package/bin/Types/index.d.ts +0 -466
  344. package/bin/Types/index.d.ts.map +0 -1
  345. package/bin/Types/index.js +0 -7
  346. package/bin/Types/index.js.map +0 -1
  347. package/bin/Utils/BinarySerializer.d.ts +0 -23
  348. package/bin/Utils/BinarySerializer.d.ts.map +0 -1
  349. package/bin/Utils/BinarySerializer.js +0 -100
  350. package/bin/Utils/BinarySerializer.js.map +0 -1
  351. package/bin/Utils/Debug/AdvancedProfilerCollector.d.ts +0 -153
  352. package/bin/Utils/Debug/AdvancedProfilerCollector.d.ts.map +0 -1
  353. package/bin/Utils/Debug/AdvancedProfilerCollector.js +0 -406
  354. package/bin/Utils/Debug/AdvancedProfilerCollector.js.map +0 -1
  355. package/bin/Utils/Debug/ComponentDataCollector.d.ts +0 -32
  356. package/bin/Utils/Debug/ComponentDataCollector.d.ts.map +0 -1
  357. package/bin/Utils/Debug/ComponentDataCollector.js +0 -250
  358. package/bin/Utils/Debug/ComponentDataCollector.js.map +0 -1
  359. package/bin/Utils/Debug/DebugConfigService.d.ts +0 -16
  360. package/bin/Utils/Debug/DebugConfigService.d.ts.map +0 -1
  361. package/bin/Utils/Debug/DebugConfigService.js +0 -42
  362. package/bin/Utils/Debug/DebugConfigService.js.map +0 -1
  363. package/bin/Utils/Debug/DebugManager.d.ts +0 -131
  364. package/bin/Utils/Debug/DebugManager.d.ts.map +0 -1
  365. package/bin/Utils/Debug/DebugManager.js +0 -848
  366. package/bin/Utils/Debug/DebugManager.js.map +0 -1
  367. package/bin/Utils/Debug/EntityDataCollector.d.ts +0 -115
  368. package/bin/Utils/Debug/EntityDataCollector.d.ts.map +0 -1
  369. package/bin/Utils/Debug/EntityDataCollector.js +0 -870
  370. package/bin/Utils/Debug/EntityDataCollector.js.map +0 -1
  371. package/bin/Utils/Debug/PerformanceDataCollector.d.ts +0 -31
  372. package/bin/Utils/Debug/PerformanceDataCollector.d.ts.map +0 -1
  373. package/bin/Utils/Debug/PerformanceDataCollector.js +0 -203
  374. package/bin/Utils/Debug/PerformanceDataCollector.js.map +0 -1
  375. package/bin/Utils/Debug/SceneDataCollector.d.ts +0 -18
  376. package/bin/Utils/Debug/SceneDataCollector.d.ts.map +0 -1
  377. package/bin/Utils/Debug/SceneDataCollector.js +0 -43
  378. package/bin/Utils/Debug/SceneDataCollector.js.map +0 -1
  379. package/bin/Utils/Debug/SystemDataCollector.d.ts +0 -14
  380. package/bin/Utils/Debug/SystemDataCollector.d.ts.map +0 -1
  381. package/bin/Utils/Debug/SystemDataCollector.js +0 -60
  382. package/bin/Utils/Debug/SystemDataCollector.js.map +0 -1
  383. package/bin/Utils/Debug/WebSocketManager.d.ts +0 -54
  384. package/bin/Utils/Debug/WebSocketManager.d.ts.map +0 -1
  385. package/bin/Utils/Debug/WebSocketManager.js +0 -141
  386. package/bin/Utils/Debug/WebSocketManager.js.map +0 -1
  387. package/bin/Utils/Debug/index.d.ts +0 -11
  388. package/bin/Utils/Debug/index.d.ts.map +0 -1
  389. package/bin/Utils/Debug/index.js +0 -10
  390. package/bin/Utils/Debug/index.js.map +0 -1
  391. package/bin/Utils/Emitter.d.ts +0 -61
  392. package/bin/Utils/Emitter.d.ts.map +0 -1
  393. package/bin/Utils/Emitter.js +0 -101
  394. package/bin/Utils/Emitter.js.map +0 -1
  395. package/bin/Utils/Extensions/NumberExtension.d.ts +0 -13
  396. package/bin/Utils/Extensions/NumberExtension.d.ts.map +0 -1
  397. package/bin/Utils/Extensions/NumberExtension.js +0 -17
  398. package/bin/Utils/Extensions/NumberExtension.js.map +0 -1
  399. package/bin/Utils/Extensions/TypeUtils.d.ts +0 -13
  400. package/bin/Utils/Extensions/TypeUtils.d.ts.map +0 -1
  401. package/bin/Utils/Extensions/TypeUtils.js +0 -15
  402. package/bin/Utils/Extensions/TypeUtils.js.map +0 -1
  403. package/bin/Utils/Extensions/index.d.ts +0 -3
  404. package/bin/Utils/Extensions/index.d.ts.map +0 -1
  405. package/bin/Utils/Extensions/index.js +0 -4
  406. package/bin/Utils/Extensions/index.js.map +0 -1
  407. package/bin/Utils/GlobalManager.d.ts +0 -29
  408. package/bin/Utils/GlobalManager.d.ts.map +0 -1
  409. package/bin/Utils/GlobalManager.js +0 -50
  410. package/bin/Utils/GlobalManager.js.map +0 -1
  411. package/bin/Utils/Logger/ConsoleLogger.d.ts +0 -74
  412. package/bin/Utils/Logger/ConsoleLogger.d.ts.map +0 -1
  413. package/bin/Utils/Logger/ConsoleLogger.js +0 -187
  414. package/bin/Utils/Logger/ConsoleLogger.js.map +0 -1
  415. package/bin/Utils/Logger/Constants.d.ts +0 -36
  416. package/bin/Utils/Logger/Constants.d.ts.map +0 -1
  417. package/bin/Utils/Logger/Constants.js +0 -40
  418. package/bin/Utils/Logger/Constants.js.map +0 -1
  419. package/bin/Utils/Logger/LoggerManager.d.ts +0 -91
  420. package/bin/Utils/Logger/LoggerManager.d.ts.map +0 -1
  421. package/bin/Utils/Logger/LoggerManager.js +0 -167
  422. package/bin/Utils/Logger/LoggerManager.js.map +0 -1
  423. package/bin/Utils/Logger/Types.d.ts +0 -40
  424. package/bin/Utils/Logger/Types.d.ts.map +0 -1
  425. package/bin/Utils/Logger/Types.js +0 -2
  426. package/bin/Utils/Logger/Types.js.map +0 -1
  427. package/bin/Utils/Logger/index.d.ts +0 -5
  428. package/bin/Utils/Logger/index.d.ts.map +0 -1
  429. package/bin/Utils/Logger/index.js +0 -5
  430. package/bin/Utils/Logger/index.js.map +0 -1
  431. package/bin/Utils/PerformanceMonitor.d.ts +0 -196
  432. package/bin/Utils/PerformanceMonitor.d.ts.map +0 -1
  433. package/bin/Utils/PerformanceMonitor.js +0 -244
  434. package/bin/Utils/PerformanceMonitor.js.map +0 -1
  435. package/bin/Utils/Pool/IPoolable.d.ts +0 -29
  436. package/bin/Utils/Pool/IPoolable.d.ts.map +0 -1
  437. package/bin/Utils/Pool/IPoolable.js +0 -2
  438. package/bin/Utils/Pool/IPoolable.js.map +0 -1
  439. package/bin/Utils/Pool/Pool.d.ts +0 -109
  440. package/bin/Utils/Pool/Pool.d.ts.map +0 -1
  441. package/bin/Utils/Pool/Pool.js +0 -238
  442. package/bin/Utils/Pool/Pool.js.map +0 -1
  443. package/bin/Utils/Pool/PoolManager.d.ts +0 -96
  444. package/bin/Utils/Pool/PoolManager.d.ts.map +0 -1
  445. package/bin/Utils/Pool/PoolManager.js +0 -199
  446. package/bin/Utils/Pool/PoolManager.js.map +0 -1
  447. package/bin/Utils/Pool/index.d.ts +0 -4
  448. package/bin/Utils/Pool/index.d.ts.map +0 -1
  449. package/bin/Utils/Pool/index.js +0 -4
  450. package/bin/Utils/Pool/index.js.map +0 -1
  451. package/bin/Utils/Profiler/AutoProfiler.d.ts +0 -160
  452. package/bin/Utils/Profiler/AutoProfiler.d.ts.map +0 -1
  453. package/bin/Utils/Profiler/AutoProfiler.js +0 -503
  454. package/bin/Utils/Profiler/AutoProfiler.js.map +0 -1
  455. package/bin/Utils/Profiler/ProfilerSDK.d.ts +0 -175
  456. package/bin/Utils/Profiler/ProfilerSDK.d.ts.map +0 -1
  457. package/bin/Utils/Profiler/ProfilerSDK.js +0 -727
  458. package/bin/Utils/Profiler/ProfilerSDK.js.map +0 -1
  459. package/bin/Utils/Profiler/ProfilerTypes.d.ts +0 -218
  460. package/bin/Utils/Profiler/ProfilerTypes.d.ts.map +0 -1
  461. package/bin/Utils/Profiler/ProfilerTypes.js +0 -47
  462. package/bin/Utils/Profiler/ProfilerTypes.js.map +0 -1
  463. package/bin/Utils/Profiler/index.d.ts +0 -8
  464. package/bin/Utils/Profiler/index.d.ts.map +0 -1
  465. package/bin/Utils/Profiler/index.js +0 -7
  466. package/bin/Utils/Profiler/index.js.map +0 -1
  467. package/bin/Utils/Time.d.ts +0 -47
  468. package/bin/Utils/Time.d.ts.map +0 -1
  469. package/bin/Utils/Time.js +0 -64
  470. package/bin/Utils/Time.js.map +0 -1
  471. package/bin/Utils/Timers/ITimer.d.ts +0 -16
  472. package/bin/Utils/Timers/ITimer.d.ts.map +0 -1
  473. package/bin/Utils/Timers/ITimer.js +0 -2
  474. package/bin/Utils/Timers/ITimer.js.map +0 -1
  475. package/bin/Utils/Timers/Timer.d.ts +0 -30
  476. package/bin/Utils/Timers/Timer.d.ts.map +0 -1
  477. package/bin/Utils/Timers/Timer.js +0 -58
  478. package/bin/Utils/Timers/Timer.js.map +0 -1
  479. package/bin/Utils/Timers/TimerManager.d.ts +0 -26
  480. package/bin/Utils/Timers/TimerManager.d.ts.map +0 -1
  481. package/bin/Utils/Timers/TimerManager.js +0 -48
  482. package/bin/Utils/Timers/TimerManager.js.map +0 -1
  483. package/bin/Utils/index.d.ts +0 -11
  484. package/bin/Utils/index.d.ts.map +0 -1
  485. package/bin/Utils/index.js +0 -11
  486. package/bin/Utils/index.js.map +0 -1
  487. package/bin/index.d.ts +0 -29
  488. package/bin/index.d.ts.map +0 -1
  489. package/bin/index.js +0 -36
  490. package/bin/index.js.map +0 -1
@@ -1,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":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EACH,wBAAwB,EAC3B,MAAM,2BAA2B,CAAC;AAqCnC;;GAEG;AACH,MAAM,OAAO,mBAAmB;IAC5B;;;;;OAKG;IACI,MAAM,CAAC,SAAS,CAAC,SAAoB;QACxC,MAAM,QAAQ,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC;QAErD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,+BAA+B;YAC/B,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,aAAa,GAAG,SAAS,CAAC,WAA4B,CAAC;QAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,IAAI,oBAAoB,CAAC,aAAa,CAAC,CAAC;QAChF,MAAM,IAAI,GAAsC,EAAE,CAAC;QAEnD,WAAW;QACX,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACjD,MAAM,QAAQ,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YAClF,MAAM,KAAK,GAAI,SAAmE,CAAC,SAAS,CAAC,CAAC;YAE9F,UAAU;YACV,IAAI,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBACxC,SAAS;YACb,CAAC;YAED,kBAAkB;YAClB,MAAM,eAAe,GAAG,OAAO,CAAC,UAAU;gBACtC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC;gBAC3B,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAEjC,aAAa;YACb,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC;YACtC,IAAI,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC;QAChC,CAAC;QAED,OAAO;YACH,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,OAAO;YACjC,IAAI;SACP,CAAC;IACN,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,WAAW,CACrB,cAAmC,EACnC,iBAA6C;QAE7C,MAAM,cAAc,GAAG,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAElE,IAAI,CAAC,cAAc,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,YAAY,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;YAChD,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,QAAQ,GAAG,wBAAwB,CAAC,cAAc,CAAC,CAAC;QAE1D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,MAAM,cAAc,CAAC,IAAI,QAAQ,CAAC,CAAC;YAChD,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,SAAS;QACT,MAAM,SAAS,GAAG,IAAI,cAAc,EAAE,CAAC;QAEvC,SAAS;QACT,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACjD,MAAM,QAAQ,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YAClF,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC;YACtC,MAAM,eAAe,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEjD,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;gBAChC,SAAS,CAAC,eAAe;YAC7B,CAAC;YAED,oBAAoB;YACpB,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY;gBAC9B,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC;gBACvC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;YAE5C,SAAmE,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;QAC5F,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,mBAAmB,CAAC,UAAuB;QACrD,MAAM,MAAM,GAA0B,EAAE,CAAC;QAEzC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACjC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC7C,IAAI,UAAU,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC5B,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,qBAAqB,CAC/B,oBAA2C,EAC3C,iBAA6C;QAE7C,MAAM,MAAM,GAAgB,EAAE,CAAC;QAE/B,KAAK,MAAM,UAAU,IAAI,oBAAoB,EAAE,CAAC;YAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;YAClE,IAAI,SAAS,EAAE,CAAC;gBACZ,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC3B,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,cAAc,CAAC,KAAwB;QAClD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxC,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,OAAO;QACP,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC;QAC1B,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC/D,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,KAAK;QACL,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;YACxB,OAAO;gBACH,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE;aAC7B,CAAC;QACN,CAAC;QAED,KAAK;QACL,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1D,CAAC;QAED,+BAA+B;QAC/B,IAAI,KAAK,YAAY,GAAG,EAAE,CAAC;YACvB,OAAO;gBACH,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;aACrC,CAAC;QACN,CAAC;QAED,MAAM;QACN,IAAI,KAAK,YAAY,GAAG,EAAE,CAAC;YACvB,OAAO;gBACH,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;aAC3B,CAAC;QACN,CAAC;QAED,OAAO;QACP,IAAI,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1E,MAAM,MAAM,GAAsC,EAAE,CAAC;YACrD,MAAM,GAAG,GAAG,KAA0C,CAAC;YACvD,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;gBACpB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;oBACjD,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChD,CAAC;YACL,CAAC;YACD,OAAO,MAAM,CAAC;QAClB,CAAC;QAED,gBAAgB;QAChB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,gBAAgB,CAAC,KAAwB;QACpD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxC,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,WAAW;QACX,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC;QAC1B,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC/D,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,WAAW;QACX,IAAI,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;YACtE,MAAM,UAAU,GAAG,KAAqD,CAAC;YACzE,QAAQ,UAAU,CAAC,MAAM,EAAE,CAAC;gBACxB,KAAK,MAAM;oBACP,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,UAAU,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzH,KAAK,KAAK;oBACN,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,KAAsD,EAAE,CAAC;gBACvG,KAAK,KAAK;oBACN,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,KAA4B,EAAE,CAAC;YACjF,CAAC;QACL,CAAC;QAED,KAAK;QACL,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO;QACP,IAAI,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1E,MAAM,MAAM,GAAsC,EAAE,CAAC;YACrD,MAAM,GAAG,GAAG,KAA0C,CAAC;YACvD,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;gBACpB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;oBACjD,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClD,CAAC;YACL,CAAC;YACD,OAAO,MAAM,CAAC;QAClB,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,eAAe,CACzB,cAAmC,EACnC,eAAuB;QAEvB,OAAO,cAAc,CAAC,OAAO,KAAK,eAAe,CAAC;IACtD,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,oBAAoB,CAAC,SAAoC;QAOnE,MAAM,QAAQ,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC;QAErD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO;gBACH,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,CAAC;gBACV,MAAM,EAAE,EAAE;gBACV,aAAa,EAAE,EAAE;gBACjB,cAAc,EAAE,KAAK;aACxB,CAAC;QACN,CAAC;QAED,MAAM,aAAa,GAAG,OAAO,SAAS,KAAK,UAAU;YACjD,CAAC,CAAC,SAAS;YACX,CAAC,CAAE,SAAS,CAAC,WAA6B,CAAC;QAE/C,OAAO;YACH,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,IAAI,oBAAoB,CAAC,aAAa,CAAC;YACpE,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,OAAO;YACjC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACjD,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAC3C;YACD,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACxD,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAC3C;YACD,cAAc,EAAE,IAAI;SACvB,CAAC;IACN,CAAC;CACJ"}
@@ -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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"}