mirror of
https://github.com/luanti-org/luanti.git
synced 2025-08-01 17:38:41 +00:00
Dungeons: Add Y limits in all mapgens
Preserve the upper limit used in mgvalleys.
This commit is contained in:
parent
0f015b28a3
commit
2bc7c5ff93
15 changed files with 142 additions and 14 deletions
|
@ -63,9 +63,11 @@ MapgenV6::MapgenV6(int mapgenid, MapgenV6Params *params, EmergeManager *emerge)
|
|||
|
||||
heightmap = new s16[csize.X * csize.Z];
|
||||
|
||||
spflags = params->spflags;
|
||||
freq_desert = params->freq_desert;
|
||||
freq_beach = params->freq_beach;
|
||||
spflags = params->spflags;
|
||||
freq_desert = params->freq_desert;
|
||||
freq_beach = params->freq_beach;
|
||||
dungeon_ymin = params->dungeon_ymin;
|
||||
dungeon_ymax = params->dungeon_ymax;
|
||||
|
||||
np_cave = ¶ms->np_cave;
|
||||
np_humidity = ¶ms->np_humidity;
|
||||
|
@ -166,6 +168,8 @@ void MapgenV6Params::readParams(const Settings *settings)
|
|||
settings->getFlagStrNoEx("mgv6_spflags", spflags, flagdesc_mapgen_v6);
|
||||
settings->getFloatNoEx("mgv6_freq_desert", freq_desert);
|
||||
settings->getFloatNoEx("mgv6_freq_beach", freq_beach);
|
||||
settings->getS16NoEx("mgv6_dungeon_ymin", dungeon_ymin);
|
||||
settings->getS16NoEx("mgv6_dungeon_ymax", dungeon_ymax);
|
||||
|
||||
settings->getNoiseParams("mgv6_np_terrain_base", np_terrain_base);
|
||||
settings->getNoiseParams("mgv6_np_terrain_higher", np_terrain_higher);
|
||||
|
@ -186,6 +190,8 @@ void MapgenV6Params::writeParams(Settings *settings) const
|
|||
settings->setFlagStr("mgv6_spflags", spflags, flagdesc_mapgen_v6, U32_MAX);
|
||||
settings->setFloat("mgv6_freq_desert", freq_desert);
|
||||
settings->setFloat("mgv6_freq_beach", freq_beach);
|
||||
settings->setS16("mgv6_dungeon_ymin", dungeon_ymin);
|
||||
settings->setS16("mgv6_dungeon_ymax", dungeon_ymax);
|
||||
|
||||
settings->setNoiseParams("mgv6_np_terrain_base", np_terrain_base);
|
||||
settings->setNoiseParams("mgv6_np_terrain_higher", np_terrain_higher);
|
||||
|
@ -553,7 +559,8 @@ void MapgenV6::makeChunk(BlockMakeData *data)
|
|||
updateHeightmap(node_min, node_max);
|
||||
|
||||
// Add dungeons
|
||||
if ((flags & MG_DUNGEONS) && (stone_surface_max_y >= node_min.Y)) {
|
||||
if ((flags & MG_DUNGEONS) && stone_surface_max_y >= node_min.Y &&
|
||||
full_node_min.Y >= dungeon_ymin && full_node_max.Y <= dungeon_ymax) {
|
||||
DungeonParams dp;
|
||||
|
||||
dp.seed = seed;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue