Skip to content

Commit 2652d8d

Browse files
committedJun 22, 2017
CavesRandomWalk: Make 'lava_depth' a mapgen parameter
As with 'large_cave_depth', lava depth was previously a fixed y value and therefore incompatible with the ability to shift terrain vertically. Add 'lava_depth' mapgen parameter to mgflat, mgfractal, mgv5, mgv7.
1 parent bc53c82 commit 2652d8d

14 files changed

+59
-13
lines changed
 

‎builtin/settingtypes.txt

+16-4
Original file line numberDiff line numberDiff line change
@@ -1028,9 +1028,12 @@ mgv5_spflags (Mapgen v5 specific flags) flags caverns caverns,nocaverns
10281028
# Controls width of tunnels, a smaller value creates wider tunnels.
10291029
mgv5_cave_width (Cave width) float 0.125
10301030

1031-
# Y of upper limit of large pseudorandom caves.
1031+
# Y of upper limit of large caves.
10321032
mgv5_large_cave_depth (Large cave depth) int -256
10331033

1034+
# Y of upper limit of lava in large caves.
1035+
mgv5_lava_depth (Lava depth) int -256
1036+
10341037
# Y-level of cavern upper limit.
10351038
mgv5_cavern_limit (Cavern limit) int -256
10361039

@@ -1137,9 +1140,12 @@ mgv7_spflags (Mapgen v7 specific flags) flags mountains,ridges,nofloatlands,cave
11371140
# Controls width of tunnels, a smaller value creates wider tunnels.
11381141
mgv7_cave_width (Cave width) float 0.09
11391142

1140-
# Y of upper limit of large pseudorandom caves.
1143+
# Y of upper limit of large caves.
11411144
mgv7_large_cave_depth (Large cave depth) int -33
11421145

1146+
# Y of upper limit of lava in large caves.
1147+
mgv7_lava_depth (Lava depth) int -256
1148+
11431149
# Controls the density of floatland mountain terrain.
11441150
# Is an offset added to the 'np_mountain' noise value.
11451151
mgv7_float_mount_density (Floatland mountain density) float 0.6
@@ -1218,9 +1224,12 @@ mgflat_spflags (Mapgen flat specific flags) flags nolakes,nohills lakes,hills,no
12181224
# Y of flat ground.
12191225
mgflat_ground_level (Ground level) int 8
12201226

1221-
# Y of upper limit of large pseudorandom caves.
1227+
# Y of upper limit of large caves.
12221228
mgflat_large_cave_depth (Large cave depth) int -33
12231229

1230+
# Y of upper limit of lava in large caves.
1231+
mgflat_lava_depth (Lava depth) int -256
1232+
12241233
# Controls width of tunnels, a smaller value creates wider tunnels.
12251234
mgflat_cave_width (Cave width) float 0.09
12261235

@@ -1257,9 +1266,12 @@ mgflat_np_cave2 (Cave2 noise) noise_params 0, 12, (67, 67, 67), 10325, 3, 0.5, 2
12571266
# Controls width of tunnels, a smaller value creates wider tunnels.
12581267
mgfractal_cave_width (Cave width) float 0.09
12591268

1260-
# Y of upper limit of large pseudorandom caves.
1269+
# Y of upper limit of large caves.
12611270
mgfractal_large_cave_depth (Large cave depth) int -33
12621271

1272+
# Y of upper limit of lava in large caves.
1273+
mgfractal_lava_depth (Lava depth) int -256
1274+
12631275
# Choice of 18 fractals from 9 formulas.
12641276
# 1 = 4D "Roundy" mandelbrot set.
12651277
# 2 = 4D "Roundy" julia set.

‎minetest.conf.example

+20-4
Original file line numberDiff line numberDiff line change
@@ -1256,10 +1256,14 @@
12561256
# type: float
12571257
# mgv5_cave_width = 0.125
12581258

1259-
# Y of upper limit of large pseudorandom caves.
1259+
# Y of upper limit of large caves.
12601260
# type: int
12611261
# mgv5_large_cave_depth = -256
12621262

1263+
# Y of upper limit of lava in large caves.
1264+
# type: int
1265+
# mgv5_lava_depth = -256
1266+
12631267
# Y-level of cavern upper limit.
12641268
# type: int
12651269
# mgv5_cavern_limit = -256
@@ -1375,10 +1379,14 @@
13751379
# type: float
13761380
# mgv7_cave_width = 0.09
13771381

1378-
# Y of upper limit of large pseudorandom caves.
1382+
# Y of upper limit of large caves.
13791383
# type: int
13801384
# mgv7_large_cave_depth = -33
13811385

1386+
# Y of upper limit of lava in large caves.
1387+
# type: int
1388+
# mgv7_lava_depth = -256
1389+
13821390
# Controls the density of floatland mountain terrain.
13831391
# Is an offset added to the 'np_mountain' noise value.
13841392
# type: float
@@ -1480,10 +1488,14 @@
14801488
# type: int
14811489
# mgflat_ground_level = 8
14821490

1483-
# Y of upper limit of large pseudorandom caves.
1491+
# Y of upper limit of large caves.
14841492
# type: int
14851493
# mgflat_large_cave_depth = -33
14861494

1495+
# Y of upper limit of lava in large caves.
1496+
# type: int
1497+
# mgflat_lava_depth = -256
1498+
14871499
# Controls width of tunnels, a smaller value creates wider tunnels.
14881500
# type: float
14891501
# mgflat_cave_width = 0.09
@@ -1530,10 +1542,14 @@
15301542
# type: float
15311543
# mgfractal_cave_width = 0.09
15321544

1533-
# Y of upper limit of large pseudorandom caves.
1545+
# Y of upper limit of large caves.
15341546
# type: int
15351547
# mgfractal_large_cave_depth = -33
15361548

1549+
# Y of upper limit of lava in large caves.
1550+
# type: int
1551+
# mgfractal_lava_depth = -256
1552+
15371553
# Choice of 18 fractals from 9 formulas.
15381554
# 1 = 4D "Roundy" mandelbrot set.
15391555
# 2 = 4D "Roundy" julia set.

‎src/cavegen.cpp

+3-2
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,8 @@ CavesRandomWalk::CavesRandomWalk(
258258
s32 seed,
259259
int water_level,
260260
content_t water_source,
261-
content_t lava_source)
261+
content_t lava_source,
262+
int lava_depth)
262263
{
263264
assert(ndef);
264265

@@ -267,7 +268,7 @@ CavesRandomWalk::CavesRandomWalk(
267268
this->seed = seed;
268269
this->water_level = water_level;
269270
this->np_caveliquids = &nparams_caveliquids;
270-
this->lava_depth = DEFAULT_LAVA_DEPTH;
271+
this->lava_depth = lava_depth;
271272

272273
c_water_source = water_source;
273274
if (c_water_source == CONTENT_IGNORE)

‎src/cavegen.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
2121
#define CAVEGEN_HEADER
2222

2323
#define VMANIP_FLAG_CAVE VOXELFLAG_CHECKED1
24-
#define DEFAULT_LAVA_DEPTH (-256)
2524

2625
class GenerateNotifier;
2726

@@ -157,7 +156,8 @@ class CavesRandomWalk
157156
CavesRandomWalk(INodeDefManager *ndef, GenerateNotifier *gennotify = NULL,
158157
s32 seed = 0, int water_level = 1,
159158
content_t water_source = CONTENT_IGNORE,
160-
content_t lava_source = CONTENT_IGNORE);
159+
content_t lava_source = CONTENT_IGNORE,
160+
int lava_depth = -256);
161161

162162
// vm and ps are mandatory parameters.
163163
// If heightmap is NULL, the surface level at all points is assumed to

‎src/mapgen.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -817,7 +817,7 @@ void MapgenBasic::generateCaves(s16 max_stone_y, s16 large_cave_depth)
817817
u32 bruises_count = ps.range(0, 2);
818818
for (u32 i = 0; i < bruises_count; i++) {
819819
CavesRandomWalk cave(ndef, &gennotify, seed, water_level,
820-
c_water_source, CONTENT_IGNORE);
820+
c_water_source, CONTENT_IGNORE, lava_depth);
821821

822822
cave.makeCave(vm, node_min, node_max, &ps, true, max_stone_y, heightmap);
823823
}

‎src/mapgen.h

+1
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,7 @@ class MapgenBasic : public Mapgen {
294294
float cavern_limit;
295295
float cavern_taper;
296296
float cavern_threshold;
297+
int lava_depth;
297298
};
298299

299300
#endif

‎src/mapgen_flat.cpp

+3
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ MapgenFlat::MapgenFlat(int mapgenid, MapgenFlatParams *params, EmergeManager *em
5454
this->spflags = params->spflags;
5555
this->ground_level = params->ground_level;
5656
this->large_cave_depth = params->large_cave_depth;
57+
this->lava_depth = params->lava_depth;
5758
this->cave_width = params->cave_width;
5859
this->lake_threshold = params->lake_threshold;
5960
this->lake_steepness = params->lake_steepness;
@@ -94,6 +95,7 @@ void MapgenFlatParams::readParams(const Settings *settings)
9495
settings->getFlagStrNoEx("mgflat_spflags", spflags, flagdesc_mapgen_flat);
9596
settings->getS16NoEx("mgflat_ground_level", ground_level);
9697
settings->getS16NoEx("mgflat_large_cave_depth", large_cave_depth);
98+
settings->getS16NoEx("mgflat_lava_depth", lava_depth);
9799
settings->getFloatNoEx("mgflat_cave_width", cave_width);
98100
settings->getFloatNoEx("mgflat_lake_threshold", lake_threshold);
99101
settings->getFloatNoEx("mgflat_lake_steepness", lake_steepness);
@@ -112,6 +114,7 @@ void MapgenFlatParams::writeParams(Settings *settings) const
112114
settings->setFlagStr("mgflat_spflags", spflags, flagdesc_mapgen_flat, U32_MAX);
113115
settings->setS16("mgflat_ground_level", ground_level);
114116
settings->setS16("mgflat_large_cave_depth", large_cave_depth);
117+
settings->setS16("mgflat_lava_depth", lava_depth);
115118
settings->setFloat("mgflat_cave_width", cave_width);
116119
settings->setFloat("mgflat_lake_threshold", lake_threshold);
117120
settings->setFloat("mgflat_lake_steepness", lake_steepness);

‎src/mapgen_flat.h

+1
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ struct MapgenFlatParams : public MapgenParams
3636
u32 spflags = 0;
3737
s16 ground_level = 8;
3838
s16 large_cave_depth = -33;
39+
s16 lava_depth = -256;
3940
float cave_width = 0.09f;
4041
float lake_threshold = -0.45f;
4142
float lake_steepness = 48.0f;

‎src/mapgen_fractal.cpp

+3
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ MapgenFractal::MapgenFractal(int mapgenid, MapgenFractalParams *params, EmergeMa
5252
this->spflags = params->spflags;
5353
this->cave_width = params->cave_width;
5454
this->large_cave_depth = params->large_cave_depth;
55+
this->lava_depth = params->lava_depth;
5556
this->fractal = params->fractal;
5657
this->iterations = params->iterations;
5758
this->scale = params->scale;
@@ -95,6 +96,7 @@ void MapgenFractalParams::readParams(const Settings *settings)
9596
settings->getFlagStrNoEx("mgfractal_spflags", spflags, flagdesc_mapgen_fractal);
9697
settings->getFloatNoEx("mgfractal_cave_width", cave_width);
9798
settings->getS16NoEx("mgfractal_large_cave_depth", large_cave_depth);
99+
settings->getS16NoEx("mgfractal_lava_depth", lava_depth);
98100
settings->getU16NoEx("mgfractal_fractal", fractal);
99101
settings->getU16NoEx("mgfractal_iterations", iterations);
100102
settings->getV3FNoEx("mgfractal_scale", scale);
@@ -117,6 +119,7 @@ void MapgenFractalParams::writeParams(Settings *settings) const
117119
settings->setFlagStr("mgfractal_spflags", spflags, flagdesc_mapgen_fractal, U32_MAX);
118120
settings->setFloat("mgfractal_cave_width", cave_width);
119121
settings->setS16("mgfractal_large_cave_depth", large_cave_depth);
122+
settings->setS16("mgfractal_lava_depth", lava_depth);
120123
settings->setU16("mgfractal_fractal", fractal);
121124
settings->setU16("mgfractal_iterations", iterations);
122125
settings->setV3F("mgfractal_scale", scale);

‎src/mapgen_fractal.h

+1
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ struct MapgenFractalParams : public MapgenParams
3535
u32 spflags = 0;
3636
float cave_width = 0.09f;
3737
s16 large_cave_depth = -33;
38+
s16 lava_depth = -256;
3839
u16 fractal = 1;
3940
u16 iterations = 11;
4041
v3f scale = v3f(4096.0, 1024.0, 4096.0);

‎src/mapgen_v5.cpp

+3
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ MapgenV5::MapgenV5(int mapgenid, MapgenV5Params *params, EmergeManager *emerge)
5151
this->spflags = params->spflags;
5252
this->cave_width = params->cave_width;
5353
this->large_cave_depth = params->large_cave_depth;
54+
this->lava_depth = params->lava_depth;
5455
this->cavern_limit = params->cavern_limit;
5556
this->cavern_taper = params->cavern_taper;
5657
this->cavern_threshold = params->cavern_threshold;
@@ -96,6 +97,7 @@ void MapgenV5Params::readParams(const Settings *settings)
9697
settings->getFlagStrNoEx("mgv5_spflags", spflags, flagdesc_mapgen_v5);
9798
settings->getFloatNoEx("mgv5_cave_width", cave_width);
9899
settings->getS16NoEx("mgv5_large_cave_depth", large_cave_depth);
100+
settings->getS16NoEx("mgv5_lava_depth", lava_depth);
99101
settings->getS16NoEx("mgv5_cavern_limit", cavern_limit);
100102
settings->getS16NoEx("mgv5_cavern_taper", cavern_taper);
101103
settings->getFloatNoEx("mgv5_cavern_threshold", cavern_threshold);
@@ -115,6 +117,7 @@ void MapgenV5Params::writeParams(Settings *settings) const
115117
settings->setFlagStr("mgv5_spflags", spflags, flagdesc_mapgen_v5, U32_MAX);
116118
settings->setFloat("mgv5_cave_width", cave_width);
117119
settings->setS16("mgv5_large_cave_depth", large_cave_depth);
120+
settings->setS16("mgv5_lava_depth", lava_depth);
118121
settings->setS16("mgv5_cavern_limit", cavern_limit);
119122
settings->setS16("mgv5_cavern_taper", cavern_taper);
120123
settings->setFloat("mgv5_cavern_threshold", cavern_threshold);

‎src/mapgen_v5.h

+1
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ struct MapgenV5Params : public MapgenParams
3535
u32 spflags = MGV5_CAVERNS;
3636
float cave_width = 0.125f;
3737
s16 large_cave_depth = -256;
38+
s16 lava_depth = -256;
3839
s16 cavern_limit = -256;
3940
s16 cavern_taper = 256;
4041
float cavern_threshold = 0.7f;

‎src/mapgen_v7.cpp

+3
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ MapgenV7::MapgenV7(int mapgenid, MapgenV7Params *params, EmergeManager *emerge)
5757
this->spflags = params->spflags;
5858
this->cave_width = params->cave_width;
5959
this->large_cave_depth = params->large_cave_depth;
60+
this->lava_depth = params->lava_depth;
6061
this->float_mount_density = params->float_mount_density;
6162
this->float_mount_height = params->float_mount_height;
6263
this->floatland_level = params->floatland_level;
@@ -145,6 +146,7 @@ void MapgenV7Params::readParams(const Settings *settings)
145146
settings->getFlagStrNoEx("mgv7_spflags", spflags, flagdesc_mapgen_v7);
146147
settings->getFloatNoEx("mgv7_cave_width", cave_width);
147148
settings->getS16NoEx("mgv7_large_cave_depth", large_cave_depth);
149+
settings->getS16NoEx("mgv7_lava_depth", lava_depth);
148150
settings->getFloatNoEx("mgv7_float_mount_density", float_mount_density);
149151
settings->getFloatNoEx("mgv7_float_mount_height", float_mount_height);
150152
settings->getS16NoEx("mgv7_floatland_level", floatland_level);
@@ -175,6 +177,7 @@ void MapgenV7Params::writeParams(Settings *settings) const
175177
settings->setFlagStr("mgv7_spflags", spflags, flagdesc_mapgen_v7, U32_MAX);
176178
settings->setFloat("mgv7_cave_width", cave_width);
177179
settings->setS16("mgv7_large_cave_depth", large_cave_depth);
180+
settings->setS16("mgv7_lava_depth", lava_depth);
178181
settings->setFloat("mgv7_float_mount_density", float_mount_density);
179182
settings->setFloat("mgv7_float_mount_height", float_mount_height);
180183
settings->setS16("mgv7_floatland_level", floatland_level);

‎src/mapgen_v7.h

+1
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ struct MapgenV7Params : public MapgenParams {
3838
u32 spflags = MGV7_MOUNTAINS | MGV7_RIDGES | MGV7_CAVERNS;
3939
float cave_width = 0.09f;
4040
s16 large_cave_depth = -33;
41+
s16 lava_depth = -256;
4142
float float_mount_density = 0.6f;
4243
float float_mount_height = 128.0f;
4344
s16 floatland_level = 1280;

0 commit comments

Comments
 (0)
Please sign in to comment.