Architecture Arcade
Architecture Commune Arcade
ISystem.hpp
Go to the documentation of this file.
1 /*
2 ** EPITECH PROJECT, 2023
3 ** Archi Arcade Promo 2026 Toulouse
4 ** File description:
5 ** Systems are function that will run in every frame using the `run` method
6 */
7 
8 #pragma once
9 
10 #include <cstddef>
11 #include "IEntityManager.hpp"
12 #include "IEventManager.hpp"
13 
14 namespace Arcade {
15  namespace Game {
16  class IGameModule;
17  } // namespace Core
18  namespace Graph {
19  class IDisplayModule;
20  } // namespace Graph
21 
22  namespace ECS {
28  class ISystem {
29  public:
30  virtual ~ISystem() = default;
34  virtual void run(double deltaTime,
35  Arcade::ECS::IEventManager &eventManager,
36  Arcade::ECS::IEntityManager &currentEntityManager) = 0;
37  };
38  } // namespace ECS
39 } // namespace Arcade
Definition: ArcadeStruct.hpp:10
Manage the creation of entities and their access.
Definition: IEntityManager.hpp:19
The IEventManager interface.
Definition: IEventManager.hpp:105
The ISystem interface.
Definition: ISystem.hpp:28
virtual ~ISystem()=default
virtual void run(double deltaTime, Arcade::ECS::IEventManager &eventManager, Arcade::ECS::IEntityManager &currentEntityManager)=0
Run the system implementation.
The IGameModule interface.
Definition: IGameModule.hpp:24
The IDisplayModule interface.
Definition: IDisplayModule.hpp:21