Randomwalk caves: Extend beyond mapchunk vertically also (#9094)
authorParamat <paramat@users.noreply.github.com>
Sun, 10 Nov 2019 01:41:20 +0000 (01:41 +0000)
committerGitHub <noreply@github.com>
Sun, 10 Nov 2019 01:41:20 +0000 (01:41 +0000)
Previously, randomwalk caves only extended beyond the mapchunk
borders horizontally, preventing vertical overlap and
interconnection.

src/mapgen/cavegen.cpp

index 2e2a1bbe3d0c2840c1c9f8c50ea5c93edd7a18bd..d3d51935ba300d335106680a0ea79285d181b254 100644 (file)
@@ -366,11 +366,13 @@ void CavesRandomWalk::makeCave(MMVManip *vm, v3s16 nmin, v3s16 nmax,
        // Area starting point in nodes
        of = node_min;
 
-       // Allow a bit more (this should be more than the maximum radius of the tunnel)
+       // Allow caves to extend up to 16 nodes beyond the mapchunk edge, to allow
+       // connecting with caves of neighbor mapchunks.
+       // 'insure' is needed to avoid many 'out of voxelmanip' cave nodes.
        const s16 insure = 2;
        s16 more = MYMAX(MAP_BLOCKSIZE - max_tunnel_diameter / 2 - insure, 1);
-       ar += v3s16(1, 0, 1) * more * 2;
-       of -= v3s16(1, 0, 1) * more;
+       ar += v3s16(1, 1, 1) * more * 2;
+       of -= v3s16(1, 1, 1) * more;
 
        route_y_min = 0;
        // Allow half a diameter + 7 over stone surface