diff options
author | Elias Fleckenstein <54945686+EliasFleckenstein03@users.noreply.github.com> | 2020-11-04 16:44:42 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-04 16:44:42 +0100 |
commit | 5d9ae5a91c544fc7fbd475decf47cef7e09ef8fc (patch) | |
tree | c980d614fec4a5495798be3e79e033229062c3cd /src/nodetimer.h | |
parent | 28f6a79706b088c37268a59d90878220dc4ef9c7 (diff) | |
parent | 3af10766fd2b58b068e970266724d7eb10e9316b (diff) | |
download | dragonfireclient-5d9ae5a91c544fc7fbd475decf47cef7e09ef8fc.tar.xz |
Merge branch 'master' into master
Diffstat (limited to 'src/nodetimer.h')
-rw-r--r-- | src/nodetimer.h | 40 |
1 files changed, 22 insertions, 18 deletions
diff --git a/src/nodetimer.h b/src/nodetimer.h index 40e54ccc5..4edc38ba8 100644 --- a/src/nodetimer.h +++ b/src/nodetimer.h @@ -36,10 +36,11 @@ class NodeTimer { public: NodeTimer() = default; - NodeTimer(const v3s16 &position_): - position(position_) {} - NodeTimer(f32 timeout_, f32 elapsed_, v3s16 position_): - timeout(timeout_), elapsed(elapsed_), position(position_) {} + NodeTimer(const v3s16 &position_) : position(position_) {} + NodeTimer(f32 timeout_, f32 elapsed_, v3s16 position_) : + timeout(timeout_), elapsed(elapsed_), position(position_) + { + } ~NodeTimer() = default; void serialize(std::ostream &os) const; @@ -64,9 +65,10 @@ public: void deSerialize(std::istream &is, u8 map_format_version); // Get timer - NodeTimer get(const v3s16 &p) { + NodeTimer get(const v3s16 &p) + { std::map<v3s16, std::multimap<double, NodeTimer>::iterator>::iterator n = - m_iterators.find(p); + m_iterators.find(p); if (n == m_iterators.end()) return NodeTimer(); NodeTimer t = n->second->second; @@ -74,10 +76,11 @@ public: return t; } // Deletes timer - void remove(v3s16 p) { + void remove(v3s16 p) + { std::map<v3s16, std::multimap<double, NodeTimer>::iterator>::iterator n = - m_iterators.find(p); - if(n != m_iterators.end()) { + m_iterators.find(p); + if (n != m_iterators.end()) { double removed_time = n->second->first; m_timers.erase(n->second); m_iterators.erase(n); @@ -93,25 +96,26 @@ public: } } // Undefined behaviour if there already is a timer - void insert(NodeTimer timer) { + void insert(NodeTimer timer) + { v3s16 p = timer.position; double trigger_time = m_time + (double)(timer.timeout - timer.elapsed); - std::multimap<double, NodeTimer>::iterator it = - m_timers.insert(std::pair<double, NodeTimer>( - trigger_time, timer - )); - m_iterators.insert( - std::pair<v3s16, std::multimap<double, NodeTimer>::iterator>(p, it)); + std::multimap<double, NodeTimer>::iterator it = m_timers.insert( + std::pair<double, NodeTimer>(trigger_time, timer)); + m_iterators.insert(std::pair<v3s16, + std::multimap<double, NodeTimer>::iterator>(p, it)); if (m_next_trigger_time == -1. || trigger_time < m_next_trigger_time) m_next_trigger_time = trigger_time; } // Deletes old timer and sets a new one - inline void set(const NodeTimer &timer) { + inline void set(const NodeTimer &timer) + { remove(timer.position); insert(timer); } // Deletes all timers - void clear() { + void clear() + { m_timers.clear(); m_iterators.clear(); m_next_trigger_time = -1.; |