]> git.lizzy.rs Git - minetest.git/blobdiff - src/mapgen/mapgen_carpathian.cpp
Revert "Fix short 180 degree rotation when using set_bone_position (#10405)" (#10534)
[minetest.git] / src / mapgen / mapgen_carpathian.cpp
index 12ce07da40ceb2d4db6bab5961330ad8c0dc016a..74ed263ba11ffcc278c567ddd02fcdafc8bf1944 100644 (file)
@@ -26,7 +26,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "mapblock.h"
 #include "mapnode.h"
 #include "map.h"
-#include "content_sao.h"
 #include "nodedef.h"
 #include "voxelalgorithms.h"
 //#include "profiler.h" // For TimeTaker
@@ -50,7 +49,7 @@ FlagDesc flagdesc_mapgen_carpathian[] = {
 ///////////////////////////////////////////////////////////////////////////////
 
 
-MapgenCarpathian::MapgenCarpathian(MapgenCarpathianParams *params, EmergeManager *emerge)
+MapgenCarpathian::MapgenCarpathian(MapgenCarpathianParams *params, EmergeParams *emerge)
        : MapgenBasic(MAPGEN_CARPATHIAN, params, emerge)
 {
        base_level       = params->base_level;
@@ -58,15 +57,19 @@ MapgenCarpathian::MapgenCarpathian(MapgenCarpathianParams *params, EmergeManager
        river_depth      = params->river_depth;
        valley_width     = params->valley_width;
 
-       spflags          = params->spflags;
-       cave_width       = params->cave_width;
-       large_cave_depth = params->large_cave_depth;
-       lava_depth       = params->lava_depth;
-       cavern_limit     = params->cavern_limit;
-       cavern_taper     = params->cavern_taper;
-       cavern_threshold = params->cavern_threshold;
-       dungeon_ymin     = params->dungeon_ymin;
-       dungeon_ymax     = params->dungeon_ymax;
+       spflags            = params->spflags;
+       cave_width         = params->cave_width;
+       large_cave_depth   = params->large_cave_depth;
+       small_cave_num_min = params->small_cave_num_min;
+       small_cave_num_max = params->small_cave_num_max;
+       large_cave_num_min = params->large_cave_num_min;
+       large_cave_num_max = params->large_cave_num_max;
+       large_cave_flooded = params->large_cave_flooded;
+       cavern_limit       = params->cavern_limit;
+       cavern_taper       = params->cavern_taper;
+       cavern_threshold   = params->cavern_threshold;
+       dungeon_ymin       = params->dungeon_ymin;
+       dungeon_ymax       = params->dungeon_ymax;
 
        grad_wl = 1 - water_level;
 
@@ -148,14 +151,18 @@ void MapgenCarpathianParams::readParams(const Settings *settings)
        settings->getFloatNoEx("mgcarpathian_river_depth",  river_depth);
        settings->getFloatNoEx("mgcarpathian_valley_width", valley_width);
 
-       settings->getFloatNoEx("mgcarpathian_cave_width",       cave_width);
-       settings->getS16NoEx("mgcarpathian_large_cave_depth",   large_cave_depth);
-       settings->getS16NoEx("mgcarpathian_lava_depth",         lava_depth);
-       settings->getS16NoEx("mgcarpathian_cavern_limit",       cavern_limit);
-       settings->getS16NoEx("mgcarpathian_cavern_taper",       cavern_taper);
-       settings->getFloatNoEx("mgcarpathian_cavern_threshold", cavern_threshold);
-       settings->getS16NoEx("mgcarpathian_dungeon_ymin",       dungeon_ymin);
-       settings->getS16NoEx("mgcarpathian_dungeon_ymax",       dungeon_ymax);
+       settings->getFloatNoEx("mgcarpathian_cave_width",         cave_width);
+       settings->getS16NoEx("mgcarpathian_large_cave_depth",     large_cave_depth);
+       settings->getU16NoEx("mgcarpathian_small_cave_num_min",   small_cave_num_min);
+       settings->getU16NoEx("mgcarpathian_small_cave_num_max",   small_cave_num_max);
+       settings->getU16NoEx("mgcarpathian_large_cave_num_min",   large_cave_num_min);
+       settings->getU16NoEx("mgcarpathian_large_cave_num_max",   large_cave_num_max);
+       settings->getFloatNoEx("mgcarpathian_large_cave_flooded", large_cave_flooded);
+       settings->getS16NoEx("mgcarpathian_cavern_limit",         cavern_limit);
+       settings->getS16NoEx("mgcarpathian_cavern_taper",         cavern_taper);
+       settings->getFloatNoEx("mgcarpathian_cavern_threshold",   cavern_threshold);
+       settings->getS16NoEx("mgcarpathian_dungeon_ymin",         dungeon_ymin);
+       settings->getS16NoEx("mgcarpathian_dungeon_ymax",         dungeon_ymax);
 
        settings->getNoiseParams("mgcarpathian_np_filler_depth",  np_filler_depth);
        settings->getNoiseParams("mgcarpathian_np_height1",       np_height1);
@@ -179,21 +186,25 @@ void MapgenCarpathianParams::readParams(const Settings *settings)
 
 void MapgenCarpathianParams::writeParams(Settings *settings) const
 {
-       settings->setFlagStr("mgcarpathian_spflags", spflags, flagdesc_mapgen_carpathian, U32_MAX);
+       settings->setFlagStr("mgcarpathian_spflags", spflags, flagdesc_mapgen_carpathian);
 
        settings->setFloat("mgcarpathian_base_level",   base_level);
        settings->setFloat("mgcarpathian_river_width",  river_width);
        settings->setFloat("mgcarpathian_river_depth",  river_depth);
        settings->setFloat("mgcarpathian_valley_width", valley_width);
 
-       settings->setFloat("mgcarpathian_cave_width",       cave_width);
-       settings->setS16("mgcarpathian_large_cave_depth",   large_cave_depth);
-       settings->setS16("mgcarpathian_lava_depth",         lava_depth);
-       settings->setS16("mgcarpathian_cavern_limit",       cavern_limit);
-       settings->setS16("mgcarpathian_cavern_taper",       cavern_taper);
-       settings->setFloat("mgcarpathian_cavern_threshold", cavern_threshold);
-       settings->setS16("mgcarpathian_dungeon_ymin",       dungeon_ymin);
-       settings->setS16("mgcarpathian_dungeon_ymax",       dungeon_ymax);
+       settings->setFloat("mgcarpathian_cave_width",         cave_width);
+       settings->setS16("mgcarpathian_large_cave_depth",     large_cave_depth);
+       settings->setU16("mgcarpathian_small_cave_num_min",   small_cave_num_min);
+       settings->setU16("mgcarpathian_small_cave_num_max",   small_cave_num_max);
+       settings->setU16("mgcarpathian_large_cave_num_min",   large_cave_num_min);
+       settings->setU16("mgcarpathian_large_cave_num_max",   large_cave_num_max);
+       settings->setFloat("mgcarpathian_large_cave_flooded", large_cave_flooded);
+       settings->setS16("mgcarpathian_cavern_limit",         cavern_limit);
+       settings->setS16("mgcarpathian_cavern_taper",         cavern_taper);
+       settings->setFloat("mgcarpathian_cavern_threshold",   cavern_threshold);
+       settings->setS16("mgcarpathian_dungeon_ymin",         dungeon_ymin);
+       settings->setS16("mgcarpathian_dungeon_ymax",         dungeon_ymax);
 
        settings->setNoiseParams("mgcarpathian_np_filler_depth",  np_filler_depth);
        settings->setNoiseParams("mgcarpathian_np_height1",       np_height1);
@@ -215,6 +226,12 @@ void MapgenCarpathianParams::writeParams(Settings *settings) const
 }
 
 
+void MapgenCarpathianParams::setDefaultSettings(Settings *settings)
+{
+       settings->setDefault("mgcarpathian_spflags", flagdesc_mapgen_carpathian,
+               MGCARPATHIAN_CAVERNS);
+}
+
 ////////////////////////////////////////////////////////////////////////////////
 
 
@@ -298,11 +315,11 @@ void MapgenCarpathian::makeChunk(BlockMakeData *data)
        }
 
        // Generate the registered ores
-       m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max);
+       if (flags & MG_ORES)
+               m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max);
 
        // Generate dungeons
-       if ((flags & MG_DUNGEONS) && full_node_min.Y >= dungeon_ymin &&
-                       full_node_max.Y <= dungeon_ymax)
+       if (flags & MG_DUNGEONS)
                generateDungeons(stone_surface_max_y);
 
        // Generate the registered decorations