@esengine/ecs-framework 2.2.21 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (490) hide show
  1. package/bin/Core/DI/Decorators.d.ts +206 -0
  2. package/bin/Core/DI/Decorators.d.ts.map +1 -0
  3. package/bin/Core/DI/Decorators.js +253 -0
  4. package/bin/Core/DI/Decorators.js.map +1 -0
  5. package/bin/Core/DI/index.d.ts +8 -0
  6. package/bin/Core/DI/index.d.ts.map +1 -0
  7. package/bin/Core/DI/index.js +7 -0
  8. package/bin/Core/DI/index.js.map +1 -0
  9. package/bin/Core/Plugin.d.ts +112 -0
  10. package/bin/Core/Plugin.d.ts.map +1 -0
  11. package/bin/Core/Plugin.js +19 -0
  12. package/bin/Core/Plugin.js.map +1 -0
  13. package/bin/Core/PluginManager.d.ts +118 -0
  14. package/bin/Core/PluginManager.d.ts.map +1 -0
  15. package/bin/Core/PluginManager.js +229 -0
  16. package/bin/Core/PluginManager.js.map +1 -0
  17. package/bin/Core/ServiceContainer.d.ts +221 -0
  18. package/bin/Core/ServiceContainer.d.ts.map +1 -0
  19. package/bin/Core/ServiceContainer.js +352 -0
  20. package/bin/Core/ServiceContainer.js.map +1 -0
  21. package/bin/Core.d.ts +379 -0
  22. package/bin/Core.d.ts.map +1 -0
  23. package/bin/Core.js +553 -0
  24. package/bin/Core.js.map +1 -0
  25. package/bin/ECS/Component.d.ts +104 -0
  26. package/bin/ECS/Component.d.ts.map +1 -0
  27. package/bin/ECS/Component.js +105 -0
  28. package/bin/ECS/Component.js.map +1 -0
  29. package/bin/ECS/Components/HierarchyComponent.d.ts +46 -0
  30. package/bin/ECS/Components/HierarchyComponent.d.ts.map +1 -0
  31. package/bin/ECS/Components/HierarchyComponent.js +65 -0
  32. package/bin/ECS/Components/HierarchyComponent.js.map +1 -0
  33. package/bin/ECS/Components/index.d.ts +2 -0
  34. package/bin/ECS/Components/index.d.ts.map +1 -0
  35. package/bin/ECS/Components/index.js +2 -0
  36. package/bin/ECS/Components/index.js.map +1 -0
  37. package/bin/ECS/Core/ArchetypeSystem.d.ts +103 -0
  38. package/bin/ECS/Core/ArchetypeSystem.d.ts.map +1 -0
  39. package/bin/ECS/Core/ArchetypeSystem.js +244 -0
  40. package/bin/ECS/Core/ArchetypeSystem.js.map +1 -0
  41. package/bin/ECS/Core/CommandBuffer.d.ts +154 -0
  42. package/bin/ECS/Core/CommandBuffer.d.ts.map +1 -0
  43. package/bin/ECS/Core/CommandBuffer.js +244 -0
  44. package/bin/ECS/Core/CommandBuffer.js.map +1 -0
  45. package/bin/ECS/Core/ComponentPool.d.ts +139 -0
  46. package/bin/ECS/Core/ComponentPool.d.ts.map +1 -0
  47. package/bin/ECS/Core/ComponentPool.js +276 -0
  48. package/bin/ECS/Core/ComponentPool.js.map +1 -0
  49. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.d.ts +127 -0
  50. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.d.ts.map +1 -0
  51. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.js +235 -0
  52. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.js.map +1 -0
  53. package/bin/ECS/Core/ComponentStorage.d.ts +185 -0
  54. package/bin/ECS/Core/ComponentStorage.d.ts.map +1 -0
  55. package/bin/ECS/Core/ComponentStorage.js +321 -0
  56. package/bin/ECS/Core/ComponentStorage.js.map +1 -0
  57. package/bin/ECS/Core/EntityLifecyclePolicy.d.ts +26 -0
  58. package/bin/ECS/Core/EntityLifecyclePolicy.d.ts.map +1 -0
  59. package/bin/ECS/Core/EntityLifecyclePolicy.js +2 -0
  60. package/bin/ECS/Core/EntityLifecyclePolicy.js.map +1 -0
  61. package/bin/ECS/Core/EventBus.d.ts +210 -0
  62. package/bin/ECS/Core/EventBus.d.ts.map +1 -0
  63. package/bin/ECS/Core/EventBus.js +370 -0
  64. package/bin/ECS/Core/EventBus.js.map +1 -0
  65. package/bin/ECS/Core/EventSystem.d.ts +225 -0
  66. package/bin/ECS/Core/EventSystem.d.ts.map +1 -0
  67. package/bin/ECS/Core/EventSystem.js +448 -0
  68. package/bin/ECS/Core/EventSystem.js.map +1 -0
  69. package/bin/ECS/Core/Events/index.d.ts +3 -0
  70. package/bin/ECS/Core/Events/index.d.ts.map +1 -0
  71. package/bin/ECS/Core/Events/index.js +3 -0
  72. package/bin/ECS/Core/Events/index.js.map +1 -0
  73. package/bin/ECS/Core/FluentAPI/ComponentBuilder.d.ts +35 -0
  74. package/bin/ECS/Core/FluentAPI/ComponentBuilder.d.ts.map +1 -0
  75. package/bin/ECS/Core/FluentAPI/ComponentBuilder.js +48 -0
  76. package/bin/ECS/Core/FluentAPI/ComponentBuilder.js.map +1 -0
  77. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.d.ts +135 -0
  78. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.d.ts.map +1 -0
  79. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.js +166 -0
  80. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.js.map +1 -0
  81. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.d.ts +58 -0
  82. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.d.ts.map +1 -0
  83. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.js +85 -0
  84. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.js.map +1 -0
  85. package/bin/ECS/Core/FluentAPI/EntityBuilder.d.ts +110 -0
  86. package/bin/ECS/Core/FluentAPI/EntityBuilder.d.ts.map +1 -0
  87. package/bin/ECS/Core/FluentAPI/EntityBuilder.js +181 -0
  88. package/bin/ECS/Core/FluentAPI/EntityBuilder.js.map +1 -0
  89. package/bin/ECS/Core/FluentAPI/SceneBuilder.d.ts +53 -0
  90. package/bin/ECS/Core/FluentAPI/SceneBuilder.d.ts.map +1 -0
  91. package/bin/ECS/Core/FluentAPI/SceneBuilder.js +79 -0
  92. package/bin/ECS/Core/FluentAPI/SceneBuilder.js.map +1 -0
  93. package/bin/ECS/Core/FluentAPI/index.d.ts +6 -0
  94. package/bin/ECS/Core/FluentAPI/index.d.ts.map +1 -0
  95. package/bin/ECS/Core/FluentAPI/index.js +6 -0
  96. package/bin/ECS/Core/FluentAPI/index.js.map +1 -0
  97. package/bin/ECS/Core/FluentAPI.d.ts +2 -0
  98. package/bin/ECS/Core/FluentAPI.d.ts.map +1 -0
  99. package/bin/ECS/Core/FluentAPI.js +3 -0
  100. package/bin/ECS/Core/FluentAPI.js.map +1 -0
  101. package/bin/ECS/Core/Query/TypedQuery.d.ts +214 -0
  102. package/bin/ECS/Core/Query/TypedQuery.d.ts.map +1 -0
  103. package/bin/ECS/Core/Query/TypedQuery.js +294 -0
  104. package/bin/ECS/Core/Query/TypedQuery.js.map +1 -0
  105. package/bin/ECS/Core/Query/index.d.ts +3 -0
  106. package/bin/ECS/Core/Query/index.d.ts.map +1 -0
  107. package/bin/ECS/Core/Query/index.js +3 -0
  108. package/bin/ECS/Core/Query/index.js.map +1 -0
  109. package/bin/ECS/Core/QuerySystem.d.ts +458 -0
  110. package/bin/ECS/Core/QuerySystem.d.ts.map +1 -0
  111. package/bin/ECS/Core/QuerySystem.js +1069 -0
  112. package/bin/ECS/Core/QuerySystem.js.map +1 -0
  113. package/bin/ECS/Core/QueryTypes.d.ts +34 -0
  114. package/bin/ECS/Core/QueryTypes.d.ts.map +1 -0
  115. package/bin/ECS/Core/QueryTypes.js +13 -0
  116. package/bin/ECS/Core/QueryTypes.js.map +1 -0
  117. package/bin/ECS/Core/ReactiveQuery.d.ts +211 -0
  118. package/bin/ECS/Core/ReactiveQuery.d.ts.map +1 -0
  119. package/bin/ECS/Core/ReactiveQuery.js +401 -0
  120. package/bin/ECS/Core/ReactiveQuery.js.map +1 -0
  121. package/bin/ECS/Core/ReferenceTracker.d.ts +111 -0
  122. package/bin/ECS/Core/ReferenceTracker.d.ts.map +1 -0
  123. package/bin/ECS/Core/ReferenceTracker.js +254 -0
  124. package/bin/ECS/Core/ReferenceTracker.js.map +1 -0
  125. package/bin/ECS/Core/SoASerializer.d.ts +28 -0
  126. package/bin/ECS/Core/SoASerializer.d.ts.map +1 -0
  127. package/bin/ECS/Core/SoASerializer.js +85 -0
  128. package/bin/ECS/Core/SoASerializer.js.map +1 -0
  129. package/bin/ECS/Core/SoAStorage.d.ts +129 -0
  130. package/bin/ECS/Core/SoAStorage.d.ts.map +1 -0
  131. package/bin/ECS/Core/SoAStorage.js +685 -0
  132. package/bin/ECS/Core/SoAStorage.js.map +1 -0
  133. package/bin/ECS/Core/SoATypeRegistry.d.ts +50 -0
  134. package/bin/ECS/Core/SoATypeRegistry.d.ts.map +1 -0
  135. package/bin/ECS/Core/SoATypeRegistry.js +135 -0
  136. package/bin/ECS/Core/SoATypeRegistry.js.map +1 -0
  137. package/bin/ECS/Core/Storage/index.d.ts +4 -0
  138. package/bin/ECS/Core/Storage/index.d.ts.map +1 -0
  139. package/bin/ECS/Core/Storage/index.js +4 -0
  140. package/bin/ECS/Core/Storage/index.js.map +1 -0
  141. package/bin/ECS/Core/StorageDecorators.d.ts +20 -0
  142. package/bin/ECS/Core/StorageDecorators.d.ts.map +1 -0
  143. package/bin/ECS/Core/StorageDecorators.js +27 -0
  144. package/bin/ECS/Core/StorageDecorators.js.map +1 -0
  145. package/bin/ECS/CoreEvents.d.ts +131 -0
  146. package/bin/ECS/CoreEvents.d.ts.map +1 -0
  147. package/bin/ECS/CoreEvents.js +163 -0
  148. package/bin/ECS/CoreEvents.js.map +1 -0
  149. package/bin/ECS/Decorators/EntityRefDecorator.d.ts +46 -0
  150. package/bin/ECS/Decorators/EntityRefDecorator.d.ts.map +1 -0
  151. package/bin/ECS/Decorators/EntityRefDecorator.js +118 -0
  152. package/bin/ECS/Decorators/EntityRefDecorator.js.map +1 -0
  153. package/bin/ECS/Decorators/PropertyDecorator.d.ts +168 -0
  154. package/bin/ECS/Decorators/PropertyDecorator.d.ts.map +1 -0
  155. package/bin/ECS/Decorators/PropertyDecorator.js +40 -0
  156. package/bin/ECS/Decorators/PropertyDecorator.js.map +1 -0
  157. package/bin/ECS/Decorators/TypeDecorators.d.ts +124 -0
  158. package/bin/ECS/Decorators/TypeDecorators.d.ts.map +1 -0
  159. package/bin/ECS/Decorators/TypeDecorators.js +151 -0
  160. package/bin/ECS/Decorators/TypeDecorators.js.map +1 -0
  161. package/bin/ECS/Decorators/index.d.ts +7 -0
  162. package/bin/ECS/Decorators/index.d.ts.map +1 -0
  163. package/bin/ECS/Decorators/index.js +4 -0
  164. package/bin/ECS/Decorators/index.js.map +1 -0
  165. package/bin/ECS/Entity.d.ts +415 -0
  166. package/bin/ECS/Entity.d.ts.map +1 -0
  167. package/bin/ECS/Entity.js +683 -0
  168. package/bin/ECS/Entity.js.map +1 -0
  169. package/bin/ECS/EntityTags.d.ts +71 -0
  170. package/bin/ECS/EntityTags.d.ts.map +1 -0
  171. package/bin/ECS/EntityTags.js +82 -0
  172. package/bin/ECS/EntityTags.js.map +1 -0
  173. package/bin/ECS/IScene.d.ts +308 -0
  174. package/bin/ECS/IScene.d.ts.map +1 -0
  175. package/bin/ECS/IScene.js +2 -0
  176. package/bin/ECS/IScene.js.map +1 -0
  177. package/bin/ECS/Scene.d.ts +799 -0
  178. package/bin/ECS/Scene.d.ts.map +1 -0
  179. package/bin/ECS/Scene.js +1203 -0
  180. package/bin/ECS/Scene.js.map +1 -0
  181. package/bin/ECS/SceneManager.d.ts +197 -0
  182. package/bin/ECS/SceneManager.d.ts.map +1 -0
  183. package/bin/ECS/SceneManager.js +264 -0
  184. package/bin/ECS/SceneManager.js.map +1 -0
  185. package/bin/ECS/Serialization/ComponentSerializer.d.ts +106 -0
  186. package/bin/ECS/Serialization/ComponentSerializer.d.ts.map +1 -0
  187. package/bin/ECS/Serialization/ComponentSerializer.js +251 -0
  188. package/bin/ECS/Serialization/ComponentSerializer.js.map +1 -0
  189. package/bin/ECS/Serialization/EntitySerializer.d.ts +111 -0
  190. package/bin/ECS/Serialization/EntitySerializer.d.ts.map +1 -0
  191. package/bin/ECS/Serialization/EntitySerializer.js +155 -0
  192. package/bin/ECS/Serialization/EntitySerializer.js.map +1 -0
  193. package/bin/ECS/Serialization/IncrementalSerializer.d.ts +259 -0
  194. package/bin/ECS/Serialization/IncrementalSerializer.d.ts.map +1 -0
  195. package/bin/ECS/Serialization/IncrementalSerializer.js +500 -0
  196. package/bin/ECS/Serialization/IncrementalSerializer.js.map +1 -0
  197. package/bin/ECS/Serialization/SceneSerializer.d.ts +213 -0
  198. package/bin/ECS/Serialization/SceneSerializer.d.ts.map +1 -0
  199. package/bin/ECS/Serialization/SceneSerializer.js +387 -0
  200. package/bin/ECS/Serialization/SceneSerializer.js.map +1 -0
  201. package/bin/ECS/Serialization/SerializationDecorators.d.ts +136 -0
  202. package/bin/ECS/Serialization/SerializationDecorators.d.ts.map +1 -0
  203. package/bin/ECS/Serialization/SerializationDecorators.js +216 -0
  204. package/bin/ECS/Serialization/SerializationDecorators.js.map +1 -0
  205. package/bin/ECS/Serialization/VersionMigration.d.ts +156 -0
  206. package/bin/ECS/Serialization/VersionMigration.d.ts.map +1 -0
  207. package/bin/ECS/Serialization/VersionMigration.js +279 -0
  208. package/bin/ECS/Serialization/VersionMigration.js.map +1 -0
  209. package/bin/ECS/Serialization/index.d.ts +18 -0
  210. package/bin/ECS/Serialization/index.d.ts.map +1 -0
  211. package/bin/ECS/Serialization/index.js +18 -0
  212. package/bin/ECS/Serialization/index.js.map +1 -0
  213. package/bin/ECS/Systems/EntityCache.d.ts +114 -0
  214. package/bin/ECS/Systems/EntityCache.d.ts.map +1 -0
  215. package/bin/ECS/Systems/EntityCache.js +145 -0
  216. package/bin/ECS/Systems/EntityCache.js.map +1 -0
  217. package/bin/ECS/Systems/EntitySystem.d.ts +591 -0
  218. package/bin/ECS/Systems/EntitySystem.d.ts.map +1 -0
  219. package/bin/ECS/Systems/EntitySystem.js +1102 -0
  220. package/bin/ECS/Systems/EntitySystem.js.map +1 -0
  221. package/bin/ECS/Systems/HierarchySystem.d.ts +155 -0
  222. package/bin/ECS/Systems/HierarchySystem.d.ts.map +1 -0
  223. package/bin/ECS/Systems/HierarchySystem.js +498 -0
  224. package/bin/ECS/Systems/HierarchySystem.js.map +1 -0
  225. package/bin/ECS/Systems/IntervalSystem.d.ts +33 -0
  226. package/bin/ECS/Systems/IntervalSystem.d.ts.map +1 -0
  227. package/bin/ECS/Systems/IntervalSystem.js +50 -0
  228. package/bin/ECS/Systems/IntervalSystem.js.map +1 -0
  229. package/bin/ECS/Systems/PassiveSystem.d.ts +17 -0
  230. package/bin/ECS/Systems/PassiveSystem.d.ts.map +1 -0
  231. package/bin/ECS/Systems/PassiveSystem.js +19 -0
  232. package/bin/ECS/Systems/PassiveSystem.js.map +1 -0
  233. package/bin/ECS/Systems/ProcessingSystem.d.ts +21 -0
  234. package/bin/ECS/Systems/ProcessingSystem.d.ts.map +1 -0
  235. package/bin/ECS/Systems/ProcessingSystem.js +20 -0
  236. package/bin/ECS/Systems/ProcessingSystem.js.map +1 -0
  237. package/bin/ECS/Systems/WorkerEntitySystem.d.ts +313 -0
  238. package/bin/ECS/Systems/WorkerEntitySystem.d.ts.map +1 -0
  239. package/bin/ECS/Systems/WorkerEntitySystem.js +792 -0
  240. package/bin/ECS/Systems/WorkerEntitySystem.js.map +1 -0
  241. package/bin/ECS/Systems/index.d.ts +8 -0
  242. package/bin/ECS/Systems/index.d.ts.map +1 -0
  243. package/bin/ECS/Systems/index.js +8 -0
  244. package/bin/ECS/Systems/index.js.map +1 -0
  245. package/bin/ECS/TypedEntity.d.ts +192 -0
  246. package/bin/ECS/TypedEntity.d.ts.map +1 -0
  247. package/bin/ECS/TypedEntity.js +254 -0
  248. package/bin/ECS/TypedEntity.js.map +1 -0
  249. package/bin/ECS/Utils/BigIntCompatibility.d.ts +151 -0
  250. package/bin/ECS/Utils/BigIntCompatibility.d.ts.map +1 -0
  251. package/bin/ECS/Utils/BigIntCompatibility.js +476 -0
  252. package/bin/ECS/Utils/BigIntCompatibility.js.map +1 -0
  253. package/bin/ECS/Utils/BitMaskHashMap.d.ts +28 -0
  254. package/bin/ECS/Utils/BitMaskHashMap.d.ts.map +1 -0
  255. package/bin/ECS/Utils/BitMaskHashMap.js +127 -0
  256. package/bin/ECS/Utils/BitMaskHashMap.js.map +1 -0
  257. package/bin/ECS/Utils/Bits.d.ts +154 -0
  258. package/bin/ECS/Utils/Bits.d.ts.map +1 -0
  259. package/bin/ECS/Utils/Bits.js +331 -0
  260. package/bin/ECS/Utils/Bits.js.map +1 -0
  261. package/bin/ECS/Utils/ComponentSparseSet.d.ts +143 -0
  262. package/bin/ECS/Utils/ComponentSparseSet.d.ts.map +1 -0
  263. package/bin/ECS/Utils/ComponentSparseSet.js +347 -0
  264. package/bin/ECS/Utils/ComponentSparseSet.js.map +1 -0
  265. package/bin/ECS/Utils/EntityList.d.ts +115 -0
  266. package/bin/ECS/Utils/EntityList.d.ts.map +1 -0
  267. package/bin/ECS/Utils/EntityList.js +258 -0
  268. package/bin/ECS/Utils/EntityList.js.map +1 -0
  269. package/bin/ECS/Utils/EntityProcessorList.d.ts +56 -0
  270. package/bin/ECS/Utils/EntityProcessorList.d.ts.map +1 -0
  271. package/bin/ECS/Utils/EntityProcessorList.js +113 -0
  272. package/bin/ECS/Utils/EntityProcessorList.js.map +1 -0
  273. package/bin/ECS/Utils/IdentifierPool.d.ts +203 -0
  274. package/bin/ECS/Utils/IdentifierPool.d.ts.map +1 -0
  275. package/bin/ECS/Utils/IdentifierPool.js +325 -0
  276. package/bin/ECS/Utils/IdentifierPool.js.map +1 -0
  277. package/bin/ECS/Utils/Matcher.d.ts +171 -0
  278. package/bin/ECS/Utils/Matcher.d.ts.map +1 -0
  279. package/bin/ECS/Utils/Matcher.js +293 -0
  280. package/bin/ECS/Utils/Matcher.js.map +1 -0
  281. package/bin/ECS/Utils/SparseSet.d.ts +170 -0
  282. package/bin/ECS/Utils/SparseSet.d.ts.map +1 -0
  283. package/bin/ECS/Utils/SparseSet.js +280 -0
  284. package/bin/ECS/Utils/SparseSet.js.map +1 -0
  285. package/bin/ECS/Utils/index.d.ts +9 -0
  286. package/bin/ECS/Utils/index.d.ts.map +1 -0
  287. package/bin/ECS/Utils/index.js +10 -0
  288. package/bin/ECS/Utils/index.js.map +1 -0
  289. package/bin/ECS/World.d.ts +238 -0
  290. package/bin/ECS/World.d.ts.map +1 -0
  291. package/bin/ECS/World.js +416 -0
  292. package/bin/ECS/World.js.map +1 -0
  293. package/bin/ECS/WorldManager.d.ts +224 -0
  294. package/bin/ECS/WorldManager.d.ts.map +1 -0
  295. package/bin/ECS/WorldManager.js +365 -0
  296. package/bin/ECS/WorldManager.js.map +1 -0
  297. package/bin/ECS/index.d.ts +26 -0
  298. package/bin/ECS/index.d.ts.map +1 -0
  299. package/bin/ECS/index.js +21 -0
  300. package/bin/ECS/index.js.map +1 -0
  301. package/bin/Platform/IPlatformAdapter.d.ts +169 -0
  302. package/bin/Platform/IPlatformAdapter.d.ts.map +1 -0
  303. package/bin/Platform/IPlatformAdapter.js +2 -0
  304. package/bin/Platform/IPlatformAdapter.js.map +1 -0
  305. package/bin/Platform/PlatformDetector.d.ts +56 -0
  306. package/bin/Platform/PlatformDetector.d.ts.map +1 -0
  307. package/bin/Platform/PlatformDetector.js +247 -0
  308. package/bin/Platform/PlatformDetector.js.map +1 -0
  309. package/bin/Platform/PlatformManager.d.ts +50 -0
  310. package/bin/Platform/PlatformManager.d.ts.map +1 -0
  311. package/bin/Platform/PlatformManager.js +114 -0
  312. package/bin/Platform/PlatformManager.js.map +1 -0
  313. package/bin/Platform/index.d.ts +19 -0
  314. package/bin/Platform/index.d.ts.map +1 -0
  315. package/bin/Platform/index.js +29 -0
  316. package/bin/Platform/index.js.map +1 -0
  317. package/bin/Plugins/DebugPlugin.d.ts +156 -0
  318. package/bin/Plugins/DebugPlugin.d.ts.map +1 -0
  319. package/bin/Plugins/DebugPlugin.js +248 -0
  320. package/bin/Plugins/DebugPlugin.js.map +1 -0
  321. package/bin/Plugins/index.d.ts +2 -0
  322. package/bin/Plugins/index.d.ts.map +1 -0
  323. package/bin/Plugins/index.js +2 -0
  324. package/bin/Plugins/index.js.map +1 -0
  325. package/bin/Types/IUpdatable.d.ts +18 -0
  326. package/bin/Types/IUpdatable.d.ts.map +1 -0
  327. package/bin/Types/IUpdatable.js +7 -0
  328. package/bin/Types/IUpdatable.js.map +1 -0
  329. package/bin/Types/TypeHelpers.d.ts +238 -0
  330. package/bin/Types/TypeHelpers.d.ts.map +1 -0
  331. package/bin/Types/TypeHelpers.js +19 -0
  332. package/bin/Types/TypeHelpers.js.map +1 -0
  333. package/bin/Types/index.d.ts +466 -0
  334. package/bin/Types/index.d.ts.map +1 -0
  335. package/bin/Types/index.js +7 -0
  336. package/bin/Types/index.js.map +1 -0
  337. package/bin/Utils/BinarySerializer.d.ts +23 -0
  338. package/bin/Utils/BinarySerializer.d.ts.map +1 -0
  339. package/bin/Utils/BinarySerializer.js +100 -0
  340. package/bin/Utils/BinarySerializer.js.map +1 -0
  341. package/bin/Utils/Debug/AdvancedProfilerCollector.d.ts +153 -0
  342. package/bin/Utils/Debug/AdvancedProfilerCollector.d.ts.map +1 -0
  343. package/bin/Utils/Debug/AdvancedProfilerCollector.js +406 -0
  344. package/bin/Utils/Debug/AdvancedProfilerCollector.js.map +1 -0
  345. package/bin/Utils/Debug/ComponentDataCollector.d.ts +32 -0
  346. package/bin/Utils/Debug/ComponentDataCollector.d.ts.map +1 -0
  347. package/bin/Utils/Debug/ComponentDataCollector.js +250 -0
  348. package/bin/Utils/Debug/ComponentDataCollector.js.map +1 -0
  349. package/bin/Utils/Debug/DebugConfigService.d.ts +16 -0
  350. package/bin/Utils/Debug/DebugConfigService.d.ts.map +1 -0
  351. package/bin/Utils/Debug/DebugConfigService.js +42 -0
  352. package/bin/Utils/Debug/DebugConfigService.js.map +1 -0
  353. package/bin/Utils/Debug/DebugManager.d.ts +131 -0
  354. package/bin/Utils/Debug/DebugManager.d.ts.map +1 -0
  355. package/bin/Utils/Debug/DebugManager.js +848 -0
  356. package/bin/Utils/Debug/DebugManager.js.map +1 -0
  357. package/bin/Utils/Debug/EntityDataCollector.d.ts +115 -0
  358. package/bin/Utils/Debug/EntityDataCollector.d.ts.map +1 -0
  359. package/bin/Utils/Debug/EntityDataCollector.js +870 -0
  360. package/bin/Utils/Debug/EntityDataCollector.js.map +1 -0
  361. package/bin/Utils/Debug/PerformanceDataCollector.d.ts +31 -0
  362. package/bin/Utils/Debug/PerformanceDataCollector.d.ts.map +1 -0
  363. package/bin/Utils/Debug/PerformanceDataCollector.js +203 -0
  364. package/bin/Utils/Debug/PerformanceDataCollector.js.map +1 -0
  365. package/bin/Utils/Debug/SceneDataCollector.d.ts +18 -0
  366. package/bin/Utils/Debug/SceneDataCollector.d.ts.map +1 -0
  367. package/bin/Utils/Debug/SceneDataCollector.js +43 -0
  368. package/bin/Utils/Debug/SceneDataCollector.js.map +1 -0
  369. package/bin/Utils/Debug/SystemDataCollector.d.ts +14 -0
  370. package/bin/Utils/Debug/SystemDataCollector.d.ts.map +1 -0
  371. package/bin/Utils/Debug/SystemDataCollector.js +60 -0
  372. package/bin/Utils/Debug/SystemDataCollector.js.map +1 -0
  373. package/bin/Utils/Debug/WebSocketManager.d.ts +54 -0
  374. package/bin/Utils/Debug/WebSocketManager.d.ts.map +1 -0
  375. package/bin/Utils/Debug/WebSocketManager.js +141 -0
  376. package/bin/Utils/Debug/WebSocketManager.js.map +1 -0
  377. package/bin/Utils/Debug/index.d.ts +11 -0
  378. package/bin/Utils/Debug/index.d.ts.map +1 -0
  379. package/bin/Utils/Debug/index.js +10 -0
  380. package/bin/Utils/Debug/index.js.map +1 -0
  381. package/bin/Utils/Emitter.d.ts +61 -0
  382. package/bin/Utils/Emitter.d.ts.map +1 -0
  383. package/bin/Utils/Emitter.js +101 -0
  384. package/bin/Utils/Emitter.js.map +1 -0
  385. package/bin/Utils/Extensions/NumberExtension.d.ts +13 -0
  386. package/bin/Utils/Extensions/NumberExtension.d.ts.map +1 -0
  387. package/bin/Utils/Extensions/NumberExtension.js +17 -0
  388. package/bin/Utils/Extensions/NumberExtension.js.map +1 -0
  389. package/bin/Utils/Extensions/TypeUtils.d.ts +13 -0
  390. package/bin/Utils/Extensions/TypeUtils.d.ts.map +1 -0
  391. package/bin/Utils/Extensions/TypeUtils.js +15 -0
  392. package/bin/Utils/Extensions/TypeUtils.js.map +1 -0
  393. package/bin/Utils/Extensions/index.d.ts +3 -0
  394. package/bin/Utils/Extensions/index.d.ts.map +1 -0
  395. package/bin/Utils/Extensions/index.js +4 -0
  396. package/bin/Utils/Extensions/index.js.map +1 -0
  397. package/bin/Utils/GlobalManager.d.ts +29 -0
  398. package/bin/Utils/GlobalManager.d.ts.map +1 -0
  399. package/bin/Utils/GlobalManager.js +50 -0
  400. package/bin/Utils/GlobalManager.js.map +1 -0
  401. package/bin/Utils/Logger/ConsoleLogger.d.ts +74 -0
  402. package/bin/Utils/Logger/ConsoleLogger.d.ts.map +1 -0
  403. package/bin/Utils/Logger/ConsoleLogger.js +187 -0
  404. package/bin/Utils/Logger/ConsoleLogger.js.map +1 -0
  405. package/bin/Utils/Logger/Constants.d.ts +36 -0
  406. package/bin/Utils/Logger/Constants.d.ts.map +1 -0
  407. package/bin/Utils/Logger/Constants.js +40 -0
  408. package/bin/Utils/Logger/Constants.js.map +1 -0
  409. package/bin/Utils/Logger/LoggerManager.d.ts +91 -0
  410. package/bin/Utils/Logger/LoggerManager.d.ts.map +1 -0
  411. package/bin/Utils/Logger/LoggerManager.js +167 -0
  412. package/bin/Utils/Logger/LoggerManager.js.map +1 -0
  413. package/bin/Utils/Logger/Types.d.ts +40 -0
  414. package/bin/Utils/Logger/Types.d.ts.map +1 -0
  415. package/bin/Utils/Logger/Types.js +2 -0
  416. package/bin/Utils/Logger/Types.js.map +1 -0
  417. package/bin/Utils/Logger/index.d.ts +5 -0
  418. package/bin/Utils/Logger/index.d.ts.map +1 -0
  419. package/bin/Utils/Logger/index.js +5 -0
  420. package/bin/Utils/Logger/index.js.map +1 -0
  421. package/bin/Utils/PerformanceMonitor.d.ts +196 -0
  422. package/bin/Utils/PerformanceMonitor.d.ts.map +1 -0
  423. package/bin/Utils/PerformanceMonitor.js +244 -0
  424. package/bin/Utils/PerformanceMonitor.js.map +1 -0
  425. package/bin/Utils/Pool/IPoolable.d.ts +29 -0
  426. package/bin/Utils/Pool/IPoolable.d.ts.map +1 -0
  427. package/bin/Utils/Pool/IPoolable.js +2 -0
  428. package/bin/Utils/Pool/IPoolable.js.map +1 -0
  429. package/bin/Utils/Pool/Pool.d.ts +109 -0
  430. package/bin/Utils/Pool/Pool.d.ts.map +1 -0
  431. package/bin/Utils/Pool/Pool.js +238 -0
  432. package/bin/Utils/Pool/Pool.js.map +1 -0
  433. package/bin/Utils/Pool/PoolManager.d.ts +96 -0
  434. package/bin/Utils/Pool/PoolManager.d.ts.map +1 -0
  435. package/bin/Utils/Pool/PoolManager.js +199 -0
  436. package/bin/Utils/Pool/PoolManager.js.map +1 -0
  437. package/bin/Utils/Pool/index.d.ts +4 -0
  438. package/bin/Utils/Pool/index.d.ts.map +1 -0
  439. package/bin/Utils/Pool/index.js +4 -0
  440. package/bin/Utils/Pool/index.js.map +1 -0
  441. package/bin/Utils/Profiler/AutoProfiler.d.ts +160 -0
  442. package/bin/Utils/Profiler/AutoProfiler.d.ts.map +1 -0
  443. package/bin/Utils/Profiler/AutoProfiler.js +503 -0
  444. package/bin/Utils/Profiler/AutoProfiler.js.map +1 -0
  445. package/bin/Utils/Profiler/ProfilerSDK.d.ts +175 -0
  446. package/bin/Utils/Profiler/ProfilerSDK.d.ts.map +1 -0
  447. package/bin/Utils/Profiler/ProfilerSDK.js +727 -0
  448. package/bin/Utils/Profiler/ProfilerSDK.js.map +1 -0
  449. package/bin/Utils/Profiler/ProfilerTypes.d.ts +218 -0
  450. package/bin/Utils/Profiler/ProfilerTypes.d.ts.map +1 -0
  451. package/bin/Utils/Profiler/ProfilerTypes.js +47 -0
  452. package/bin/Utils/Profiler/ProfilerTypes.js.map +1 -0
  453. package/bin/Utils/Profiler/index.d.ts +8 -0
  454. package/bin/Utils/Profiler/index.d.ts.map +1 -0
  455. package/bin/Utils/Profiler/index.js +7 -0
  456. package/bin/Utils/Profiler/index.js.map +1 -0
  457. package/bin/Utils/Time.d.ts +47 -0
  458. package/bin/Utils/Time.d.ts.map +1 -0
  459. package/bin/Utils/Time.js +64 -0
  460. package/bin/Utils/Time.js.map +1 -0
  461. package/bin/Utils/Timers/ITimer.d.ts +16 -0
  462. package/bin/Utils/Timers/ITimer.d.ts.map +1 -0
  463. package/bin/Utils/Timers/ITimer.js +2 -0
  464. package/bin/Utils/Timers/ITimer.js.map +1 -0
  465. package/bin/Utils/Timers/Timer.d.ts +30 -0
  466. package/bin/Utils/Timers/Timer.d.ts.map +1 -0
  467. package/bin/Utils/Timers/Timer.js +58 -0
  468. package/bin/Utils/Timers/Timer.js.map +1 -0
  469. package/bin/Utils/Timers/TimerManager.d.ts +26 -0
  470. package/bin/Utils/Timers/TimerManager.d.ts.map +1 -0
  471. package/bin/Utils/Timers/TimerManager.js +48 -0
  472. package/bin/Utils/Timers/TimerManager.js.map +1 -0
  473. package/bin/Utils/index.d.ts +11 -0
  474. package/bin/Utils/index.d.ts.map +1 -0
  475. package/bin/Utils/index.js +11 -0
  476. package/bin/Utils/index.js.map +1 -0
  477. package/bin/index.d.ts +29 -0
  478. package/bin/index.d.ts.map +1 -0
  479. package/bin/index.js +36 -0
  480. package/bin/index.js.map +1 -0
  481. package/package.json +84 -47
  482. package/index.cjs +0 -2
  483. package/index.cjs.map +0 -1
  484. package/index.d.ts +0 -13129
  485. package/index.es5.js +0 -4
  486. package/index.es5.js.map +0 -1
  487. package/index.mjs +0 -2
  488. package/index.mjs.map +0 -1
  489. package/index.umd.js +0 -4
  490. package/index.umd.js.map +0 -1
@@ -0,0 +1,500 @@
1
+ /**
2
+ * 增量序列化器
3
+ *
4
+ * 提供高性能的增量序列化支持,只序列化变更的数据
5
+ * 适用于网络同步、大场景存档、时间回溯等场景
6
+ */
7
+ import { Entity } from '../Entity';
8
+ import { ComponentSerializer } from './ComponentSerializer';
9
+ import { BinarySerializer } from '../../Utils/BinarySerializer';
10
+ import { HierarchyComponent } from '../Components/HierarchyComponent';
11
+ import { HierarchySystem } from '../Systems/HierarchySystem';
12
+ /**
13
+ * 变更操作类型
14
+ */
15
+ export var ChangeOperation;
16
+ (function (ChangeOperation) {
17
+ /** 添加新实体 */
18
+ ChangeOperation["EntityAdded"] = "entity_added";
19
+ /** 删除实体 */
20
+ ChangeOperation["EntityRemoved"] = "entity_removed";
21
+ /** 实体属性更新 */
22
+ ChangeOperation["EntityUpdated"] = "entity_updated";
23
+ /** 添加组件 */
24
+ ChangeOperation["ComponentAdded"] = "component_added";
25
+ /** 删除组件 */
26
+ ChangeOperation["ComponentRemoved"] = "component_removed";
27
+ /** 组件数据更新 */
28
+ ChangeOperation["ComponentUpdated"] = "component_updated";
29
+ /** 场景数据更新 */
30
+ ChangeOperation["SceneDataUpdated"] = "scene_data_updated";
31
+ })(ChangeOperation || (ChangeOperation = {}));
32
+ /**
33
+ * 增量序列化器类
34
+ */
35
+ export class IncrementalSerializer {
36
+ /**
37
+ * 创建场景快照
38
+ *
39
+ * @param scene 要快照的场景
40
+ * @param options 序列化选项
41
+ * @returns 场景快照对象
42
+ */
43
+ static createSnapshot(scene, options) {
44
+ const opts = {
45
+ deepComponentComparison: true,
46
+ trackSceneData: true,
47
+ compressSnapshot: false,
48
+ ...options
49
+ };
50
+ const snapshot = {
51
+ version: ++this.snapshotVersion,
52
+ entityIds: new Set(),
53
+ entities: new Map(),
54
+ components: new Map(),
55
+ sceneData: new Map()
56
+ };
57
+ // 快照所有实体
58
+ for (const entity of scene.entities.buffer) {
59
+ snapshot.entityIds.add(entity.id);
60
+ // 获取层级信息
61
+ const hierarchy = entity.getComponent(HierarchyComponent);
62
+ const parentId = hierarchy?.parentId;
63
+ // 存储实体基本信息
64
+ snapshot.entities.set(entity.id, {
65
+ name: entity.name,
66
+ tag: entity.tag,
67
+ active: entity.active,
68
+ enabled: entity.enabled,
69
+ updateOrder: entity.updateOrder,
70
+ ...(parentId !== null && parentId !== undefined && { parentId })
71
+ });
72
+ // 快照组件
73
+ if (opts.deepComponentComparison) {
74
+ const componentMap = new Map();
75
+ for (const component of entity.components) {
76
+ const serialized = ComponentSerializer.serialize(component);
77
+ if (serialized) {
78
+ // 使用JSON字符串存储,便于后续对比
79
+ componentMap.set(serialized.type, JSON.stringify(serialized.data));
80
+ }
81
+ }
82
+ if (componentMap.size > 0) {
83
+ snapshot.components.set(entity.id, componentMap);
84
+ }
85
+ }
86
+ }
87
+ // 快照场景数据
88
+ if (opts.trackSceneData) {
89
+ for (const [key, value] of scene.sceneData) {
90
+ snapshot.sceneData.set(key, JSON.stringify(value));
91
+ }
92
+ }
93
+ return snapshot;
94
+ }
95
+ /**
96
+ * 计算增量变更
97
+ *
98
+ * @param scene 当前场景
99
+ * @param baseSnapshot 基础快照
100
+ * @param options 序列化选项
101
+ * @returns 增量快照
102
+ */
103
+ static computeIncremental(scene, baseSnapshot, options) {
104
+ const opts = {
105
+ deepComponentComparison: true,
106
+ trackSceneData: true,
107
+ ...options
108
+ };
109
+ const incremental = {
110
+ version: ++this.snapshotVersion,
111
+ timestamp: Date.now(),
112
+ sceneName: scene.name,
113
+ baseVersion: baseSnapshot.version,
114
+ entityChanges: [],
115
+ componentChanges: [],
116
+ sceneDataChanges: []
117
+ };
118
+ const currentEntityIds = new Set();
119
+ // 检测实体变更
120
+ for (const entity of scene.entities.buffer) {
121
+ currentEntityIds.add(entity.id);
122
+ // 获取层级信息
123
+ const hierarchy = entity.getComponent(HierarchyComponent);
124
+ const parentId = hierarchy?.parentId;
125
+ if (!baseSnapshot.entityIds.has(entity.id)) {
126
+ // 新增实体
127
+ incremental.entityChanges.push({
128
+ operation: ChangeOperation.EntityAdded,
129
+ entityId: entity.id,
130
+ entityName: entity.name,
131
+ entityData: {
132
+ id: entity.id,
133
+ name: entity.name,
134
+ tag: entity.tag,
135
+ active: entity.active,
136
+ enabled: entity.enabled,
137
+ updateOrder: entity.updateOrder,
138
+ ...(parentId !== null && parentId !== undefined && { parentId }),
139
+ components: [],
140
+ children: []
141
+ }
142
+ });
143
+ // 新增实体的所有组件都是新增
144
+ for (const component of entity.components) {
145
+ const serialized = ComponentSerializer.serialize(component);
146
+ if (serialized) {
147
+ incremental.componentChanges.push({
148
+ operation: ChangeOperation.ComponentAdded,
149
+ entityId: entity.id,
150
+ componentType: serialized.type,
151
+ componentData: serialized
152
+ });
153
+ }
154
+ }
155
+ }
156
+ else {
157
+ // 检查实体属性变更
158
+ const oldData = baseSnapshot.entities.get(entity.id);
159
+ const entityChanged = oldData.name !== entity.name ||
160
+ oldData.tag !== entity.tag ||
161
+ oldData.active !== entity.active ||
162
+ oldData.enabled !== entity.enabled ||
163
+ oldData.updateOrder !== entity.updateOrder ||
164
+ oldData.parentId !== parentId;
165
+ if (entityChanged) {
166
+ incremental.entityChanges.push({
167
+ operation: ChangeOperation.EntityUpdated,
168
+ entityId: entity.id,
169
+ entityData: {
170
+ name: entity.name,
171
+ tag: entity.tag,
172
+ active: entity.active,
173
+ enabled: entity.enabled,
174
+ updateOrder: entity.updateOrder,
175
+ ...(parentId !== null && parentId !== undefined && { parentId })
176
+ }
177
+ });
178
+ }
179
+ // 检查组件变更
180
+ if (opts.deepComponentComparison) {
181
+ this.detectComponentChanges(entity, baseSnapshot, incremental.componentChanges);
182
+ }
183
+ }
184
+ }
185
+ // 检测删除的实体
186
+ for (const oldEntityId of baseSnapshot.entityIds) {
187
+ if (!currentEntityIds.has(oldEntityId)) {
188
+ incremental.entityChanges.push({
189
+ operation: ChangeOperation.EntityRemoved,
190
+ entityId: oldEntityId
191
+ });
192
+ }
193
+ }
194
+ // 检测场景数据变更
195
+ if (opts.trackSceneData) {
196
+ this.detectSceneDataChanges(scene, baseSnapshot, incremental.sceneDataChanges);
197
+ }
198
+ return incremental;
199
+ }
200
+ /**
201
+ * 检测组件变更
202
+ */
203
+ static detectComponentChanges(entity, baseSnapshot, componentChanges) {
204
+ const oldComponents = baseSnapshot.components.get(entity.id);
205
+ const currentComponents = new Map();
206
+ // 收集当前组件
207
+ for (const component of entity.components) {
208
+ const serialized = ComponentSerializer.serialize(component);
209
+ if (serialized) {
210
+ currentComponents.set(serialized.type, serialized);
211
+ }
212
+ }
213
+ // 检测新增和更新的组件
214
+ for (const [type, serialized] of currentComponents) {
215
+ const currentData = JSON.stringify(serialized.data);
216
+ if (!oldComponents || !oldComponents.has(type)) {
217
+ // 新增组件
218
+ componentChanges.push({
219
+ operation: ChangeOperation.ComponentAdded,
220
+ entityId: entity.id,
221
+ componentType: type,
222
+ componentData: serialized
223
+ });
224
+ }
225
+ else if (oldComponents.get(type) !== currentData) {
226
+ // 组件数据变更
227
+ componentChanges.push({
228
+ operation: ChangeOperation.ComponentUpdated,
229
+ entityId: entity.id,
230
+ componentType: type,
231
+ componentData: serialized
232
+ });
233
+ }
234
+ }
235
+ // 检测删除的组件
236
+ if (oldComponents) {
237
+ for (const oldType of oldComponents.keys()) {
238
+ if (!currentComponents.has(oldType)) {
239
+ componentChanges.push({
240
+ operation: ChangeOperation.ComponentRemoved,
241
+ entityId: entity.id,
242
+ componentType: oldType
243
+ });
244
+ }
245
+ }
246
+ }
247
+ }
248
+ /**
249
+ * 检测场景数据变更
250
+ */
251
+ static detectSceneDataChanges(scene, baseSnapshot, sceneDataChanges) {
252
+ const currentKeys = new Set();
253
+ // 检测新增和更新的场景数据
254
+ for (const [key, value] of scene.sceneData) {
255
+ currentKeys.add(key);
256
+ const currentValue = JSON.stringify(value);
257
+ const oldValue = baseSnapshot.sceneData.get(key);
258
+ if (!oldValue || oldValue !== currentValue) {
259
+ sceneDataChanges.push({
260
+ operation: ChangeOperation.SceneDataUpdated,
261
+ key,
262
+ value
263
+ });
264
+ }
265
+ }
266
+ // 检测删除的场景数据
267
+ for (const oldKey of baseSnapshot.sceneData.keys()) {
268
+ if (!currentKeys.has(oldKey)) {
269
+ sceneDataChanges.push({
270
+ operation: ChangeOperation.SceneDataUpdated,
271
+ key: oldKey,
272
+ value: undefined,
273
+ deleted: true
274
+ });
275
+ }
276
+ }
277
+ }
278
+ /**
279
+ * 应用增量变更到场景
280
+ *
281
+ * @param scene 目标场景
282
+ * @param incremental 增量快照
283
+ * @param componentRegistry 组件类型注册表
284
+ */
285
+ static applyIncremental(scene, incremental, componentRegistry) {
286
+ // 应用实体变更
287
+ for (const change of incremental.entityChanges) {
288
+ switch (change.operation) {
289
+ case ChangeOperation.EntityAdded:
290
+ this.applyEntityAdded(scene, change);
291
+ break;
292
+ case ChangeOperation.EntityRemoved:
293
+ this.applyEntityRemoved(scene, change);
294
+ break;
295
+ case ChangeOperation.EntityUpdated:
296
+ this.applyEntityUpdated(scene, change);
297
+ break;
298
+ }
299
+ }
300
+ // 应用组件变更
301
+ for (const change of incremental.componentChanges) {
302
+ switch (change.operation) {
303
+ case ChangeOperation.ComponentAdded:
304
+ this.applyComponentAdded(scene, change, componentRegistry);
305
+ break;
306
+ case ChangeOperation.ComponentRemoved:
307
+ this.applyComponentRemoved(scene, change, componentRegistry);
308
+ break;
309
+ case ChangeOperation.ComponentUpdated:
310
+ this.applyComponentUpdated(scene, change, componentRegistry);
311
+ break;
312
+ }
313
+ }
314
+ // 应用场景数据变更
315
+ for (const change of incremental.sceneDataChanges) {
316
+ if (change.deleted) {
317
+ scene.sceneData.delete(change.key);
318
+ }
319
+ else {
320
+ scene.sceneData.set(change.key, change.value);
321
+ }
322
+ }
323
+ }
324
+ static applyEntityAdded(scene, change) {
325
+ if (!change.entityData)
326
+ return;
327
+ const entity = new Entity(change.entityName || 'Entity', change.entityId);
328
+ entity.tag = change.entityData.tag || 0;
329
+ entity.active = change.entityData.active ?? true;
330
+ entity.enabled = change.entityData.enabled ?? true;
331
+ entity.updateOrder = change.entityData.updateOrder || 0;
332
+ scene.addEntity(entity);
333
+ }
334
+ static applyEntityRemoved(scene, change) {
335
+ const entity = scene.entities.findEntityById(change.entityId);
336
+ if (entity) {
337
+ entity.destroy();
338
+ }
339
+ }
340
+ static applyEntityUpdated(scene, change) {
341
+ if (!change.entityData)
342
+ return;
343
+ const entity = scene.entities.findEntityById(change.entityId);
344
+ if (!entity)
345
+ return;
346
+ if (change.entityData.name !== undefined)
347
+ entity.name = change.entityData.name;
348
+ if (change.entityData.tag !== undefined)
349
+ entity.tag = change.entityData.tag;
350
+ if (change.entityData.active !== undefined)
351
+ entity.active = change.entityData.active;
352
+ if (change.entityData.enabled !== undefined)
353
+ entity.enabled = change.entityData.enabled;
354
+ if (change.entityData.updateOrder !== undefined)
355
+ entity.updateOrder = change.entityData.updateOrder;
356
+ // 使用 HierarchySystem 更新层级关系
357
+ const hierarchySystem = scene.getSystem(HierarchySystem);
358
+ if (hierarchySystem) {
359
+ const hierarchy = entity.getComponent(HierarchyComponent);
360
+ const currentParentId = hierarchy?.parentId;
361
+ if (change.entityData.parentId !== undefined) {
362
+ const newParent = scene.entities.findEntityById(change.entityData.parentId);
363
+ if (newParent && currentParentId !== change.entityData.parentId) {
364
+ hierarchySystem.setParent(entity, newParent);
365
+ }
366
+ }
367
+ else if (currentParentId !== null && currentParentId !== undefined) {
368
+ hierarchySystem.setParent(entity, null);
369
+ }
370
+ }
371
+ }
372
+ static applyComponentAdded(scene, change, componentRegistry) {
373
+ if (!change.componentData)
374
+ return;
375
+ const entity = scene.entities.findEntityById(change.entityId);
376
+ if (!entity)
377
+ return;
378
+ const component = ComponentSerializer.deserialize(change.componentData, componentRegistry);
379
+ if (component) {
380
+ entity.addComponent(component);
381
+ }
382
+ }
383
+ static applyComponentRemoved(scene, change, componentRegistry) {
384
+ const entity = scene.entities.findEntityById(change.entityId);
385
+ if (!entity)
386
+ return;
387
+ const componentClass = componentRegistry.get(change.componentType);
388
+ if (!componentClass)
389
+ return;
390
+ entity.removeComponentByType(componentClass);
391
+ }
392
+ static applyComponentUpdated(scene, change, componentRegistry) {
393
+ if (!change.componentData)
394
+ return;
395
+ const entity = scene.entities.findEntityById(change.entityId);
396
+ if (!entity)
397
+ return;
398
+ const componentClass = componentRegistry.get(change.componentType);
399
+ if (!componentClass)
400
+ return;
401
+ entity.removeComponentByType(componentClass);
402
+ const component = ComponentSerializer.deserialize(change.componentData, componentRegistry);
403
+ if (component) {
404
+ entity.addComponent(component);
405
+ }
406
+ }
407
+ /**
408
+ * 序列化增量快照
409
+ *
410
+ * @param incremental 增量快照
411
+ * @param options 序列化选项
412
+ * @returns 序列化后的数据(JSON字符串或二进制Uint8Array)
413
+ *
414
+ * @example
415
+ * ```typescript
416
+ * // JSON格式(默认)
417
+ * const jsonData = IncrementalSerializer.serializeIncremental(snapshot);
418
+ *
419
+ * // 二进制格式
420
+ * const binaryData = IncrementalSerializer.serializeIncremental(snapshot, {
421
+ * format: 'binary'
422
+ * });
423
+ *
424
+ * // 美化JSON
425
+ * const prettyJson = IncrementalSerializer.serializeIncremental(snapshot, {
426
+ * format: 'json',
427
+ * pretty: true
428
+ * });
429
+ * ```
430
+ */
431
+ static serializeIncremental(incremental, options) {
432
+ const opts = {
433
+ format: 'json',
434
+ pretty: false,
435
+ ...options
436
+ };
437
+ if (opts.format === 'binary') {
438
+ return BinarySerializer.encode(incremental);
439
+ }
440
+ else {
441
+ return opts.pretty
442
+ ? JSON.stringify(incremental, null, 2)
443
+ : JSON.stringify(incremental);
444
+ }
445
+ }
446
+ /**
447
+ * 反序列化增量快照
448
+ *
449
+ * @param data 序列化的数据(JSON字符串或二进制Uint8Array)
450
+ * @returns 增量快照
451
+ *
452
+ * @example
453
+ * ```typescript
454
+ * // 从JSON反序列化
455
+ * const snapshot = IncrementalSerializer.deserializeIncremental(jsonString);
456
+ *
457
+ * // 从二进制反序列化
458
+ * const snapshot = IncrementalSerializer.deserializeIncremental(buffer);
459
+ * ```
460
+ */
461
+ static deserializeIncremental(data) {
462
+ if (typeof data === 'string') {
463
+ return JSON.parse(data);
464
+ }
465
+ else {
466
+ return BinarySerializer.decode(data);
467
+ }
468
+ }
469
+ /**
470
+ * 获取增量快照的统计信息
471
+ *
472
+ * @param incremental 增量快照
473
+ * @returns 统计信息
474
+ */
475
+ static getIncrementalStats(incremental) {
476
+ return {
477
+ totalChanges: incremental.entityChanges.length +
478
+ incremental.componentChanges.length +
479
+ incremental.sceneDataChanges.length,
480
+ entityChanges: incremental.entityChanges.length,
481
+ componentChanges: incremental.componentChanges.length,
482
+ sceneDataChanges: incremental.sceneDataChanges.length,
483
+ addedEntities: incremental.entityChanges.filter((c) => c.operation === ChangeOperation.EntityAdded).length,
484
+ removedEntities: incremental.entityChanges.filter((c) => c.operation === ChangeOperation.EntityRemoved).length,
485
+ updatedEntities: incremental.entityChanges.filter((c) => c.operation === ChangeOperation.EntityUpdated).length,
486
+ addedComponents: incremental.componentChanges.filter((c) => c.operation === ChangeOperation.ComponentAdded).length,
487
+ removedComponents: incremental.componentChanges.filter((c) => c.operation === ChangeOperation.ComponentRemoved).length,
488
+ updatedComponents: incremental.componentChanges.filter((c) => c.operation === ChangeOperation.ComponentUpdated).length
489
+ };
490
+ }
491
+ /**
492
+ * 重置快照版本号(用于测试)
493
+ */
494
+ static resetVersion() {
495
+ this.snapshotVersion = 0;
496
+ }
497
+ }
498
+ /** 当前快照版本号 */
499
+ IncrementalSerializer.snapshotVersion = 0;
500
+ //# sourceMappingURL=IncrementalSerializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IncrementalSerializer.js","sourceRoot":"","sources":["../../../src/ECS/Serialization/IncrementalSerializer.ts"],"names":[],"mappings":"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"}