if(dtime > 2.0)
dtime = 2.0;
- /*
- Day/night
- */
- {
- s32 d = 8;
- s32 t = (((m_time_of_day.get() + 24000/d/2)%24000)/(24000/d));
- s32 dn = 0;
- if(t == d/4 || t == (d-d/4))
- dn = 1;
- else if(t < d/4 || t > (d-d/4))
- dn = 2;
- else
- dn = 0;
-
- u32 dr = 1000;
- if(dn == 0)
- dr = 1000;
- if(dn == 1)
- dr = 600;
- if(dn == 2)
- dr = 300;
-
- if(dr != m_env.getDayNightRatio())
- {
- //dstream<<"dr="<<dr<<std::endl;
- dout_client<<DTIME<<"Client: changing day-night ratio"<<std::endl;
- m_env.setDayNightRatio(dr);
- m_env.expireMeshes(true);
- }
- }
-
//dstream<<"Client steps "<<dtime<<std::endl;
time = time % 24000;
m_time_of_day.set(time);
//dstream<<"Client: time="<<time<<std::endl;
+
+ /*
+ Day/night
+
+ time_of_day:
+ 0 = midnight
+ 12000 = midday
+ */
+ {
+ const s32 daylength = 8;
+ const s32 nightlength = 2;
+ const s32 daytimelength = 4;
+ s32 d = daylength;
+ s32 t = (((m_time_of_day.get()/* + 24000/d/2*/)%24000)/(24000/d));
+ u32 dr;
+ if(t < nightlength/2 || t >= d - nightlength/2)
+ dr = 350;
+ else if(t >= d/2 - daytimelength/2 && t < d/2 + daytimelength/2)
+ dr = 1000;
+ else
+ dr = 750;
+
+ dstream<<"time_of_day="<<m_time_of_day.get()
+ <<", t="<<t
+ <<", dr="<<dr
+ <<std::endl;
+
+ if(dr != m_env.getDayNightRatio())
+ {
+ //dstream<<"dr="<<dr<<std::endl;
+ dout_client<<DTIME<<"Client: changing day-night ratio"<<std::endl;
+ m_env.setDayNightRatio(dr);
+ m_env.expireMeshes(true);
+ }
+ }
+
}
else if(command == TOCLIENT_CHAT_MESSAGE)
{
TODO: When server sees that client is removing an inexistent block or\r
adding a block to an existent position, resend the MapBlock.\r
\r
-TODO: Map generator: add other materials underground (mud)\r
+TODO: When player dies, throw items on map\r
+\r
+TODO: Map generator version 2\r
\r
Doing now:\r
======================================================================\r
camera->setAspectRatio((f32)screensize.X / (f32)screensize.Y);\r
\r
u32 daynight_ratio = client.getDayNightRatio();\r
- video::SColor bgcolor = video::SColor(\r
+ /*video::SColor bgcolor = video::SColor(\r
255,\r
skycolor.getRed() * daynight_ratio / 1000,\r
skycolor.getGreen() * daynight_ratio / 1000,\r
- skycolor.getBlue() * daynight_ratio / 1000);\r
+ skycolor.getBlue() * daynight_ratio / 1000);*/\r
+\r
+ u8 l = decode_light((daynight_ratio * LIGHT_SUN) / 1000);\r
+ video::SColor bgcolor = video::SColor(\r
+ 255,\r
+ skycolor.getRed() * l / 255,\r
+ skycolor.getGreen() * l / 255,\r
+ skycolor.getBlue() * l / 255);\r
\r
/*\r
Fog\r
/*
This has to be done with the mesh_mutex unlocked
*/
- if(mesh_expired && mesh_update_count < 6
- && (d < faraway || mesh_update_count < 3))
- //if(mesh_expired && mesh_update_count < 4)
+ // Pretty random but this should work somewhat nicely
+ if(mesh_expired && mesh_update_count < 3
+ && (d < faraway || mesh_update_count < 2
+ || m_control.range_all))
+ /*if(mesh_expired && mesh_update_count < 6
+ && (d < faraway || mesh_update_count < 3))*/
{
mesh_update_count++;
m_con(PROTOCOL_ID, 512, CONNECTION_TIMEOUT, this),
m_thread(this),
m_emergethread(this),
- m_time_of_day(8000),
+ m_time_of_day(9000),
m_time_counter(0),
m_time_of_day_send_timer(0),
m_uptime(0)