diff options
Diffstat (limited to 'src/server.cpp')
-rw-r--r-- | src/server.cpp | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/server.cpp b/src/server.cpp index 1b471fd09..acfc7446f 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -1637,6 +1637,11 @@ void Server::AsyncRunStep() dstream<<"Server: MEET_REMOVENODE"<<std::endl; sendRemoveNode(event->p, event->already_known_by_peer); } + else if(event->type == MEET_BLOCK_NODE_METADATA_CHANGED) + { + dstream<<"Server: MEET_BLOCK_NODE_METADATA_CHANGED"<<std::endl; + setBlockNotSent(event->p); + } else if(event->type == MEET_OTHER) { dstream<<"WARNING: Server: MEET_OTHER not implemented" @@ -1676,7 +1681,7 @@ void Server::AsyncRunStep() Step node metadata TODO: Move to ServerEnvironment and utilize active block stuff */ - { + /*{ //TimeTaker timer("Step node metadata"); JMutexAutoLock envlock(m_env_mutex); @@ -1686,6 +1691,8 @@ void Server::AsyncRunStep() core::map<v3s16, MapBlock*> changed_blocks; m_env.getMap().nodeMetadataStep(dtime, changed_blocks); + + // Use setBlockNotSent for(core::map<v3s16, MapBlock*>::Iterator i = changed_blocks.getIterator(); @@ -1701,7 +1708,7 @@ void Server::AsyncRunStep() client->SetBlockNotSent(block->getPos()); } } - } + }*/ /* Trigger emergethread (it somehow gets to a non-triggered but @@ -3655,6 +3662,17 @@ void Server::sendAddNode(v3s16 p, MapNode n, u16 ignore_id, } } +void Server::setBlockNotSent(v3s16 p) +{ + for(core::map<u16, RemoteClient*>::Iterator + i = m_clients.getIterator(); + i.atEnd()==false; i++) + { + RemoteClient *client = i.getNode()->getValue(); + client->SetBlockNotSent(p); + } +} + void Server::SendBlockNoLock(u16 peer_id, MapBlock *block, u8 ver) { DSTACK(__FUNCTION_NAME); |