#define MAPGEN_HEADER
#include "common_irrlicht.h"
+#include "utility.h" // UniqueQueue
struct BlockMakeData;
class MapBlock;
+class ManualMapVoxelManipulator;
+class INodeDefManager;
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
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