X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fmapgen_v6.h;h=f018ffaca182bb35fe76e091793e55f677c3adad;hb=d1df09841d0eac7a88f638676b80ec848522cca5;hp=6fd9d5e7015adbaefca9bf4a99a2aa6068d5c812;hpb=22730bbc0cab1d93cb8ad5580c76c73c812e1693;p=dragonfireclient.git diff --git a/src/mapgen_v6.h b/src/mapgen_v6.h index 6fd9d5e70..f018ffaca 100644 --- a/src/mapgen_v6.h +++ b/src/mapgen_v6.h @@ -1,6 +1,6 @@ /* Minetest -Copyright (C) 2010-2013 celeron55, Perttu Ahola +Copyright (C) 2010-2015 celeron55, Perttu Ahola 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 @@ -23,13 +23,21 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "mapgen.h" #include "noise.h" -#define AVERAGE_MUD_AMOUNT 4 -#define DESERT_STONE_BASE -32 +#define MGV6_AVERAGE_MUD_AMOUNT 4 +#define MGV6_DESERT_STONE_BASE -32 +#define MGV6_ICE_BASE 0 +#define MGV6_FREQ_HOT 0.4 +#define MGV6_FREQ_SNOW -0.4 +#define MGV6_FREQ_TAIGA 0.5 +#define MGV6_FREQ_JUNGLE 0.5 -/////////////////// Mapgen V6 flags +//////////// Mapgen V6 flags #define MGV6_JUNGLES 0x01 #define MGV6_BIOMEBLEND 0x02 #define MGV6_MUDFLOW 0x04 +#define MGV6_SNOWBIOMES 0x08 +#define MGV6_FLAT 0x10 +#define MGV6_TREES 0x20 extern FlagDesc flagdesc_mapgen_v6[]; @@ -38,10 +46,14 @@ extern FlagDesc flagdesc_mapgen_v6[]; enum BiomeV6Type { BT_NORMAL, - BT_DESERT + BT_DESERT, + BT_JUNGLE, + BT_TUNDRA, + BT_TAIGA, }; -struct MapgenV6Params : public MapgenSpecificParams { + +struct MapgenV6Params : public MapgenParams { u32 spflags; float freq_desert; float freq_beach; @@ -64,6 +76,7 @@ struct MapgenV6Params : public MapgenSpecificParams { void writeParams(Settings *settings) const; }; + class MapgenV6 : public Mapgen { public: EmergeManager *m_emerge; @@ -85,6 +98,7 @@ class MapgenV6 : public Mapgen { Noise *noise_mud; Noise *noise_beach; Noise *noise_biome; + Noise *noise_humidity; NoiseParams *np_cave; NoiseParams *np_humidity; NoiseParams *np_trees; @@ -99,20 +113,25 @@ class MapgenV6 : public Mapgen { 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_desert_sand; + content_t c_dirt_with_snow; + content_t c_snow; + content_t c_snowblock; + content_t c_ice; + content_t c_cobble; content_t c_mossycobble; - content_t c_sandbrick; content_t c_stair_cobble; - content_t c_stair_sandstone; - MapgenV6(int mapgenid, MapgenParams *params, EmergeManager *emerge); + MapgenV6(int mapgenid, MapgenV6Params *params, EmergeManager *emerge); ~MapgenV6(); + virtual MapgenType getType() const { return MAPGEN_V6; } + void makeChunk(BlockMakeData *data); int getGroundLevelAtPoint(v2s16 p); + int getSpawnLevelAtPoint(v2s16 p); float baseTerrainLevel(float terrain_base, float terrain_higher, float steepness, float height_select); @@ -145,16 +164,4 @@ class MapgenV6 : public Mapgen { virtual void generateCaves(int max_stone_y); }; -struct MapgenFactoryV6 : public MapgenFactory { - Mapgen *createMapgen(int mgid, MapgenParams *params, EmergeManager *emerge) - { - return new MapgenV6(mgid, params, emerge); - }; - - MapgenSpecificParams *createMapgenParams() - { - return new MapgenV6Params(); - }; -}; - #endif