X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Ftreegen.cpp;h=542bdf21c10305855dddde769d17b40ed5a2a010;hb=37b7f094e3ea502339794f64e8bad22444c6fb54;hp=808cf916a386ada660edd03dff69297445cea4a2;hpb=a0566270d9fa075afa36a7e3e68c690b1b23ba90;p=oweals%2Fminetest.git diff --git a/src/treegen.cpp b/src/treegen.cpp index 808cf916a..542bdf21c 100644 --- a/src/treegen.cpp +++ b/src/treegen.cpp @@ -19,6 +19,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "irr_v3d.h" #include +#include "util/pointer.h" #include "util/numeric.h" #include "util/mathconstants.h" #include "map.h" @@ -32,6 +33,11 @@ namespace treegen void make_tree(ManualMapVoxelManipulator &vmanip, v3s16 p0, bool is_apple_tree, INodeDefManager *ndef, int seed) { + /* + NOTE: Tree-placing code is currently duplicated in the engine + and in games that have saplings; both are deprecated but not + replaced yet + */ MapNode treenode(ndef->getId("mapgen_tree")); MapNode leavesnode(ndef->getId("mapgen_leaves")); MapNode applenode(ndef->getId("mapgen_apple")); @@ -225,7 +231,7 @@ void make_ltree(ManualMapVoxelManipulator &vmanip, v3s16 p0, INodeDefManager *nd tree_node_placement(vmanip,v3f(position.X,position.Y-1,position.Z+1),dirtnode); tree_node_placement(vmanip,v3f(position.X+1,position.Y-1,position.Z+1),dirtnode); } - if (tree_definition.trunk_type == "crossed") + else if (tree_definition.trunk_type == "crossed") { tree_node_placement(vmanip,v3f(position.X+1,position.Y-1,position.Z),dirtnode); tree_node_placement(vmanip,v3f(position.X-1,position.Y-1,position.Z),dirtnode); @@ -283,7 +289,7 @@ void make_ltree(ManualMapVoxelManipulator &vmanip, v3s16 p0, INodeDefManager *nd tree_trunk_placement(vmanip,v3f(position.X,position.Y,position.Z+1),tree_definition); tree_trunk_placement(vmanip,v3f(position.X+1,position.Y,position.Z+1),tree_definition); } - if (tree_definition.trunk_type == "crossed" && !tree_definition.thin_branches) + else if (tree_definition.trunk_type == "crossed" && !tree_definition.thin_branches) { tree_trunk_placement(vmanip,v3f(position.X+1,position.Y,position.Z),tree_definition); tree_trunk_placement(vmanip,v3f(position.X-1,position.Y,position.Z),tree_definition); @@ -303,7 +309,7 @@ void make_ltree(ManualMapVoxelManipulator &vmanip, v3s16 p0, INodeDefManager *nd tree_trunk_placement(vmanip,v3f(position.X,position.Y,position.Z+1),tree_definition); tree_trunk_placement(vmanip,v3f(position.X+1,position.Y,position.Z+1),tree_definition); } - if ((stack_orientation.empty() && tree_definition.trunk_type == "crossed") || + else if ((stack_orientation.empty() && tree_definition.trunk_type == "crossed") || (!stack_orientation.empty() && tree_definition.trunk_type == "crossed" && !tree_definition.thin_branches)) { tree_trunk_placement(vmanip,v3f(position.X+1,position.Y,position.Z),tree_definition); @@ -510,6 +516,11 @@ v3f transposeMatrix(irr::core::matrix4 M, v3f v) void make_jungletree(VoxelManipulator &vmanip, v3s16 p0, INodeDefManager *ndef, int seed) { + /* + NOTE: Tree-placing code is currently duplicated in the engine + and in games that have saplings; both are deprecated but not + replaced yet + */ content_t c_tree = ndef->getId("mapgen_jungletree"); content_t c_leaves = ndef->getId("mapgen_jungleleaves"); if (c_tree == CONTENT_IGNORE)