diff options
author | Perttu Ahola <celeron55@gmail.com> | 2012-07-22 17:10:58 +0300 |
---|---|---|
committer | Perttu Ahola <celeron55@gmail.com> | 2012-07-22 17:40:48 +0300 |
commit | 4cc98d7add7b697ac302a6136bbeb95ef78cec45 (patch) | |
tree | efcdd9352f25c99557a1acd5177b6d586ecba881 /src/client.cpp | |
parent | 506203345ba2795aa0af68a434f4b77cf50e664a (diff) | |
download | minetest-4cc98d7add7b697ac302a6136bbeb95ef78cec45.tar.gz minetest-4cc98d7add7b697ac302a6136bbeb95ef78cec45.tar.bz2 minetest-4cc98d7add7b697ac302a6136bbeb95ef78cec45.zip |
minetest.register_on_player_receive_fields()
Diffstat (limited to 'src/client.cpp')
-rw-r--r-- | src/client.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/client.cpp b/src/client.cpp index fdfb49c84..3a2edede3 100644 --- a/src/client.cpp +++ b/src/client.cpp @@ -1773,6 +1773,29 @@ void Client::sendNodemetaFields(v3s16 p, const std::string &formname, Send(0, data, true); } +void Client::sendInventoryFields(const std::string &formname, + const std::map<std::string, std::string> &fields) +{ + std::ostringstream os(std::ios_base::binary); + + writeU16(os, TOSERVER_INVENTORY_FIELDS); + os<<serializeString(formname); + writeU16(os, fields.size()); + for(std::map<std::string, std::string>::const_iterator + i = fields.begin(); i != fields.end(); i++){ + const std::string &name = i->first; + const std::string &value = i->second; + os<<serializeString(name); + os<<serializeLongString(value); + } + + // Make data buffer + std::string s = os.str(); + SharedBuffer<u8> data((u8*)s.c_str(), s.size()); + // Send as reliable + Send(0, data, true); +} + void Client::sendInventoryAction(InventoryAction *a) { std::ostringstream os(std::ios_base::binary); |