#define MAPGEN_HEADER
#include "common_irrlicht.h"
+#include "utility.h" // UniqueQueue
struct BlockMakeData;
class MapBlock;
+class ManualMapVoxelManipulator;
+class INodeDefManager;
namespace mapgen
{
// 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
*/
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;
+ UniqueQueue<v3s16> transforming_liquid;
+ INodeDefManager *nodedef;
+
+ BlockMakeData();
+ ~BlockMakeData();
+ };
}; // namespace mapgen