summaryrefslogtreecommitdiff
path: root/src/server.cpp
diff options
context:
space:
mode:
authorPerttu Ahola <celeron55@gmail.com>2013-10-18 11:53:19 +0300
committersapier <Sapier at GMX dot net>2014-02-01 18:38:21 +0100
commit6a3fa9df12d5982f84e83e1c61ff757edc1043f4 (patch)
tree074930c80821663e70101f8fafc0a4c46c9d9a3b /src/server.cpp
parent86a6cca3cf641fc2c88184ad26d2be3d7e7460f7 (diff)
downloadminetest-6a3fa9df12d5982f84e83e1c61ff757edc1043f4.tar.gz
minetest-6a3fa9df12d5982f84e83e1c61ff757edc1043f4.tar.bz2
minetest-6a3fa9df12d5982f84e83e1c61ff757edc1043f4.zip
Add player:override_day_night_ratio() for arbitrarily controlling sunlight brightness
Diffstat (limited to 'src/server.cpp')
-rw-r--r--src/server.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/server.cpp b/src/server.cpp
index 644aec1f5..5b799eb2c 100644
--- a/src/server.cpp
+++ b/src/server.cpp
@@ -3291,6 +3291,23 @@ void Server::SendSetSky(u16 peer_id, const video::SColor &bgcolor,
m_clients.send(peer_id, 0, data, true);
}
+void Server::SendOverrideDayNightRatio(u16 peer_id, bool do_override,
+ float ratio)
+{
+ std::ostringstream os(std::ios_base::binary);
+
+ // Write command
+ writeU16(os, TOCLIENT_OVERRIDE_DAY_NIGHT_RATIO);
+ writeU8(os, do_override);
+ writeU16(os, ratio*65535);
+
+ // 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);
@@ -4465,6 +4482,16 @@ bool Server::setSky(Player *player, const video::SColor &bgcolor,
return true;
}
+bool Server::overrideDayNightRatio(Player *player, bool do_override,
+ float ratio)
+{
+ if (!player)
+ return false;
+
+ SendOverrideDayNightRatio(player->peer_id, do_override, ratio);
+ return true;
+}
+
void Server::notifyPlayers(const std::wstring msg)
{
SendChatMessage(PEER_ID_INEXISTENT,msg);