mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
Implement node timers
This commit is contained in:
parent
829f262c79
commit
cd6becd442
12 changed files with 368 additions and 45 deletions
53
src/map.cpp
53
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 "
|
||||
<<PP(blockpos)<<std::endl;
|
||||
block = emergeBlock(blockpos, false);
|
||||
}
|
||||
if(!block)
|
||||
{
|
||||
infostream<<"WARNING: Map::getNodeTimer(): Block not found"
|
||||
<<std::endl;
|
||||
return NodeTimer();
|
||||
}
|
||||
NodeTimer t = block->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 "
|
||||
<<PP(blockpos)<<std::endl;
|
||||
block = emergeBlock(blockpos, false);
|
||||
}
|
||||
if(!block)
|
||||
{
|
||||
infostream<<"WARNING: Map::setNodeTimer(): Block not found"
|
||||
<<std::endl;
|
||||
return;
|
||||
}
|
||||
block->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"
|
||||
<<std::endl;
|
||||
return;
|
||||
}
|
||||
block->m_node_timers.remove(p_rel);
|
||||
}
|
||||
|
||||
/*
|
||||
ServerMap
|
||||
*/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue