From 1d44a98f2f6013c0f7ce82215c1faa11ad4a0579 Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Fri, 27 Jul 2012 13:45:49 +0300 Subject: ABM and liquid overload skip --- src/environment.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'src/environment.cpp') diff --git a/src/environment.cpp b/src/environment.cpp index 571980498..e3e621065 100644 --- a/src/environment.cpp +++ b/src/environment.cpp @@ -326,6 +326,7 @@ ServerEnvironment::ServerEnvironment(ServerMap *map, lua_State *L, m_emerger(emerger), m_random_spawn_timer(3), m_send_recommended_timer(0), + m_active_block_interval_overload_skip(0), m_game_time(0), m_game_time_fraction_counter(0) { @@ -1095,7 +1096,12 @@ void ServerEnvironment::step(float dtime) const float abm_interval = 1.0; if(m_active_block_modifier_interval.step(dtime, abm_interval)) - { + do{ // breakable + if(m_active_block_interval_overload_skip > 0){ + ScopeProfiler sp(g_profiler, "SEnv: ABM overload skips"); + m_active_block_interval_overload_skip--; + break; + } ScopeProfiler sp(g_profiler, "SEnv: modify in blocks avg /1s", SPT_AVG); TimeTaker timer("modify in active blocks"); @@ -1128,8 +1134,9 @@ void ServerEnvironment::step(float dtime) infostream<<"WARNING: active block modifiers took " <