8 #ifndef SYSTEMMANAGER_HPP_
9 #define SYSTEMMANAGER_HPP_
11 #include "../Component/ComponentManager.hpp"
12 #include "../Entity/EntityManager.hpp"
13 #include "../IncludeCpp.hpp"
14 #include "../IncludeSystem.hpp"
19 SystemManager(
const std::shared_ptr<ComponentManager>& componentManager,
const std::shared_ptr<EntityManager>& entityManager);
22 template <
typename System>
25 _systems.emplace(
typeid(
System),
System(_componentManager, _entityManager));
26 return std::any_cast<System&>(_systems.at(
typeid(
System)));
29 template <
class System>
32 return std::any_cast<System&>(_systems.at(
typeid(
System)));
37 std::unordered_map<std::type_index, std::any> _systems;
38 std::shared_ptr<ComponentManager> _componentManager;
39 std::shared_ptr<EntityManager> _entityManager;
Definition: SystemManager.hpp:17
SystemManager(const std::shared_ptr< ComponentManager > &componentManager, const std::shared_ptr< EntityManager > &entityManager)
Definition: SystemManager.cpp:18
System & getSystem()
Definition: SystemManager.hpp:30
System & addSystem()
Definition: SystemManager.hpp:23
Definition: System.hpp:18
Definition: ComponentManager.hpp:14