1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-07-02 16:38:41 +00:00

Allow ObjDefManager instances to be cloned

This commit is contained in:
sfan5 2020-04-09 23:40:12 +02:00 committed by Loïc Blot
parent d1c6cc72cc
commit 2062c80e21
13 changed files with 370 additions and 5 deletions

View file

@ -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);