X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fmapgen_v7.h;h=1af88ddf5b0a67b2996dd4d43f3fe214d5560327;hb=29b413b376d42c27bf1f7065c9f7c850b61f3f24;hp=e39bf715857b0f5cabf42f62f608f47c455c1de4;hpb=2e292b67a0a02b045969034c06aaf92b42a83a81;p=dragonfireclient.git diff --git a/src/mapgen_v7.h b/src/mapgen_v7.h index e39bf7158..1af88ddf5 100644 --- a/src/mapgen_v7.h +++ b/src/mapgen_v7.h @@ -22,103 +22,109 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "mapgen.h" -extern NoiseParams nparams_v7_def_terrain_base; -extern NoiseParams nparams_v7_def_terrain_alt; -extern NoiseParams nparams_v7_def_terrain_mod; -extern NoiseParams nparams_v7_def_terrain_persist; -extern NoiseParams nparams_v7_def_height_select; -extern NoiseParams nparams_v7_def_ridge; - -struct MapgenV7Params : public MapgenParams { +/////////////////// Mapgen V7 flags +#define MGV7_MOUNTAINS 0x01 +#define MGV7_RIDGES 0x02 + +class BiomeManager; + +extern FlagDesc flagdesc_mapgen_v7[]; + + +struct MapgenV7Params : public MapgenSpecificParams { + u32 spflags; NoiseParams np_terrain_base; NoiseParams np_terrain_alt; - NoiseParams np_terrain_mod; NoiseParams np_terrain_persist; NoiseParams np_height_select; + NoiseParams np_filler_depth; + NoiseParams np_mount_height; + NoiseParams np_ridge_uwater; + NoiseParams np_mountain; NoiseParams np_ridge; - - MapgenV7Params() { - np_terrain_base = nparams_v7_def_terrain_base; - np_terrain_alt = nparams_v7_def_terrain_alt; - np_terrain_mod = nparams_v7_def_terrain_mod; - np_terrain_persist = nparams_v7_def_terrain_persist; - np_height_select = nparams_v7_def_height_select; - np_ridge = nparams_v7_def_ridge; - } - + + MapgenV7Params(); ~MapgenV7Params() {} - - bool readParams(Settings *settings); + + void readParams(Settings *settings); void writeParams(Settings *settings); }; class MapgenV7 : public Mapgen { public: EmergeManager *emerge; - BiomeDefManager *bmgr; + BiomeManager *bmgr; int ystride; - u32 flags; - bool ridges; + int zstride; + u32 spflags; u32 blockseed; v3s16 node_min; v3s16 node_max; v3s16 full_node_min; v3s16 full_node_max; - + s16 *ridge_heightmap; - + Noise *noise_terrain_base; Noise *noise_terrain_alt; - Noise *noise_terrain_mod; Noise *noise_terrain_persist; Noise *noise_height_select; - + Noise *noise_filler_depth; + Noise *noise_mount_height; + Noise *noise_ridge_uwater; + Noise *noise_mountain; Noise *noise_ridge; - + Noise *noise_heat; Noise *noise_humidity; - + content_t c_stone; content_t c_dirt; content_t c_dirt_with_grass; content_t c_sand; content_t c_water_source; content_t c_lava_source; + content_t c_ice; content_t c_gravel; content_t c_cobble; content_t c_desert_sand; content_t c_desert_stone; - MapgenV7(int mapgenid, MapgenV7Params *params, EmergeManager *emerge); + MapgenV7(int mapgenid, MapgenParams *params, EmergeManager *emerge); ~MapgenV7(); - + virtual void makeChunk(BlockMakeData *data); int getGroundLevelAtPoint(v2s16 p); Biome *getBiomeAtPoint(v3s16 p); float baseTerrainLevelAtPoint(int x, int z); float baseTerrainLevelFromMap(int index); + bool getMountainTerrainAtPoint(int x, int y, int z); + bool getMountainTerrainFromMap(int idx_xyz, int idx_xz, int y); + void calculateNoise(); - int calcHeightMap(); - - virtual void generateTerrain(); - void carveRidges(); - //void carveRivers(); //experimental - - void testBiomes(); - void addTopNodes(); - + + virtual int generateTerrain(); + int generateBaseTerrain(); + void generateMountainTerrain(); + void generateRidgeTerrain(); + + void generateBiomes(); + void dustTopNodes(); + + //void addTopNodes(); + void generateCaves(int max_stone_y); }; struct MapgenFactoryV7 : public MapgenFactory { Mapgen *createMapgen(int mgid, MapgenParams *params, EmergeManager *emerge) { - return new MapgenV7(mgid, (MapgenV7Params *)params, emerge); + return new MapgenV7(mgid, params, emerge); }; - - MapgenParams *createMapgenParams() { + + MapgenSpecificParams *createMapgenParams() { return new MapgenV7Params(); }; };