Change large amount of objects to be configurable via a setting in minetest.conf...
authorNovatux <nathanael.courant@laposte.net>
Sun, 4 Aug 2013 12:14:21 +0000 (14:14 +0200)
committerPerttu Ahola <celeron55@gmail.com>
Sun, 4 Aug 2013 12:28:01 +0000 (15:28 +0300)
minetest.conf.example
src/defaultsettings.cpp
src/environment.cpp

index 4c049f87db3c4144d35c7d845b76cad357a69b01..29900b900f6c6cff727168921217b56f82e82a32 100644 (file)
 # Length of year in days for seasons change. With default time_speed 365 days = 5 real days for year. 30 days = 10 real hours
 #year_days = 30
 #server_unload_unused_data_timeout = 29
+# Maximum number of statically stored objects in a block
+#max_objects_per_block = 49
 # Interval of saving important changes in the world
 #server_map_save_interval = 5.3
 # To reduce lag, block transfers are slowed down when a player is building something.
index 326e11b8fde0dd4688df09f33fdf15fcd1a429ae..33adf102f5389d49bcfe900f439ee432a2197c7c 100644 (file)
@@ -180,6 +180,7 @@ void set_default_settings(Settings *settings)
        settings->setDefault("time_speed", "72");
        settings->setDefault("year_days", "30");
        settings->setDefault("server_unload_unused_data_timeout", "29");
+       settings->setDefault("max_objects_per_block", "49");
        settings->setDefault("server_map_save_interval", "5.3");
        settings->setDefault("full_block_send_enable_min_time_from_building", "2.0");
        settings->setDefault("dedicated_server_step", "0.1");
index 63718f3fc85a9413b150566daf8fd6e64a187fae..40dba9a6c18e229f7943fab0a65dbb03f106e976 100644 (file)
@@ -1703,7 +1703,7 @@ void ServerEnvironment::activateObjects(MapBlock *block, u32 dtime_s)
                        <<"activating objects of block "<<PP(block->getPos())
                        <<" ("<<block->m_static_objects.m_stored.size()
                        <<" objects)"<<std::endl;
-       bool large_amount = (block->m_static_objects.m_stored.size() > 49);
+       bool large_amount = (block->m_static_objects.m_stored.size() > g_settings->getU16("max_objects_per_block"));
        if(large_amount){
                errorstream<<"suspiciously large amount of objects detected: "
                                <<block->m_static_objects.m_stored.size()<<" in "
@@ -1881,12 +1881,12 @@ void ServerEnvironment::deactivateFarObjects(bool force_delete)
 
                        if(block)
                        {
-                               if(block->m_static_objects.m_stored.size() >= 49){
+                               if(block->m_static_objects.m_stored.size() >= g_settings->getU16("max_objects_per_block")){
                                        errorstream<<"ServerEnv: Trying to store id="<<obj->getId()
                                                        <<" statically but block "<<PP(blockpos)
                                                        <<" already contains "
                                                        <<block->m_static_objects.m_stored.size()
-                                                       <<" (over 49) objects."
+                                                       <<" objects."
                                                        <<" Forcing delete."<<std::endl;
                                        force_delete = true;
                                } else {