X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fmapgen_v7.h;h=a7c80928f83e172a6ea8a26a283773ec48027c7d;hb=58e6d25e033c76dc91aaac18fdeda92ac23fe0e1;hp=6267350d633dc368ccc2847eb98cab0eabf59ef7;hpb=8aa930f28e69f3518831500022988ca2a4b6985d;p=oweals%2Fminetest.git diff --git a/src/mapgen_v7.h b/src/mapgen_v7.h index 6267350d6..a7c80928f 100644 --- a/src/mapgen_v7.h +++ b/src/mapgen_v7.h @@ -22,33 +22,30 @@ 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 + + +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); }; @@ -58,9 +55,9 @@ public: BiomeDefManager *bmgr; int ystride; + int zstride; u32 flags; - bool lighting; - bool ridges; + u32 spflags; u32 blockseed; v3s16 node_min; @@ -72,10 +69,12 @@ public: 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; @@ -87,12 +86,13 @@ public: 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); @@ -101,25 +101,30 @@ public: 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 + virtual int generateTerrain(); + int generateBaseTerrain(); + void generateMountainTerrain(); + void generateRidgeTerrain(); + + void generateBiomes(); + void dustTopNodes(); - void testBiomes(); - void addTopNodes(); + //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(); }; };