X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fmapgen_v7.h;h=c0cfa8c77774c7bccc49d88ba4a62f2ba0f69b38;hb=7dcc115b02af411844152ae49c8579d1bd146108;hp=6267350d633dc368ccc2847eb98cab0eabf59ef7;hpb=8aa930f28e69f3518831500022988ca2a4b6985d;p=dragonfireclient.git diff --git a/src/mapgen_v7.h b/src/mapgen_v7.h index 6267350d6..c0cfa8c77 100644 --- a/src/mapgen_v7.h +++ b/src/mapgen_v7.h @@ -22,104 +22,117 @@ 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; - } - + NoiseParams np_cave1; + NoiseParams np_cave2; + + MapgenV7Params(); ~MapgenV7Params() {} - - bool readParams(Settings *settings); - void writeParams(Settings *settings); + + void readParams(const Settings *settings); + void writeParams(Settings *settings) const; }; class MapgenV7 : public Mapgen { public: - EmergeManager *emerge; - BiomeDefManager *bmgr; + EmergeManager *m_emerge; + BiomeManager *bmgr; int ystride; - u32 flags; - bool lighting; - 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_cave1; + Noise *noise_cave2; + Noise *noise_heat; Noise *noise_humidity; - + Noise *noise_heat_blend; + Noise *noise_humidity_blend; + 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_gravel; - content_t c_cobble; - content_t c_desert_sand; content_t c_desert_stone; + content_t c_ice; + content_t c_sandstone; + + content_t c_cobble; + content_t c_stair_cobble; + content_t c_mossycobble; + content_t c_sandstonebrick; + content_t c_stair_sandstonebrick; - 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 baseTerrainLevelAtPoint(s16 x, s16 z); float baseTerrainLevelFromMap(int index); + bool getMountainTerrainAtPoint(s16 x, s16 y, s16 z); + bool getMountainTerrainFromMap(int idx_xyz, int idx_xz, s16 y); + void calculateNoise(); - int calcHeightMap(); - - virtual void generateTerrain(); - void carveRidges(); - //void carveRivers(); //experimental - - void testBiomes(); - void addTopNodes(); - - void generateCaves(int max_stone_y); + + virtual int generateTerrain(); + void generateBaseTerrain(s16 *stone_surface_min_y, s16 *stone_surface_max_y); + int generateMountainTerrain(s16 ymax); + void generateRidgeTerrain(); + + MgStoneType generateBiomes(float *heat_map, float *humidity_map); + void dustTopNodes(); + + //void addTopNodes(); + + void generateCaves(s16 max_stone_y); }; struct MapgenFactoryV7 : public MapgenFactory { - Mapgen *createMapgen(int mgid, MapgenParams *params, EmergeManager *emerge) { - return new MapgenV7(mgid, (MapgenV7Params *)params, emerge); + Mapgen *createMapgen(int mgid, MapgenParams *params, EmergeManager *emerge) + { + return new MapgenV7(mgid, params, emerge); }; - - MapgenParams *createMapgenParams() { + + MapgenSpecificParams *createMapgenParams() + { return new MapgenV7Params(); }; };