LuaVoxelManip: Add option to allocate blank data
[oweals/minetest.git] / src / mg_biome.h
index 9c653a7687e677b45febfc5bbf54508245ab5b7a..870c1196113acc64eafd8149e338e891d89cadf9 100644 (file)
@@ -21,39 +21,25 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #define MG_BIOME_HEADER
 
 #include "mapgen.h"
-#include "noise.h"
 
-//#include <string>
-//#include "nodedef.h"
-//#include "gamedef.h"
-//#include "mapnode.h"
+struct NoiseParams;
 
-enum BiomeTerrainType
+enum BiomeType
 {
-       BIOME_TERRAIN_NORMAL,
-       BIOME_TERRAIN_LIQUID,
-       BIOME_TERRAIN_NETHER,
-       BIOME_TERRAIN_AETHER,
-       BIOME_TERRAIN_FLAT
+       BIOME_TYPE_NORMAL,
+       BIOME_TYPE_LIQUID,
+       BIOME_TYPE_NETHER,
+       BIOME_TYPE_AETHER,
+       BIOME_TYPE_FLAT
 };
 
-extern NoiseParams nparams_biome_def_heat;
-extern NoiseParams nparams_biome_def_humidity;
-
-
-struct BiomeNoiseInput {
-       v2s16 mapsize;
-       float *heat_map;
-       float *humidity_map;
-       s16 *height_map;
-};
-
-class Biome : public GenElement {
+class Biome : public GenElement, public NodeResolver {
 public:
        u32 flags;
 
        content_t c_top;
        content_t c_filler;
+       content_t c_stone;
        content_t c_water;
        content_t c_dust;
        content_t c_dust_water;
@@ -65,6 +51,8 @@ public:
        s16 height_max;
        float heat_point;
        float humidity_point;
+
+       virtual void resolveNodeNames(NodeResolveInfo *nri);
 };
 
 class BiomeManager : public GenElementManager {
@@ -72,9 +60,6 @@ public:
        static const char *ELEMENT_TITLE;
        static const size_t ELEMENT_LIMIT = 0x100;
 
-       NoiseParams *np_heat;
-       NoiseParams *np_humidity;
-
        BiomeManager(IGameDef *gamedef);
        ~BiomeManager();
 
@@ -83,8 +68,12 @@ public:
                return new Biome;
        }
 
-       void calcBiomes(BiomeNoiseInput *input, u8 *biomeid_map);
+       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);
 };
 
 #endif
+