summaryrefslogtreecommitdiff
path: root/src/mapgen/mapgen_fractal.cpp
diff options
context:
space:
mode:
authorParamat <paramat@users.noreply.github.com>2018-06-08 23:24:36 +0100
committerGitHub <noreply@github.com>2018-06-08 23:24:36 +0100
commit0b23253447623cadf1c394984ce0eee977d54b9b (patch)
tree6417d00f8d850eeb9e9fbda0b7dcf94705763efe /src/mapgen/mapgen_fractal.cpp
parent9ca37d86a3f8fd35150880e3c64cb81796430d68 (diff)
downloadminetest-0b23253447623cadf1c394984ce0eee977d54b9b.tar.gz
minetest-0b23253447623cadf1c394984ce0eee977d54b9b.tar.bz2
minetest-0b23253447623cadf1c394984ce0eee977d54b9b.zip
Mapgen flags: Add 'biomes' global mapgen flag (#7355)
Previously the only way to disable biomes was to 'clear' the registered biomes in a mod, but this method causes large amounts of unnecessary processing: 1. Calculation of 4 2D noises. 2. Looping through all nodes of a mapchunk replacing nodes with identical nodes. The new flag disables those operations.
Diffstat (limited to 'src/mapgen/mapgen_fractal.cpp')
-rw-r--r--src/mapgen/mapgen_fractal.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/mapgen/mapgen_fractal.cpp b/src/mapgen/mapgen_fractal.cpp
index a1d425cd0..b915cd8f9 100644
--- a/src/mapgen/mapgen_fractal.cpp
+++ b/src/mapgen/mapgen_fractal.cpp
@@ -206,8 +206,10 @@ void MapgenFractal::makeChunk(BlockMakeData *data)
updateHeightmap(node_min, node_max);
// Init biome generator, place biome-specific nodes, and build biomemap
- biomegen->calcBiomeNoise(node_min);
- generateBiomes();
+ if (flags & MG_BIOMES) {
+ biomegen->calcBiomeNoise(node_min);
+ generateBiomes();
+ }
if (flags & MG_CAVES) {
// Generate tunnels
@@ -228,7 +230,8 @@ void MapgenFractal::makeChunk(BlockMakeData *data)
m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max);
// Sprinkle some dust on top after everything else was generated
- dustTopNodes();
+ if (flags & MG_BIOMES)
+ dustTopNodes();
//printf("makeChunk: %dms\n", t.stop());