R-TYPE
Clock.hpp
Go to the documentation of this file.
1 #ifndef CLOCK_HPP
2 #define CLOCK_HPP
3 
5 #include <chrono>
6 #include <map>
7 #include <utility>
8 #include <deque>
9 
10 class Clock {
11 public:
12  Clock() = default;
13  ~Clock() = default;
14  void addClockComponent(size_t entityId, ECS::ComponentType type, int updateTime);
15  std::deque<std::pair<size_t, std::deque<ECS::ComponentType>>> getEntitiesToUpdate();
16  int componentUpdateNumber(size_t entity, ECS::ComponentType type);
17  void eraseClockComponent(size_t entityId, ECS::ComponentType, bool debug = false);
18  void eraseClock(size_t entityId);
19 
20 private:
21  std::deque<size_t> _entities;
22  std::map<size_t, std::deque<ECS::ComponentType>> _timersList;
23  std::map<size_t, std::map<ECS::ComponentType, std::clock_t>> _previousIte;
24  std::map<size_t, std::map<ECS::ComponentType, int>> _timer;
25 };
26 
27 #endif
Definition: Clock.hpp:10
void eraseClock(size_t entityId)
Definition: Clock.cpp:126
~Clock()=default
void addClockComponent(size_t entityId, ECS::ComponentType type, int updateTime)
Definition: Clock.cpp:13
std::deque< std::pair< size_t, std::deque< ECS::ComponentType > > > getEntitiesToUpdate()
Definition: Clock.cpp:42
int componentUpdateNumber(size_t entity, ECS::ComponentType type)
Definition: Clock.cpp:71
void eraseClockComponent(size_t entityId, ECS::ComponentType, bool debug=false)
Definition: Clock.cpp:93
Clock()=default
ComponentType
Definition: ComponentManager.hpp:15