X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fmapgen_flat.h;h=635d40625d77739d7ed184ac1e05de2375cf7397;hb=1105a14bccefb48a0e264fe19190c39629259338;hp=0e15df781b20f7ef9a3c0215b67c9609b2f7d596;hpb=76c9abe4c89f6c8170b82558182837259efdd2ea;p=minetest.git diff --git a/src/mapgen_flat.h b/src/mapgen_flat.h index 0e15df781..635d40625 100644 --- a/src/mapgen_flat.h +++ b/src/mapgen_flat.h @@ -1,7 +1,7 @@ /* Minetest -Copyright (C) 2010-2015 kwolekr, Ryan Kwolek -Copyright (C) 2010-2015 paramat, Matt Gregory +Copyright (C) 2015-2017 paramat +Copyright (C) 2015-2016 kwolekr, Ryan Kwolek 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 @@ -18,8 +18,7 @@ with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#ifndef MAPGEN_FLAT_HEADER -#define MAPGEN_FLAT_HEADER +#pragma once #include "mapgen.h" @@ -31,95 +30,47 @@ class BiomeManager; extern FlagDesc flagdesc_mapgen_flat[]; - -struct MapgenFlatParams : public MapgenSpecificParams { - u32 spflags; - - s16 ground_level; - s16 large_cave_depth; - float lake_threshold; - float lake_steepness; - float hill_threshold; - float hill_steepness; - +struct MapgenFlatParams : public MapgenParams +{ + u32 spflags = 0; + s16 ground_level = 8; + s16 large_cave_depth = -33; + s16 lava_depth = -256; + float cave_width = 0.09f; + float lake_threshold = -0.45f; + float lake_steepness = 48.0f; + float hill_threshold = 0.45f; + float hill_steepness = 64.0f; NoiseParams np_terrain; NoiseParams np_filler_depth; NoiseParams np_cave1; NoiseParams np_cave2; MapgenFlatParams(); - ~MapgenFlatParams() {} + ~MapgenFlatParams() = default; void readParams(const Settings *settings); void writeParams(Settings *settings) const; }; -class MapgenFlat : public Mapgen { +class MapgenFlat : public MapgenBasic +{ public: - EmergeManager *m_emerge; - BiomeManager *bmgr; + MapgenFlat(int mapgenid, MapgenFlatParams *params, EmergeManager *emerge); + ~MapgenFlat(); - int ystride; - int zstride; - u32 spflags; + virtual MapgenType getType() const { return MAPGEN_FLAT; } - v3s16 node_min; - v3s16 node_max; - v3s16 full_node_min; - v3s16 full_node_max; + virtual void makeChunk(BlockMakeData *data); + int getSpawnLevelAtPoint(v2s16 p); + s16 generateTerrain(); +private: s16 ground_level; s16 large_cave_depth; float lake_threshold; float lake_steepness; float hill_threshold; float hill_steepness; - Noise *noise_terrain; - Noise *noise_filler_depth; - 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_water_source; - content_t c_lava_source; - 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; - - MapgenFlat(int mapgenid, MapgenParams *params, EmergeManager *emerge); - ~MapgenFlat(); - - virtual void makeChunk(BlockMakeData *data); - int getGroundLevelAtPoint(v2s16 p); - void calculateNoise(); - s16 generateTerrain(); - MgStoneType generateBiomes(float *heat_map, float *humidity_map); - void dustTopNodes(); - void generateCaves(s16 max_stone_y); -}; - -struct MapgenFactoryFlat : public MapgenFactory { - Mapgen *createMapgen(int mgid, MapgenParams *params, EmergeManager *emerge) - { - return new MapgenFlat(mgid, params, emerge); - }; - - MapgenSpecificParams *createMapgenParams() - { - return new MapgenFlatParams(); - }; }; - -#endif