mirror of
https://github.com/luanti-org/luanti.git
synced 2025-10-12 16:15:20 +02:00
Add emerge.cpp, initial EmergeThread changes
- Neatly placed all emerge related code into a new file, emerge.cpp - Greatly cleaned up the code in EmergeThread::Thread() - Reworked Emerge queue. Now an actual std::queue of v3s16 block positions - Removed the completely unnecessary map of peer ids requesting blocks
This commit is contained in:
39
src/server.h
39
src/server.h
@@ -39,6 +39,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
#include "rollback_interface.h" // Needed for rollbackRevertActions()
|
||||
#include <list> // Needed for rollbackRevertActions()
|
||||
|
||||
#define PP(x) "("<<(x).X<<","<<(x).Y<<","<<(x).Z<<")"
|
||||
|
||||
struct LuaState;
|
||||
typedef struct lua_State lua_State;
|
||||
class IWritableItemDefManager;
|
||||
@@ -47,6 +49,7 @@ class IWritableCraftDefManager;
|
||||
class EventManager;
|
||||
class PlayerSAO;
|
||||
class IRollbackManager;
|
||||
class EmergeManager;
|
||||
|
||||
class ServerError : public std::exception
|
||||
{
|
||||
@@ -120,11 +123,9 @@ public:
|
||||
If it is, update the peer to it and quit.
|
||||
*/
|
||||
core::list<QueuedBlockEmerge*>::Iterator i;
|
||||
for(i=m_queue.begin(); i!=m_queue.end(); i++)
|
||||
{
|
||||
for(i=m_queue.begin(); i!=m_queue.end(); i++) {
|
||||
QueuedBlockEmerge *q = *i;
|
||||
if(q->pos == pos)
|
||||
{
|
||||
if (q->pos == pos) {
|
||||
q->peer_ids[peer_id] = flags;
|
||||
return;
|
||||
}
|
||||
@@ -136,7 +137,7 @@ public:
|
||||
*/
|
||||
QueuedBlockEmerge *q = new QueuedBlockEmerge;
|
||||
q->pos = pos;
|
||||
if(peer_id != 0)
|
||||
if (peer_id != 0)
|
||||
q->peer_ids[peer_id] = flags;
|
||||
m_queue.push_back(q);
|
||||
}
|
||||
@@ -200,30 +201,6 @@ public:
|
||||
void * Thread();
|
||||
};
|
||||
|
||||
class EmergeThread : public SimpleThread
|
||||
{
|
||||
Server *m_server;
|
||||
|
||||
public:
|
||||
|
||||
EmergeThread(Server *server):
|
||||
SimpleThread(),
|
||||
m_server(server)
|
||||
{
|
||||
}
|
||||
|
||||
void * Thread();
|
||||
|
||||
void trigger()
|
||||
{
|
||||
setRun(true);
|
||||
if(IsRunning() == false)
|
||||
{
|
||||
Start();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
struct PlayerInfo
|
||||
{
|
||||
u16 id;
|
||||
@@ -785,9 +762,9 @@ private:
|
||||
// The server mainly operates in this thread
|
||||
ServerThread m_thread;
|
||||
// This thread fetches and generates map
|
||||
EmergeThread m_emergethread;
|
||||
//EmergeThread m_emergethread;
|
||||
// Queue of block coordinates to be processed by the emerge thread
|
||||
BlockEmergeQueue m_emerge_queue;
|
||||
//BlockEmergeQueue m_emerge_queue;
|
||||
|
||||
/*
|
||||
Time related stuff
|
||||
|
Reference in New Issue
Block a user