From b40e5998664ad6f03a59b70f1ddcdf651f4560ab Mon Sep 17 00:00:00 2001 From: RealBadAngel Date: Sat, 29 Dec 2012 16:20:09 +0100 Subject: L-System treegen --- src/mapgen.cpp | 170 +-------------------------------------------------------- 1 file changed, 2 insertions(+), 168 deletions(-) (limited to 'src/mapgen.cpp') diff --git a/src/mapgen.cpp b/src/mapgen.cpp index 782f00b62..ae0c551cb 100644 --- a/src/mapgen.cpp +++ b/src/mapgen.cpp @@ -29,6 +29,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "voxelalgorithms.h" #include "profiler.h" #include "main.h" // For g_profiler +#include "treegen.h" namespace mapgen { @@ -120,174 +121,7 @@ static s16 find_stone_level(VoxelManipulator &vmanip, v2s16 p2d, } #endif -void make_tree(ManualMapVoxelManipulator &vmanip, v3s16 p0, - bool is_apple_tree, INodeDefManager *ndef) -{ - MapNode treenode(ndef->getId("mapgen_tree")); - MapNode leavesnode(ndef->getId("mapgen_leaves")); - MapNode applenode(ndef->getId("mapgen_apple")); - - s16 trunk_h = myrand_range(4, 5); - v3s16 p1 = p0; - for(s16 ii=0; ii leaves_d(new u8[leaves_a.getVolume()]); - Buffer leaves_d(leaves_a.getVolume()); - for(s32 i=0; igetId("mapgen_jungletree")); - MapNode leavesnode(ndef->getId("mapgen_leaves")); - - for(s16 x=-1; x<=1; x++) - for(s16 z=-1; z<=1; z++) - { - if(myrand_range(0, 2) == 0) - continue; - v3s16 p1 = p0 + v3s16(x,0,z); - v3s16 p2 = p0 + v3s16(x,-1,z); - if(vmanip.m_area.contains(p2) - && vmanip.m_data[vmanip.m_area.index(p2)] == CONTENT_AIR) - vmanip.m_data[vmanip.m_area.index(p2)] = treenode; - else if(vmanip.m_area.contains(p1)) - vmanip.m_data[vmanip.m_area.index(p1)] = treenode; - } - - s16 trunk_h = myrand_range(8, 12); - v3s16 p1 = p0; - for(s16 ii=0; ii leaves_d(new u8[leaves_a.getVolume()]); - Buffer leaves_d(leaves_a.getVolume()); - for(s32 i=0; i