summaryrefslogtreecommitdiff
path: root/src/mapgen/mg_biome.cpp
diff options
context:
space:
mode:
authorsfan5 <sfan5@live.de>2020-04-09 23:40:12 +0200
committerLoïc Blot <nerzhul@users.noreply.github.com>2020-05-05 19:26:59 +0200
commit2062c80e21b657fed8e68aa48523fa12ad5ef095 (patch)
tree4e760f58a01ddcf55593bed8abcbf41d11f1c96b /src/mapgen/mg_biome.cpp
parentd1c6cc72cce7e02dcaca7797b463d071d67d27db (diff)
downloadminetest-2062c80e21b657fed8e68aa48523fa12ad5ef095.tar.gz
minetest-2062c80e21b657fed8e68aa48523fa12ad5ef095.tar.bz2
minetest-2062c80e21b657fed8e68aa48523fa12ad5ef095.zip
Allow ObjDefManager instances to be cloned
Diffstat (limited to 'src/mapgen/mg_biome.cpp')
-rw-r--r--src/mapgen/mg_biome.cpp45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/mapgen/mg_biome.cpp b/src/mapgen/mg_biome.cpp
index 345bc8c6a..3a72c43bf 100644
--- a/src/mapgen/mg_biome.cpp
+++ b/src/mapgen/mg_biome.cpp
@@ -92,6 +92,16 @@ void BiomeManager::clear()
}
+BiomeManager *BiomeManager::clone() const
+{
+ auto mgr = new BiomeManager();
+ assert(mgr);
+ ObjDefManager::cloneTo(mgr);
+ mgr->m_server = m_server;
+ return mgr;
+}
+
+
// For BiomeGen type 'BiomeGenOriginal'
float BiomeManager::getHeatAtPosOriginal(v3s16 pos, NoiseParams &np_heat,
NoiseParams &np_heat_blend, u64 seed)
@@ -321,6 +331,41 @@ Biome *BiomeGenOriginal::calcBiomeFromNoise(float heat, float humidity, v3s16 po
////////////////////////////////////////////////////////////////////////////////
+ObjDef *Biome::clone() const
+{
+ auto obj = new Biome();
+ ObjDef::cloneTo(obj);
+ NodeResolver::cloneTo(obj);
+
+ obj->flags = flags;
+
+ obj->c_top = c_top;
+ obj->c_filler = c_filler;
+ obj->c_stone = c_stone;
+ obj->c_water_top = c_water_top;
+ obj->c_water = c_water;
+ obj->c_river_water = c_river_water;
+ obj->c_riverbed = c_riverbed;
+ obj->c_dust = c_dust;
+ obj->c_cave_liquid = c_cave_liquid;
+ obj->c_dungeon = c_dungeon;
+ obj->c_dungeon_alt = c_dungeon_alt;
+ obj->c_dungeon_stair = c_dungeon_stair;
+
+ obj->depth_top = depth_top;
+ obj->depth_filler = depth_filler;
+ obj->depth_water_top = depth_water_top;
+ obj->depth_riverbed = depth_riverbed;
+
+ obj->min_pos = min_pos;
+ obj->max_pos = max_pos;
+ obj->heat_point = heat_point;
+ obj->humidity_point = humidity_point;
+ obj->vertical_blend = vertical_blend;
+
+ return obj;
+}
+
void Biome::resolveNodeNames()
{
getIdFromNrBacklog(&c_top, "mapgen_stone", CONTENT_AIR, false);