summaryrefslogtreecommitdiff
path: root/src/mapgen
diff options
context:
space:
mode:
authorParamat <paramat@users.noreply.github.com>2018-08-20 18:24:53 +0100
committerGitHub <noreply@github.com>2018-08-20 18:24:53 +0100
commit8516f284580a366d014f13a0bbd797da49d4df7e (patch)
treef5b674340762bfa7bfb2d0b38432aab8c31f4963 /src/mapgen
parent5a26e46aaa38cccb2b38cfc784364f1f265cec9b (diff)
downloadminetest-8516f284580a366d014f13a0bbd797da49d4df7e.tar.gz
minetest-8516f284580a366d014f13a0bbd797da49d4df7e.tar.bz2
minetest-8516f284580a366d014f13a0bbd797da49d4df7e.zip
Change mapgen order to ores > dungeons > decorations (#7656)
Previously dungeons > decorations > ores. Decorations depend on the node they are placed on, and ore types are increasingly able to place large continuous volumes of nodes, such as strata. Decorations are increasingly being used underground. The new order avoids a node being changed by ore generation after a decoration has been placed on it. The new order also avoids ores appearing in the walls of a dungeon if the wall nodes match the local stone node.
Diffstat (limited to 'src/mapgen')
-rw-r--r--src/mapgen/mapgen_carpathian.cpp6
-rw-r--r--src/mapgen/mapgen_flat.cpp6
-rw-r--r--src/mapgen/mapgen_fractal.cpp6
-rw-r--r--src/mapgen/mapgen_v5.cpp6
-rw-r--r--src/mapgen/mapgen_v7.cpp6
-rw-r--r--src/mapgen/mapgen_valleys.cpp6
6 files changed, 18 insertions, 18 deletions
diff --git a/src/mapgen/mapgen_carpathian.cpp b/src/mapgen/mapgen_carpathian.cpp
index c1e07030c..f7daef708 100644
--- a/src/mapgen/mapgen_carpathian.cpp
+++ b/src/mapgen/mapgen_carpathian.cpp
@@ -273,6 +273,9 @@ void MapgenCarpathian::makeChunk(BlockMakeData *data)
generateCavesRandomWalk(stone_surface_max_y, large_cave_depth);
}
+ // Generate the registered ores
+ m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max);
+
// Generate dungeons
if ((flags & MG_DUNGEONS) && full_node_min.Y >= dungeon_ymin &&
full_node_max.Y <= dungeon_ymax)
@@ -282,9 +285,6 @@ void MapgenCarpathian::makeChunk(BlockMakeData *data)
if (flags & MG_DECORATIONS)
m_emerge->decomgr->placeAllDecos(this, blockseed, node_min, node_max);
- // Generate the registered ores
- m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max);
-
// Sprinkle some dust on top after everything else was generated
if (flags & MG_BIOMES)
dustTopNodes();
diff --git a/src/mapgen/mapgen_flat.cpp b/src/mapgen/mapgen_flat.cpp
index e2bc42918..11b27f85c 100644
--- a/src/mapgen/mapgen_flat.cpp
+++ b/src/mapgen/mapgen_flat.cpp
@@ -207,6 +207,9 @@ void MapgenFlat::makeChunk(BlockMakeData *data)
generateCavesRandomWalk(stone_surface_max_y, large_cave_depth);
}
+ // Generate the registered ores
+ m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max);
+
if ((flags & MG_DUNGEONS) && full_node_min.Y >= dungeon_ymin &&
full_node_max.Y <= dungeon_ymax)
generateDungeons(stone_surface_max_y);
@@ -215,9 +218,6 @@ void MapgenFlat::makeChunk(BlockMakeData *data)
if (flags & MG_DECORATIONS)
m_emerge->decomgr->placeAllDecos(this, blockseed, node_min, node_max);
- // Generate the registered ores
- m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max);
-
// Sprinkle some dust on top after everything else was generated
if (flags & MG_BIOMES)
dustTopNodes();
diff --git a/src/mapgen/mapgen_fractal.cpp b/src/mapgen/mapgen_fractal.cpp
index b915cd8f9..68a66bba9 100644
--- a/src/mapgen/mapgen_fractal.cpp
+++ b/src/mapgen/mapgen_fractal.cpp
@@ -218,6 +218,9 @@ void MapgenFractal::makeChunk(BlockMakeData *data)
generateCavesRandomWalk(stone_surface_max_y, large_cave_depth);
}
+ // Generate the registered ores
+ m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max);
+
if ((flags & MG_DUNGEONS) && full_node_min.Y >= dungeon_ymin &&
full_node_max.Y <= dungeon_ymax)
generateDungeons(stone_surface_max_y);
@@ -226,9 +229,6 @@ void MapgenFractal::makeChunk(BlockMakeData *data)
if (flags & MG_DECORATIONS)
m_emerge->decomgr->placeAllDecos(this, blockseed, node_min, node_max);
- // Generate the registered ores
- m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max);
-
// Sprinkle some dust on top after everything else was generated
if (flags & MG_BIOMES)
dustTopNodes();
diff --git a/src/mapgen/mapgen_v5.cpp b/src/mapgen/mapgen_v5.cpp
index 3e8f42acf..c5be727b9 100644
--- a/src/mapgen/mapgen_v5.cpp
+++ b/src/mapgen/mapgen_v5.cpp
@@ -232,6 +232,9 @@ void MapgenV5::makeChunk(BlockMakeData *data)
generateCavesRandomWalk(stone_surface_max_y, large_cave_depth);
}
+ // Generate the registered ores
+ m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max);
+
// Generate dungeons and desert temples
if ((flags & MG_DUNGEONS) && full_node_min.Y >= dungeon_ymin &&
full_node_max.Y <= dungeon_ymax)
@@ -241,9 +244,6 @@ void MapgenV5::makeChunk(BlockMakeData *data)
if (flags & MG_DECORATIONS)
m_emerge->decomgr->placeAllDecos(this, blockseed, node_min, node_max);
- // Generate the registered ores
- m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max);
-
// Sprinkle some dust on top after everything else was generated
if (flags & MG_BIOMES)
dustTopNodes();
diff --git a/src/mapgen/mapgen_v7.cpp b/src/mapgen/mapgen_v7.cpp
index e266e29c8..1354bf256 100644
--- a/src/mapgen/mapgen_v7.cpp
+++ b/src/mapgen/mapgen_v7.cpp
@@ -352,6 +352,9 @@ void MapgenV7::makeChunk(BlockMakeData *data)
generateCavesRandomWalk(stone_surface_max_y, large_cave_depth);
}
+ // Generate the registered ores
+ m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max);
+
// Generate dungeons
if ((flags & MG_DUNGEONS) && full_node_min.Y >= dungeon_ymin &&
full_node_max.Y <= dungeon_ymax)
@@ -361,9 +364,6 @@ void MapgenV7::makeChunk(BlockMakeData *data)
if (flags & MG_DECORATIONS)
m_emerge->decomgr->placeAllDecos(this, blockseed, node_min, node_max);
- // Generate the registered ores
- m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max);
-
// Sprinkle some dust on top after everything else was generated
if (flags & MG_BIOMES)
dustTopNodes();
diff --git a/src/mapgen/mapgen_valleys.cpp b/src/mapgen/mapgen_valleys.cpp
index 0a0f93a75..404ec585a 100644
--- a/src/mapgen/mapgen_valleys.cpp
+++ b/src/mapgen/mapgen_valleys.cpp
@@ -253,6 +253,9 @@ void MapgenValleys::makeChunk(BlockMakeData *data)
generateCavesRandomWalk(stone_surface_max_y, large_cave_depth);
}
+ // Generate the registered ores
+ m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max);
+
// Dungeon creation
if ((flags & MG_DUNGEONS) && full_node_min.Y >= dungeon_ymin &&
full_node_max.Y <= dungeon_ymax)
@@ -262,9 +265,6 @@ void MapgenValleys::makeChunk(BlockMakeData *data)
if (flags & MG_DECORATIONS)
m_emerge->decomgr->placeAllDecos(this, blockseed, node_min, node_max);
- // Generate the registered ores
- m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max);
-
// Sprinkle some dust on top after everything else was generated
if (flags & MG_BIOMES)
dustTopNodes();