Files
Nuake-custom/Nuake/src/Resource/ResourceManager.h
Antoine Pilote c2b9d61d68 Code style
2023-08-14 09:14:47 -04:00

37 lines
733 B
C++

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