8 #ifndef PREFABMANAGER_HPP_
9 #define PREFABMANAGER_HPP_
12 #include <unordered_map>
15 #include <nlohmann/json.hpp>
41 const std::string &prefabName,
Registry ®istry,
bool loadTexture =
true,
bool loadFont =
true);
48 bool loadTexture =
true,
bool loadFont =
true);
56 std::reference_wrapper<AssetManager> _assetManager;
57 std::unordered_map<std::string, std::unordered_map<std::type_index, std::any>> _prefabs;
58 std::unordered_map<std::string, std::function<std::pair<std::type_index, std::any>(
json)>> _componentConverters;
59 std::unordered_map<std::type_index, std::function<void(
Registry ®istry,
const std::any &,
Entity)>>
nlohmann::json json
Definition: PrefabManager.hpp:20
Class to manage assets.
Definition: AssetManager.hpp:18
Entity class for the game engine.
Definition: Entity.hpp:18
Class to manage prefabs.
Definition: PrefabManager.hpp:26
~PrefabManager()=default
Destructor.
void loadPrefabFromFile(const std::string &filename)
Load a prefab.
Definition: PrefabManager.cpp:79
bool isPrefabLoaded(const std::string &prefabName) const
Check if prefab is loaded.
Definition: PrefabManager.cpp:147
Entity createEntityFromPrefab(const std::string &prefabName, Registry ®istry, bool loadTexture=true, bool loadFont=true)
Create an entity from a prefab.
Definition: PrefabManager.cpp:102
PrefabManager(AssetManager &assetManager)
Contructor.
Definition: PrefabManager.cpp:17
Entity component system, handling entities, components and systems.
Definition: Registry.hpp:31
Definition: AssetManager.hpp:15