From 0ca9423b8b2cf7bd1435fb09eba7a9f50d444864 Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Sun, 19 Dec 2010 16:51:45 +0200 Subject: day/night working client side --- src/server.cpp | 97 +++++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 73 insertions(+), 24 deletions(-) (limited to 'src/server.cpp') diff --git a/src/server.cpp b/src/server.cpp index 6b026d9a7..acb4003da 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -285,6 +285,12 @@ void RemoteClient::GetNextBlocks(Server *server, float dtime, { DSTACK(__FUNCTION_NAME); + // Increment timers + { + JMutexAutoLock lock(m_blocks_sent_mutex); + m_nearest_unsent_reset_timer += dtime; + } + // Won't send anything if already sending { JMutexAutoLock lock(m_blocks_sending_mutex); @@ -320,12 +326,13 @@ void RemoteClient::GetNextBlocks(Server *server, float dtime, m_last_center = center; } - static float reset_counter = 0; - reset_counter += dtime; - if(reset_counter > 5.0) + /*dstream<<"m_nearest_unsent_reset_timer=" + < 5.0) { - reset_counter = 0; + m_nearest_unsent_reset_timer = 0; m_nearest_unsent_d = 0; + //dstream<<"Resetting m_nearest_unsent_d"<= maximum_simultaneous_block_sends_now) { /*dstream<<"Not sending more blocks. Queue full. " <= 0.25 && m_flow_active_nodes.size() > 0) { @@ -1082,7 +1122,7 @@ void Server::AsyncRunStep() // Periodically print some info { - static float counter = 0.0; + float &counter = m_print_info_timer; counter += dtime; if(counter >= 30.0) { @@ -1208,7 +1248,7 @@ void Server::AsyncRunStep() // Send object positions { - static float counter = 0.0; + float &counter = m_objectdata_timer; counter += dtime; if(counter >= g_settings.getFloat("objectdata_interval")) { @@ -1223,7 +1263,7 @@ void Server::AsyncRunStep() // Trigger emergethread (it gets somehow gets to a // non-triggered but bysy state sometimes) { - static float counter = 0.0; + float &counter = m_emergethread_trigger_timer; counter += dtime; if(counter >= 2.0) { @@ -1235,7 +1275,7 @@ void Server::AsyncRunStep() // Save map { - static float counter = 0.0; + float &counter = m_savemap_timer; counter += dtime; if(counter >= SERVER_MAP_SAVE_INTERVAL) { @@ -1589,14 +1629,14 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id) if(action == 0) { - u8 material; + u8 content; try { - // Get material at position - material = m_env.getMap().getNode(p_under).d; + // Get content at position + content = m_env.getMap().getNode(p_under).d; // If it's not diggable, do nothing - if(content_diggable(material) == false) + if(content_diggable(content) == false) { return; } @@ -1615,7 +1655,16 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id) JMutexAutoLock(client->m_dig_mutex); client->m_dig_tool_item = 0; client->m_dig_position = p_under; - client->m_dig_time_remaining = 1.0; + float dig_time = 0.5; + if(content == CONTENT_STONE) + { + dig_time = 1.5; + } + else if(content == CONTENT_TORCH) + { + dig_time = 0.0; + } + client->m_dig_time_remaining = dig_time; // Reset build time counter getClient(peer->id)->m_time_from_building.set(0.0); -- cgit v1.2.3