R-TYPE
System.hpp
Go to the documentation of this file.
1 /*
2 ** EPITECH PROJECT, 2022
3 ** r-type
4 ** File description:
5 ** System
6 */
7 
8 #ifndef SYSTEM_HPP_
9 #define SYSTEM_HPP_
10 
11 #include "../../Graphics/Events.hpp"
12 #include "../Clock.hpp"
13 #include "../Component/ComponentManager.hpp"
14 #include "../Entity/EntityManager.hpp"
15 #include "../IncludeCpp.hpp"
16 
17 namespace ECS {
18 class System {
19 public:
20  System(const std::shared_ptr<ComponentManager>& componentManager, const std::shared_ptr<EntityManager>& entityManager);
21  ~System() = default;
22 
23  virtual void update() = 0;
24  virtual bool checkIsValidEntity(Entity entity) = 0;
25 
26 protected:
27  std::shared_ptr<ComponentManager> _componentManager;
28  std::shared_ptr<EntityManager> _entityManager;
29 
30 private:
31 };
32 } // namespace ECS
33 
34 #endif /* !SYSTEM_HPP_ */
Definition: Entity.hpp:30
Definition: System.hpp:18
System(const std::shared_ptr< ComponentManager > &componentManager, const std::shared_ptr< EntityManager > &entityManager)
Definition: System.cpp:18
std::shared_ptr< EntityManager > _entityManager
Definition: System.hpp:28
std::shared_ptr< ComponentManager > _componentManager
Definition: System.hpp:27
virtual void update()=0
virtual bool checkIsValidEntity(Entity entity)=0
~System()=default
Definition: ComponentManager.hpp:14