]> git.lizzy.rs Git - minetest.git/blobdiff - src/mapgen_v5.cpp
Mgvalleys: use standard caves
[minetest.git] / src / mapgen_v5.cpp
index 1e5e5dbf03cca32ca2820ba23d6b5538cef10b03..48b717292c8152d91f5e090c7955f3f274094641 100644 (file)
@@ -1,6 +1,7 @@
 /*
 Minetest
-Copyright (C) 2010-2013 kwolekr, Ryan Kwolek <kwolekr@minetest.net>
+Copyright (C) 2010-2015 kwolekr, Ryan Kwolek <kwolekr@minetest.net>
+Copyright (C) 2010-2015 paramat, Matt Gregory
 
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU Lesser General Public License as published by
@@ -37,7 +38,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "mg_ore.h"
 #include "mg_decoration.h"
 #include "mapgen_v5.h"
-#include "util/directiontables.h"
 
 
 FlagDesc flagdesc_mapgen_v5[] = {
@@ -215,9 +215,9 @@ void MapgenV5::makeChunk(BlockMakeData *data)
                data->blockpos_requested.Y <= data->blockpos_max.Y &&
                data->blockpos_requested.Z <= data->blockpos_max.Z);
 
-       generating = true;
-       vm   = data->vmanip;
-       ndef = data->nodedef;
+       this->generating = true;
+       this->vm   = data->vmanip;
+       this->ndef = data->nodedef;
        //TimeTaker t("makeChunk");
 
        v3s16 blockpos_min = data->blockpos_min;
@@ -295,7 +295,8 @@ void MapgenV5::makeChunk(BlockMakeData *data)
        }
 
        // Generate the registered decorations
-       m_emerge->decomgr->placeAllDecos(this, blockseed, node_min, node_max);
+       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);
@@ -516,7 +517,7 @@ void MapgenV5::generateCaves(int max_stone_y)
                        for (s16 x = node_min.X; x <= node_max.X; x++, i++, index++) {
                                float d1 = contour(noise_cave1->result[index]);
                                float d2 = contour(noise_cave2->result[index]);
-                               if (d1*d2 > 0.125) {
+                               if (d1 * d2 > 0.125f) {
                                        content_t c = vm->m_data[i].getContent();
                                        if (!ndef->get(c).is_ground_content || c == CONTENT_AIR)
                                                continue;
@@ -527,11 +528,11 @@ void MapgenV5::generateCaves(int max_stone_y)
                }
        }
 
-       if (node_max.Y > LARGE_CAVE_DEPTH)
+       if (node_max.Y > MGV5_LARGE_CAVE_DEPTH)
                return;
 
        PseudoRandom ps(blockseed + 21343);
-       u32 bruises_count = (ps.range(1, 4) == 1) ? ps.range(1, 2) : 0;
+       u32 bruises_count = ps.range(0, 2);
        for (u32 i = 0; i < bruises_count; i++) {
                CaveV5 cave(this, &ps);
                cave.makeCave(node_min, node_max, max_stone_y);