8#include <unordered_map>
93 template<
typename Asset>
109 template<
typename ConfigType,
typename ValueType>
123 template<
typename EnumType>
124 static void set(EnumType key,
const char* filepath);
137 template<
typename EnumType>
138 static void set(EnumType key, std::string value);
152 template<
typename EnumType,
typename ValueType>
153 static std::enable_if_t<
154 !std::is_same_v<std::decay_t<ValueType>,
const char*> &&
155 !std::is_same_v<std::decay_t<ValueType>, std::string>
157 set(EnumType key, ValueType&& value);
174 template<
typename E,
typename V,
typename... Args>
175 static void set(E key, V&& value, Args&&... args);
178 template<
typename Asset>
179 static std::unordered_map<Asset, std::string, EnumClassHash>& getFilePaths();
181 template<
typename ConfigType,
typename ValueType>
182 static auto& getConfigs();
187#include "../../../src/Manifests/Manifest.tpp"
Base class for all Malena manifests.
static std::enable_if_t< !std::is_same_v< std::decay_t< ValueType >, const char * > &&!std::is_same_v< std::decay_t< ValueType >, std::string > > set(EnumType key, ValueType &&value)
Register a typed configuration value (int, float, bool, etc.).
static const ValueType & getConfig(ConfigType config)
Retrieve a typed configuration value by enum key.
static void set(EnumType key, std::string value)
Register a string configuration value.
static const std::string & getFilepath(const Asset &asset)
Retrieve the file path registered for an asset enum value.
static void set(E key, V &&value, Args &&... args)
Register multiple key-value pairs in one call.
static void set(EnumType key, const char *filepath)
Register an asset file path.