diff options
Diffstat (limited to 'src/mapgen/treegen.h')
-rw-r--r-- | src/mapgen/treegen.h | 120 |
1 files changed, 59 insertions, 61 deletions
diff --git a/src/mapgen/treegen.h b/src/mapgen/treegen.h index 447baabb3..f2ee36a4e 100644 --- a/src/mapgen/treegen.h +++ b/src/mapgen/treegen.h @@ -28,66 +28,64 @@ class MMVManip; class NodeDefManager; class ServerMap; -namespace treegen { - - enum error { - SUCCESS, - UNBALANCED_BRACKETS - }; - - struct TreeDef { - std::string initial_axiom; - std::string rules_a; - std::string rules_b; - std::string rules_c; - std::string rules_d; - - MapNode trunknode; - MapNode leavesnode; - MapNode leaves2node; - - int leaves2_chance; - int angle; - int iterations; - int iterations_random_level; - std::string trunk_type; - bool thin_branches; - MapNode fruitnode; - int fruit_chance; - s32 seed; - bool explicit_seed; - }; - - // Add default tree - void make_tree(MMVManip &vmanip, v3s16 p0, - bool is_apple_tree, const NodeDefManager *ndef, s32 seed); - // Add jungle tree - void make_jungletree(MMVManip &vmanip, v3s16 p0, - const NodeDefManager *ndef, s32 seed); - // Add pine tree - void make_pine_tree(MMVManip &vmanip, v3s16 p0, - const NodeDefManager *ndef, s32 seed); - - // Add L-Systems tree (used by engine) - treegen::error make_ltree(MMVManip &vmanip, v3s16 p0, - const NodeDefManager *ndef, TreeDef tree_definition); - // Spawn L-systems tree from LUA - treegen::error spawn_ltree (ServerMap *map, v3s16 p0, - const NodeDefManager *ndef, const TreeDef &tree_definition); - - // L-System tree gen helper functions - void tree_node_placement(MMVManip &vmanip, v3f p0, - MapNode node); - void tree_trunk_placement(MMVManip &vmanip, v3f p0, - TreeDef &tree_definition); - void tree_leaves_placement(MMVManip &vmanip, v3f p0, - PseudoRandom ps, TreeDef &tree_definition); - void tree_single_leaves_placement(MMVManip &vmanip, v3f p0, - PseudoRandom ps, TreeDef &tree_definition); - void tree_fruit_placement(MMVManip &vmanip, v3f p0, - TreeDef &tree_definition); - irr::core::matrix4 setRotationAxisRadians(irr::core::matrix4 M, double angle, v3f axis); - - v3f transposeMatrix(irr::core::matrix4 M ,v3f v); +namespace treegen +{ + +enum error +{ + SUCCESS, + UNBALANCED_BRACKETS +}; + +struct TreeDef +{ + std::string initial_axiom; + std::string rules_a; + std::string rules_b; + std::string rules_c; + std::string rules_d; + + MapNode trunknode; + MapNode leavesnode; + MapNode leaves2node; + + int leaves2_chance; + int angle; + int iterations; + int iterations_random_level; + std::string trunk_type; + bool thin_branches; + MapNode fruitnode; + int fruit_chance; + s32 seed; + bool explicit_seed; +}; + +// Add default tree +void make_tree(MMVManip &vmanip, v3s16 p0, bool is_apple_tree, const NodeDefManager *ndef, + s32 seed); +// Add jungle tree +void make_jungletree(MMVManip &vmanip, v3s16 p0, const NodeDefManager *ndef, s32 seed); +// Add pine tree +void make_pine_tree(MMVManip &vmanip, v3s16 p0, const NodeDefManager *ndef, s32 seed); + +// Add L-Systems tree (used by engine) +treegen::error make_ltree(MMVManip &vmanip, v3s16 p0, const NodeDefManager *ndef, + TreeDef tree_definition); +// Spawn L-systems tree from LUA +treegen::error spawn_ltree(ServerMap *map, v3s16 p0, const NodeDefManager *ndef, + const TreeDef &tree_definition); + +// L-System tree gen helper functions +void tree_node_placement(MMVManip &vmanip, v3f p0, MapNode node); +void tree_trunk_placement(MMVManip &vmanip, v3f p0, TreeDef &tree_definition); +void tree_leaves_placement( + MMVManip &vmanip, v3f p0, PseudoRandom ps, TreeDef &tree_definition); +void tree_single_leaves_placement( + MMVManip &vmanip, v3f p0, PseudoRandom ps, TreeDef &tree_definition); +void tree_fruit_placement(MMVManip &vmanip, v3f p0, TreeDef &tree_definition); +irr::core::matrix4 setRotationAxisRadians(irr::core::matrix4 M, double angle, v3f axis); + +v3f transposeMatrix(irr::core::matrix4 M, v3f v); }; // namespace treegen |