@esengine/ecs-framework 2.2.20 → 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 (491) 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/LICENSE +0 -21
  483. package/index.cjs +0 -2
  484. package/index.cjs.map +0 -1
  485. package/index.d.ts +0 -13021
  486. package/index.es5.js +0 -4
  487. package/index.es5.js.map +0 -1
  488. package/index.mjs +0 -2
  489. package/index.mjs.map +0 -1
  490. package/index.umd.js +0 -4
  491. package/index.umd.js.map +0 -1
@@ -0,0 +1,136 @@
1
+ /**
2
+ * 序列化装饰器
3
+ *
4
+ * 提供组件级别的序列化支持,包括字段级装饰器和类级装饰器
5
+ */
6
+ import { Component } from '../Component';
7
+ /**
8
+ * 序列化元数据的Symbol键
9
+ */
10
+ export declare const SERIALIZABLE_METADATA: unique symbol;
11
+ export declare const SERIALIZE_FIELD: unique symbol;
12
+ export declare const SERIALIZE_OPTIONS: unique symbol;
13
+ /**
14
+ * 可序列化配置选项
15
+ */
16
+ export interface SerializableOptions {
17
+ /**
18
+ * 序列化版本号,用于数据迁移
19
+ */
20
+ version: number;
21
+ /**
22
+ * 组件类型标识符(可选,默认使用类名)
23
+ */
24
+ typeId?: string;
25
+ }
26
+ /**
27
+ * 字段序列化配置
28
+ */
29
+ export interface FieldSerializeOptions {
30
+ /**
31
+ * 自定义序列化器
32
+ */
33
+ serializer?: (value: any) => any;
34
+ /**
35
+ * 自定义反序列化器
36
+ */
37
+ deserializer?: (value: any) => any;
38
+ /**
39
+ * 字段别名(用于序列化后的键名)
40
+ */
41
+ alias?: string;
42
+ }
43
+ /**
44
+ * 序列化元数据
45
+ */
46
+ export interface SerializationMetadata {
47
+ options: SerializableOptions;
48
+ fields: Map<string | symbol, FieldSerializeOptions>;
49
+ ignoredFields: Set<string | symbol>;
50
+ }
51
+ /**
52
+ * 组件可序列化装饰器
53
+ *
54
+ * 标记组件类为可序列化,必须与字段装饰器配合使用
55
+ *
56
+ * @param options 序列化配置选项
57
+ *
58
+ * @example
59
+ * ```typescript
60
+ * @ECSComponent('Player')
61
+ * @Serializable({ version: 1 })
62
+ * class PlayerComponent extends Component {
63
+ * @Serialize() name: string = 'Player';
64
+ * @Serialize() level: number = 1;
65
+ * }
66
+ * ```
67
+ */
68
+ export declare function Serializable(options: SerializableOptions): <T extends new (...args: any[]) => Component>(target: T) => T;
69
+ /**
70
+ * 字段序列化装饰器
71
+ *
72
+ * 标记字段为可序列化
73
+ *
74
+ * @param options 字段序列化选项(可选)
75
+ *
76
+ * @example
77
+ * ```typescript
78
+ * @Serialize()
79
+ * name: string = 'Player';
80
+ *
81
+ * @Serialize({ alias: 'hp' })
82
+ * health: number = 100;
83
+ * ```
84
+ */
85
+ export declare function Serialize(options?: FieldSerializeOptions): (target: any, propertyKey: string | symbol) => void;
86
+ /**
87
+ * Map序列化装饰器
88
+ *
89
+ * 专门用于序列化Map类型字段
90
+ *
91
+ * @example
92
+ * ```typescript
93
+ * @SerializeAsMap()
94
+ * inventory: Map<string, number> = new Map();
95
+ * ```
96
+ */
97
+ export declare function SerializeAsMap(): (target: any, propertyKey: string | symbol) => void;
98
+ /**
99
+ * Set序列化装饰器
100
+ *
101
+ * 专门用于序列化Set类型字段
102
+ *
103
+ * @example
104
+ * ```typescript
105
+ * @SerializeAsSet()
106
+ * tags: Set<string> = new Set();
107
+ * ```
108
+ */
109
+ export declare function SerializeAsSet(): (target: any, propertyKey: string | symbol) => void;
110
+ /**
111
+ * 忽略序列化装饰器
112
+ *
113
+ * 标记字段不参与序列化
114
+ *
115
+ * @example
116
+ * ```typescript
117
+ * @IgnoreSerialization()
118
+ * tempCache: any = null;
119
+ * ```
120
+ */
121
+ export declare function IgnoreSerialization(): (target: any, propertyKey: string | symbol) => void;
122
+ /**
123
+ * 获取组件的序列化元数据
124
+ *
125
+ * @param componentClass 组件类或组件实例
126
+ * @returns 序列化元数据,如果组件不可序列化则返回null
127
+ */
128
+ export declare function getSerializationMetadata(componentClass: any): SerializationMetadata | null;
129
+ /**
130
+ * 检查组件是否可序列化
131
+ *
132
+ * @param component 组件类或组件实例
133
+ * @returns 如果组件可序列化返回true
134
+ */
135
+ export declare function isSerializable(component: any): boolean;
136
+ //# sourceMappingURL=SerializationDecorators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SerializationDecorators.d.ts","sourceRoot":"","sources":["../../../src/ECS/Serialization/SerializationDecorators.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC;;GAEG;AACH,eAAO,MAAM,qBAAqB,eAAiC,CAAC;AACpE,eAAO,MAAM,eAAe,eAA2B,CAAC;AACxD,eAAO,MAAM,iBAAiB,eAA6B,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAClC;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;IAEjC;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;IAEnC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAClC,OAAO,EAAE,mBAAmB,CAAC;IAC7B,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,qBAAqB,CAAC,CAAC;IACpD,aAAa,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;CACvC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,IACpC,CAAC,SAAS,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,SAAS,EAAE,QAAQ,CAAC,KAAG,CAAC,CA6B9E;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,SAAS,CAAC,OAAO,CAAC,EAAE,qBAAqB,IACpC,QAAQ,GAAG,EAAE,aAAa,MAAM,GAAG,MAAM,UA0B7D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,KACT,QAAQ,GAAG,EAAE,aAAa,MAAM,GAAG,MAAM,UAgB7D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,KACT,QAAQ,GAAG,EAAE,aAAa,MAAM,GAAG,MAAM,UAgB7D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,KACd,QAAQ,GAAG,EAAE,aAAa,MAAM,GAAG,MAAM,UA0B7D;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,cAAc,EAAE,GAAG,GAAG,qBAAqB,GAAG,IAAI,CAW1F;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,CAEtD"}
@@ -0,0 +1,216 @@
1
+ /**
2
+ * 序列化装饰器
3
+ *
4
+ * 提供组件级别的序列化支持,包括字段级装饰器和类级装饰器
5
+ */
6
+ /**
7
+ * 序列化元数据的Symbol键
8
+ */
9
+ export const SERIALIZABLE_METADATA = Symbol('SerializableMetadata');
10
+ export const SERIALIZE_FIELD = Symbol('SerializeField');
11
+ export const SERIALIZE_OPTIONS = Symbol('SerializeOptions');
12
+ /**
13
+ * 组件可序列化装饰器
14
+ *
15
+ * 标记组件类为可序列化,必须与字段装饰器配合使用
16
+ *
17
+ * @param options 序列化配置选项
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * @ECSComponent('Player')
22
+ * @Serializable({ version: 1 })
23
+ * class PlayerComponent extends Component {
24
+ * @Serialize() name: string = 'Player';
25
+ * @Serialize() level: number = 1;
26
+ * }
27
+ * ```
28
+ */
29
+ export function Serializable(options) {
30
+ return function (target) {
31
+ if (!options || typeof options.version !== 'number') {
32
+ throw new Error('Serializable装饰器必须提供有效的版本号');
33
+ }
34
+ // 检查是否有自己的元数据(不是从父类继承的)
35
+ const hasOwnMetadata = Object.prototype.hasOwnProperty.call(target, SERIALIZABLE_METADATA);
36
+ let metadata;
37
+ if (hasOwnMetadata) {
38
+ // 已有自己的元数据,更新 options
39
+ metadata = target[SERIALIZABLE_METADATA];
40
+ metadata.options = options;
41
+ }
42
+ else {
43
+ // 没有自己的元数据,检查是否有继承的元数据
44
+ const inheritedMetadata = target[SERIALIZABLE_METADATA];
45
+ // 创建新的元数据对象(从继承的元数据复制字段,但使用新的 options)
46
+ metadata = {
47
+ options,
48
+ fields: inheritedMetadata ? new Map(inheritedMetadata.fields) : new Map(),
49
+ ignoredFields: inheritedMetadata ? new Set(inheritedMetadata.ignoredFields) : new Set()
50
+ };
51
+ target[SERIALIZABLE_METADATA] = metadata;
52
+ }
53
+ return target;
54
+ };
55
+ }
56
+ /**
57
+ * 字段序列化装饰器
58
+ *
59
+ * 标记字段为可序列化
60
+ *
61
+ * @param options 字段序列化选项(可选)
62
+ *
63
+ * @example
64
+ * ```typescript
65
+ * @Serialize()
66
+ * name: string = 'Player';
67
+ *
68
+ * @Serialize({ alias: 'hp' })
69
+ * health: number = 100;
70
+ * ```
71
+ */
72
+ export function Serialize(options) {
73
+ return function (target, propertyKey) {
74
+ const constructor = target.constructor;
75
+ // 检查是否有自己的元数据(不是从父类继承的)
76
+ const hasOwnMetadata = Object.prototype.hasOwnProperty.call(constructor, SERIALIZABLE_METADATA);
77
+ let metadata;
78
+ if (hasOwnMetadata) {
79
+ // 已有自己的元数据
80
+ metadata = constructor[SERIALIZABLE_METADATA];
81
+ }
82
+ else {
83
+ // 没有自己的元数据,检查是否有继承的元数据
84
+ const inheritedMetadata = constructor[SERIALIZABLE_METADATA];
85
+ // 创建新的元数据对象(从继承的元数据复制)
86
+ metadata = {
87
+ options: inheritedMetadata ? { ...inheritedMetadata.options } : { version: 1 },
88
+ fields: inheritedMetadata ? new Map(inheritedMetadata.fields) : new Map(),
89
+ ignoredFields: inheritedMetadata ? new Set(inheritedMetadata.ignoredFields) : new Set()
90
+ };
91
+ constructor[SERIALIZABLE_METADATA] = metadata;
92
+ }
93
+ // 记录字段
94
+ metadata.fields.set(propertyKey, options || {});
95
+ };
96
+ }
97
+ /**
98
+ * Map序列化装饰器
99
+ *
100
+ * 专门用于序列化Map类型字段
101
+ *
102
+ * @example
103
+ * ```typescript
104
+ * @SerializeAsMap()
105
+ * inventory: Map<string, number> = new Map();
106
+ * ```
107
+ */
108
+ export function SerializeAsMap() {
109
+ return function (target, propertyKey) {
110
+ Serialize({
111
+ serializer: (value) => {
112
+ if (!(value instanceof Map)) {
113
+ return null;
114
+ }
115
+ return Array.from(value.entries());
116
+ },
117
+ deserializer: (value) => {
118
+ if (!Array.isArray(value)) {
119
+ return new Map();
120
+ }
121
+ return new Map(value);
122
+ }
123
+ })(target, propertyKey);
124
+ };
125
+ }
126
+ /**
127
+ * Set序列化装饰器
128
+ *
129
+ * 专门用于序列化Set类型字段
130
+ *
131
+ * @example
132
+ * ```typescript
133
+ * @SerializeAsSet()
134
+ * tags: Set<string> = new Set();
135
+ * ```
136
+ */
137
+ export function SerializeAsSet() {
138
+ return function (target, propertyKey) {
139
+ Serialize({
140
+ serializer: (value) => {
141
+ if (!(value instanceof Set)) {
142
+ return null;
143
+ }
144
+ return Array.from(value);
145
+ },
146
+ deserializer: (value) => {
147
+ if (!Array.isArray(value)) {
148
+ return new Set();
149
+ }
150
+ return new Set(value);
151
+ }
152
+ })(target, propertyKey);
153
+ };
154
+ }
155
+ /**
156
+ * 忽略序列化装饰器
157
+ *
158
+ * 标记字段不参与序列化
159
+ *
160
+ * @example
161
+ * ```typescript
162
+ * @IgnoreSerialization()
163
+ * tempCache: any = null;
164
+ * ```
165
+ */
166
+ export function IgnoreSerialization() {
167
+ return function (target, propertyKey) {
168
+ const constructor = target.constructor;
169
+ // 检查是否有自己的元数据(不是从父类继承的)
170
+ const hasOwnMetadata = Object.prototype.hasOwnProperty.call(constructor, SERIALIZABLE_METADATA);
171
+ let metadata;
172
+ if (hasOwnMetadata) {
173
+ // 已有自己的元数据
174
+ metadata = constructor[SERIALIZABLE_METADATA];
175
+ }
176
+ else {
177
+ // 没有自己的元数据,检查是否有继承的元数据
178
+ const inheritedMetadata = constructor[SERIALIZABLE_METADATA];
179
+ // 创建新的元数据对象(从继承的元数据复制)
180
+ metadata = {
181
+ options: inheritedMetadata ? { ...inheritedMetadata.options } : { version: 1 },
182
+ fields: inheritedMetadata ? new Map(inheritedMetadata.fields) : new Map(),
183
+ ignoredFields: inheritedMetadata ? new Set(inheritedMetadata.ignoredFields) : new Set()
184
+ };
185
+ constructor[SERIALIZABLE_METADATA] = metadata;
186
+ }
187
+ // 记录忽略字段
188
+ metadata.ignoredFields.add(propertyKey);
189
+ };
190
+ }
191
+ /**
192
+ * 获取组件的序列化元数据
193
+ *
194
+ * @param componentClass 组件类或组件实例
195
+ * @returns 序列化元数据,如果组件不可序列化则返回null
196
+ */
197
+ export function getSerializationMetadata(componentClass) {
198
+ if (!componentClass) {
199
+ return null;
200
+ }
201
+ // 如果是实例,获取其构造函数
202
+ const constructor = typeof componentClass === 'function'
203
+ ? componentClass
204
+ : componentClass.constructor;
205
+ return constructor[SERIALIZABLE_METADATA] || null;
206
+ }
207
+ /**
208
+ * 检查组件是否可序列化
209
+ *
210
+ * @param component 组件类或组件实例
211
+ * @returns 如果组件可序列化返回true
212
+ */
213
+ export function isSerializable(component) {
214
+ return getSerializationMetadata(component) !== null;
215
+ }
216
+ //# sourceMappingURL=SerializationDecorators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SerializationDecorators.js","sourceRoot":"","sources":["../../../src/ECS/Serialization/SerializationDecorators.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,156 @@
1
+ /**
2
+ * 版本迁移系统
3
+ *
4
+ * 提供组件和场景数据的版本迁移支持
5
+ */
6
+ import { SerializedComponent } from './ComponentSerializer';
7
+ import { SerializedScene } from './SceneSerializer';
8
+ /**
9
+ * 组件迁移函数
10
+ */
11
+ export type ComponentMigrationFunction = (data: any, fromVersion: number, toVersion: number) => any;
12
+ /**
13
+ * 场景迁移函数
14
+ */
15
+ export type SceneMigrationFunction = (scene: SerializedScene, fromVersion: number, toVersion: number) => SerializedScene;
16
+ /**
17
+ * 版本迁移管理器
18
+ */
19
+ export declare class VersionMigrationManager {
20
+ /**
21
+ * 组件迁移函数注册表
22
+ * Map<组件类型名, Map<版本号, 迁移函数>>
23
+ */
24
+ private static componentMigrations;
25
+ /**
26
+ * 场景迁移函数注册表
27
+ * Map<版本号, 迁移函数>
28
+ */
29
+ private static sceneMigrations;
30
+ /**
31
+ * 注册组件迁移函数
32
+ *
33
+ * @param componentType 组件类型名称
34
+ * @param fromVersion 源版本号
35
+ * @param toVersion 目标版本号
36
+ * @param migration 迁移函数
37
+ *
38
+ * @example
39
+ * ```typescript
40
+ * // 从版本1迁移到版本2
41
+ * VersionMigrationManager.registerComponentMigration(
42
+ * 'PlayerComponent',
43
+ * 1,
44
+ * 2,
45
+ * (data) => {
46
+ * // 添加新字段
47
+ * data.experience = 0;
48
+ * return data;
49
+ * }
50
+ * );
51
+ * ```
52
+ */
53
+ static registerComponentMigration(componentType: string, fromVersion: number, _toVersion: number, migration: ComponentMigrationFunction): void;
54
+ /**
55
+ * 注册场景迁移函数
56
+ *
57
+ * @param fromVersion 源版本号
58
+ * @param toVersion 目标版本号
59
+ * @param migration 迁移函数
60
+ *
61
+ * @example
62
+ * ```typescript
63
+ * VersionMigrationManager.registerSceneMigration(
64
+ * 1,
65
+ * 2,
66
+ * (scene) => {
67
+ * // 迁移场景结构
68
+ * scene.metadata = { ...scene.metadata, migratedFrom: 1 };
69
+ * return scene;
70
+ * }
71
+ * );
72
+ * ```
73
+ */
74
+ static registerSceneMigration(fromVersion: number, _toVersion: number, migration: SceneMigrationFunction): void;
75
+ /**
76
+ * 迁移组件数据
77
+ *
78
+ * @param component 序列化的组件数据
79
+ * @param targetVersion 目标版本号
80
+ * @returns 迁移后的组件数据
81
+ */
82
+ static migrateComponent(component: SerializedComponent, targetVersion: number): SerializedComponent;
83
+ /**
84
+ * 迁移场景数据
85
+ *
86
+ * @param scene 序列化的场景数据
87
+ * @param targetVersion 目标版本号
88
+ * @returns 迁移后的场景数据
89
+ */
90
+ static migrateScene(scene: SerializedScene, targetVersion: number): SerializedScene;
91
+ /**
92
+ * 迁移场景中所有组件的版本
93
+ */
94
+ private static migrateSceneComponents;
95
+ /**
96
+ * 递归迁移实体的组件
97
+ */
98
+ private static migrateEntitiesComponents;
99
+ /**
100
+ * 清除所有迁移函数
101
+ */
102
+ static clearMigrations(): void;
103
+ /**
104
+ * 获取组件的迁移路径
105
+ *
106
+ * @param componentType 组件类型名称
107
+ * @returns 可用的迁移版本列表
108
+ */
109
+ static getComponentMigrationPath(componentType: string): number[];
110
+ /**
111
+ * 获取场景的迁移路径
112
+ *
113
+ * @returns 可用的场景迁移版本列表
114
+ */
115
+ static getSceneMigrationPath(): number[];
116
+ /**
117
+ * 检查是否可以迁移组件
118
+ *
119
+ * @param componentType 组件类型名称
120
+ * @param fromVersion 源版本
121
+ * @param toVersion 目标版本
122
+ * @returns 是否存在完整的迁移路径
123
+ */
124
+ static canMigrateComponent(componentType: string, fromVersion: number, toVersion: number): boolean;
125
+ /**
126
+ * 检查是否可以迁移场景
127
+ *
128
+ * @param fromVersion 源版本
129
+ * @param toVersion 目标版本
130
+ * @returns 是否存在完整的迁移路径
131
+ */
132
+ static canMigrateScene(fromVersion: number, toVersion: number): boolean;
133
+ }
134
+ /**
135
+ * 便捷的迁移构建器
136
+ *
137
+ * 提供链式API来定义迁移
138
+ */
139
+ export declare class MigrationBuilder {
140
+ private componentType?;
141
+ private fromVersion;
142
+ private toVersion;
143
+ /**
144
+ * 设置组件类型
145
+ */
146
+ forComponent(componentType: string): this;
147
+ /**
148
+ * 设置版本范围
149
+ */
150
+ fromVersionToVersion(from: number, to: number): this;
151
+ /**
152
+ * 注册迁移函数
153
+ */
154
+ migrate(migration: ComponentMigrationFunction | SceneMigrationFunction): void;
155
+ }
156
+ //# sourceMappingURL=VersionMigration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VersionMigration.d.ts","sourceRoot":"","sources":["../../../src/ECS/Serialization/VersionMigration.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,GAAG,CAAC;AAEpG;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,CACjC,KAAK,EAAE,eAAe,EACtB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,KAChB,eAAe,CAAC;AAErB;;GAEG;AACH,qBAAa,uBAAuB;IAChC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAA8D;IAEhG;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe,CAA6C;IAE3E;;;;;;;;;;;;;;;;;;;;;;OAsBG;WACW,0BAA0B,CACpC,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,0BAA0B,GACtC,IAAI;IAWP;;;;;;;;;;;;;;;;;;;OAmBG;WACW,sBAAsB,CAChC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,sBAAsB,GAClC,IAAI;IAIP;;;;;;OAMG;WACW,gBAAgB,CAC1B,SAAS,EAAE,mBAAmB,EAC9B,aAAa,EAAE,MAAM,GACtB,mBAAmB;IAmCtB;;;;;;OAMG;WACW,YAAY,CAAC,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,GAAG,eAAe;IA+B1F;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAuBrC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAmBxC;;OAEG;WACW,eAAe,IAAI,IAAI;IAKrC;;;;;OAKG;WACW,yBAAyB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE;IASxE;;;;OAIG;WACW,qBAAqB,IAAI,MAAM,EAAE;IAI/C;;;;;;;OAOG;WACW,mBAAmB,CAC7B,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAClB,OAAO;IAoBV;;;;;;OAMG;WACW,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;CAcjF;AAED;;;;GAIG;AACH,qBAAa,gBAAgB;IACzB,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,SAAS,CAAa;IAE9B;;OAEG;IACI,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI;IAKhD;;OAEG;IACI,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAM3D;;OAEG;IACI,OAAO,CAAC,SAAS,EAAE,0BAA0B,GAAG,sBAAsB,GAAG,IAAI;CAgBvF"}