X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fmapgen.cpp;h=77bd8a8b0a19d989a258d8ea643c4e4ab573ef12;hb=4c876ac62eb6aab0a6b2ee215e02b8d181cdf1cb;hp=fd5851c9816df7e00a952d1fcb8e9467463c76c9;hpb=0a59605e0529f6e12bd5bdf07969643c2311e62a;p=oweals%2Fminetest.git diff --git a/src/mapgen.cpp b/src/mapgen.cpp index fd5851c98..77bd8a8b0 100644 --- a/src/mapgen.cpp +++ b/src/mapgen.cpp @@ -1328,9 +1328,7 @@ void make_block(BlockMakeData *data) //double gen_area_nodes = MAP_BLOCKSIZE*MAP_BLOCKSIZE * rel_volume; // Horribly wrong heuristic, but better than nothing - bool block_is_underground = (WATER_LEVEL /* local minimum ground level */ > - MAP_BLOCKSIZE * (data->blockpos_max.X - - data->blockpos_min.X + 1) / 2); + bool block_is_underground = (WATER_LEVEL > node_max.Y); /* Create a block-specific seed @@ -1418,12 +1416,14 @@ void make_block(BlockMakeData *data) u32 i = vmanip.m_area.index(v3s16(p2d.X, node_min.Y, p2d.Y)); for(s16 y=node_min.Y; y<=node_max.Y; y++) { - if(y <= surface_y) - vmanip.m_data[i] = MapNode(c_stone); - else if(y <= WATER_LEVEL) + if(y <= surface_y){ + if(vmanip.m_data[i].getContent() == CONTENT_IGNORE) + vmanip.m_data[i] = MapNode(c_stone); + } else if(y <= WATER_LEVEL){ vmanip.m_data[i] = MapNode(c_water_source); - else + } else { vmanip.m_data[i] = MapNode(c_air); + } vmanip.m_area.add_y(em, i, 1); } @@ -1461,12 +1461,10 @@ void make_block(BlockMakeData *data) u32 bruises_count = volume_nodes * stone_surface_max_y / 40000000; if(stone_surface_max_y < WATER_LEVEL - 20) bruises_count = 0; - /*u32 caves_count = 0; - u32 bruises_count = 0;*/ for(u32 jj=0; jj