@esengine/ecs-framework 2.3.0 → 2.3.1

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