forked from Mirrorlandia_minetest/minetest
A bit longer day and a bit shorter night. Client-side.
This commit is contained in:
parent
a9dd12281f
commit
6d4cd2ea1a
@ -139,37 +139,6 @@ void Client::step(float dtime)
|
|||||||
if(dtime > 2.0)
|
if(dtime > 2.0)
|
||||||
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;
|
//dstream<<"Client steps "<<dtime<<std::endl;
|
||||||
|
|
||||||
@ -1003,6 +972,42 @@ void Client::ProcessData(u8 *data, u32 datasize, u16 sender_peer_id)
|
|||||||
time = time % 24000;
|
time = time % 24000;
|
||||||
m_time_of_day.set(time);
|
m_time_of_day.set(time);
|
||||||
//dstream<<"Client: time="<<time<<std::endl;
|
//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)
|
else if(command == TOCLIENT_CHAT_MESSAGE)
|
||||||
{
|
{
|
||||||
|
15
src/main.cpp
15
src/main.cpp
@ -181,7 +181,9 @@ TODO: There has to be some better way to handle static objects than to
|
|||||||
TODO: When server sees that client is removing an inexistent block or
|
TODO: When server sees that client is removing an inexistent block or
|
||||||
adding a block to an existent position, resend the MapBlock.
|
adding a block to an existent position, resend the MapBlock.
|
||||||
|
|
||||||
TODO: Map generator: add other materials underground (mud)
|
TODO: When player dies, throw items on map
|
||||||
|
|
||||||
|
TODO: Map generator version 2
|
||||||
|
|
||||||
Doing now:
|
Doing now:
|
||||||
======================================================================
|
======================================================================
|
||||||
@ -2275,11 +2277,18 @@ int main(int argc, char *argv[])
|
|||||||
camera->setAspectRatio((f32)screensize.X / (f32)screensize.Y);
|
camera->setAspectRatio((f32)screensize.X / (f32)screensize.Y);
|
||||||
|
|
||||||
u32 daynight_ratio = client.getDayNightRatio();
|
u32 daynight_ratio = client.getDayNightRatio();
|
||||||
video::SColor bgcolor = video::SColor(
|
/*video::SColor bgcolor = video::SColor(
|
||||||
255,
|
255,
|
||||||
skycolor.getRed() * daynight_ratio / 1000,
|
skycolor.getRed() * daynight_ratio / 1000,
|
||||||
skycolor.getGreen() * daynight_ratio / 1000,
|
skycolor.getGreen() * daynight_ratio / 1000,
|
||||||
skycolor.getBlue() * daynight_ratio / 1000);
|
skycolor.getBlue() * daynight_ratio / 1000);*/
|
||||||
|
|
||||||
|
u8 l = decode_light((daynight_ratio * LIGHT_SUN) / 1000);
|
||||||
|
video::SColor bgcolor = video::SColor(
|
||||||
|
255,
|
||||||
|
skycolor.getRed() * l / 255,
|
||||||
|
skycolor.getGreen() * l / 255,
|
||||||
|
skycolor.getBlue() * l / 255);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Fog
|
Fog
|
||||||
|
@ -3178,9 +3178,12 @@ void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass)
|
|||||||
/*
|
/*
|
||||||
This has to be done with the mesh_mutex unlocked
|
This has to be done with the mesh_mutex unlocked
|
||||||
*/
|
*/
|
||||||
if(mesh_expired && mesh_update_count < 6
|
// Pretty random but this should work somewhat nicely
|
||||||
&& (d < faraway || mesh_update_count < 3))
|
if(mesh_expired && mesh_update_count < 3
|
||||||
//if(mesh_expired && mesh_update_count < 4)
|
&& (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++;
|
mesh_update_count++;
|
||||||
|
|
||||||
|
@ -876,7 +876,7 @@ Server::Server(
|
|||||||
m_con(PROTOCOL_ID, 512, CONNECTION_TIMEOUT, this),
|
m_con(PROTOCOL_ID, 512, CONNECTION_TIMEOUT, this),
|
||||||
m_thread(this),
|
m_thread(this),
|
||||||
m_emergethread(this),
|
m_emergethread(this),
|
||||||
m_time_of_day(8000),
|
m_time_of_day(9000),
|
||||||
m_time_counter(0),
|
m_time_counter(0),
|
||||||
m_time_of_day_send_timer(0),
|
m_time_of_day_send_timer(0),
|
||||||
m_uptime(0)
|
m_uptime(0)
|
||||||
|
Loading…
Reference in New Issue
Block a user