]> git.lizzy.rs Git - minetest.git/blobdiff - src/mg_biome.h
Replace std::list by std::vector into ServerMap::listAllLoadableBlocks ServerMap...
[minetest.git] / src / mg_biome.h
index 7a62998e31f1025c24d52420c7a0e1181a231944..3577960a9890494b2aebb164f0094ee076f18b6c 100644 (file)
@@ -21,7 +21,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #define MG_BIOME_HEADER
 
 #include "mapgen.h"
-#include "noise.h"
+
+struct NoiseParams;
 
 enum BiomeType
 {
@@ -32,28 +33,31 @@ enum BiomeType
        BIOME_TYPE_FLAT
 };
 
-extern NoiseParams nparams_biome_def_heat;
-extern NoiseParams nparams_biome_def_humidity;
-
-
-class Biome : public GenElement {
+class Biome : public GenElement, public NodeResolver {
 public:
        u32 flags;
 
        content_t c_top;
        content_t c_filler;
+       content_t c_shore_top;
+       content_t c_shore_filler;
+       content_t c_underwater;
        content_t c_stone;
+       content_t c_water_top;
        content_t c_water;
        content_t c_dust;
-       content_t c_dust_water;
 
        s16 depth_top;
        s16 depth_filler;
+       s16 height_shore;
+       s16 depth_water_top;
 
-       s16 height_min;
-       s16 height_max;
+       s16 y_min;
+       s16 y_max;
        float heat_point;
        float humidity_point;
+
+       virtual void resolveNodeNames(NodeResolveInfo *nri);
 };
 
 class BiomeManager : public GenElementManager {
@@ -61,9 +65,6 @@ class BiomeManager : public GenElementManager {
        static const char *ELEMENT_TITLE;
        static const size_t ELEMENT_LIMIT = 0x100;
 
-       NoiseParams *np_heat;
-       NoiseParams *np_humidity;
-
        BiomeManager(IGameDef *gamedef);
        ~BiomeManager();
 
@@ -72,6 +73,8 @@ class BiomeManager : public GenElementManager {
                return new Biome;
        }
 
+       void clear();
+
        void calcBiomes(s16 sx, s16 sy, float *heat_map, float *humidity_map,
                s16 *height_map, u8 *biomeid_map);
        Biome *getBiome(float heat, float humidity, s16 y);