summaryrefslogtreecommitdiff
path: root/src/server.cpp
diff options
context:
space:
mode:
authorPerttu Ahola <celeron55@gmail.com>2013-05-02 23:52:50 +0300
committersapier <Sapier at GMX dot net>2014-02-01 18:34:26 +0100
commit86a6cca3cf641fc2c88184ad26d2be3d7e7460f7 (patch)
tree25406b5df8244667ae3c494eaf3f945be1d0ae2b /src/server.cpp
parente258675eabc874d31bc9c6cf49e4bbc1f7f3f417 (diff)
downloadminetest-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.cpp30
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> &params)
+{
+ 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> &params)
+{
+ 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);