@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.
- package/bin/Core/DI/Decorators.d.ts +206 -0
- package/bin/Core/DI/Decorators.d.ts.map +1 -0
- package/bin/Core/DI/Decorators.js +253 -0
- package/bin/Core/DI/Decorators.js.map +1 -0
- package/bin/Core/DI/index.d.ts +8 -0
- package/bin/Core/DI/index.d.ts.map +1 -0
- package/bin/Core/DI/index.js +7 -0
- package/bin/Core/DI/index.js.map +1 -0
- package/bin/Core/Plugin.d.ts +112 -0
- package/bin/Core/Plugin.d.ts.map +1 -0
- package/bin/Core/Plugin.js +19 -0
- package/bin/Core/Plugin.js.map +1 -0
- package/bin/Core/PluginManager.d.ts +118 -0
- package/bin/Core/PluginManager.d.ts.map +1 -0
- package/bin/Core/PluginManager.js +229 -0
- package/bin/Core/PluginManager.js.map +1 -0
- package/bin/Core/ServiceContainer.d.ts +221 -0
- package/bin/Core/ServiceContainer.d.ts.map +1 -0
- package/bin/Core/ServiceContainer.js +352 -0
- package/bin/Core/ServiceContainer.js.map +1 -0
- package/bin/Core.d.ts +379 -0
- package/bin/Core.d.ts.map +1 -0
- package/bin/Core.js +553 -0
- package/bin/Core.js.map +1 -0
- package/bin/ECS/Component.d.ts +104 -0
- package/bin/ECS/Component.d.ts.map +1 -0
- package/bin/ECS/Component.js +105 -0
- package/bin/ECS/Component.js.map +1 -0
- package/bin/ECS/Components/HierarchyComponent.d.ts +46 -0
- package/bin/ECS/Components/HierarchyComponent.d.ts.map +1 -0
- package/bin/ECS/Components/HierarchyComponent.js +65 -0
- package/bin/ECS/Components/HierarchyComponent.js.map +1 -0
- package/bin/ECS/Components/index.d.ts +2 -0
- package/bin/ECS/Components/index.d.ts.map +1 -0
- package/bin/ECS/Components/index.js +2 -0
- package/bin/ECS/Components/index.js.map +1 -0
- package/bin/ECS/Core/ArchetypeSystem.d.ts +103 -0
- package/bin/ECS/Core/ArchetypeSystem.d.ts.map +1 -0
- package/bin/ECS/Core/ArchetypeSystem.js +244 -0
- package/bin/ECS/Core/ArchetypeSystem.js.map +1 -0
- package/bin/ECS/Core/CommandBuffer.d.ts +154 -0
- package/bin/ECS/Core/CommandBuffer.d.ts.map +1 -0
- package/bin/ECS/Core/CommandBuffer.js +244 -0
- package/bin/ECS/Core/CommandBuffer.js.map +1 -0
- package/bin/ECS/Core/ComponentPool.d.ts +139 -0
- package/bin/ECS/Core/ComponentPool.d.ts.map +1 -0
- package/bin/ECS/Core/ComponentPool.js +276 -0
- package/bin/ECS/Core/ComponentPool.js.map +1 -0
- package/bin/ECS/Core/ComponentStorage/ComponentRegistry.d.ts +127 -0
- package/bin/ECS/Core/ComponentStorage/ComponentRegistry.d.ts.map +1 -0
- package/bin/ECS/Core/ComponentStorage/ComponentRegistry.js +235 -0
- package/bin/ECS/Core/ComponentStorage/ComponentRegistry.js.map +1 -0
- package/bin/ECS/Core/ComponentStorage.d.ts +185 -0
- package/bin/ECS/Core/ComponentStorage.d.ts.map +1 -0
- package/bin/ECS/Core/ComponentStorage.js +321 -0
- package/bin/ECS/Core/ComponentStorage.js.map +1 -0
- package/bin/ECS/Core/EntityLifecyclePolicy.d.ts +26 -0
- package/bin/ECS/Core/EntityLifecyclePolicy.d.ts.map +1 -0
- package/bin/ECS/Core/EntityLifecyclePolicy.js +2 -0
- package/bin/ECS/Core/EntityLifecyclePolicy.js.map +1 -0
- package/bin/ECS/Core/EventBus.d.ts +210 -0
- package/bin/ECS/Core/EventBus.d.ts.map +1 -0
- package/bin/ECS/Core/EventBus.js +370 -0
- package/bin/ECS/Core/EventBus.js.map +1 -0
- package/bin/ECS/Core/EventSystem.d.ts +225 -0
- package/bin/ECS/Core/EventSystem.d.ts.map +1 -0
- package/bin/ECS/Core/EventSystem.js +448 -0
- package/bin/ECS/Core/EventSystem.js.map +1 -0
- package/bin/ECS/Core/Events/index.d.ts +3 -0
- package/bin/ECS/Core/Events/index.d.ts.map +1 -0
- package/bin/ECS/Core/Events/index.js +3 -0
- package/bin/ECS/Core/Events/index.js.map +1 -0
- package/bin/ECS/Core/FluentAPI/ComponentBuilder.d.ts +35 -0
- package/bin/ECS/Core/FluentAPI/ComponentBuilder.d.ts.map +1 -0
- package/bin/ECS/Core/FluentAPI/ComponentBuilder.js +48 -0
- package/bin/ECS/Core/FluentAPI/ComponentBuilder.js.map +1 -0
- package/bin/ECS/Core/FluentAPI/ECSFluentAPI.d.ts +135 -0
- package/bin/ECS/Core/FluentAPI/ECSFluentAPI.d.ts.map +1 -0
- package/bin/ECS/Core/FluentAPI/ECSFluentAPI.js +166 -0
- package/bin/ECS/Core/FluentAPI/ECSFluentAPI.js.map +1 -0
- package/bin/ECS/Core/FluentAPI/EntityBatchOperator.d.ts +58 -0
- package/bin/ECS/Core/FluentAPI/EntityBatchOperator.d.ts.map +1 -0
- package/bin/ECS/Core/FluentAPI/EntityBatchOperator.js +85 -0
- package/bin/ECS/Core/FluentAPI/EntityBatchOperator.js.map +1 -0
- package/bin/ECS/Core/FluentAPI/EntityBuilder.d.ts +110 -0
- package/bin/ECS/Core/FluentAPI/EntityBuilder.d.ts.map +1 -0
- package/bin/ECS/Core/FluentAPI/EntityBuilder.js +181 -0
- package/bin/ECS/Core/FluentAPI/EntityBuilder.js.map +1 -0
- package/bin/ECS/Core/FluentAPI/SceneBuilder.d.ts +53 -0
- package/bin/ECS/Core/FluentAPI/SceneBuilder.d.ts.map +1 -0
- package/bin/ECS/Core/FluentAPI/SceneBuilder.js +79 -0
- package/bin/ECS/Core/FluentAPI/SceneBuilder.js.map +1 -0
- package/bin/ECS/Core/FluentAPI/index.d.ts +6 -0
- package/bin/ECS/Core/FluentAPI/index.d.ts.map +1 -0
- package/bin/ECS/Core/FluentAPI/index.js +6 -0
- package/bin/ECS/Core/FluentAPI/index.js.map +1 -0
- package/bin/ECS/Core/FluentAPI.d.ts +2 -0
- package/bin/ECS/Core/FluentAPI.d.ts.map +1 -0
- package/bin/ECS/Core/FluentAPI.js +3 -0
- package/bin/ECS/Core/FluentAPI.js.map +1 -0
- package/bin/ECS/Core/Query/TypedQuery.d.ts +214 -0
- package/bin/ECS/Core/Query/TypedQuery.d.ts.map +1 -0
- package/bin/ECS/Core/Query/TypedQuery.js +294 -0
- package/bin/ECS/Core/Query/TypedQuery.js.map +1 -0
- package/bin/ECS/Core/Query/index.d.ts +3 -0
- package/bin/ECS/Core/Query/index.d.ts.map +1 -0
- package/bin/ECS/Core/Query/index.js +3 -0
- package/bin/ECS/Core/Query/index.js.map +1 -0
- package/bin/ECS/Core/QuerySystem.d.ts +458 -0
- package/bin/ECS/Core/QuerySystem.d.ts.map +1 -0
- package/bin/ECS/Core/QuerySystem.js +1069 -0
- package/bin/ECS/Core/QuerySystem.js.map +1 -0
- package/bin/ECS/Core/QueryTypes.d.ts +34 -0
- package/bin/ECS/Core/QueryTypes.d.ts.map +1 -0
- package/bin/ECS/Core/QueryTypes.js +13 -0
- package/bin/ECS/Core/QueryTypes.js.map +1 -0
- package/bin/ECS/Core/ReactiveQuery.d.ts +211 -0
- package/bin/ECS/Core/ReactiveQuery.d.ts.map +1 -0
- package/bin/ECS/Core/ReactiveQuery.js +401 -0
- package/bin/ECS/Core/ReactiveQuery.js.map +1 -0
- package/bin/ECS/Core/ReferenceTracker.d.ts +111 -0
- package/bin/ECS/Core/ReferenceTracker.d.ts.map +1 -0
- package/bin/ECS/Core/ReferenceTracker.js +254 -0
- package/bin/ECS/Core/ReferenceTracker.js.map +1 -0
- package/bin/ECS/Core/SoASerializer.d.ts +28 -0
- package/bin/ECS/Core/SoASerializer.d.ts.map +1 -0
- package/bin/ECS/Core/SoASerializer.js +85 -0
- package/bin/ECS/Core/SoASerializer.js.map +1 -0
- package/bin/ECS/Core/SoAStorage.d.ts +129 -0
- package/bin/ECS/Core/SoAStorage.d.ts.map +1 -0
- package/bin/ECS/Core/SoAStorage.js +685 -0
- package/bin/ECS/Core/SoAStorage.js.map +1 -0
- package/bin/ECS/Core/SoATypeRegistry.d.ts +50 -0
- package/bin/ECS/Core/SoATypeRegistry.d.ts.map +1 -0
- package/bin/ECS/Core/SoATypeRegistry.js +135 -0
- package/bin/ECS/Core/SoATypeRegistry.js.map +1 -0
- package/bin/ECS/Core/Storage/index.d.ts +4 -0
- package/bin/ECS/Core/Storage/index.d.ts.map +1 -0
- package/bin/ECS/Core/Storage/index.js +4 -0
- package/bin/ECS/Core/Storage/index.js.map +1 -0
- package/bin/ECS/Core/StorageDecorators.d.ts +20 -0
- package/bin/ECS/Core/StorageDecorators.d.ts.map +1 -0
- package/bin/ECS/Core/StorageDecorators.js +27 -0
- package/bin/ECS/Core/StorageDecorators.js.map +1 -0
- package/bin/ECS/CoreEvents.d.ts +131 -0
- package/bin/ECS/CoreEvents.d.ts.map +1 -0
- package/bin/ECS/CoreEvents.js +163 -0
- package/bin/ECS/CoreEvents.js.map +1 -0
- package/bin/ECS/Decorators/EntityRefDecorator.d.ts +46 -0
- package/bin/ECS/Decorators/EntityRefDecorator.d.ts.map +1 -0
- package/bin/ECS/Decorators/EntityRefDecorator.js +118 -0
- package/bin/ECS/Decorators/EntityRefDecorator.js.map +1 -0
- package/bin/ECS/Decorators/PropertyDecorator.d.ts +168 -0
- package/bin/ECS/Decorators/PropertyDecorator.d.ts.map +1 -0
- package/bin/ECS/Decorators/PropertyDecorator.js +40 -0
- package/bin/ECS/Decorators/PropertyDecorator.js.map +1 -0
- package/bin/ECS/Decorators/TypeDecorators.d.ts +124 -0
- package/bin/ECS/Decorators/TypeDecorators.d.ts.map +1 -0
- package/bin/ECS/Decorators/TypeDecorators.js +151 -0
- package/bin/ECS/Decorators/TypeDecorators.js.map +1 -0
- package/bin/ECS/Decorators/index.d.ts +7 -0
- package/bin/ECS/Decorators/index.d.ts.map +1 -0
- package/bin/ECS/Decorators/index.js +4 -0
- package/bin/ECS/Decorators/index.js.map +1 -0
- package/bin/ECS/Entity.d.ts +415 -0
- package/bin/ECS/Entity.d.ts.map +1 -0
- package/bin/ECS/Entity.js +683 -0
- package/bin/ECS/Entity.js.map +1 -0
- package/bin/ECS/EntityTags.d.ts +71 -0
- package/bin/ECS/EntityTags.d.ts.map +1 -0
- package/bin/ECS/EntityTags.js +82 -0
- package/bin/ECS/EntityTags.js.map +1 -0
- package/bin/ECS/IScene.d.ts +308 -0
- package/bin/ECS/IScene.d.ts.map +1 -0
- package/bin/ECS/IScene.js +2 -0
- package/bin/ECS/IScene.js.map +1 -0
- package/bin/ECS/Scene.d.ts +799 -0
- package/bin/ECS/Scene.d.ts.map +1 -0
- package/bin/ECS/Scene.js +1203 -0
- package/bin/ECS/Scene.js.map +1 -0
- package/bin/ECS/SceneManager.d.ts +197 -0
- package/bin/ECS/SceneManager.d.ts.map +1 -0
- package/bin/ECS/SceneManager.js +264 -0
- package/bin/ECS/SceneManager.js.map +1 -0
- package/bin/ECS/Serialization/ComponentSerializer.d.ts +106 -0
- package/bin/ECS/Serialization/ComponentSerializer.d.ts.map +1 -0
- package/bin/ECS/Serialization/ComponentSerializer.js +251 -0
- package/bin/ECS/Serialization/ComponentSerializer.js.map +1 -0
- package/bin/ECS/Serialization/EntitySerializer.d.ts +111 -0
- package/bin/ECS/Serialization/EntitySerializer.d.ts.map +1 -0
- package/bin/ECS/Serialization/EntitySerializer.js +155 -0
- package/bin/ECS/Serialization/EntitySerializer.js.map +1 -0
- package/bin/ECS/Serialization/IncrementalSerializer.d.ts +259 -0
- package/bin/ECS/Serialization/IncrementalSerializer.d.ts.map +1 -0
- package/bin/ECS/Serialization/IncrementalSerializer.js +500 -0
- package/bin/ECS/Serialization/IncrementalSerializer.js.map +1 -0
- package/bin/ECS/Serialization/SceneSerializer.d.ts +213 -0
- package/bin/ECS/Serialization/SceneSerializer.d.ts.map +1 -0
- package/bin/ECS/Serialization/SceneSerializer.js +387 -0
- package/bin/ECS/Serialization/SceneSerializer.js.map +1 -0
- package/bin/ECS/Serialization/SerializationDecorators.d.ts +136 -0
- package/bin/ECS/Serialization/SerializationDecorators.d.ts.map +1 -0
- package/bin/ECS/Serialization/SerializationDecorators.js +216 -0
- package/bin/ECS/Serialization/SerializationDecorators.js.map +1 -0
- package/bin/ECS/Serialization/VersionMigration.d.ts +156 -0
- package/bin/ECS/Serialization/VersionMigration.d.ts.map +1 -0
- package/bin/ECS/Serialization/VersionMigration.js +279 -0
- package/bin/ECS/Serialization/VersionMigration.js.map +1 -0
- package/bin/ECS/Serialization/index.d.ts +18 -0
- package/bin/ECS/Serialization/index.d.ts.map +1 -0
- package/bin/ECS/Serialization/index.js +18 -0
- package/bin/ECS/Serialization/index.js.map +1 -0
- package/bin/ECS/Systems/EntityCache.d.ts +114 -0
- package/bin/ECS/Systems/EntityCache.d.ts.map +1 -0
- package/bin/ECS/Systems/EntityCache.js +145 -0
- package/bin/ECS/Systems/EntityCache.js.map +1 -0
- package/bin/ECS/Systems/EntitySystem.d.ts +591 -0
- package/bin/ECS/Systems/EntitySystem.d.ts.map +1 -0
- package/bin/ECS/Systems/EntitySystem.js +1102 -0
- package/bin/ECS/Systems/EntitySystem.js.map +1 -0
- package/bin/ECS/Systems/HierarchySystem.d.ts +155 -0
- package/bin/ECS/Systems/HierarchySystem.d.ts.map +1 -0
- package/bin/ECS/Systems/HierarchySystem.js +498 -0
- package/bin/ECS/Systems/HierarchySystem.js.map +1 -0
- package/bin/ECS/Systems/IntervalSystem.d.ts +33 -0
- package/bin/ECS/Systems/IntervalSystem.d.ts.map +1 -0
- package/bin/ECS/Systems/IntervalSystem.js +50 -0
- package/bin/ECS/Systems/IntervalSystem.js.map +1 -0
- package/bin/ECS/Systems/PassiveSystem.d.ts +17 -0
- package/bin/ECS/Systems/PassiveSystem.d.ts.map +1 -0
- package/bin/ECS/Systems/PassiveSystem.js +19 -0
- package/bin/ECS/Systems/PassiveSystem.js.map +1 -0
- package/bin/ECS/Systems/ProcessingSystem.d.ts +21 -0
- package/bin/ECS/Systems/ProcessingSystem.d.ts.map +1 -0
- package/bin/ECS/Systems/ProcessingSystem.js +20 -0
- package/bin/ECS/Systems/ProcessingSystem.js.map +1 -0
- package/bin/ECS/Systems/WorkerEntitySystem.d.ts +313 -0
- package/bin/ECS/Systems/WorkerEntitySystem.d.ts.map +1 -0
- package/bin/ECS/Systems/WorkerEntitySystem.js +792 -0
- package/bin/ECS/Systems/WorkerEntitySystem.js.map +1 -0
- package/bin/ECS/Systems/index.d.ts +8 -0
- package/bin/ECS/Systems/index.d.ts.map +1 -0
- package/bin/ECS/Systems/index.js +8 -0
- package/bin/ECS/Systems/index.js.map +1 -0
- package/bin/ECS/TypedEntity.d.ts +192 -0
- package/bin/ECS/TypedEntity.d.ts.map +1 -0
- package/bin/ECS/TypedEntity.js +254 -0
- package/bin/ECS/TypedEntity.js.map +1 -0
- package/bin/ECS/Utils/BigIntCompatibility.d.ts +151 -0
- package/bin/ECS/Utils/BigIntCompatibility.d.ts.map +1 -0
- package/bin/ECS/Utils/BigIntCompatibility.js +476 -0
- package/bin/ECS/Utils/BigIntCompatibility.js.map +1 -0
- package/bin/ECS/Utils/BitMaskHashMap.d.ts +28 -0
- package/bin/ECS/Utils/BitMaskHashMap.d.ts.map +1 -0
- package/bin/ECS/Utils/BitMaskHashMap.js +127 -0
- package/bin/ECS/Utils/BitMaskHashMap.js.map +1 -0
- package/bin/ECS/Utils/Bits.d.ts +154 -0
- package/bin/ECS/Utils/Bits.d.ts.map +1 -0
- package/bin/ECS/Utils/Bits.js +331 -0
- package/bin/ECS/Utils/Bits.js.map +1 -0
- package/bin/ECS/Utils/ComponentSparseSet.d.ts +143 -0
- package/bin/ECS/Utils/ComponentSparseSet.d.ts.map +1 -0
- package/bin/ECS/Utils/ComponentSparseSet.js +347 -0
- package/bin/ECS/Utils/ComponentSparseSet.js.map +1 -0
- package/bin/ECS/Utils/EntityList.d.ts +115 -0
- package/bin/ECS/Utils/EntityList.d.ts.map +1 -0
- package/bin/ECS/Utils/EntityList.js +258 -0
- package/bin/ECS/Utils/EntityList.js.map +1 -0
- package/bin/ECS/Utils/EntityProcessorList.d.ts +56 -0
- package/bin/ECS/Utils/EntityProcessorList.d.ts.map +1 -0
- package/bin/ECS/Utils/EntityProcessorList.js +113 -0
- package/bin/ECS/Utils/EntityProcessorList.js.map +1 -0
- package/bin/ECS/Utils/IdentifierPool.d.ts +203 -0
- package/bin/ECS/Utils/IdentifierPool.d.ts.map +1 -0
- package/bin/ECS/Utils/IdentifierPool.js +325 -0
- package/bin/ECS/Utils/IdentifierPool.js.map +1 -0
- package/bin/ECS/Utils/Matcher.d.ts +171 -0
- package/bin/ECS/Utils/Matcher.d.ts.map +1 -0
- package/bin/ECS/Utils/Matcher.js +293 -0
- package/bin/ECS/Utils/Matcher.js.map +1 -0
- package/bin/ECS/Utils/SparseSet.d.ts +170 -0
- package/bin/ECS/Utils/SparseSet.d.ts.map +1 -0
- package/bin/ECS/Utils/SparseSet.js +280 -0
- package/bin/ECS/Utils/SparseSet.js.map +1 -0
- package/bin/ECS/Utils/index.d.ts +9 -0
- package/bin/ECS/Utils/index.d.ts.map +1 -0
- package/bin/ECS/Utils/index.js +10 -0
- package/bin/ECS/Utils/index.js.map +1 -0
- package/bin/ECS/World.d.ts +238 -0
- package/bin/ECS/World.d.ts.map +1 -0
- package/bin/ECS/World.js +416 -0
- package/bin/ECS/World.js.map +1 -0
- package/bin/ECS/WorldManager.d.ts +224 -0
- package/bin/ECS/WorldManager.d.ts.map +1 -0
- package/bin/ECS/WorldManager.js +365 -0
- package/bin/ECS/WorldManager.js.map +1 -0
- package/bin/ECS/index.d.ts +26 -0
- package/bin/ECS/index.d.ts.map +1 -0
- package/bin/ECS/index.js +21 -0
- package/bin/ECS/index.js.map +1 -0
- package/bin/Platform/IPlatformAdapter.d.ts +169 -0
- package/bin/Platform/IPlatformAdapter.d.ts.map +1 -0
- package/bin/Platform/IPlatformAdapter.js +2 -0
- package/bin/Platform/IPlatformAdapter.js.map +1 -0
- package/bin/Platform/PlatformDetector.d.ts +56 -0
- package/bin/Platform/PlatformDetector.d.ts.map +1 -0
- package/bin/Platform/PlatformDetector.js +247 -0
- package/bin/Platform/PlatformDetector.js.map +1 -0
- package/bin/Platform/PlatformManager.d.ts +50 -0
- package/bin/Platform/PlatformManager.d.ts.map +1 -0
- package/bin/Platform/PlatformManager.js +114 -0
- package/bin/Platform/PlatformManager.js.map +1 -0
- package/bin/Platform/index.d.ts +19 -0
- package/bin/Platform/index.d.ts.map +1 -0
- package/bin/Platform/index.js +29 -0
- package/bin/Platform/index.js.map +1 -0
- package/bin/Plugins/DebugPlugin.d.ts +156 -0
- package/bin/Plugins/DebugPlugin.d.ts.map +1 -0
- package/bin/Plugins/DebugPlugin.js +248 -0
- package/bin/Plugins/DebugPlugin.js.map +1 -0
- package/bin/Plugins/index.d.ts +2 -0
- package/bin/Plugins/index.d.ts.map +1 -0
- package/bin/Plugins/index.js +2 -0
- package/bin/Plugins/index.js.map +1 -0
- package/bin/Types/IUpdatable.d.ts +18 -0
- package/bin/Types/IUpdatable.d.ts.map +1 -0
- package/bin/Types/IUpdatable.js +7 -0
- package/bin/Types/IUpdatable.js.map +1 -0
- package/bin/Types/TypeHelpers.d.ts +238 -0
- package/bin/Types/TypeHelpers.d.ts.map +1 -0
- package/bin/Types/TypeHelpers.js +19 -0
- package/bin/Types/TypeHelpers.js.map +1 -0
- package/bin/Types/index.d.ts +466 -0
- package/bin/Types/index.d.ts.map +1 -0
- package/bin/Types/index.js +7 -0
- package/bin/Types/index.js.map +1 -0
- package/bin/Utils/BinarySerializer.d.ts +23 -0
- package/bin/Utils/BinarySerializer.d.ts.map +1 -0
- package/bin/Utils/BinarySerializer.js +100 -0
- package/bin/Utils/BinarySerializer.js.map +1 -0
- package/bin/Utils/Debug/AdvancedProfilerCollector.d.ts +153 -0
- package/bin/Utils/Debug/AdvancedProfilerCollector.d.ts.map +1 -0
- package/bin/Utils/Debug/AdvancedProfilerCollector.js +406 -0
- package/bin/Utils/Debug/AdvancedProfilerCollector.js.map +1 -0
- package/bin/Utils/Debug/ComponentDataCollector.d.ts +32 -0
- package/bin/Utils/Debug/ComponentDataCollector.d.ts.map +1 -0
- package/bin/Utils/Debug/ComponentDataCollector.js +250 -0
- package/bin/Utils/Debug/ComponentDataCollector.js.map +1 -0
- package/bin/Utils/Debug/DebugConfigService.d.ts +16 -0
- package/bin/Utils/Debug/DebugConfigService.d.ts.map +1 -0
- package/bin/Utils/Debug/DebugConfigService.js +42 -0
- package/bin/Utils/Debug/DebugConfigService.js.map +1 -0
- package/bin/Utils/Debug/DebugManager.d.ts +131 -0
- package/bin/Utils/Debug/DebugManager.d.ts.map +1 -0
- package/bin/Utils/Debug/DebugManager.js +848 -0
- package/bin/Utils/Debug/DebugManager.js.map +1 -0
- package/bin/Utils/Debug/EntityDataCollector.d.ts +115 -0
- package/bin/Utils/Debug/EntityDataCollector.d.ts.map +1 -0
- package/bin/Utils/Debug/EntityDataCollector.js +870 -0
- package/bin/Utils/Debug/EntityDataCollector.js.map +1 -0
- package/bin/Utils/Debug/PerformanceDataCollector.d.ts +31 -0
- package/bin/Utils/Debug/PerformanceDataCollector.d.ts.map +1 -0
- package/bin/Utils/Debug/PerformanceDataCollector.js +203 -0
- package/bin/Utils/Debug/PerformanceDataCollector.js.map +1 -0
- package/bin/Utils/Debug/SceneDataCollector.d.ts +18 -0
- package/bin/Utils/Debug/SceneDataCollector.d.ts.map +1 -0
- package/bin/Utils/Debug/SceneDataCollector.js +43 -0
- package/bin/Utils/Debug/SceneDataCollector.js.map +1 -0
- package/bin/Utils/Debug/SystemDataCollector.d.ts +14 -0
- package/bin/Utils/Debug/SystemDataCollector.d.ts.map +1 -0
- package/bin/Utils/Debug/SystemDataCollector.js +60 -0
- package/bin/Utils/Debug/SystemDataCollector.js.map +1 -0
- package/bin/Utils/Debug/WebSocketManager.d.ts +54 -0
- package/bin/Utils/Debug/WebSocketManager.d.ts.map +1 -0
- package/bin/Utils/Debug/WebSocketManager.js +141 -0
- package/bin/Utils/Debug/WebSocketManager.js.map +1 -0
- package/bin/Utils/Debug/index.d.ts +11 -0
- package/bin/Utils/Debug/index.d.ts.map +1 -0
- package/bin/Utils/Debug/index.js +10 -0
- package/bin/Utils/Debug/index.js.map +1 -0
- package/bin/Utils/Emitter.d.ts +61 -0
- package/bin/Utils/Emitter.d.ts.map +1 -0
- package/bin/Utils/Emitter.js +101 -0
- package/bin/Utils/Emitter.js.map +1 -0
- package/bin/Utils/Extensions/NumberExtension.d.ts +13 -0
- package/bin/Utils/Extensions/NumberExtension.d.ts.map +1 -0
- package/bin/Utils/Extensions/NumberExtension.js +17 -0
- package/bin/Utils/Extensions/NumberExtension.js.map +1 -0
- package/bin/Utils/Extensions/TypeUtils.d.ts +13 -0
- package/bin/Utils/Extensions/TypeUtils.d.ts.map +1 -0
- package/bin/Utils/Extensions/TypeUtils.js +15 -0
- package/bin/Utils/Extensions/TypeUtils.js.map +1 -0
- package/bin/Utils/Extensions/index.d.ts +3 -0
- package/bin/Utils/Extensions/index.d.ts.map +1 -0
- package/bin/Utils/Extensions/index.js +4 -0
- package/bin/Utils/Extensions/index.js.map +1 -0
- package/bin/Utils/GlobalManager.d.ts +29 -0
- package/bin/Utils/GlobalManager.d.ts.map +1 -0
- package/bin/Utils/GlobalManager.js +50 -0
- package/bin/Utils/GlobalManager.js.map +1 -0
- package/bin/Utils/Logger/ConsoleLogger.d.ts +74 -0
- package/bin/Utils/Logger/ConsoleLogger.d.ts.map +1 -0
- package/bin/Utils/Logger/ConsoleLogger.js +187 -0
- package/bin/Utils/Logger/ConsoleLogger.js.map +1 -0
- package/bin/Utils/Logger/Constants.d.ts +36 -0
- package/bin/Utils/Logger/Constants.d.ts.map +1 -0
- package/bin/Utils/Logger/Constants.js +40 -0
- package/bin/Utils/Logger/Constants.js.map +1 -0
- package/bin/Utils/Logger/LoggerManager.d.ts +91 -0
- package/bin/Utils/Logger/LoggerManager.d.ts.map +1 -0
- package/bin/Utils/Logger/LoggerManager.js +167 -0
- package/bin/Utils/Logger/LoggerManager.js.map +1 -0
- package/bin/Utils/Logger/Types.d.ts +40 -0
- package/bin/Utils/Logger/Types.d.ts.map +1 -0
- package/bin/Utils/Logger/Types.js +2 -0
- package/bin/Utils/Logger/Types.js.map +1 -0
- package/bin/Utils/Logger/index.d.ts +5 -0
- package/bin/Utils/Logger/index.d.ts.map +1 -0
- package/bin/Utils/Logger/index.js +5 -0
- package/bin/Utils/Logger/index.js.map +1 -0
- package/bin/Utils/PerformanceMonitor.d.ts +196 -0
- package/bin/Utils/PerformanceMonitor.d.ts.map +1 -0
- package/bin/Utils/PerformanceMonitor.js +244 -0
- package/bin/Utils/PerformanceMonitor.js.map +1 -0
- package/bin/Utils/Pool/IPoolable.d.ts +29 -0
- package/bin/Utils/Pool/IPoolable.d.ts.map +1 -0
- package/bin/Utils/Pool/IPoolable.js +2 -0
- package/bin/Utils/Pool/IPoolable.js.map +1 -0
- package/bin/Utils/Pool/Pool.d.ts +109 -0
- package/bin/Utils/Pool/Pool.d.ts.map +1 -0
- package/bin/Utils/Pool/Pool.js +238 -0
- package/bin/Utils/Pool/Pool.js.map +1 -0
- package/bin/Utils/Pool/PoolManager.d.ts +96 -0
- package/bin/Utils/Pool/PoolManager.d.ts.map +1 -0
- package/bin/Utils/Pool/PoolManager.js +199 -0
- package/bin/Utils/Pool/PoolManager.js.map +1 -0
- package/bin/Utils/Pool/index.d.ts +4 -0
- package/bin/Utils/Pool/index.d.ts.map +1 -0
- package/bin/Utils/Pool/index.js +4 -0
- package/bin/Utils/Pool/index.js.map +1 -0
- package/bin/Utils/Profiler/AutoProfiler.d.ts +160 -0
- package/bin/Utils/Profiler/AutoProfiler.d.ts.map +1 -0
- package/bin/Utils/Profiler/AutoProfiler.js +503 -0
- package/bin/Utils/Profiler/AutoProfiler.js.map +1 -0
- package/bin/Utils/Profiler/ProfilerSDK.d.ts +175 -0
- package/bin/Utils/Profiler/ProfilerSDK.d.ts.map +1 -0
- package/bin/Utils/Profiler/ProfilerSDK.js +727 -0
- package/bin/Utils/Profiler/ProfilerSDK.js.map +1 -0
- package/bin/Utils/Profiler/ProfilerTypes.d.ts +218 -0
- package/bin/Utils/Profiler/ProfilerTypes.d.ts.map +1 -0
- package/bin/Utils/Profiler/ProfilerTypes.js +47 -0
- package/bin/Utils/Profiler/ProfilerTypes.js.map +1 -0
- package/bin/Utils/Profiler/index.d.ts +8 -0
- package/bin/Utils/Profiler/index.d.ts.map +1 -0
- package/bin/Utils/Profiler/index.js +7 -0
- package/bin/Utils/Profiler/index.js.map +1 -0
- package/bin/Utils/Time.d.ts +47 -0
- package/bin/Utils/Time.d.ts.map +1 -0
- package/bin/Utils/Time.js +64 -0
- package/bin/Utils/Time.js.map +1 -0
- package/bin/Utils/Timers/ITimer.d.ts +16 -0
- package/bin/Utils/Timers/ITimer.d.ts.map +1 -0
- package/bin/Utils/Timers/ITimer.js +2 -0
- package/bin/Utils/Timers/ITimer.js.map +1 -0
- package/bin/Utils/Timers/Timer.d.ts +30 -0
- package/bin/Utils/Timers/Timer.d.ts.map +1 -0
- package/bin/Utils/Timers/Timer.js +58 -0
- package/bin/Utils/Timers/Timer.js.map +1 -0
- package/bin/Utils/Timers/TimerManager.d.ts +26 -0
- package/bin/Utils/Timers/TimerManager.d.ts.map +1 -0
- package/bin/Utils/Timers/TimerManager.js +48 -0
- package/bin/Utils/Timers/TimerManager.js.map +1 -0
- package/bin/Utils/index.d.ts +11 -0
- package/bin/Utils/index.d.ts.map +1 -0
- package/bin/Utils/index.js +11 -0
- package/bin/Utils/index.js.map +1 -0
- package/bin/index.d.ts +29 -0
- package/bin/index.d.ts.map +1 -0
- package/bin/index.js +36 -0
- package/bin/index.js.map +1 -0
- package/package.json +84 -47
- package/LICENSE +0 -21
- package/index.cjs +0 -2
- package/index.cjs.map +0 -1
- package/index.d.ts +0 -13021
- package/index.es5.js +0 -4
- package/index.es5.js.map +0 -1
- package/index.mjs +0 -2
- package/index.mjs.map +0 -1
- package/index.umd.js +0 -4
- package/index.umd.js.map +0 -1
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { Int32 } from './Core/SoAStorage';
|
|
3
|
+
/**
|
|
4
|
+
* 游戏组件基类
|
|
5
|
+
*
|
|
6
|
+
* ECS架构中的组件(Component)应该是纯数据容器。
|
|
7
|
+
* 所有游戏逻辑应该在 EntitySystem 中实现,而不是在组件内部。
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* 推荐做法:纯数据组件
|
|
11
|
+
* ```typescript
|
|
12
|
+
* class HealthComponent extends Component {
|
|
13
|
+
* public health: number = 100;
|
|
14
|
+
* public maxHealth: number = 100;
|
|
15
|
+
* }
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* 推荐做法:在 System 中处理逻辑
|
|
20
|
+
* ```typescript
|
|
21
|
+
* class HealthSystem extends EntitySystem {
|
|
22
|
+
* process(entities: Entity[]): void {
|
|
23
|
+
* for (const entity of entities) {
|
|
24
|
+
* const health = entity.getComponent(HealthComponent);
|
|
25
|
+
* if (health && health.health <= 0) {
|
|
26
|
+
* entity.destroy();
|
|
27
|
+
* }
|
|
28
|
+
* }
|
|
29
|
+
* }
|
|
30
|
+
* }
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export class Component {
|
|
34
|
+
/**
|
|
35
|
+
* 创建组件实例
|
|
36
|
+
*
|
|
37
|
+
* 自动分配唯一ID给组件。
|
|
38
|
+
*/
|
|
39
|
+
constructor() {
|
|
40
|
+
/**
|
|
41
|
+
* 所属实体ID
|
|
42
|
+
*
|
|
43
|
+
* 存储实体ID而非引用,避免循环引用,符合ECS数据导向设计。
|
|
44
|
+
*/
|
|
45
|
+
this.entityId = null;
|
|
46
|
+
this.id = Component.idGenerator++;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* 组件添加到实体时的回调
|
|
50
|
+
*
|
|
51
|
+
* 当组件被添加到实体时调用,可以在此方法中进行初始化操作。
|
|
52
|
+
*
|
|
53
|
+
* @remarks
|
|
54
|
+
* 这是一个生命周期钩子,用于组件的初始化逻辑。
|
|
55
|
+
* 虽然保留此方法,但建议将复杂的初始化逻辑放在 System 中处理。
|
|
56
|
+
*/
|
|
57
|
+
onAddedToEntity() { }
|
|
58
|
+
/**
|
|
59
|
+
* 组件从实体移除时的回调
|
|
60
|
+
*
|
|
61
|
+
* 当组件从实体中移除时调用,可以在此方法中进行清理操作。
|
|
62
|
+
*
|
|
63
|
+
* @remarks
|
|
64
|
+
* 这是一个生命周期钩子,用于组件的清理逻辑。
|
|
65
|
+
* 虽然保留此方法,但建议将复杂的清理逻辑放在 System 中处理。
|
|
66
|
+
*/
|
|
67
|
+
onRemovedFromEntity() { }
|
|
68
|
+
/**
|
|
69
|
+
* 组件反序列化后的回调
|
|
70
|
+
*
|
|
71
|
+
* 当组件从场景文件加载或快照恢复后调用,可以在此方法中恢复运行时数据。
|
|
72
|
+
*
|
|
73
|
+
* @remarks
|
|
74
|
+
* 这是一个生命周期钩子,用于恢复无法序列化的运行时数据。
|
|
75
|
+
* 例如:从图片路径重新加载图片尺寸信息,重建缓存等。
|
|
76
|
+
*
|
|
77
|
+
* @example
|
|
78
|
+
* ```typescript
|
|
79
|
+
* class TilemapComponent extends Component {
|
|
80
|
+
* public tilesetImage: string = '';
|
|
81
|
+
* private _tilesetData: TilesetData | undefined;
|
|
82
|
+
*
|
|
83
|
+
* public async onDeserialized(): Promise<void> {
|
|
84
|
+
* if (this.tilesetImage) {
|
|
85
|
+
* // 重新加载 tileset 图片并恢复运行时数据
|
|
86
|
+
* const img = await loadImage(this.tilesetImage);
|
|
87
|
+
* this.setTilesetInfo(img.width, img.height, ...);
|
|
88
|
+
* }
|
|
89
|
+
* }
|
|
90
|
+
* }
|
|
91
|
+
* ```
|
|
92
|
+
*/
|
|
93
|
+
onDeserialized() { }
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* 组件ID生成器
|
|
97
|
+
*
|
|
98
|
+
* 用于为每个组件分配唯一的ID。
|
|
99
|
+
*/
|
|
100
|
+
Component.idGenerator = 0;
|
|
101
|
+
__decorate([
|
|
102
|
+
Int32,
|
|
103
|
+
__metadata("design:type", Object)
|
|
104
|
+
], Component.prototype, "entityId", void 0);
|
|
105
|
+
//# sourceMappingURL=Component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Component.js","sourceRoot":"","sources":["../../src/ECS/Component.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,OAAgB,SAAS;IAuB3B;;;;OAIG;IACH;QAbA;;;;WAIG;QAEI,aAAQ,GAAkB,IAAI,CAAC;QAQlC,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IACtC,CAAC;IAED;;;;;;;;OAQG;IACI,eAAe,KAAU,CAAC;IAEjC;;;;;;;;OAQG;IACI,mBAAmB,KAAU,CAAC;IAErC;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACI,cAAc,KAA0B,CAAC;;AA9EhD;;;;GAIG;AACY,qBAAW,GAAW,CAAC,AAAZ,CAAa;AAehC;IADN,KAAK;;2CACgC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Component } from '../Component';
|
|
2
|
+
/**
|
|
3
|
+
* 层级关系组件 - 用于建立实体间的父子关系
|
|
4
|
+
*
|
|
5
|
+
* 只有需要层级关系的实体才添加此组件,遵循 ECS 组合原则。
|
|
6
|
+
* 层级操作应通过 HierarchySystem 进行,而非直接修改此组件。
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* // 通过 HierarchySystem 设置父子关系
|
|
11
|
+
* const hierarchySystem = scene.getSystem(HierarchySystem);
|
|
12
|
+
* hierarchySystem.setParent(childEntity, parentEntity);
|
|
13
|
+
*
|
|
14
|
+
* // 查询层级信息
|
|
15
|
+
* const parent = hierarchySystem.getParent(entity);
|
|
16
|
+
* const children = hierarchySystem.getChildren(entity);
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare class HierarchyComponent extends Component {
|
|
20
|
+
/**
|
|
21
|
+
* 父实体 ID
|
|
22
|
+
* null 表示根实体(无父级)
|
|
23
|
+
*/
|
|
24
|
+
parentId: number | null;
|
|
25
|
+
/**
|
|
26
|
+
* 子实体 ID 列表
|
|
27
|
+
* 顺序即为子级的排列顺序
|
|
28
|
+
*/
|
|
29
|
+
childIds: number[];
|
|
30
|
+
/**
|
|
31
|
+
* 在层级中的深度
|
|
32
|
+
* 根实体深度为 0,由 HierarchySystem 维护
|
|
33
|
+
*/
|
|
34
|
+
depth: number;
|
|
35
|
+
/**
|
|
36
|
+
* 层级中是否激活
|
|
37
|
+
* 考虑所有祖先的激活状态,由 HierarchySystem 维护
|
|
38
|
+
*/
|
|
39
|
+
bActiveInHierarchy: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* 层级缓存是否脏
|
|
42
|
+
* 用于优化缓存更新
|
|
43
|
+
*/
|
|
44
|
+
bCacheDirty: boolean;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=HierarchyComponent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HierarchyComponent.d.ts","sourceRoot":"","sources":["../../../src/ECS/Components/HierarchyComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIzC;;;;;;;;;;;;;;;;GAgBG;AACH,qBAEa,kBAAmB,SAAQ,SAAS;IAC7C;;;OAGG;IAEI,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEtC;;;OAGG;IAEI,QAAQ,EAAE,MAAM,EAAE,CAAM;IAE/B;;;OAGG;IACI,KAAK,EAAE,MAAM,CAAK;IAEzB;;;OAGG;IACI,kBAAkB,EAAE,OAAO,CAAQ;IAE1C;;;OAGG;IACI,WAAW,EAAE,OAAO,CAAQ;CACtC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { Component } from '../Component';
|
|
3
|
+
import { ECSComponent } from '../Decorators';
|
|
4
|
+
import { Serializable, Serialize } from '../Serialization/SerializationDecorators';
|
|
5
|
+
/**
|
|
6
|
+
* 层级关系组件 - 用于建立实体间的父子关系
|
|
7
|
+
*
|
|
8
|
+
* 只有需要层级关系的实体才添加此组件,遵循 ECS 组合原则。
|
|
9
|
+
* 层级操作应通过 HierarchySystem 进行,而非直接修改此组件。
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* // 通过 HierarchySystem 设置父子关系
|
|
14
|
+
* const hierarchySystem = scene.getSystem(HierarchySystem);
|
|
15
|
+
* hierarchySystem.setParent(childEntity, parentEntity);
|
|
16
|
+
*
|
|
17
|
+
* // 查询层级信息
|
|
18
|
+
* const parent = hierarchySystem.getParent(entity);
|
|
19
|
+
* const children = hierarchySystem.getChildren(entity);
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
let HierarchyComponent = class HierarchyComponent extends Component {
|
|
23
|
+
constructor() {
|
|
24
|
+
super(...arguments);
|
|
25
|
+
/**
|
|
26
|
+
* 父实体 ID
|
|
27
|
+
* null 表示根实体(无父级)
|
|
28
|
+
*/
|
|
29
|
+
this.parentId = null;
|
|
30
|
+
/**
|
|
31
|
+
* 子实体 ID 列表
|
|
32
|
+
* 顺序即为子级的排列顺序
|
|
33
|
+
*/
|
|
34
|
+
this.childIds = [];
|
|
35
|
+
/**
|
|
36
|
+
* 在层级中的深度
|
|
37
|
+
* 根实体深度为 0,由 HierarchySystem 维护
|
|
38
|
+
*/
|
|
39
|
+
this.depth = 0;
|
|
40
|
+
/**
|
|
41
|
+
* 层级中是否激活
|
|
42
|
+
* 考虑所有祖先的激活状态,由 HierarchySystem 维护
|
|
43
|
+
*/
|
|
44
|
+
this.bActiveInHierarchy = true;
|
|
45
|
+
/**
|
|
46
|
+
* 层级缓存是否脏
|
|
47
|
+
* 用于优化缓存更新
|
|
48
|
+
*/
|
|
49
|
+
this.bCacheDirty = true;
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
__decorate([
|
|
53
|
+
Serialize(),
|
|
54
|
+
__metadata("design:type", Object)
|
|
55
|
+
], HierarchyComponent.prototype, "parentId", void 0);
|
|
56
|
+
__decorate([
|
|
57
|
+
Serialize(),
|
|
58
|
+
__metadata("design:type", Array)
|
|
59
|
+
], HierarchyComponent.prototype, "childIds", void 0);
|
|
60
|
+
HierarchyComponent = __decorate([
|
|
61
|
+
ECSComponent('Hierarchy'),
|
|
62
|
+
Serializable({ version: 1, typeId: 'Hierarchy' })
|
|
63
|
+
], HierarchyComponent);
|
|
64
|
+
export { HierarchyComponent };
|
|
65
|
+
//# sourceMappingURL=HierarchyComponent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HierarchyComponent.js","sourceRoot":"","sources":["../../../src/ECS/Components/HierarchyComponent.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AAEnF;;;;;;;;;;;;;;;;GAgBG;AAGI,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,SAAS;IAA1C;;QACH;;;WAGG;QAEI,aAAQ,GAAkB,IAAI,CAAC;QAEtC;;;WAGG;QAEI,aAAQ,GAAa,EAAE,CAAC;QAE/B;;;WAGG;QACI,UAAK,GAAW,CAAC,CAAC;QAEzB;;;WAGG;QACI,uBAAkB,GAAY,IAAI,CAAC;QAE1C;;;WAGG;QACI,gBAAW,GAAY,IAAI,CAAC;IACvC,CAAC;CAAA,CAAA;AA1BU;IADN,SAAS,EAAE;;oDAC0B;AAO/B;IADN,SAAS,EAAE;;oDACmB;AAbtB,kBAAkB;IAF9B,YAAY,CAAC,WAAW,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;GACrC,kBAAkB,CAgC9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ECS/Components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ECS/Components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { Entity } from '../Entity';
|
|
2
|
+
import { ComponentType } from './ComponentStorage';
|
|
3
|
+
import { BitMask64Data } from '../Utils';
|
|
4
|
+
/**
|
|
5
|
+
* 原型标识符
|
|
6
|
+
*/
|
|
7
|
+
export type ArchetypeId = BitMask64Data;
|
|
8
|
+
/**
|
|
9
|
+
* 原型数据结构
|
|
10
|
+
*/
|
|
11
|
+
export interface Archetype {
|
|
12
|
+
/** 原型唯一标识符 */
|
|
13
|
+
id: ArchetypeId;
|
|
14
|
+
/** 包含的组件类型 */
|
|
15
|
+
componentTypes: ComponentType[];
|
|
16
|
+
/** 属于该原型的实体集合 */
|
|
17
|
+
entities: Set<Entity>;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* 原型查询结果
|
|
21
|
+
*/
|
|
22
|
+
export interface ArchetypeQueryResult {
|
|
23
|
+
/** 匹配的原型列表 */
|
|
24
|
+
archetypes: Archetype[];
|
|
25
|
+
/** 所有匹配实体的总数 */
|
|
26
|
+
totalEntities: number;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Archetype系统
|
|
30
|
+
*
|
|
31
|
+
* 根据实体的组件组合将实体分组到不同的原型中,提供高效的查询性能。
|
|
32
|
+
*/
|
|
33
|
+
export declare class ArchetypeSystem {
|
|
34
|
+
/** 所有原型的映射表 */
|
|
35
|
+
private _archetypes;
|
|
36
|
+
/** 实体到原型的映射 */
|
|
37
|
+
private _entityToArchetype;
|
|
38
|
+
/** 组件类型到原型的映射 */
|
|
39
|
+
private _componentToArchetypes;
|
|
40
|
+
/** 实体组件类型缓存 */
|
|
41
|
+
private _entityComponentTypesCache;
|
|
42
|
+
/** 所有原型 */
|
|
43
|
+
private _allArchetypes;
|
|
44
|
+
/**
|
|
45
|
+
* 添加实体到原型系统
|
|
46
|
+
*/
|
|
47
|
+
addEntity(entity: Entity): void;
|
|
48
|
+
/**
|
|
49
|
+
* 从原型系统中移除实体
|
|
50
|
+
*/
|
|
51
|
+
removeEntity(entity: Entity): void;
|
|
52
|
+
/**
|
|
53
|
+
* 更新实体的原型归属
|
|
54
|
+
*
|
|
55
|
+
* 当实体的组件组合发生变化时调用此方法,将实体从旧原型移动到新原型。
|
|
56
|
+
* 如果新的组件组合对应的原型不存在,将自动创建新原型。
|
|
57
|
+
*
|
|
58
|
+
* @param entity 要更新的实体
|
|
59
|
+
*/
|
|
60
|
+
updateEntity(entity: Entity): void;
|
|
61
|
+
/**
|
|
62
|
+
* 查询包含指定组件组合的原型
|
|
63
|
+
*
|
|
64
|
+
* @param componentTypes 要查询的组件类型列表
|
|
65
|
+
* @param operation 查询操作类型:'AND'(包含所有)或 'OR'(包含任意)
|
|
66
|
+
* @returns 匹配的原型列表及实体总数
|
|
67
|
+
*/
|
|
68
|
+
queryArchetypes(componentTypes: ComponentType[], operation?: 'AND' | 'OR'): ArchetypeQueryResult;
|
|
69
|
+
/**
|
|
70
|
+
* 获取实体所属的原型
|
|
71
|
+
*/
|
|
72
|
+
getEntityArchetype(entity: Entity): Archetype | undefined;
|
|
73
|
+
/**
|
|
74
|
+
* 获取所有原型
|
|
75
|
+
*/
|
|
76
|
+
getAllArchetypes(): Archetype[];
|
|
77
|
+
/**
|
|
78
|
+
* 获取包含指定组件类型的所有实体
|
|
79
|
+
*/
|
|
80
|
+
getEntitiesByComponent(componentType: ComponentType): Entity[];
|
|
81
|
+
/**
|
|
82
|
+
* 清空所有数据
|
|
83
|
+
*/
|
|
84
|
+
clear(): void;
|
|
85
|
+
/**
|
|
86
|
+
* 更新所有原型数组
|
|
87
|
+
*/
|
|
88
|
+
private updateAllArchetypeArrays;
|
|
89
|
+
/**
|
|
90
|
+
* 获取实体的组件类型列表
|
|
91
|
+
*/
|
|
92
|
+
private getEntityComponentTypes;
|
|
93
|
+
/**
|
|
94
|
+
* 生成原型ID
|
|
95
|
+
* 使用ComponentRegistry确保与Entity.componentMask使用相同的bitIndex
|
|
96
|
+
*/
|
|
97
|
+
private generateArchetypeId;
|
|
98
|
+
/**
|
|
99
|
+
* 创建新原型
|
|
100
|
+
*/
|
|
101
|
+
private createArchetype;
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=ArchetypeSystem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArchetypeSystem.d.ts","sourceRoot":"","sources":["../../../src/ECS/Core/ArchetypeSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,aAAa,EAAqB,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAkB,MAAM,UAAU,CAAC;AAGzD;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,aAAa,CAAC;AAExC;;GAEG;AACH,MAAM,WAAW,SAAS;IACtB,cAAc;IACd,EAAE,EAAE,WAAW,CAAC;IAChB,cAAc;IACd,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,iBAAiB;IACjB,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,cAAc;IACd,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,gBAAgB;IAChB,aAAa,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,qBAAa,eAAe;IACxB,eAAe;IACf,OAAO,CAAC,WAAW,CAAmC;IAEtD,eAAe;IACf,OAAO,CAAC,kBAAkB,CAAgC;IAE1D,iBAAiB;IACjB,OAAO,CAAC,sBAAsB,CAA4C;IAE1E,eAAe;IACf,OAAO,CAAC,0BAA0B,CAAsC;IAExE,WAAW;IACX,OAAO,CAAC,cAAc,CAAmB;IAEzC;;OAEG;IACI,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAatC;;OAEG;IACI,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAWzC;;;;;;;OAOG;IACI,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IA8BzC;;;;;;OAMG;IACI,eAAe,CAAC,cAAc,EAAE,aAAa,EAAE,EAAE,SAAS,GAAE,KAAK,GAAG,IAAY,GAAG,oBAAoB;IAyE9G;;OAEG;IACI,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAIhE;;OAEG;IACI,gBAAgB,IAAI,SAAS,EAAE;IAItC;;OAEG;IACI,sBAAsB,CAAC,aAAa,EAAE,aAAa,GAAG,MAAM,EAAE;IAerE;;OAEG;IACI,KAAK,IAAI,IAAI;IAQpB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAOhC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAS/B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAY3B;;OAEG;IACH,OAAO,CAAC,eAAe;CAwB1B"}
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
import { ComponentRegistry } from './ComponentStorage';
|
|
2
|
+
import { BitMask64Utils } from '../Utils';
|
|
3
|
+
import { BitMaskHashMap } from '../Utils/BitMaskHashMap';
|
|
4
|
+
/**
|
|
5
|
+
* Archetype系统
|
|
6
|
+
*
|
|
7
|
+
* 根据实体的组件组合将实体分组到不同的原型中,提供高效的查询性能。
|
|
8
|
+
*/
|
|
9
|
+
export class ArchetypeSystem {
|
|
10
|
+
constructor() {
|
|
11
|
+
/** 所有原型的映射表 */
|
|
12
|
+
this._archetypes = new BitMaskHashMap();
|
|
13
|
+
/** 实体到原型的映射 */
|
|
14
|
+
this._entityToArchetype = new Map();
|
|
15
|
+
/** 组件类型到原型的映射 */
|
|
16
|
+
this._componentToArchetypes = new Map();
|
|
17
|
+
/** 实体组件类型缓存 */
|
|
18
|
+
this._entityComponentTypesCache = new Map();
|
|
19
|
+
/** 所有原型 */
|
|
20
|
+
this._allArchetypes = [];
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* 添加实体到原型系统
|
|
24
|
+
*/
|
|
25
|
+
addEntity(entity) {
|
|
26
|
+
const componentTypes = this.getEntityComponentTypes(entity);
|
|
27
|
+
const archetypeId = this.generateArchetypeId(componentTypes);
|
|
28
|
+
let archetype = this._archetypes.get(archetypeId);
|
|
29
|
+
if (!archetype) {
|
|
30
|
+
archetype = this.createArchetype(componentTypes);
|
|
31
|
+
}
|
|
32
|
+
archetype.entities.add(entity);
|
|
33
|
+
this._entityToArchetype.set(entity, archetype);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* 从原型系统中移除实体
|
|
37
|
+
*/
|
|
38
|
+
removeEntity(entity) {
|
|
39
|
+
const archetype = this._entityToArchetype.get(entity);
|
|
40
|
+
if (!archetype)
|
|
41
|
+
return;
|
|
42
|
+
archetype.entities.delete(entity);
|
|
43
|
+
// 清理实体相关缓存
|
|
44
|
+
this._entityComponentTypesCache.delete(entity);
|
|
45
|
+
this._entityToArchetype.delete(entity);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* 更新实体的原型归属
|
|
49
|
+
*
|
|
50
|
+
* 当实体的组件组合发生变化时调用此方法,将实体从旧原型移动到新原型。
|
|
51
|
+
* 如果新的组件组合对应的原型不存在,将自动创建新原型。
|
|
52
|
+
*
|
|
53
|
+
* @param entity 要更新的实体
|
|
54
|
+
*/
|
|
55
|
+
updateEntity(entity) {
|
|
56
|
+
const currentArchetype = this._entityToArchetype.get(entity);
|
|
57
|
+
// 清理实体组件类型缓存,强制重新计算
|
|
58
|
+
this._entityComponentTypesCache.delete(entity);
|
|
59
|
+
const newComponentTypes = this.getEntityComponentTypes(entity);
|
|
60
|
+
const newArchetypeId = this.generateArchetypeId(newComponentTypes);
|
|
61
|
+
// 如果实体已在正确的原型中,无需更新
|
|
62
|
+
if (currentArchetype && currentArchetype.id === newArchetypeId) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
// 从旧原型中移除实体
|
|
66
|
+
if (currentArchetype) {
|
|
67
|
+
currentArchetype.entities.delete(entity);
|
|
68
|
+
}
|
|
69
|
+
// 获取或创建新原型
|
|
70
|
+
let newArchetype = this._archetypes.get(newArchetypeId);
|
|
71
|
+
if (!newArchetype) {
|
|
72
|
+
newArchetype = this.createArchetype(newComponentTypes);
|
|
73
|
+
}
|
|
74
|
+
// 将实体添加到新原型
|
|
75
|
+
newArchetype.entities.add(entity);
|
|
76
|
+
this._entityToArchetype.set(entity, newArchetype);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* 查询包含指定组件组合的原型
|
|
80
|
+
*
|
|
81
|
+
* @param componentTypes 要查询的组件类型列表
|
|
82
|
+
* @param operation 查询操作类型:'AND'(包含所有)或 'OR'(包含任意)
|
|
83
|
+
* @returns 匹配的原型列表及实体总数
|
|
84
|
+
*/
|
|
85
|
+
queryArchetypes(componentTypes, operation = 'AND') {
|
|
86
|
+
const matchingArchetypes = [];
|
|
87
|
+
let totalEntities = 0;
|
|
88
|
+
if (operation === 'AND') {
|
|
89
|
+
if (componentTypes.length === 0) {
|
|
90
|
+
for (const archetype of this._allArchetypes) {
|
|
91
|
+
matchingArchetypes.push(archetype);
|
|
92
|
+
totalEntities += archetype.entities.size;
|
|
93
|
+
}
|
|
94
|
+
return { archetypes: matchingArchetypes, totalEntities };
|
|
95
|
+
}
|
|
96
|
+
if (componentTypes.length === 1) {
|
|
97
|
+
const archetypes = this._componentToArchetypes.get(componentTypes[0]);
|
|
98
|
+
if (archetypes) {
|
|
99
|
+
for (const archetype of archetypes) {
|
|
100
|
+
matchingArchetypes.push(archetype);
|
|
101
|
+
totalEntities += archetype.entities.size;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return { archetypes: matchingArchetypes, totalEntities };
|
|
105
|
+
}
|
|
106
|
+
let smallestSet;
|
|
107
|
+
let smallestSize = Infinity;
|
|
108
|
+
for (const componentType of componentTypes) {
|
|
109
|
+
const archetypes = this._componentToArchetypes.get(componentType);
|
|
110
|
+
if (!archetypes || archetypes.size === 0) {
|
|
111
|
+
return { archetypes: [], totalEntities: 0 };
|
|
112
|
+
}
|
|
113
|
+
if (archetypes.size < smallestSize) {
|
|
114
|
+
smallestSize = archetypes.size;
|
|
115
|
+
smallestSet = archetypes;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
const queryMask = this.generateArchetypeId(componentTypes);
|
|
119
|
+
if (smallestSet) {
|
|
120
|
+
for (const archetype of smallestSet) {
|
|
121
|
+
if (BitMask64Utils.hasAll(archetype.id, queryMask)) {
|
|
122
|
+
matchingArchetypes.push(archetype);
|
|
123
|
+
totalEntities += archetype.entities.size;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
const foundArchetypes = new Set();
|
|
130
|
+
for (const componentType of componentTypes) {
|
|
131
|
+
const archetypes = this._componentToArchetypes.get(componentType);
|
|
132
|
+
if (archetypes) {
|
|
133
|
+
for (const archetype of archetypes) {
|
|
134
|
+
foundArchetypes.add(archetype);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
for (const archetype of foundArchetypes) {
|
|
139
|
+
matchingArchetypes.push(archetype);
|
|
140
|
+
totalEntities += archetype.entities.size;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return {
|
|
144
|
+
archetypes: matchingArchetypes,
|
|
145
|
+
totalEntities
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* 获取实体所属的原型
|
|
150
|
+
*/
|
|
151
|
+
getEntityArchetype(entity) {
|
|
152
|
+
return this._entityToArchetype.get(entity);
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* 获取所有原型
|
|
156
|
+
*/
|
|
157
|
+
getAllArchetypes() {
|
|
158
|
+
return this._allArchetypes.slice();
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* 获取包含指定组件类型的所有实体
|
|
162
|
+
*/
|
|
163
|
+
getEntitiesByComponent(componentType) {
|
|
164
|
+
const archetypes = this._componentToArchetypes.get(componentType);
|
|
165
|
+
if (!archetypes || archetypes.size === 0) {
|
|
166
|
+
return [];
|
|
167
|
+
}
|
|
168
|
+
const entities = [];
|
|
169
|
+
for (const archetype of archetypes) {
|
|
170
|
+
for (const entity of archetype.entities) {
|
|
171
|
+
entities.push(entity);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
return entities;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* 清空所有数据
|
|
178
|
+
*/
|
|
179
|
+
clear() {
|
|
180
|
+
this._archetypes.clear();
|
|
181
|
+
this._entityToArchetype.clear();
|
|
182
|
+
this._componentToArchetypes.clear();
|
|
183
|
+
this._entityComponentTypesCache.clear();
|
|
184
|
+
this._allArchetypes = [];
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* 更新所有原型数组
|
|
188
|
+
*/
|
|
189
|
+
updateAllArchetypeArrays() {
|
|
190
|
+
this._allArchetypes = [];
|
|
191
|
+
for (const archetype of this._archetypes.values()) {
|
|
192
|
+
this._allArchetypes.push(archetype);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* 获取实体的组件类型列表
|
|
197
|
+
*/
|
|
198
|
+
getEntityComponentTypes(entity) {
|
|
199
|
+
let componentTypes = this._entityComponentTypesCache.get(entity);
|
|
200
|
+
if (!componentTypes) {
|
|
201
|
+
componentTypes = entity.components.map((component) => component.constructor);
|
|
202
|
+
this._entityComponentTypesCache.set(entity, componentTypes);
|
|
203
|
+
}
|
|
204
|
+
return componentTypes;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* 生成原型ID
|
|
208
|
+
* 使用ComponentRegistry确保与Entity.componentMask使用相同的bitIndex
|
|
209
|
+
*/
|
|
210
|
+
generateArchetypeId(componentTypes) {
|
|
211
|
+
const mask = BitMask64Utils.clone(BitMask64Utils.ZERO);
|
|
212
|
+
for (const type of componentTypes) {
|
|
213
|
+
if (!ComponentRegistry.isRegistered(type)) {
|
|
214
|
+
ComponentRegistry.register(type);
|
|
215
|
+
}
|
|
216
|
+
const bitMask = ComponentRegistry.getBitMask(type);
|
|
217
|
+
BitMask64Utils.orInPlace(mask, bitMask);
|
|
218
|
+
}
|
|
219
|
+
return mask;
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* 创建新原型
|
|
223
|
+
*/
|
|
224
|
+
createArchetype(componentTypes) {
|
|
225
|
+
const id = this.generateArchetypeId(componentTypes);
|
|
226
|
+
const archetype = {
|
|
227
|
+
id,
|
|
228
|
+
componentTypes: [...componentTypes],
|
|
229
|
+
entities: new Set()
|
|
230
|
+
};
|
|
231
|
+
this._archetypes.set(id, archetype);
|
|
232
|
+
this.updateAllArchetypeArrays();
|
|
233
|
+
for (const componentType of componentTypes) {
|
|
234
|
+
let archetypes = this._componentToArchetypes.get(componentType);
|
|
235
|
+
if (!archetypes) {
|
|
236
|
+
archetypes = new Set();
|
|
237
|
+
this._componentToArchetypes.set(componentType, archetypes);
|
|
238
|
+
}
|
|
239
|
+
archetypes.add(archetype);
|
|
240
|
+
}
|
|
241
|
+
return archetype;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
//# sourceMappingURL=ArchetypeSystem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArchetypeSystem.js","sourceRoot":"","sources":["../../../src/ECS/Core/ArchetypeSystem.ts"],"names":[],"mappings":"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"}
|