21 #include "hx3d/utils/timer_manager.hpp" 23 #include "hx3d/utils/algorithm.hpp" 24 #include "hx3d/utils/log.hpp" 28 TimerManager::TimerManager() {}
31 _registered[name] = timer;
35 _registered[name].initialize(delay, callback, loop);
39 _registered[name].reset();
43 if (_registered.find(name) != _registered.end()) {
44 _registered.erase(name);
49 _temporaries.push_back(timer);
56 _temporaries.push_back(timer);
60 std::vector<std::string> toRemoveReg;
61 std::vector<int> toRemoveTemp;
63 for (
auto& pair: _registered) {
64 auto& reg = pair.second;
68 toRemoveReg.push_back(pair.first);
76 toRemoveTemp.push_back(i);
82 while (!toRemoveReg.empty()) {
83 _registered.erase(toRemoveReg.back());
86 while (!toRemoveTemp.empty()) {
87 _temporaries.erase(_temporaries.begin() + toRemoveTemp.back());
void addTemporaryTimer(CallbackTimer &timer)
Add an existing temporary timer.
void clear()
Clear all the timers.
void resetNamedTimer(std::string name)
Reset a named timer.
void update(float delta)
Update the timer.
Improved timer with callback execution.
void initialize(float delay, std::function< void()> function, bool loop=false)
Initialize the timer. The delay is in milliseconds.
void removeNamedTimer(std::string name)
Remove a named timer.
void createTemporaryTimer(float delay, std::function< void()> callback, bool loop=false)
Create a new temporary timer.
void apply(Container &container, Function func)
Function application helper on a container.
void update(float delta)
Update the timers.
bool hasEnded()
Did the timer ended ?
void createNamedTimer(std::string name, float delay, std::function< void()> callback, bool loop=false)
Create a new named timer.
void addNamedTimer(std::string name, CallbackTimer &timer)
Add an existing named timer.