# Length of a server tick and the interval at which objects are generally updated over network.
dedicated_server_step (Dedicated server step) float 0.1
+# Time in between active block management cycles
+active_block_mgmt_interval (Active Block Management interval) float 2.0
+
+# Length of time between ABM execution cycles
+abm_interval (Active Block Modifier interval) float 1.0
+
+# Length of time between NodeTimer execution cycles
+nodetimer_interval (NodeTimer interval) float 1.0
+
# If enabled, invalid world data won't cause the server to shut down.
# Only enable this if you know what you are doing.
ignore_world_load_errors (Ignore world errors) bool false
# type: float
# dedicated_server_step = 0.1
+# Length of time between Active Block Management execution cycles
+# type: float
+# active_block_mgmt_interval = 2.0
+
+# Length of time between ABM execution cycles
+# type: float
+# abm_interval = 1.0
+
+# Length of time between NodeTimer execution cycles
+# type: float
+# nodetimer_interval = 1.0
+
# If enabled, invalid world data won't cause the server to shut down.
# Only enable this if you know what you are doing.
# type: bool
settings->setDefault("sqlite_synchronous", "2");
settings->setDefault("full_block_send_enable_min_time_from_building", "2.0");
settings->setDefault("dedicated_server_step", "0.1");
+ settings->setDefault("active_block_mgmt_interval", "2.0");
+ settings->setDefault("abm_interval", "1.0");
+ settings->setDefault("nodetimer_interval", "1.0");
settings->setDefault("ignore_world_load_errors", "false");
settings->setDefault("remote_media", "");
settings->setDefault("debug_log_level", "action");
m_day_night_ratio_override(0.0f)
{
m_cache_enable_shaders = g_settings->getBool("enable_shaders");
+ m_cache_active_block_mgmt_interval = g_settings->getFloat("active_block_mgmt_interval");
+ m_cache_abm_interval = g_settings->getFloat("abm_interval");
+ m_cache_nodetimer_interval = g_settings->getFloat("nodetimer_interval");
}
Environment::~Environment()
/*
Manage active block list
*/
- if(m_active_blocks_management_interval.step(dtime, 2.0))
- {
- ScopeProfiler sp(g_profiler, "SEnv: manage act. block list avg /2s", SPT_AVG);
+ if (m_active_blocks_management_interval.step(dtime, m_cache_active_block_mgmt_interval)) {
+ ScopeProfiler sp(g_profiler, "SEnv: manage act. block list avg per interval", SPT_AVG);
/*
Get player block positions
*/
/*
Mess around in active blocks
*/
- if(m_active_blocks_nodemetadata_interval.step(dtime, 1.0))
- {
- ScopeProfiler sp(g_profiler, "SEnv: mess in act. blocks avg /1s", SPT_AVG);
+ if (m_active_blocks_nodemetadata_interval.step(dtime, m_cache_nodetimer_interval)) {
+ ScopeProfiler sp(g_profiler, "SEnv: mess in act. blocks avg per interval", SPT_AVG);
- float dtime = 1.0;
+ float dtime = m_cache_nodetimer_interval;
for(std::set<v3s16>::iterator
i = m_active_blocks.m_list.begin();
}
}
- const float abm_interval = 1.0;
- if(m_active_block_modifier_interval.step(dtime, abm_interval))
+ if (m_active_block_modifier_interval.step(dtime, m_cache_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");
+ ScopeProfiler sp(g_profiler, "SEnv: modify in blocks avg per interval", SPT_AVG);
+ TimeTaker timer("modify in active blocks per interval");
// Initialize handling of ActiveBlockModifiers
- ABMHandler abmhandler(m_abms, abm_interval, this, true);
+ ABMHandler abmhandler(m_abms, m_cache_abm_interval, this, true);
for(std::set<v3s16>::iterator
i = m_active_blocks.m_list.begin();
* a later release.
*/
bool m_cache_enable_shaders;
+ float m_cache_active_block_mgmt_interval;
+ float m_cache_abm_interval;
+ float m_cache_nodetimer_interval;
private:
Mutex m_time_lock;
gettext("See http://www.sqlite.org/pragma.html#pragma_synchronous");
gettext("Dedicated server step");
gettext("Length of a server tick and the interval at which objects are generally updated over network.");
+ gettext("Active Block Management interval");
+ gettext("Time in between active block management cycles");
+ gettext("ABM modifier interval");
+ gettext("Length of time between ABM execution cycles");
+ gettext("NodeTimer interval");
+ gettext("Length of time between NodeTimer execution cycles");
gettext("Ignore world errors");
gettext("If enabled, invalid world data won't cause the server to shut down.\nOnly enable this if you know what you are doing.");
gettext("Liquid loop max");