X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fmapgen.cpp;h=8fc568f36b226da59dda3a5528cd6d869b3e114f;hb=64996422c00ddb70cfc8aee7da7b62485b8b0416;hp=9effa8ac66203eed0b98bc1008bb4efb816080dc;hpb=de868d24c170dc8f92ea1280bac80f0ab528d3e0;p=dragonfireclient.git diff --git a/src/mapgen.cpp b/src/mapgen.cpp index 9effa8ac6..8fc568f36 100644 --- a/src/mapgen.cpp +++ b/src/mapgen.cpp @@ -26,6 +26,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "mineral.h" //#include "serverobject.h" #include "content_sao.h" +#include "mapnode_contentfeatures.h" namespace mapgen { @@ -80,11 +81,12 @@ static s16 find_ground_level_clever(VoxelManipulator &vmanip, v2s16 p2d) } #endif -static void make_tree(VoxelManipulator &vmanip, v3s16 p0) +void make_tree(ManualMapVoxelManipulator &vmanip, v3s16 p0, bool is_apple_tree) { MapNode treenode(CONTENT_TREE); MapNode leavesnode(CONTENT_LEAVES); - + MapNode applenode(CONTENT_APPLE); + s16 trunk_h = myrand_range(4, 5); v3s16 p1 = p0; for(s16 ii=0; iisetChangedFlag(); +#endif } void make_block(BlockMakeData *data) @@ -1817,6 +1827,16 @@ void make_block(BlockMakeData *data) if(noisebuf_ground_wetness.get(x,y,z) < -0.6) vmanip.m_data[i] = MapNode(CONTENT_GRAVEL); } + else if(noisebuf_ground_crumbleness.get(x,y,z) < + -3.0 + MYMIN(0.1 * sqrt((float)MYMAX(0, -y)), 1.5)) + { + vmanip.m_data[i] = MapNode(CONTENT_LAVASOURCE); + for(s16 x1=-1; x1<=1; x1++) + for(s16 y1=-1; y1<=1; y1++) + for(s16 z1=-1; z1<=1; z1++) + data->transforming_liquid.push_back( + v3s16(p2d.X+x1, y+y1, p2d.Y+z1)); + } } data->vmanip->m_area.add_y(em, i, -1); @@ -2119,7 +2139,16 @@ void make_block(BlockMakeData *data) p.Y++; //if(surface_humidity_2d(data->seed, v2s16(x, y)) < 0.5) if(is_jungle == false) - make_tree(vmanip, p); + { + bool is_apple_tree; + if(myrand_range(0,4) != 0) + is_apple_tree = false; + else + is_apple_tree = noise2d_perlin( + 0.5+(float)p.X/100, 0.5+(float)p.Z/100, + data->seed+342902, 3, 0.45) > 0.2; + make_tree(vmanip, p, is_apple_tree); + } else make_jungletree(vmanip, p); }