Tune caves
[oweals/minetest.git] / src / mapgen.h
index 5aa0282faecda91fd62ce072277fcf6fe873bfda..24a853bdccb14f897a7e66602d023b8318d8d496 100644 (file)
@@ -21,9 +21,12 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #define MAPGEN_HEADER
 
 #include "common_irrlicht.h"
+#include "utility.h" // UniqueQueue
 
 struct BlockMakeData;
 class MapBlock;
+class ManualMapVoxelManipulator;
+class INodeDefManager;
 
 namespace mapgen
 {
@@ -36,8 +39,9 @@ namespace mapgen
        // Main map generation routine
        void make_block(BlockMakeData *data);
        
-       // Add objects according to block content
-       void add_random_objects(MapBlock *block);
+       // Add a tree
+       void make_tree(ManualMapVoxelManipulator &vmanip, v3s16 p0,
+                       bool is_apple_tree, INodeDefManager *ndef);
        
        /*
                These are used by FarMesh
@@ -45,6 +49,21 @@ namespace mapgen
        bool get_have_sand(u64 seed, v2s16 p2d);
        double tree_amount_2d(u64 seed, v2s16 p);
 
+       struct BlockMakeData
+       {
+               bool no_op;
+               ManualMapVoxelManipulator *vmanip; // Destructor deletes
+               u64 seed;
+               v3s16 blockpos_min;
+               v3s16 blockpos_max;
+               v3s16 blockpos_requested;
+               UniqueQueue<v3s16> transforming_liquid;
+               INodeDefManager *nodedef;
+
+               BlockMakeData();
+               ~BlockMakeData();
+       };
+
 }; // namespace mapgen
 
 #endif