/*
Minetest Valleys C
-Copyright (C) 2010-2015 kwolekr, Ryan Kwolek <kwolekr@minetest.net>
-Copyright (C) 2010-2015 paramat, Matt Gregory
-Copyright (C) 2016 Duane Robertson <duane@duanerobertson.com>
+Copyright (C) 2016-2017 Duane Robertson <duane@duanerobertson.com>
+Copyright (C) 2016-2017 paramat
Based on Valleys Mapgen by Gael de Sailly
(https://forum.minetest.net/viewtopic.php?f=9&t=11430)
//extern Profiler *mapgen_profiler;
-struct MapgenValleysParams : public MapgenSpecificParams {
- u32 spflags;
- s16 large_cave_depth;
- s16 massive_cave_depth;
- u16 altitude_chill;
- u16 lava_features;
- u16 river_depth;
- u16 river_size;
- u16 water_features;
- float cave_width;
+struct MapgenValleysParams : public MapgenParams {
+ u32 spflags = MGVALLEYS_HUMID_RIVERS | MGVALLEYS_ALT_CHILL;
+ s16 large_cave_depth = -33;
+ s16 massive_cave_depth = -256; // highest altitude of massive caves
+ u16 altitude_chill = 90; // The altitude at which temperature drops by 20C.
+ u16 lava_features = 0; // How often water will occur in caves.
+ u16 river_depth = 4; // How deep to carve river channels.
+ u16 river_size = 5; // How wide to make rivers.
+ u16 water_features = 0; // How often water will occur in caves.
+ float cave_width = 0.09f;
NoiseParams np_cave1;
NoiseParams np_cave2;
NoiseParams np_filler_depth;
class MapgenValleys : public MapgenBasic {
public:
- MapgenValleys(int mapgenid, MapgenParams *params, EmergeManager *emerge);
+ MapgenValleys(int mapgenid, MapgenValleysParams *params, EmergeManager *emerge);
~MapgenValleys();
+ virtual MapgenType getType() const { return MAPGEN_VALLEYS; }
+
virtual void makeChunk(BlockMakeData *data);
int getSpawnLevelAtPoint(v2s16 p);
private:
BiomeGenOriginal *m_bgen;
- float map_gen_limit;
-
bool humid_rivers;
bool use_altitude_chill;
float humidity_adjust;
Noise *noise_valley_depth;
Noise *noise_valley_profile;
- content_t c_lava_source;
- content_t c_sand;
-
float terrainLevelAtPoint(s16 x, s16 z);
void calculateNoise();
virtual void generateCaves(s16 max_stone_y, s16 large_cave_depth);
};
-struct MapgenFactoryValleys : public MapgenFactory {
- Mapgen *createMapgen(int mgid, MapgenParams *params, EmergeManager *emerge)
- {
- return new MapgenValleys(mgid, params, emerge);
- };
-
- MapgenSpecificParams *createMapgenParams()
- {
- return new MapgenValleysParams();
- };
-};
-
#endif