mirror of
https://github.com/luanti-org/luanti.git
synced 2025-08-01 17:38:41 +00:00
Mgv5/v7/fractal: Add 'large_cave_depth' parameter to replace fixed value
The value cannot be fixed because we can shift terrain vertically. This also makes these mapgens consistent with mgflat and mgvalleys which have 'large_cave_depth' parameters.
This commit is contained in:
parent
e6a9e6066a
commit
b8237099b2
8 changed files with 72 additions and 40 deletions
|
@ -49,17 +49,18 @@ FlagDesc flagdesc_mapgen_fractal[] = {
|
|||
MapgenFractal::MapgenFractal(int mapgenid, MapgenFractalParams *params, EmergeManager *emerge)
|
||||
: MapgenBasic(mapgenid, params, emerge)
|
||||
{
|
||||
this->spflags = params->spflags;
|
||||
this->cave_width = params->cave_width;
|
||||
this->fractal = params->fractal;
|
||||
this->iterations = params->iterations;
|
||||
this->scale = params->scale;
|
||||
this->offset = params->offset;
|
||||
this->slice_w = params->slice_w;
|
||||
this->julia_x = params->julia_x;
|
||||
this->julia_y = params->julia_y;
|
||||
this->julia_z = params->julia_z;
|
||||
this->julia_w = params->julia_w;
|
||||
this->spflags = params->spflags;
|
||||
this->cave_width = params->cave_width;
|
||||
this->large_cave_depth = params->large_cave_depth;
|
||||
this->fractal = params->fractal;
|
||||
this->iterations = params->iterations;
|
||||
this->scale = params->scale;
|
||||
this->offset = params->offset;
|
||||
this->slice_w = params->slice_w;
|
||||
this->julia_x = params->julia_x;
|
||||
this->julia_y = params->julia_y;
|
||||
this->julia_z = params->julia_z;
|
||||
this->julia_w = params->julia_w;
|
||||
|
||||
//// 2D terrain noise
|
||||
noise_seabed = new Noise(¶ms->np_seabed, seed, csize.X, csize.Z);
|
||||
|
@ -91,17 +92,18 @@ MapgenFractalParams::MapgenFractalParams()
|
|||
|
||||
void MapgenFractalParams::readParams(const Settings *settings)
|
||||
{
|
||||
settings->getFlagStrNoEx("mgfractal_spflags", spflags, flagdesc_mapgen_fractal);
|
||||
settings->getFloatNoEx("mgfractal_cave_width", cave_width);
|
||||
settings->getU16NoEx("mgfractal_fractal", fractal);
|
||||
settings->getU16NoEx("mgfractal_iterations", iterations);
|
||||
settings->getV3FNoEx("mgfractal_scale", scale);
|
||||
settings->getV3FNoEx("mgfractal_offset", offset);
|
||||
settings->getFloatNoEx("mgfractal_slice_w", slice_w);
|
||||
settings->getFloatNoEx("mgfractal_julia_x", julia_x);
|
||||
settings->getFloatNoEx("mgfractal_julia_y", julia_y);
|
||||
settings->getFloatNoEx("mgfractal_julia_z", julia_z);
|
||||
settings->getFloatNoEx("mgfractal_julia_w", julia_w);
|
||||
settings->getFlagStrNoEx("mgfractal_spflags", spflags, flagdesc_mapgen_fractal);
|
||||
settings->getFloatNoEx("mgfractal_cave_width", cave_width);
|
||||
settings->getS16NoEx("mgfractal_large_cave_depth", large_cave_depth);
|
||||
settings->getU16NoEx("mgfractal_fractal", fractal);
|
||||
settings->getU16NoEx("mgfractal_iterations", iterations);
|
||||
settings->getV3FNoEx("mgfractal_scale", scale);
|
||||
settings->getV3FNoEx("mgfractal_offset", offset);
|
||||
settings->getFloatNoEx("mgfractal_slice_w", slice_w);
|
||||
settings->getFloatNoEx("mgfractal_julia_x", julia_x);
|
||||
settings->getFloatNoEx("mgfractal_julia_y", julia_y);
|
||||
settings->getFloatNoEx("mgfractal_julia_z", julia_z);
|
||||
settings->getFloatNoEx("mgfractal_julia_w", julia_w);
|
||||
|
||||
settings->getNoiseParams("mgfractal_np_seabed", np_seabed);
|
||||
settings->getNoiseParams("mgfractal_np_filler_depth", np_filler_depth);
|
||||
|
@ -112,17 +114,18 @@ void MapgenFractalParams::readParams(const Settings *settings)
|
|||
|
||||
void MapgenFractalParams::writeParams(Settings *settings) const
|
||||
{
|
||||
settings->setFlagStr("mgfractal_spflags", spflags, flagdesc_mapgen_fractal, U32_MAX);
|
||||
settings->setFloat("mgfractal_cave_width", cave_width);
|
||||
settings->setU16("mgfractal_fractal", fractal);
|
||||
settings->setU16("mgfractal_iterations", iterations);
|
||||
settings->setV3F("mgfractal_scale", scale);
|
||||
settings->setV3F("mgfractal_offset", offset);
|
||||
settings->setFloat("mgfractal_slice_w", slice_w);
|
||||
settings->setFloat("mgfractal_julia_x", julia_x);
|
||||
settings->setFloat("mgfractal_julia_y", julia_y);
|
||||
settings->setFloat("mgfractal_julia_z", julia_z);
|
||||
settings->setFloat("mgfractal_julia_w", julia_w);
|
||||
settings->setFlagStr("mgfractal_spflags", spflags, flagdesc_mapgen_fractal, U32_MAX);
|
||||
settings->setFloat("mgfractal_cave_width", cave_width);
|
||||
settings->setS16("mgfractal_large_cave_depth", large_cave_depth);
|
||||
settings->setU16("mgfractal_fractal", fractal);
|
||||
settings->setU16("mgfractal_iterations", iterations);
|
||||
settings->setV3F("mgfractal_scale", scale);
|
||||
settings->setV3F("mgfractal_offset", offset);
|
||||
settings->setFloat("mgfractal_slice_w", slice_w);
|
||||
settings->setFloat("mgfractal_julia_x", julia_x);
|
||||
settings->setFloat("mgfractal_julia_y", julia_y);
|
||||
settings->setFloat("mgfractal_julia_z", julia_z);
|
||||
settings->setFloat("mgfractal_julia_w", julia_w);
|
||||
|
||||
settings->setNoiseParams("mgfractal_np_seabed", np_seabed);
|
||||
settings->setNoiseParams("mgfractal_np_filler_depth", np_filler_depth);
|
||||
|
@ -196,7 +199,7 @@ void MapgenFractal::makeChunk(BlockMakeData *data)
|
|||
MgStoneType stone_type = generateBiomes();
|
||||
|
||||
if (flags & MG_CAVES)
|
||||
generateCaves(stone_surface_max_y, MGFRACTAL_LARGE_CAVE_DEPTH);
|
||||
generateCaves(stone_surface_max_y, large_cave_depth);
|
||||
|
||||
if (flags & MG_DUNGEONS)
|
||||
generateDungeons(stone_surface_max_y, stone_type);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue