X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fmapgen_v7.h;h=9fdecf5924045cd8c9ec2b9b450f7016ec11cd95;hb=4fdf66bbf4d90846844ee3f6d41acb31ce06ca8b;hp=bc497309bfa0b7367d4f237c6870033472b6e52a;hpb=7616537bc071bc93f8d36c84b94603528be1efb0;p=dragonfireclient.git diff --git a/src/mapgen_v7.h b/src/mapgen_v7.h index bc497309b..9fdecf592 100644 --- a/src/mapgen_v7.h +++ b/src/mapgen_v7.h @@ -1,6 +1,7 @@ /* Minetest -Copyright (C) 2010-2013 kwolekr, Ryan Kwolek +Copyright (C) 2010-2015 kwolekr, Ryan Kwolek +Copyright (C) 2010-2015 paramat, Matt Gregory This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by @@ -42,32 +43,32 @@ struct MapgenV7Params : public MapgenSpecificParams { NoiseParams np_ridge_uwater; NoiseParams np_mountain; NoiseParams np_ridge; - + NoiseParams np_cave1; + NoiseParams np_cave2; + MapgenV7Params(); ~MapgenV7Params() {} - - void readParams(Settings *settings); - void writeParams(Settings *settings); + + void readParams(const Settings *settings); + void writeParams(Settings *settings) const; }; class MapgenV7 : public Mapgen { public: - EmergeManager *emerge; + EmergeManager *m_emerge; BiomeManager *bmgr; int ystride; - int zstride; - u32 flags; + int zstride_1d; 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_persist; @@ -77,55 +78,62 @@ class MapgenV7 : public Mapgen { 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_desert_stone; content_t c_ice; - content_t c_gravel; + content_t c_sandstone; + content_t c_cobble; - content_t c_desert_sand; - content_t c_desert_stone; + content_t c_stair_cobble; + content_t c_mossycobble; + content_t c_sandstonebrick; + content_t c_stair_sandstonebrick; MapgenV7(int mapgenid, MapgenParams *params, EmergeManager *emerge); ~MapgenV7(); - + virtual void makeChunk(BlockMakeData *data); - int getGroundLevelAtPoint(v2s16 p); + int getSpawnLevelAtPoint(v2s16 p); Biome *getBiomeAtPoint(v3s16 p); - float baseTerrainLevelAtPoint(int x, int z); + float baseTerrainLevelAtPoint(s16 x, s16 z); float baseTerrainLevelFromMap(int index); - bool getMountainTerrainAtPoint(int x, int y, int z); - bool getMountainTerrainFromMap(int idx_xyz, int idx_xz, int y); - + bool getMountainTerrainAtPoint(s16 x, s16 y, s16 z); + bool getMountainTerrainFromMap(int idx_xyz, int idx_xz, s16 y); + void calculateNoise(); - + virtual int generateTerrain(); - int generateBaseTerrain(); - void generateMountainTerrain(); + void generateBaseTerrain(s16 *stone_surface_min_y, s16 *stone_surface_max_y); + int generateMountainTerrain(s16 ymax); void generateRidgeTerrain(); - - void generateBiomes(); + + MgStoneType generateBiomes(float *heat_map, float *humidity_map); void dustTopNodes(); - + //void addTopNodes(); - - void generateCaves(int max_stone_y); + + void generateCaves(s16 max_stone_y); }; struct MapgenFactoryV7 : public MapgenFactory { - Mapgen *createMapgen(int mgid, MapgenParams *params, EmergeManager *emerge) { + Mapgen *createMapgen(int mgid, MapgenParams *params, EmergeManager *emerge) + { return new MapgenV7(mgid, params, emerge); }; - - MapgenSpecificParams *createMapgenParams() { + + MapgenSpecificParams *createMapgenParams() + { return new MapgenV7Params(); }; };