1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-06-27 16:36:03 +00:00

Dynamic sky, fog and cloud colors; sun and moon

This commit is contained in:
Perttu Ahola 2012-03-16 16:34:30 +02:00
parent 58bed83d03
commit 2e90ed07ac
30 changed files with 1132 additions and 244 deletions

View file

@ -247,14 +247,16 @@ Client::Client(
m_animation_time(0),
m_crack_level(-1),
m_crack_pos(0,0,0),
m_time_of_day(0),
m_map_seed(0),
m_password(password),
m_access_denied(false),
m_texture_receive_progress(0),
m_textures_received(false),
m_itemdef_received(false),
m_nodedef_received(false)
m_nodedef_received(false),
m_time_of_day_set(false),
m_last_time_of_day_f(-1),
m_time_of_day_update_timer(0)
{
m_packetcounter_timer = 0.0;
//m_delete_unused_sectors_timer = 0.0;
@ -333,6 +335,8 @@ void Client::step(float dtime)
if(m_animation_time > 60.0)
m_animation_time -= 60.0;
m_time_of_day_update_timer += dtime;
//infostream<<"Client steps "<<dtime<<std::endl;
{
@ -1044,22 +1048,37 @@ void Client::ProcessData(u8 *data, u32 datasize, u16 sender_peer_id)
u16 time_of_day = readU16(&data[2]);
time_of_day = time_of_day % 24000;
//infostream<<"Client: time_of_day="<<time_of_day<<std::endl;
/*
time_of_day:
0 = midnight
12000 = midday
*/
{
m_env.setTimeOfDay(time_of_day);
u32 dr = m_env.getDayNightRatio();
infostream<<"Client: time_of_day="<<time_of_day
<<", dr="<<dr
<<std::endl;
float time_speed = 0;
if(datasize >= 2 + 2 + 4){
time_speed = readF1000(&data[4]);
} else {
// Old message; try to approximate speed of time by ourselves
float time_of_day_f = (float)time_of_day / 24000.0;
float tod_diff_f = 0;
if(time_of_day_f < 0.2 && m_last_time_of_day_f > 0.8)
tod_diff_f = time_of_day_f - m_last_time_of_day_f + 1.0;
else
tod_diff_f = time_of_day_f - m_last_time_of_day_f;
m_last_time_of_day_f = time_of_day_f;
float time_diff = m_time_of_day_update_timer;
m_time_of_day_update_timer = 0;
if(m_time_of_day_set){
time_speed = 3600.0*24.0 * tod_diff_f / time_diff;
infostream<<"Client: Measured time_of_day speed (old format): "
<<time_speed<<" tod_diff_f="<<tod_diff_f
<<" time_diff="<<time_diff<<std::endl;
}
}
// Update environment
m_env.setTimeOfDay(time_of_day);
m_env.setTimeOfDaySpeed(time_speed);
m_time_of_day_set = true;
u32 dr = m_env.getDayNightRatio();
verbosestream<<"Client: time_of_day="<<time_of_day
<<" time_speed="<<time_speed
<<" dr="<<dr<<std::endl;
}
else if(command == TOCLIENT_CHAT_MESSAGE)
{
@ -2075,12 +2094,6 @@ void Client::setCrack(int level, v3s16 pos)
}
}
u32 Client::getDayNightRatio()
{
//JMutexAutoLock envlock(m_env_mutex); //bulk comment-out
return m_env.getDayNightRatio();
}
u16 Client::getHP()
{
Player *player = m_env.getLocalPlayer();