Add cancel button to password change menu. (#5720)
[oweals/minetest.git] / src / mapgen.cpp
index 6f3ea7cb01d46126c091ea082a49e4ee7b2d2b8a..bd0e94ac7c0e79886f8fd142600de2a201f5c663 100644 (file)
@@ -593,6 +593,7 @@ MapgenBasic::MapgenBasic(int mapgenid, MapgenParams *params, EmergeManager *emer
        c_sandstone          = ndef->getId("mapgen_sandstone");
        c_water_source       = ndef->getId("mapgen_water_source");
        c_river_water_source = ndef->getId("mapgen_river_water_source");
+       c_lava_source        = ndef->getId("mapgen_lava_source");
 
        // Fall back to more basic content if not defined
        // river_water_source cannot fallback to water_source because river water
@@ -840,6 +841,18 @@ void MapgenBasic::generateCaves(s16 max_stone_y, s16 large_cave_depth)
 }
 
 
+bool MapgenBasic::generateCaverns(s16 max_stone_y)
+{
+       if (node_min.Y > max_stone_y || node_min.Y > cavern_limit)
+               return false;
+
+       CavernsNoise caverns_noise(ndef, csize, &np_cavern,
+               seed, cavern_limit, cavern_taper, cavern_threshold);
+
+       return caverns_noise.generateCaverns(vm, node_min, node_max);
+}
+
+
 void MapgenBasic::generateDungeons(s16 max_stone_y, MgStoneType stone_type)
 {
        if (max_stone_y < node_min.Y)
@@ -1003,8 +1016,11 @@ void MapgenParams::readParams(const Settings *settings)
        }
 
        std::string mg_name;
-       if (settings->getNoEx("mg_name", mg_name))
-               this->mgtype = Mapgen::getMapgenType(mg_name);
+       if (settings->getNoEx("mg_name", mg_name)) {
+               mgtype = Mapgen::getMapgenType(mg_name);
+               if (mgtype == MAPGEN_INVALID)
+                       mgtype = MAPGEN_DEFAULT;
+       }
 
        settings->getS16NoEx("water_level", water_level);
        settings->getS16NoEx("mapgen_limit", mapgen_limit);