#include "mapgen.h"
#define AVERAGE_MUD_AMOUNT 4
-#define VMANIP_FLAG_CAVE VOXELFLAG_CHECKED1
enum BiomeType
{
class MapgenV6 : public Mapgen {
public:
+ EmergeManager *emerge;
+
int ystride;
v3s16 csize;
u32 flags;
content_t c_desert_sand;
content_t c_desert_stone;
- MapgenV6(int mapgenid, MapgenV6Params *params);
+ MapgenV6(int mapgenid, MapgenV6Params *params, EmergeManager *emerge);
~MapgenV6();
void makeChunk(BlockMakeData *data);
float baseTerrainLevel(float terrain_base, float terrain_higher,
float steepness, float height_select);
- float baseTerrainLevelFromNoise(v2s16 p);
- float baseTerrainLevelFromMap(v2s16 p);
- float baseTerrainLevelFromMap(int index);
+ virtual float baseTerrainLevelFromNoise(v2s16 p);
+ virtual float baseTerrainLevelFromMap(v2s16 p);
+ virtual float baseTerrainLevelFromMap(int index);
s16 find_ground_level(v2s16 p2d);
s16 find_stone_level(v2s16 p2d);
float getTreeAmount(v2s16 p);
bool getHaveAppleTree(v2s16 p);
float getMudAmount(v2s16 p);
- float getMudAmount(int index);
+ virtual float getMudAmount(int index);
bool getHaveBeach(v2s16 p);
bool getHaveBeach(int index);
BiomeType getBiome(v2s16 p);
u32 get_blockseed(u64 seed, v3s16 p);
-
- void calculateNoise();
+ virtual void calculateNoise();
int generateGround();
void addMud();
void flowMud(s16 &mudflow_minpos, s16 &mudflow_maxpos);
void addDirtGravelBlobs();
void growGrass();
- void placeTrees();
- void generateCaves(int max_stone_y);
+ void placeTreesAndJungleGrass();
+ virtual void generateCaves(int max_stone_y);
+ virtual void generateExperimental() {}
};
struct MapgenFactoryV6 : public MapgenFactory {
Mapgen *createMapgen(int mgid, MapgenParams *params, EmergeManager *emerge) {
- return new MapgenV6(mgid, (MapgenV6Params *)params);
+ return new MapgenV6(mgid, (MapgenV6Params *)params, emerge);
};
MapgenParams *createMapgenParams() {