mapgen: drop mapgen id from child mapgens.
[oweals/minetest.git] / src / mapgen / mapgen_flat.cpp
index 60b30137b9763acce55238c4b23cc16f6fdb6ee6..e31dc47033b395dc7e3f272c54133d629b9c1f0b 100644 (file)
@@ -48,8 +48,8 @@ FlagDesc flagdesc_mapgen_flat[] = {
 ///////////////////////////////////////////////////////////////////////////////////////
 
 
-MapgenFlat::MapgenFlat(int mapgenid, MapgenFlatParams *params, EmergeManager *emerge)
-       : MapgenBasic(mapgenid, params, emerge)
+MapgenFlat::MapgenFlat(MapgenFlatParams *params, EmergeManager *emerge)
+       : MapgenBasic(MAPGEN_FLAT, params, emerge)
 {
        spflags          = params->spflags;
        ground_level     = params->ground_level;
@@ -195,11 +195,20 @@ void MapgenFlat::makeChunk(BlockMakeData *data)
        updateHeightmap(node_min, node_max);
 
        // Init biome generator, place biome-specific nodes, and build biomemap
-       biomegen->calcBiomeNoise(node_min);
-       generateBiomes();
+       if (flags & MG_BIOMES) {
+               biomegen->calcBiomeNoise(node_min);
+               generateBiomes();
+       }
+
+       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_CAVES)
-               generateCaves(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)
@@ -209,11 +218,9 @@ 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
-       dustTopNodes();
+       if (flags & MG_BIOMES)
+               dustTopNodes();
 
        //printf("makeChunk: %dms\n", t.stop());