From 1563ae5be6bc130a9b3a23464f7e28fdb1e87da3 Mon Sep 17 00:00:00 2001 From: LaG1924 <12997935+LaG1924@users.noreply.github.com> Date: Sat, 13 May 2017 19:01:56 +0500 Subject: 2017-05-13 --- code/graphics/AssetManager.hpp | 52 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 code/graphics/AssetManager.hpp (limited to 'code/graphics/AssetManager.hpp') diff --git a/code/graphics/AssetManager.hpp b/code/graphics/AssetManager.hpp new file mode 100644 index 0000000..c7ef81a --- /dev/null +++ b/code/graphics/AssetManager.hpp @@ -0,0 +1,52 @@ +#pragma once + +#include +#include +#include +#include "../json.hpp" +#include "Texture.hpp" + +struct Asset { + std::string name = ""; + std::string hash = ""; + union AssetData{ + Texture *texture; + } data; + size_t size = 0; + enum AssetType { + Unknown, + Texture, + Sound, + Model, + Lang, + } type = Unknown; + bool isParsed(); + ~Asset(); +}; + +class AssetManager { + AssetManager(); + + ~AssetManager(); + + AssetManager(const AssetManager &); + + AssetManager &operator=(const AssetManager &); + + std::map assets; + + static AssetManager &instance() { + static AssetManager assetManager; + return assetManager; + } + + static std::string GetPathToAsset(std::string AssetName); +public: + + static Asset &GetAsset(std::string AssetName); + + static void LoadAsset(std::string AssetName); + + static std::string GetAssetNameByBlockId(unsigned short id); +}; + -- cgit v1.2.3