Give the Mapgen on each EmergeThread its own Biome/Ore/Deco/SchemManager copy
[oweals/minetest.git] / src / mapgen / mg_biome.cpp
index 3a72c43bfcb433a4f251862579314ef7cab810d7..f3bc4e8293a8eee49fda42c8d8ebf02df2028e0a 100644 (file)
@@ -78,7 +78,7 @@ void BiomeManager::clear()
        EmergeManager *emerge = m_server->getEmergeManager();
 
        // Remove all dangling references in Decorations
-       DecorationManager *decomgr = emerge->decomgr;
+       DecorationManager *decomgr = emerge->getWritableDecorationManager();
        for (size_t i = 0; i != decomgr->getNumObjects(); i++) {
                Decoration *deco = (Decoration *)decomgr->getRaw(i);
                deco->biomes.clear();
@@ -104,7 +104,7 @@ BiomeManager *BiomeManager::clone() const
 
 // For BiomeGen type 'BiomeGenOriginal'
 float BiomeManager::getHeatAtPosOriginal(v3s16 pos, NoiseParams &np_heat,
-       NoiseParams &np_heat_blend, u64 seed)
+       NoiseParams &np_heat_blend, u64 seed) const
 {
        return
                NoisePerlin2D(&np_heat,       pos.X, pos.Z, seed) +
@@ -114,7 +114,7 @@ float BiomeManager::getHeatAtPosOriginal(v3s16 pos, NoiseParams &np_heat,
 
 // For BiomeGen type 'BiomeGenOriginal'
 float BiomeManager::getHumidityAtPosOriginal(v3s16 pos, NoiseParams &np_humidity,
-       NoiseParams &np_humidity_blend, u64 seed)
+       NoiseParams &np_humidity_blend, u64 seed) const
 {
        return
                NoisePerlin2D(&np_humidity,       pos.X, pos.Z, seed) +
@@ -123,7 +123,7 @@ float BiomeManager::getHumidityAtPosOriginal(v3s16 pos, NoiseParams &np_humidity
 
 
 // For BiomeGen type 'BiomeGenOriginal'
-Biome *BiomeManager::getBiomeFromNoiseOriginal(float heat, float humidity, v3s16 pos)
+Biome *BiomeManager::getBiomeFromNoiseOriginal(float heat, float humidity, v3s16 pos) const
 {
        Biome *biome_closest = nullptr;
        Biome *biome_closest_blend = nullptr;