forked from Mirrorlandia_minetest/minetest
changed server to do object management at longer intervals (0.5s)
This commit is contained in:
parent
26eb607a11
commit
9d5ccafbb0
@ -449,6 +449,8 @@ void ServerEnvironment::step(float dtime)
|
||||
obj->step(dtime, m_active_object_messages, send_recommended);
|
||||
}
|
||||
|
||||
if(m_object_management_interval.step(dtime, 0.5))
|
||||
{
|
||||
/*
|
||||
Remove objects that satisfy (m_removed && m_known_by_count==0)
|
||||
*/
|
||||
@ -624,7 +626,8 @@ void ServerEnvironment::step(float dtime)
|
||||
MapBlock *oldblock = NULL;
|
||||
if(obj->m_static_exists)
|
||||
{
|
||||
MapBlock *block = m_map->getBlockNoCreateNoEx(obj->m_static_block);
|
||||
MapBlock *block = m_map->getBlockNoCreateNoEx
|
||||
(obj->m_static_block);
|
||||
if(block)
|
||||
{
|
||||
block->m_static_objects.remove(id);
|
||||
@ -672,6 +675,7 @@ void ServerEnvironment::step(float dtime)
|
||||
m_active_objects.remove(*i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(g_settings.getBool("enable_experimental"))
|
||||
{
|
||||
|
@ -35,6 +35,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
#include "player.h"
|
||||
#include "map.h"
|
||||
#include <ostream>
|
||||
#include "utility.h"
|
||||
|
||||
class Environment
|
||||
{
|
||||
@ -154,6 +155,7 @@ private:
|
||||
Queue<ActiveObjectMessage> m_active_object_messages;
|
||||
float m_random_spawn_timer;
|
||||
float m_send_recommended_timer;
|
||||
IntervalLimiter m_object_management_interval;
|
||||
};
|
||||
|
||||
#ifndef SERVER
|
||||
|
Loading…
Reference in New Issue
Block a user