diff options
author | Perttu Ahola <celeron55@gmail.com> | 2011-11-15 20:32:56 +0200 |
---|---|---|
committer | Perttu Ahola <celeron55@gmail.com> | 2011-11-29 19:13:44 +0200 |
commit | 6da8cb00e27106221e013aa6d93965b95e630a18 (patch) | |
tree | c463f02b5ecced9e18672b6b8b9c923b1f2384d0 /src/server.cpp | |
parent | eed727c61b51f46f6d172c56ecd26a3b1752d449 (diff) | |
download | minetest-6da8cb00e27106221e013aa6d93965b95e630a18.tar.gz minetest-6da8cb00e27106221e013aa6d93965b95e630a18.tar.bz2 minetest-6da8cb00e27106221e013aa6d93965b95e630a18.zip |
Node definitions transfer
Diffstat (limited to 'src/server.cpp')
-rw-r--r-- | src/server.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/server.cpp b/src/server.cpp index 698174e0a..45630d301 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -2145,6 +2145,9 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id) // Send tool definitions SendToolDef(m_con, peer_id, m_toolmgr); + // Send node definitions + SendNodeDef(m_con, peer_id, m_nodemgr); + // Send player info to all players SendPlayerInfos(); @@ -3637,6 +3640,7 @@ void Server::SendToolDef(con::Connection &con, u16 peer_id, IToolDefManager *tooldef) { DSTACK(__FUNCTION_NAME); + infostream<<"Server: Sending tool definitions"<<std::endl; std::ostringstream os(std::ios_base::binary); /* @@ -3651,6 +3655,34 @@ void Server::SendToolDef(con::Connection &con, u16 peer_id, // Make data buffer std::string s = os.str(); + infostream<<"Server: Sending tool definitions: data size: " + <<s.size()<<std::endl; + SharedBuffer<u8> data((u8*)s.c_str(), s.size()); + // Send as reliable + con.Send(peer_id, 0, data, true); +} + +void Server::SendNodeDef(con::Connection &con, u16 peer_id, + INodeDefManager *nodedef) +{ + DSTACK(__FUNCTION_NAME); + infostream<<"Server: Sending node definitions"<<std::endl; + std::ostringstream os(std::ios_base::binary); + + /* + u16 command + u32 length of the next item + serialized NodeDefManager + */ + writeU16(os, TOCLIENT_NODEDEF); + std::ostringstream tmp_os(std::ios::binary); + nodedef->serialize(tmp_os); + os<<serializeLongString(tmp_os.str()); + + // Make data buffer + std::string s = os.str(); + infostream<<"Server: Sending node definitions: data size: " + <<s.size()<<std::endl; SharedBuffer<u8> data((u8*)s.c_str(), s.size()); // Send as reliable con.Send(peer_id, 0, data, true); |