@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,213 +0,0 @@
1
- /**
2
- * 场景序列化器
3
- *
4
- * 负责整个场景的序列化和反序列化,包括实体、组件等
5
- */
6
- import type { IScene } from '../IScene';
7
- import { ComponentType } from '../Core/ComponentStorage';
8
- import { SerializedEntity } from './EntitySerializer';
9
- /**
10
- * 场景序列化格式
11
- */
12
- export type SerializationFormat = 'json' | 'binary';
13
- /**
14
- * 场景序列化策略
15
- */
16
- export type DeserializationStrategy = 'merge' | 'replace';
17
- /**
18
- * 版本迁移函数
19
- */
20
- export type MigrationFunction = (oldVersion: number, newVersion: number, data: any) => any;
21
- /**
22
- * 场景序列化选项
23
- */
24
- export interface SceneSerializationOptions {
25
- /**
26
- * 要序列化的组件类型列表
27
- * 如果未指定,则序列化所有可序列化的组件
28
- */
29
- components?: ComponentType[];
30
- /**
31
- * 是否序列化系统状态(当前不支持)
32
- */
33
- systems?: boolean;
34
- /**
35
- * 序列化格式
36
- */
37
- format?: SerializationFormat;
38
- /**
39
- * 是否美化JSON输出(仅在format='json'时有效)
40
- */
41
- pretty?: boolean;
42
- /**
43
- * 是否包含元数据(如序列化时间、版本等)
44
- */
45
- includeMetadata?: boolean;
46
- }
47
- /**
48
- * 场景反序列化选项
49
- */
50
- export interface SceneDeserializationOptions {
51
- /**
52
- * 反序列化策略
53
- * - 'merge': 合并到现有场景
54
- * - 'replace': 替换现有场景内容
55
- */
56
- strategy?: DeserializationStrategy;
57
- /**
58
- * 版本迁移函数
59
- */
60
- migration?: MigrationFunction;
61
- /**
62
- * 是否保持原始实体ID
63
- */
64
- preserveIds?: boolean;
65
- /**
66
- * 组件类型注册表
67
- * 如果未提供,将尝试从全局注册表获取
68
- */
69
- componentRegistry?: Map<string, ComponentType>;
70
- }
71
- /**
72
- * 序列化后的场景数据
73
- */
74
- export interface SerializedScene {
75
- /**
76
- * 场景名称
77
- */
78
- name: string;
79
- /**
80
- * 序列化版本
81
- */
82
- version: number;
83
- /**
84
- * 序列化时间戳
85
- */
86
- timestamp?: number;
87
- /**
88
- * 场景自定义数据
89
- *
90
- * 存储场景级别的配置和状态
91
- */
92
- sceneData?: Record<string, any>;
93
- /**
94
- * 实体列表
95
- */
96
- entities: SerializedEntity[];
97
- /**
98
- * 元数据
99
- */
100
- metadata?: {
101
- entityCount: number;
102
- componentTypeCount: number;
103
- serializationOptions?: SceneSerializationOptions;
104
- };
105
- /**
106
- * 组件类型注册信息
107
- */
108
- componentTypeRegistry: Array<{
109
- typeName: string;
110
- version: number;
111
- }>;
112
- }
113
- /**
114
- * 场景序列化器类
115
- */
116
- export declare class SceneSerializer {
117
- /**
118
- * 当前序列化版本
119
- */
120
- private static readonly SERIALIZATION_VERSION;
121
- /**
122
- * 序列化场景
123
- *
124
- * @param scene 要序列化的场景
125
- * @param options 序列化选项
126
- * @returns 序列化后的数据(JSON字符串或二进制Uint8Array)
127
- */
128
- static serialize(scene: IScene, options?: SceneSerializationOptions): string | Uint8Array;
129
- /**
130
- * 反序列化场景
131
- *
132
- * @param scene 目标场景
133
- * @param saveData 序列化的数据(JSON字符串或二进制Uint8Array)
134
- * @param options 反序列化选项
135
- */
136
- static deserialize(scene: IScene, saveData: string | Uint8Array, options?: SceneDeserializationOptions): void;
137
- /**
138
- * 调用实体所有组件的 onDeserialized 方法(不递归)
139
- */
140
- private static callOnDeserializedForEntity;
141
- /**
142
- * 递归添加实体的所有子实体到场景
143
- *
144
- * 修复反序列化时子实体丢失的问题:
145
- * EntitySerializer.deserialize会提前设置子实体的scene引用,
146
- * 导致Entity.addChild的条件判断(!child.scene)跳过scene.addEntity调用。
147
- * 因此需要在SceneSerializer中统一递归添加所有子实体。
148
- *
149
- * @param entity 父实体
150
- * @param scene 目标场景
151
- * @param hierarchySystem 层级系统
152
- */
153
- private static addChildrenRecursively;
154
- /**
155
- * 序列化场景自定义数据
156
- *
157
- * 将 Map<string, any> 转换为普通对象
158
- */
159
- private static serializeSceneData;
160
- /**
161
- * 反序列化场景自定义数据
162
- *
163
- * 将普通对象还原为 Map<string, any>
164
- */
165
- private static deserializeSceneData;
166
- /**
167
- * 序列化单个值
168
- */
169
- private static serializeValue;
170
- /**
171
- * 反序列化单个值
172
- */
173
- private static deserializeValue;
174
- /**
175
- * 过滤要序列化的实体和组件
176
- */
177
- private static filterEntities;
178
- /**
179
- * 构建组件类型注册表
180
- */
181
- private static buildComponentTypeRegistry;
182
- /**
183
- * 获取全局组件注册表
184
- *
185
- * 从所有已注册的组件类型构建注册表
186
- */
187
- private static getGlobalComponentRegistry;
188
- /**
189
- * 验证保存数据的有效性
190
- *
191
- * @param saveData 序列化的数据
192
- * @returns 验证结果
193
- */
194
- static validate(saveData: string): {
195
- valid: boolean;
196
- version?: number;
197
- errors?: string[];
198
- };
199
- /**
200
- * 获取保存数据的信息(不完全反序列化)
201
- *
202
- * @param saveData 序列化的数据
203
- * @returns 保存数据的元信息
204
- */
205
- static getInfo(saveData: string): {
206
- name: string;
207
- version: number;
208
- timestamp?: number;
209
- entityCount: number;
210
- componentTypeCount: number;
211
- } | null;
212
- }
213
- //# sourceMappingURL=SceneSerializer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SceneSerializer.d.ts","sourceRoot":"","sources":["../../../src/ECS/Serialization/SceneSerializer.ts"],"names":[],"mappings":"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"}
@@ -1,387 +0,0 @@
1
- /**
2
- * 场景序列化器
3
- *
4
- * 负责整个场景的序列化和反序列化,包括实体、组件等
5
- */
6
- import { ComponentRegistry } from '../Core/ComponentStorage';
7
- import { EntitySerializer } from './EntitySerializer';
8
- import { getComponentTypeName } from '../Decorators';
9
- import { getSerializationMetadata } from './SerializationDecorators';
10
- import { BinarySerializer } from '../../Utils/BinarySerializer';
11
- import { HierarchySystem } from '../Systems/HierarchySystem';
12
- import { HierarchyComponent } from '../Components/HierarchyComponent';
13
- /**
14
- * 场景序列化器类
15
- */
16
- export class SceneSerializer {
17
- /**
18
- * 序列化场景
19
- *
20
- * @param scene 要序列化的场景
21
- * @param options 序列化选项
22
- * @returns 序列化后的数据(JSON字符串或二进制Uint8Array)
23
- */
24
- static serialize(scene, options) {
25
- const opts = {
26
- systems: false,
27
- format: 'json',
28
- pretty: true,
29
- includeMetadata: true,
30
- ...options
31
- };
32
- // 过滤实体和组件
33
- const entities = this.filterEntities(scene, opts);
34
- // 获取层级系统用于序列化子实体
35
- const hierarchySystem = scene.getSystem(HierarchySystem);
36
- // 序列化实体(传入 hierarchySystem 以正确序列化子实体)
37
- const serializedEntities = EntitySerializer.serializeEntities(entities, true, hierarchySystem ?? undefined);
38
- // 收集组件类型信息
39
- const componentTypeRegistry = this.buildComponentTypeRegistry(entities);
40
- // 序列化场景自定义数据
41
- const sceneData = this.serializeSceneData(scene.sceneData);
42
- // 构建序列化数据
43
- const serializedScene = {
44
- name: scene.name,
45
- version: this.SERIALIZATION_VERSION,
46
- entities: serializedEntities,
47
- componentTypeRegistry
48
- };
49
- // 添加场景数据(如果有)
50
- if (sceneData && Object.keys(sceneData).length > 0) {
51
- serializedScene.sceneData = sceneData;
52
- }
53
- // 添加元数据
54
- if (opts.includeMetadata) {
55
- serializedScene.timestamp = Date.now();
56
- serializedScene.metadata = {
57
- entityCount: serializedEntities.length,
58
- componentTypeCount: componentTypeRegistry.length,
59
- serializationOptions: opts
60
- };
61
- }
62
- if (opts.format === 'json') {
63
- return opts.pretty
64
- ? JSON.stringify(serializedScene, null, 2)
65
- : JSON.stringify(serializedScene);
66
- }
67
- else {
68
- return BinarySerializer.encode(serializedScene);
69
- }
70
- }
71
- /**
72
- * 反序列化场景
73
- *
74
- * @param scene 目标场景
75
- * @param saveData 序列化的数据(JSON字符串或二进制Uint8Array)
76
- * @param options 反序列化选项
77
- */
78
- static deserialize(scene, saveData, options) {
79
- const opts = {
80
- strategy: 'replace',
81
- preserveIds: false,
82
- ...options
83
- };
84
- let serializedScene;
85
- try {
86
- if (typeof saveData === 'string') {
87
- serializedScene = JSON.parse(saveData);
88
- }
89
- else {
90
- serializedScene = BinarySerializer.decode(saveData);
91
- }
92
- }
93
- catch (error) {
94
- throw new Error(`Failed to parse save data: ${error}`);
95
- }
96
- // 版本迁移
97
- if (opts.migration && serializedScene.version !== this.SERIALIZATION_VERSION) {
98
- serializedScene = opts.migration(serializedScene.version, this.SERIALIZATION_VERSION, serializedScene);
99
- }
100
- // 构建组件注册表
101
- const componentRegistry = opts.componentRegistry || this.getGlobalComponentRegistry();
102
- // 根据策略处理场景
103
- if (opts.strategy === 'replace') {
104
- // 清空场景
105
- scene.destroyAllEntities();
106
- }
107
- // ID生成器
108
- const idGenerator = () => scene.identifierPool.checkOut();
109
- // 获取层级系统
110
- const hierarchySystem = scene.getSystem(HierarchySystem);
111
- // 反序列化实体
112
- const { rootEntities, allEntities } = EntitySerializer.deserializeEntities(serializedScene.entities, componentRegistry, idGenerator, opts.preserveIds || false, scene, hierarchySystem);
113
- // 将所有实体添加到场景(包括子实体)
114
- // 先添加根实体,再递归添加子实体
115
- for (const entity of rootEntities) {
116
- scene.addEntity(entity, true);
117
- this.addChildrenRecursively(entity, scene, hierarchySystem, allEntities);
118
- }
119
- // 统一清理缓存(批量操作完成后)
120
- scene.querySystem.clearCache();
121
- scene.clearSystemEntityCaches();
122
- // 反序列化场景自定义数据
123
- if (serializedScene.sceneData) {
124
- this.deserializeSceneData(serializedScene.sceneData, scene.sceneData);
125
- }
126
- // 调用所有组件的 onDeserialized 生命周期方法
127
- // Call onDeserialized lifecycle method on all components
128
- const deserializedPromises = [];
129
- for (const entity of allEntities.values()) {
130
- this.callOnDeserializedForEntity(entity, deserializedPromises);
131
- }
132
- // 如果有异步的 onDeserialized,在后台执行
133
- if (deserializedPromises.length > 0) {
134
- Promise.all(deserializedPromises).catch(error => {
135
- console.error('Error in onDeserialized:', error);
136
- });
137
- }
138
- }
139
- /**
140
- * 调用实体所有组件的 onDeserialized 方法(不递归)
141
- */
142
- static callOnDeserializedForEntity(entity, promises) {
143
- for (const component of entity.components) {
144
- try {
145
- const result = component.onDeserialized();
146
- if (result instanceof Promise) {
147
- promises.push(result);
148
- }
149
- }
150
- catch (error) {
151
- console.error(`Error calling onDeserialized on component ${component.constructor.name}:`, error);
152
- }
153
- }
154
- }
155
- /**
156
- * 递归添加实体的所有子实体到场景
157
- *
158
- * 修复反序列化时子实体丢失的问题:
159
- * EntitySerializer.deserialize会提前设置子实体的scene引用,
160
- * 导致Entity.addChild的条件判断(!child.scene)跳过scene.addEntity调用。
161
- * 因此需要在SceneSerializer中统一递归添加所有子实体。
162
- *
163
- * @param entity 父实体
164
- * @param scene 目标场景
165
- * @param hierarchySystem 层级系统
166
- */
167
- static addChildrenRecursively(entity, scene, hierarchySystem, childEntitiesMap) {
168
- const hierarchy = entity.getComponent(HierarchyComponent);
169
- if (!hierarchy || hierarchy.childIds.length === 0)
170
- return;
171
- // 获取子实体
172
- // 注意:此时子实体还没有被添加到场景,所以不能用 scene.findEntityById
173
- // 需要从 childEntitiesMap 中查找(如果提供了的话)
174
- for (const childId of hierarchy.childIds) {
175
- // 尝试从 map 中获取,否则从场景获取(用于已添加的情况)
176
- const child = childEntitiesMap?.get(childId) ?? scene.findEntityById(childId);
177
- if (child) {
178
- scene.addEntity(child, true); // 延迟缓存清理
179
- this.addChildrenRecursively(child, scene, hierarchySystem, childEntitiesMap);
180
- }
181
- }
182
- }
183
- /**
184
- * 序列化场景自定义数据
185
- *
186
- * 将 Map<string, any> 转换为普通对象
187
- */
188
- static serializeSceneData(sceneData) {
189
- const result = {};
190
- for (const [key, value] of sceneData) {
191
- result[key] = this.serializeValue(value);
192
- }
193
- return result;
194
- }
195
- /**
196
- * 反序列化场景自定义数据
197
- *
198
- * 将普通对象还原为 Map<string, any>
199
- */
200
- static deserializeSceneData(data, targetMap) {
201
- targetMap.clear();
202
- for (const [key, value] of Object.entries(data)) {
203
- targetMap.set(key, this.deserializeValue(value));
204
- }
205
- }
206
- /**
207
- * 序列化单个值
208
- */
209
- static serializeValue(value) {
210
- if (value === null || value === undefined) {
211
- return value;
212
- }
213
- // 基本类型
214
- const type = typeof value;
215
- if (type === 'string' || type === 'number' || type === 'boolean') {
216
- return value;
217
- }
218
- // Date
219
- if (value instanceof Date) {
220
- return { __type: 'Date', value: value.toISOString() };
221
- }
222
- // Map
223
- if (value instanceof Map) {
224
- return { __type: 'Map', value: Array.from(value.entries()) };
225
- }
226
- // Set
227
- if (value instanceof Set) {
228
- return { __type: 'Set', value: Array.from(value) };
229
- }
230
- // 数组
231
- if (Array.isArray(value)) {
232
- return value.map((item) => this.serializeValue(item));
233
- }
234
- // 普通对象
235
- if (type === 'object') {
236
- const result = {};
237
- for (const key in value) {
238
- if (value.hasOwnProperty(key)) {
239
- result[key] = this.serializeValue(value[key]);
240
- }
241
- }
242
- return result;
243
- }
244
- // 其他类型不序列化
245
- return undefined;
246
- }
247
- /**
248
- * 反序列化单个值
249
- */
250
- static deserializeValue(value) {
251
- if (value === null || value === undefined) {
252
- return value;
253
- }
254
- // 基本类型
255
- const type = typeof value;
256
- if (type === 'string' || type === 'number' || type === 'boolean') {
257
- return value;
258
- }
259
- // 处理特殊类型标记
260
- if (type === 'object' && value.__type) {
261
- switch (value.__type) {
262
- case 'Date':
263
- return new Date(value.value);
264
- case 'Map':
265
- return new Map(value.value);
266
- case 'Set':
267
- return new Set(value.value);
268
- }
269
- }
270
- // 数组
271
- if (Array.isArray(value)) {
272
- return value.map((item) => this.deserializeValue(item));
273
- }
274
- // 普通对象
275
- if (type === 'object') {
276
- const result = {};
277
- for (const key in value) {
278
- if (value.hasOwnProperty(key)) {
279
- result[key] = this.deserializeValue(value[key]);
280
- }
281
- }
282
- return result;
283
- }
284
- return value;
285
- }
286
- /**
287
- * 过滤要序列化的实体和组件
288
- */
289
- static filterEntities(scene, options) {
290
- const entities = Array.from(scene.entities.buffer);
291
- // 如果指定了组件类型过滤
292
- if (options.components && options.components.length > 0) {
293
- const componentTypeSet = new Set(options.components);
294
- // 只返回拥有指定组件的实体
295
- return entities.filter((entity) => {
296
- return Array.from(entity.components).some((component) => componentTypeSet.has(component.constructor));
297
- });
298
- }
299
- return entities;
300
- }
301
- /**
302
- * 构建组件类型注册表
303
- */
304
- static buildComponentTypeRegistry(entities) {
305
- const registry = new Map();
306
- for (const entity of entities) {
307
- for (const component of entity.components) {
308
- const componentType = component.constructor;
309
- const typeName = getComponentTypeName(componentType);
310
- const metadata = getSerializationMetadata(component);
311
- if (metadata && !registry.has(typeName)) {
312
- registry.set(typeName, metadata.options.version);
313
- }
314
- }
315
- }
316
- return Array.from(registry.entries()).map(([typeName, version]) => ({
317
- typeName,
318
- version
319
- }));
320
- }
321
- /**
322
- * 获取全局组件注册表
323
- *
324
- * 从所有已注册的组件类型构建注册表
325
- */
326
- static getGlobalComponentRegistry() {
327
- return ComponentRegistry.getAllComponentNames();
328
- }
329
- /**
330
- * 验证保存数据的有效性
331
- *
332
- * @param saveData 序列化的数据
333
- * @returns 验证结果
334
- */
335
- static validate(saveData) {
336
- const errors = [];
337
- try {
338
- const data = JSON.parse(saveData);
339
- if (!data.version) {
340
- errors.push('Missing version field');
341
- }
342
- if (!data.entities || !Array.isArray(data.entities)) {
343
- errors.push('Missing or invalid entities field');
344
- }
345
- if (!data.componentTypeRegistry || !Array.isArray(data.componentTypeRegistry)) {
346
- errors.push('Missing or invalid componentTypeRegistry field');
347
- }
348
- return {
349
- valid: errors.length === 0,
350
- version: data.version,
351
- ...(errors.length > 0 && { errors })
352
- };
353
- }
354
- catch (error) {
355
- return {
356
- valid: false,
357
- errors: [`JSON parse error: ${error}`]
358
- };
359
- }
360
- }
361
- /**
362
- * 获取保存数据的信息(不完全反序列化)
363
- *
364
- * @param saveData 序列化的数据
365
- * @returns 保存数据的元信息
366
- */
367
- static getInfo(saveData) {
368
- try {
369
- const data = JSON.parse(saveData);
370
- return {
371
- name: data.name,
372
- version: data.version,
373
- ...(data.timestamp !== undefined && { timestamp: data.timestamp }),
374
- entityCount: data.metadata?.entityCount || data.entities.length,
375
- componentTypeCount: data.componentTypeRegistry.length
376
- };
377
- }
378
- catch (error) {
379
- return null;
380
- }
381
- }
382
- }
383
- /**
384
- * 当前序列化版本
385
- */
386
- SceneSerializer.SERIALIZATION_VERSION = 1;
387
- //# sourceMappingURL=SceneSerializer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SceneSerializer.js","sourceRoot":"","sources":["../../../src/ECS/Serialization/SceneSerializer.ts"],"names":[],"mappings":"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"}