diff options
author | Loïc Blot <nerzhul@users.noreply.github.com> | 2020-04-10 19:49:20 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-10 19:49:20 +0200 |
commit | f648fb76aef96a1da608c64346fc65d4dd44caa8 (patch) | |
tree | 5f46a0d40742c7ae3e81f58728a702c8f3d6035e /src/serverobject.cpp | |
parent | 2349d31bae1bfc4d58fd88efbc88261e69b11dad (diff) | |
download | minetest-f648fb76aef96a1da608c64346fc65d4dd44caa8.tar.gz minetest-f648fb76aef96a1da608c64346fc65d4dd44caa8.tar.bz2 minetest-f648fb76aef96a1da608c64346fc65d4dd44caa8.zip |
Drop genericobject.{cpp,h} (#9629)
* Drop genericobject.{cpp,h}
This file is not for generic object but for ActiveObject message passing.
Put ownership of the various commands to the right objects and cleanup the related code.
* Protect ServerActiveObject::m_messages_out
* typo fix
Diffstat (limited to 'src/serverobject.cpp')
-rw-r--r-- | src/serverobject.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/serverobject.cpp b/src/serverobject.cpp index 1ed33f66b..119a41b7b 100644 --- a/src/serverobject.cpp +++ b/src/serverobject.cpp @@ -81,3 +81,34 @@ bool ServerActiveObject::setWieldedItem(const ItemStack &item) { return false; } + +std::string ServerActiveObject::generateUpdateInfantCommand(u16 infant_id, u16 protocol_version) +{ + std::ostringstream os(std::ios::binary); + // command + writeU8(os, AO_CMD_SPAWN_INFANT); + // parameters + writeU16(os, infant_id); + writeU8(os, getSendType()); + os << serializeLongString(getClientInitializationData(protocol_version)); + return os.str(); +} + +std::string ServerActiveObject::generateUpdateNametagAttributesCommand(const video::SColor &color) const +{ + std::ostringstream os(std::ios::binary); + // command + writeU8(os, AO_CMD_UPDATE_NAMETAG_ATTRIBUTES); + // parameters + writeU8(os, 1); // version for forward compatibility + writeARGB8(os, color); + return os.str(); +} + +void ServerActiveObject::dumpAOMessagesToQueue(std::queue<ActiveObjectMessage> &queue) +{ + while (!m_messages_out.empty()) { + queue.push(m_messages_out.front()); + m_messages_out.pop(); + } +}
\ No newline at end of file |