diff options
author | Perttu Ahola <celeron55@gmail.com> | 2013-05-02 23:52:50 +0300 |
---|---|---|
committer | sapier <Sapier at GMX dot net> | 2014-02-01 18:34:26 +0100 |
commit | 86a6cca3cf641fc2c88184ad26d2be3d7e7460f7 (patch) | |
tree | 25406b5df8244667ae3c494eaf3f945be1d0ae2b /src/server.cpp | |
parent | e258675eabc874d31bc9c6cf49e4bbc1f7f3f417 (diff) | |
download | minetest-86a6cca3cf641fc2c88184ad26d2be3d7e7460f7.tar.gz minetest-86a6cca3cf641fc2c88184ad26d2be3d7e7460f7.tar.bz2 minetest-86a6cca3cf641fc2c88184ad26d2be3d7e7460f7.zip |
Add player:set_sky() with simple skybox support
Diffstat (limited to 'src/server.cpp')
-rw-r--r-- | src/server.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/server.cpp b/src/server.cpp index ce0b44110..644aec1f5 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -3271,6 +3271,26 @@ void Server::SendHUDSetParam(u16 peer_id, u16 param, const std::string &value) m_clients.send(peer_id, 0, data, true); } +void Server::SendSetSky(u16 peer_id, const video::SColor &bgcolor, + const std::string &type, const std::vector<std::string> ¶ms) +{ + std::ostringstream os(std::ios_base::binary); + + // Write command + writeU16(os, TOCLIENT_SET_SKY); + writeARGB8(os, bgcolor); + os<<serializeString(type); + writeU16(os, params.size()); + for(size_t i=0; i<params.size(); i++) + os<<serializeString(params[i]); + + // Make data buffer + std::string s = os.str(); + SharedBuffer<u8> data((u8 *)s.c_str(), s.size()); + // Send as reliable + m_clients.send(peer_id, 0, data, true); +} + void Server::SendTimeOfDay(u16 peer_id, u16 time, f32 time_speed) { DSTACK(__FUNCTION_NAME); @@ -4435,6 +4455,16 @@ void Server::hudSetHotbarSelectedImage(Player *player, std::string name) { SendHUDSetParam(player->peer_id, HUD_PARAM_HOTBAR_SELECTED_IMAGE, name); } +bool Server::setSky(Player *player, const video::SColor &bgcolor, + const std::string &type, const std::vector<std::string> ¶ms) +{ + if (!player) + return false; + + SendSetSky(player->peer_id, bgcolor, type, params); + return true; +} + void Server::notifyPlayers(const std::wstring msg) { SendChatMessage(PEER_ID_INEXISTENT,msg); |