]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/mapgen/mapgen_fractal.cpp
Fix sky objects not rendering with ogles (#7598)
[dragonfireclient.git] / src / mapgen / mapgen_fractal.cpp
index 45526b13875390f14dbf037785b11ff32784bc5d..b915cd8f92716a6a68b46b8e92ca156dcf5f645e 100644 (file)
@@ -206,18 +206,21 @@ void MapgenFractal::makeChunk(BlockMakeData *data)
        updateHeightmap(node_min, node_max);
 
        // Init biome generator, place biome-specific nodes, and build biomemap
-       biomegen->calcBiomeNoise(node_min);
-
-       MgStoneType mgstone_type;
-       content_t biome_stone;
-       generateBiomes(&mgstone_type, &biome_stone);
+       if (flags & MG_BIOMES) {
+               biomegen->calcBiomeNoise(node_min);
+               generateBiomes();
+       }
 
-       if (flags & MG_CAVES)
-               generateCaves(stone_surface_max_y, large_cave_depth);
+       if (flags & MG_CAVES) {
+               // Generate tunnels
+               generateCavesNoiseIntersection(stone_surface_max_y);
+               // Generate large randomwalk caves
+               generateCavesRandomWalk(stone_surface_max_y, large_cave_depth);
+       }
 
        if ((flags & MG_DUNGEONS) && full_node_min.Y >= dungeon_ymin &&
                        full_node_max.Y <= dungeon_ymax)
-               generateDungeons(stone_surface_max_y, mgstone_type, biome_stone);
+               generateDungeons(stone_surface_max_y);
 
        // Generate the registered decorations
        if (flags & MG_DECORATIONS)
@@ -227,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());