]> git.lizzy.rs Git - minetest.git/blobdiff - src/mapgen/mapgen_carpathian.h
Randomwalk cave liquids: Remove deprecated 'lava depth' parameter (#9105)
[minetest.git] / src / mapgen / mapgen_carpathian.h
index 0ca46d18aedebe93b626f051a98e74b47d708239..f77ffd1b15422b6f0a78cc4206a763f0bab8d07f 100644 (file)
@@ -1,8 +1,7 @@
 /*
 Minetest
-Copyright (C) 2017-2018 vlapsley, Vaughan Lapsley <vlapsley@gmail.com>
-Copyright (C) 2010-2018 paramat
-Copyright (C) 2010-2018 kwolekr, Ryan Kwolek <kwolekr@minetest.net>
+Copyright (C) 2017-2019 vlapsley, Vaughan Lapsley <vlapsley@gmail.com>
+Copyright (C) 2017-2019 paramat
 
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU Lesser General Public License as published by
@@ -23,8 +22,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 
 #include "mapgen.h"
 
-///////// Mapgen Carpathian flags
 #define MGCARPATHIAN_CAVERNS 0x01
+#define MGCARPATHIAN_RIVERS  0x02
 
 class BiomeManager;
 
@@ -33,15 +32,25 @@ extern FlagDesc flagdesc_mapgen_carpathian[];
 
 struct MapgenCarpathianParams : public MapgenParams
 {
-       u32 spflags            = MGCARPATHIAN_CAVERNS;
-       float cave_width       = 0.09f;
-       s16 large_cave_depth   = -33;
-       s16 lava_depth         = -256;
-       s16 cavern_limit       = -256;
-       s16 cavern_taper       = 256;
-       float cavern_threshold = 0.7f;
-
-       NoiseParams np_base;
+       float base_level       = 12.0f;
+       float river_width      = 0.05f;
+       float river_depth      = 24.0f;
+       float valley_width     = 0.25f;
+
+       u32 spflags              = MGCARPATHIAN_CAVERNS;
+       float cave_width         = 0.09f;
+       s16 large_cave_depth     = -33;
+       u16 small_cave_num_min   = 0;
+       u16 small_cave_num_max   = 0;
+       u16 large_cave_num_min   = 0;
+       u16 large_cave_num_max   = 2;
+       float large_cave_flooded = 0.5f;
+       s16 cavern_limit         = -256;
+       s16 cavern_taper         = 256;
+       float cavern_threshold   = 0.7f;
+       s16 dungeon_ymin         = -31000;
+       s16 dungeon_ymax         = 31000;
+
        NoiseParams np_filler_depth;
        NoiseParams np_height1;
        NoiseParams np_height2;
@@ -53,10 +62,12 @@ struct MapgenCarpathianParams : public MapgenParams
        NoiseParams np_hills;
        NoiseParams np_ridge_mnt;
        NoiseParams np_step_mnt;
+       NoiseParams np_rivers;
        NoiseParams np_mnt_var;
        NoiseParams np_cave1;
        NoiseParams np_cave2;
        NoiseParams np_cavern;
+       NoiseParams np_dungeons;
 
        MapgenCarpathianParams();
        ~MapgenCarpathianParams() = default;
@@ -68,23 +79,24 @@ struct MapgenCarpathianParams : public MapgenParams
 class MapgenCarpathian : public MapgenBasic
 {
 public:
-       MapgenCarpathian(int mapgenid, MapgenCarpathianParams *params,
-                       EmergeManager *emerge);
+       MapgenCarpathian(MapgenCarpathianParams *params, EmergeManager *emerge);
        ~MapgenCarpathian();
 
        virtual MapgenType getType() const { return MAPGEN_CARPATHIAN; }
 
-       float getSteps(float noise);
-       inline float getLerp(float noise1, float noise2, float mod);
-
        virtual void makeChunk(BlockMakeData *data);
        int getSpawnLevelAtPoint(v2s16 p);
 
 private:
+       float base_level;
+       float river_width;
+       float river_depth;
+       float valley_width;
+
        s16 large_cave_depth;
-       s32 grad_wl;
+       s16 dungeon_ymin;
+       s16 dungeon_ymax;
 
-       Noise *noise_base;
        Noise *noise_height1;
        Noise *noise_height2;
        Noise *noise_height3;
@@ -95,8 +107,12 @@ class MapgenCarpathian : public MapgenBasic
        Noise *noise_hills;
        Noise *noise_ridge_mnt;
        Noise *noise_step_mnt;
+       Noise *noise_rivers = nullptr;
        Noise *noise_mnt_var;
 
-       float terrainLevelAtPoint(s16 x, s16 z);
+       s32 grad_wl;
+
+       float getSteps(float noise);
+       inline float getLerp(float noise1, float noise2, float mod);
        int generateTerrain();
 };