#pragma once #include "src/Core/Core.h" #include "src/Resource/Resource.h" #include "src/Resource/UUID.h" #include namespace Nuake { class ResourceManager { private: static std::map> m_Resources; public: static Ref GetResource(const UUID& uuid); template static Ref LoadResource(const std::string& path); static void RegisterResource(Ref resource) { m_Resources[resource->ID] = resource; } static bool IsResourceLoaded(const UUID& uuid) { return m_Resources.find(uuid) != m_Resources.end(); } template static Ref GetResource(const UUID& uuid) { return std::static_pointer_cast(m_Resources[uuid]); } }; }