diff options
author | lhofhansl <lhofhansl@yahoo.com> | 2016-11-30 00:13:14 -0800 |
---|---|---|
committer | Zeno- <kde.psych@gmail.com> | 2016-11-30 18:13:14 +1000 |
commit | 5dc61988788e44bc87e8c57c0beded97d4efdf05 (patch) | |
tree | cc812fe691ba6ad62dbe65745d89c86cd974e817 /src/server.cpp | |
parent | c38985825f299999135cc01aaf0052ec9138135a (diff) | |
download | hax-minetest-server-5dc61988788e44bc87e8c57c0beded97d4efdf05.tar.gz hax-minetest-server-5dc61988788e44bc87e8c57c0beded97d4efdf05.zip |
Optimize/adjust blocks/ActiveObjects sent at the server based on client settings. (#4811)
Optimize/adjust blocks and active blocks sent at the server based on client settings.
Diffstat (limited to '')
-rw-r--r-- | src/server.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/server.cpp b/src/server.cpp index fe67ac96e..c9d5c7129 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -705,11 +705,15 @@ void Server::AsyncRunStep(bool initial_step) if (playersao == NULL) continue; + s16 my_radius = MYMIN(radius, playersao->getWantedRange() * MAP_BLOCKSIZE); + if (my_radius <= 0) my_radius = radius; + //infostream << "Server: Active Radius " << my_radius << std::endl; + std::queue<u16> removed_objects; std::queue<u16> added_objects; - m_env->getRemovedActiveObjects(playersao, radius, player_radius, + m_env->getRemovedActiveObjects(playersao, my_radius, player_radius, client->m_known_objects, removed_objects); - m_env->getAddedActiveObjects(playersao, radius, player_radius, + m_env->getAddedActiveObjects(playersao, my_radius, player_radius, client->m_known_objects, added_objects); // Ignore if nothing happened |