X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fmapgen_fractal.cpp;h=3663599a5a7faa4299a654cedd9aa4e6b9a8f6ab;hb=7528986e4449febead9b18b6118f0b096f7cf800;hp=4fe0d836968d29e910b67b65dd79c2bd86458d0e;hpb=2e53801fc0d9ba13afec6c1ddb5e3999f68b96bd;p=dragonfireclient.git diff --git a/src/mapgen_fractal.cpp b/src/mapgen_fractal.cpp index 4fe0d8369..3663599a5 100644 --- a/src/mapgen_fractal.cpp +++ b/src/mapgen_fractal.cpp @@ -156,7 +156,8 @@ int MapgenFractal::getSpawnLevelAtPoint(v2s16 p) air_count = 0; } else if (solid_below) { // Air above solid node air_count++; - if (air_count == 2) + // 3 to account for snowblock dust + if (air_count == 3) return y - 2; } } @@ -199,20 +200,25 @@ void MapgenFractal::makeChunk(BlockMakeData *data) // Init biome generator, place biome-specific nodes, and build biomemap biomegen->calcBiomeNoise(node_min); - MgStoneType stone_type = generateBiomes(); + + MgStoneType mgstone_type; + content_t biome_stone; + generateBiomes(&mgstone_type, &biome_stone, water_level - 1); if (flags & MG_CAVES) generateCaves(stone_surface_max_y, large_cave_depth); if (flags & MG_DUNGEONS) - generateDungeons(stone_surface_max_y, stone_type); + generateDungeons(stone_surface_max_y, mgstone_type, biome_stone); // Generate the registered decorations if (flags & MG_DECORATIONS) - m_emerge->decomgr->placeAllDecos(this, blockseed, node_min, node_max); + m_emerge->decomgr->placeAllDecos(this, blockseed, + node_min, node_max, water_level - 1); // Generate the registered ores - m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max); + m_emerge->oremgr->placeAllOres(this, blockseed, + node_min, node_max, water_level - 1); // Sprinkle some dust on top after everything else was generated dustTopNodes();