diff options
author | paramat <paramat@users.noreply.github.com> | 2017-06-14 02:00:51 +0100 |
---|---|---|
committer | paramat <mat.gregory@virginmedia.com> | 2017-07-11 01:14:24 +0100 |
commit | 8299e4b67eff48e0f6e101afea2fae8f0e65c421 (patch) | |
tree | fed891f09468aca2b53c8ced933fb88de2a823c6 /src/mapgen.cpp | |
parent | ef285b2815962a7a01791059ed984cb12fdba4dd (diff) | |
download | minetest-8299e4b67eff48e0f6e101afea2fae8f0e65c421.tar.gz minetest-8299e4b67eff48e0f6e101afea2fae8f0e65c421.tar.bz2 minetest-8299e4b67eff48e0f6e101afea2fae8f0e65c421.zip |
Biomes/decorations/ores: Make relative to 'water_level' setting
Add 'biome_zero_level' argument to 'generateBiomes()', 'deco_zero_level'
argument to 'placeAllDecos()' and 'ore_zero_level' to 'placeAllOres()'
to allow mapgens to vertically shift the registered biomes, decorations
and ores per-mapchunk.
Will also allow many realm possibilities in future mapgens.
Diffstat (limited to 'src/mapgen.cpp')
-rw-r--r-- | src/mapgen.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/mapgen.cpp b/src/mapgen.cpp index b095d34c8..7a03a4606 100644 --- a/src/mapgen.cpp +++ b/src/mapgen.cpp @@ -621,7 +621,7 @@ MapgenBasic::~MapgenBasic() } -MgStoneType MapgenBasic::generateBiomes() +MgStoneType MapgenBasic::generateBiomes(s16 biome_zero_level) { // can't generate biomes without a biome generator! assert(biomegen); @@ -673,7 +673,10 @@ MgStoneType MapgenBasic::generateBiomes() (air_above || !biome); if (is_stone_surface || is_water_surface) { - biome = biomegen->getBiomeAtIndex(index, y); + // Limit to +-MAX MAP GENERATION LIMIT to work with biome y_min / y_max. + s32 relative_y = rangelim(y - biome_zero_level, + -MAX_MAP_GENERATION_LIMIT, MAX_MAP_GENERATION_LIMIT); + biome = biomegen->getBiomeAtIndex(index, relative_y); if (biomemap[index] == BIOME_NONE && is_stone_surface) biomemap[index] = biome->index; |