]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/mapgen/mg_biome.cpp
Hacked Client
[dragonfireclient.git] / src / mapgen / mg_biome.cpp
index 7f091f31380170417ca0a9d0e10a25ad03d51591..345bc8c6a1606e50edc50cc24cec4f9560e66890 100644 (file)
@@ -62,6 +62,11 @@ BiomeManager::BiomeManager(Server *server) :
        b->m_nodenames.emplace_back("mapgen_river_water_source");
        b->m_nodenames.emplace_back("mapgen_stone");
        b->m_nodenames.emplace_back("ignore");
+       b->m_nodenames.emplace_back("ignore");
+       b->m_nnlistsizes.push_back(1);
+       b->m_nodenames.emplace_back("ignore");
+       b->m_nodenames.emplace_back("ignore");
+       b->m_nodenames.emplace_back("ignore");
        m_ndef->pendNodeResolve(b);
 
        add(b);
@@ -138,7 +143,7 @@ Biome *BiomeManager::getBiomeFromNoiseOriginal(float heat, float humidity, v3s16
                }
        }
 
-       mysrand(pos.Y + (heat + humidity) / 2);
+       mysrand(pos.Y + (heat + humidity) * 0.9f);
        if (biome_closest_blend && dist_min_blend <= dist_min &&
                        myrand_range(0, biome_closest_blend->vertical_blend) >=
                        pos.Y - biome_closest_blend->max_pos.Y)
@@ -188,7 +193,12 @@ BiomeGenOriginal::BiomeGenOriginal(BiomeManager *biomemgr,
 
        heatmap  = noise_heat->result;
        humidmap = noise_humidity->result;
+
        biomemap = new biome_t[m_csize.X * m_csize.Z];
+       // Initialise with the ID of 'BIOME_NONE' so that cavegen can get the
+       // fallback biome when biome generation (which calculates the biomemap IDs)
+       // is disabled.
+       memset(biomemap, 0, sizeof(biome_t) * m_csize.X * m_csize.Z);
 }
 
 BiomeGenOriginal::~BiomeGenOriginal()
@@ -298,7 +308,7 @@ Biome *BiomeGenOriginal::calcBiomeFromNoise(float heat, float humidity, v3s16 po
        // Carefully tune pseudorandom seed variation to avoid single node dither
        // and create larger scale blending patterns similar to horizontal biome
        // blend.
-       mysrand(pos.Y + (heat + humidity) / 2);
+       mysrand(pos.Y + (heat + humidity) * 0.9f);
 
        if (biome_closest_blend && dist_min_blend <= dist_min &&
                        myrand_range(0, biome_closest_blend->vertical_blend) >=
@@ -313,12 +323,16 @@ Biome *BiomeGenOriginal::calcBiomeFromNoise(float heat, float humidity, v3s16 po
 
 void Biome::resolveNodeNames()
 {
-       getIdFromNrBacklog(&c_top,         "mapgen_stone",              CONTENT_AIR);
-       getIdFromNrBacklog(&c_filler,      "mapgen_stone",              CONTENT_AIR);
-       getIdFromNrBacklog(&c_stone,       "mapgen_stone",              CONTENT_AIR);
-       getIdFromNrBacklog(&c_water_top,   "mapgen_water_source",       CONTENT_AIR);
-       getIdFromNrBacklog(&c_water,       "mapgen_water_source",       CONTENT_AIR);
-       getIdFromNrBacklog(&c_river_water, "mapgen_river_water_source", CONTENT_AIR);
-       getIdFromNrBacklog(&c_riverbed,    "mapgen_stone",              CONTENT_AIR);
-       getIdFromNrBacklog(&c_dust,        "ignore",                    CONTENT_IGNORE);
+       getIdFromNrBacklog(&c_top,           "mapgen_stone",              CONTENT_AIR,    false);
+       getIdFromNrBacklog(&c_filler,        "mapgen_stone",              CONTENT_AIR,    false);
+       getIdFromNrBacklog(&c_stone,         "mapgen_stone",              CONTENT_AIR,    false);
+       getIdFromNrBacklog(&c_water_top,     "mapgen_water_source",       CONTENT_AIR,    false);
+       getIdFromNrBacklog(&c_water,         "mapgen_water_source",       CONTENT_AIR,    false);
+       getIdFromNrBacklog(&c_river_water,   "mapgen_river_water_source", CONTENT_AIR,    false);
+       getIdFromNrBacklog(&c_riverbed,      "mapgen_stone",              CONTENT_AIR,    false);
+       getIdFromNrBacklog(&c_dust,          "ignore",                    CONTENT_IGNORE, false);
+       getIdsFromNrBacklog(&c_cave_liquid);
+       getIdFromNrBacklog(&c_dungeon,       "ignore",                    CONTENT_IGNORE, false);
+       getIdFromNrBacklog(&c_dungeon_alt,   "ignore",                    CONTENT_IGNORE, false);
+       getIdFromNrBacklog(&c_dungeon_stair, "ignore",                    CONTENT_IGNORE, false);
 }