#pragma once #include "Assets/SHAssetMacros.h" #include "ECS_Base/SHECSMacros.h" #include #include namespace SHADE { class SHPrefabManager { public: using PrefabMap = std::unordered_map>; static void AddPrefab(AssetID const& prefabAssetID) noexcept; static void RemovePrefab(AssetID const& prefabAssetID) noexcept; static void ClearPrefab(AssetID const& prefabAssetID) noexcept; static void UpdateAllPrefabEntities(AssetID const& prefabAssetID) noexcept; static void AddEntity(AssetID const& prefabAssetID, EntityID const& eid) noexcept; static void RemoveEntity(AssetID const& prefabAssetID, EntityID const& eid) noexcept; static void Clear() noexcept; static bool Empty() noexcept; private: static PrefabMap prefabMap; }; }