From: Lars Hofhansl Date: Fri, 4 Nov 2016 07:14:07 +0000 (-0700) Subject: Retrieve mapblocks from the server in a sphere, not a cube X-Git-Tag: 0.4.15~128 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=e7c62edec90c476b54ea7cf7c44354f1609e4575;p=oweals%2Fminetest.git Retrieve mapblocks from the server in a sphere, not a cube Use unused range argument in 'isBlockInSight()' to limit mapblock sends to a sphere of radius 'max block send distance'. --- diff --git a/src/clientiface.cpp b/src/clientiface.cpp index 4b9efcb49..7e75c69a4 100644 --- a/src/clientiface.cpp +++ b/src/clientiface.cpp @@ -175,6 +175,7 @@ void RemoteClient::GetNextBlocks ( const s16 full_d_max = g_settings->getS16("max_block_send_distance"); const s16 d_opt = g_settings->getS16("block_send_optimize_distance"); + const s16 d_blocks_in_sight = (full_d_max + 1) * BS * MAP_BLOCKSIZE; s16 d_max = full_d_max; s16 d_max_gen = g_settings->getS16("max_block_generate_distance"); @@ -242,7 +243,7 @@ void RemoteClient::GetNextBlocks ( */ float camera_fov = (72.0*M_PI/180) * 4./3.; - if(isBlockInSight(p, camera_pos, camera_dir, camera_fov, 10000*BS) == false) + if(isBlockInSight(p, camera_pos, camera_dir, camera_fov, d_blocks_in_sight) == false) { continue; }