Skip to content

Commit 8516f28

Browse files
authored
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.
1 parent 5a26e46 commit 8516f28

6 files changed

+18
-18
lines changed

src/mapgen/mapgen_carpathian.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,9 @@ void MapgenCarpathian::makeChunk(BlockMakeData *data)
273273
generateCavesRandomWalk(stone_surface_max_y, large_cave_depth);
274274
}
275275

276+
// Generate the registered ores
277+
m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max);
278+
276279
// Generate dungeons
277280
if ((flags & MG_DUNGEONS) && full_node_min.Y >= dungeon_ymin &&
278281
full_node_max.Y <= dungeon_ymax)
@@ -282,9 +285,6 @@ void MapgenCarpathian::makeChunk(BlockMakeData *data)
282285
if (flags & MG_DECORATIONS)
283286
m_emerge->decomgr->placeAllDecos(this, blockseed, node_min, node_max);
284287

285-
// Generate the registered ores
286-
m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max);
287-
288288
// Sprinkle some dust on top after everything else was generated
289289
if (flags & MG_BIOMES)
290290
dustTopNodes();

src/mapgen/mapgen_flat.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,9 @@ void MapgenFlat::makeChunk(BlockMakeData *data)
207207
generateCavesRandomWalk(stone_surface_max_y, large_cave_depth);
208208
}
209209

210+
// Generate the registered ores
211+
m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max);
212+
210213
if ((flags & MG_DUNGEONS) && full_node_min.Y >= dungeon_ymin &&
211214
full_node_max.Y <= dungeon_ymax)
212215
generateDungeons(stone_surface_max_y);
@@ -215,9 +218,6 @@ void MapgenFlat::makeChunk(BlockMakeData *data)
215218
if (flags & MG_DECORATIONS)
216219
m_emerge->decomgr->placeAllDecos(this, blockseed, node_min, node_max);
217220

218-
// Generate the registered ores
219-
m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max);
220-
221221
// Sprinkle some dust on top after everything else was generated
222222
if (flags & MG_BIOMES)
223223
dustTopNodes();

src/mapgen/mapgen_fractal.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,9 @@ void MapgenFractal::makeChunk(BlockMakeData *data)
218218
generateCavesRandomWalk(stone_surface_max_y, large_cave_depth);
219219
}
220220

221+
// Generate the registered ores
222+
m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max);
223+
221224
if ((flags & MG_DUNGEONS) && full_node_min.Y >= dungeon_ymin &&
222225
full_node_max.Y <= dungeon_ymax)
223226
generateDungeons(stone_surface_max_y);
@@ -226,9 +229,6 @@ void MapgenFractal::makeChunk(BlockMakeData *data)
226229
if (flags & MG_DECORATIONS)
227230
m_emerge->decomgr->placeAllDecos(this, blockseed, node_min, node_max);
228231

229-
// Generate the registered ores
230-
m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max);
231-
232232
// Sprinkle some dust on top after everything else was generated
233233
if (flags & MG_BIOMES)
234234
dustTopNodes();

src/mapgen/mapgen_v5.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,9 @@ void MapgenV5::makeChunk(BlockMakeData *data)
232232
generateCavesRandomWalk(stone_surface_max_y, large_cave_depth);
233233
}
234234

235+
// Generate the registered ores
236+
m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max);
237+
235238
// Generate dungeons and desert temples
236239
if ((flags & MG_DUNGEONS) && full_node_min.Y >= dungeon_ymin &&
237240
full_node_max.Y <= dungeon_ymax)
@@ -241,9 +244,6 @@ void MapgenV5::makeChunk(BlockMakeData *data)
241244
if (flags & MG_DECORATIONS)
242245
m_emerge->decomgr->placeAllDecos(this, blockseed, node_min, node_max);
243246

244-
// Generate the registered ores
245-
m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max);
246-
247247
// Sprinkle some dust on top after everything else was generated
248248
if (flags & MG_BIOMES)
249249
dustTopNodes();

src/mapgen/mapgen_v7.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -352,6 +352,9 @@ void MapgenV7::makeChunk(BlockMakeData *data)
352352
generateCavesRandomWalk(stone_surface_max_y, large_cave_depth);
353353
}
354354

355+
// Generate the registered ores
356+
m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max);
357+
355358
// Generate dungeons
356359
if ((flags & MG_DUNGEONS) && full_node_min.Y >= dungeon_ymin &&
357360
full_node_max.Y <= dungeon_ymax)
@@ -361,9 +364,6 @@ void MapgenV7::makeChunk(BlockMakeData *data)
361364
if (flags & MG_DECORATIONS)
362365
m_emerge->decomgr->placeAllDecos(this, blockseed, node_min, node_max);
363366

364-
// Generate the registered ores
365-
m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max);
366-
367367
// Sprinkle some dust on top after everything else was generated
368368
if (flags & MG_BIOMES)
369369
dustTopNodes();

src/mapgen/mapgen_valleys.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,9 @@ void MapgenValleys::makeChunk(BlockMakeData *data)
253253
generateCavesRandomWalk(stone_surface_max_y, large_cave_depth);
254254
}
255255

256+
// Generate the registered ores
257+
m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max);
258+
256259
// Dungeon creation
257260
if ((flags & MG_DUNGEONS) && full_node_min.Y >= dungeon_ymin &&
258261
full_node_max.Y <= dungeon_ymax)
@@ -262,9 +265,6 @@ void MapgenValleys::makeChunk(BlockMakeData *data)
262265
if (flags & MG_DECORATIONS)
263266
m_emerge->decomgr->placeAllDecos(this, blockseed, node_min, node_max);
264267

265-
// Generate the registered ores
266-
m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max);
267-
268268
// Sprinkle some dust on top after everything else was generated
269269
if (flags & MG_BIOMES)
270270
dustTopNodes();

0 commit comments

Comments
 (0)