#include "constants.h"
#include "serialization.h" // for SER_FMT_VER_INVALID
#include "jthread/jmutex.h"
+#include "network/networkpacket.h"
#include <list>
#include <vector>
void SetBlockNotSent(v3s16 p);
void SetBlocksNotSent(std::map<v3s16, MapBlock*> &blocks);
+ /**
+ * tell client about this block being modified right now.
+ * this information is required to requeue the block in case it's "on wire"
+ * while modification is processed by server
+ * @param p position of modified block
+ */
+ void ResendBlockIfOnWire(v3s16 p);
+
s32 SendingCount()
{
return m_blocks_sending.size();
void step(float dtime);
/* get list of active client id's */
- std::list<u16> getClientIDs(ClientState min_state=CS_Active);
+ std::vector<u16> getClientIDs(ClientState min_state=CS_Active);
/* get list of client player names */
std::vector<std::string> getPlayerNames();
/* send message to client */
- void send(u16 peer_id, u8 channelnum, SharedBuffer<u8> data, bool reliable);
+ void send(u16 peer_id, u8 channelnum, NetworkPacket* pkt, bool reliable, bool deletepkt=true);
/* send to all clients */
- void sendToAll(u16 channelnum, SharedBuffer<u8> data, bool reliable);
+ void sendToAll(u16 channelnum, NetworkPacket* pkt, bool reliable);
/* delete a client */
void DeleteClient(u16 peer_id);
JMutex m_env_mutex;
float m_print_info_timer;
-
+
static const char *statenames[];
};