Mgv7: Avoid rivergen removing mod-placed nodes when overgenerating (#7388)
authorParamat <paramat@users.noreply.github.com>
Thu, 31 May 2018 02:06:55 +0000 (03:06 +0100)
committerGitHub <noreply@github.com>
Thu, 31 May 2018 02:06:55 +0000 (03:06 +0100)
Only allow river generation to replace c_stone.
This also acts as an optimisation by being placed before canyon shape
calculation.

src/mapgen/mapgen_v7.cpp

index 57646bd79bdee11777b932ed78f8e456fd416ea5..610de462380e2503d69438dd646cd314f688b1de 100644 (file)
@@ -591,6 +591,11 @@ void MapgenV7::generateRidgeTerrain()
                        float uwatern = noise_ridge_uwater->result[index2d] * 2.0f;
                        if (std::fabs(uwatern) > width)
                                continue;
+                       // Optimises, but also avoids removing nodes placed by mods in
+                       // 'on-generated', when generating outside mapchunk.
+                       content_t c = vm->m_data[vi].getContent();
+                       if (c != c_stone)
+                               continue;
 
                        float altitude = y - water_level;
                        float height_mod = (altitude + 17.0f) / 2.5f;