#pragma once #include "Asset/IZoneAssetCreationState.h" #include "Techset/StateMap/StateMapDefinition.h" #include #include #include namespace techset { class TechniqueStateMapCache final : public IZoneAssetCreationState { public: [[nodiscard]] const state_map::StateMapDefinition* GetCachedStateMap(const std::string& name) const; void AddStateMapToCache(std::unique_ptr stateMap); [[nodiscard]] const state_map::StateMapDefinition* GetStateMapForTechnique(const std::string& techniqueName) const; void SetTechniqueUsesStateMap(std::string techniqueName, const state_map::StateMapDefinition* stateMap); private: std::unordered_map m_state_map_per_technique; std::unordered_map> m_state_map_cache; }; } // namespace techset