From cd6becd442a50a6e2f7129108e1c2c495f885764 Mon Sep 17 00:00:00 2001 From: darkrose Date: Tue, 17 Jul 2012 23:00:04 +1000 Subject: Implement node timers --- src/map.cpp | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) (limited to 'src/map.cpp') diff --git a/src/map.cpp b/src/map.cpp index c6e010c45..dc1f45068 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -1881,6 +1881,59 @@ void Map::removeNodeMetadata(v3s16 p) block->m_node_metadata.remove(p_rel); } +NodeTimer Map::getNodeTimer(v3s16 p) +{ + v3s16 blockpos = getNodeBlockPos(p); + v3s16 p_rel = p - blockpos*MAP_BLOCKSIZE; + MapBlock *block = getBlockNoCreateNoEx(blockpos); + if(!block){ + infostream<<"Map::getNodeTimer(): Need to emerge " + <m_node_timers.get(p_rel); + return t; +} + +void Map::setNodeTimer(v3s16 p, NodeTimer t) +{ + v3s16 blockpos = getNodeBlockPos(p); + v3s16 p_rel = p - blockpos*MAP_BLOCKSIZE; + MapBlock *block = getBlockNoCreateNoEx(blockpos); + if(!block){ + infostream<<"Map::setNodeTimer(): Need to emerge " + <m_node_timers.set(p_rel, t); +} + +void Map::removeNodeTimer(v3s16 p) +{ + v3s16 blockpos = getNodeBlockPos(p); + v3s16 p_rel = p - blockpos*MAP_BLOCKSIZE; + MapBlock *block = getBlockNoCreateNoEx(blockpos); + if(block == NULL) + { + infostream<<"WARNING: Map::removeNodeTimer(): Block not found" + <m_node_timers.remove(p_rel); +} + /* ServerMap */ -- cgit v1.2.3