From 8516f284580a366d014f13a0bbd797da49d4df7e Mon Sep 17 00:00:00 2001 From: Paramat Date: Mon, 20 Aug 2018 18:24:53 +0100 Subject: [PATCH] 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. --- src/mapgen/mapgen_carpathian.cpp | 6 +++--- src/mapgen/mapgen_flat.cpp | 6 +++--- src/mapgen/mapgen_fractal.cpp | 6 +++--- src/mapgen/mapgen_v5.cpp | 6 +++--- src/mapgen/mapgen_v7.cpp | 6 +++--- src/mapgen/mapgen_valleys.cpp | 6 +++--- 6 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/mapgen/mapgen_carpathian.cpp b/src/mapgen/mapgen_carpathian.cpp index c1e07030..f7daef70 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 e2bc4291..11b27f85 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 b915cd8f..68a66bba 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 3e8f42ac..c5be727b 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 e266e29c..1354bf25 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 0a0f93a7..404ec585 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();