mirror of
https://github.com/minetest/minetest.git
synced 2024-11-27 10:03:45 +01:00
Don't copy back already generated blocks on map generation
This commit is contained in:
parent
8b3ed78e53
commit
a2e1b0fc7f
10
src/map.cpp
10
src/map.cpp
@ -2312,7 +2312,7 @@ void ServerMap::finishBlockMake(BlockMakeData *data,
|
|||||||
{
|
{
|
||||||
// 70ms @cs=8
|
// 70ms @cs=8
|
||||||
//TimeTaker timer("finishBlockMake() blitBackAll");
|
//TimeTaker timer("finishBlockMake() blitBackAll");
|
||||||
data->vmanip->blitBackAll(&changed_blocks);
|
data->vmanip->blitBackAll(&changed_blocks, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
EMERGE_DBG_OUT("finishBlockMake: changed_blocks.size()=" << changed_blocks.size());
|
EMERGE_DBG_OUT("finishBlockMake: changed_blocks.size()=" << changed_blocks.size());
|
||||||
@ -3586,7 +3586,8 @@ void ManualMapVoxelManipulator::initialEmerge(v3s16 blockpos_min,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ManualMapVoxelManipulator::blitBackAll(
|
void ManualMapVoxelManipulator::blitBackAll(
|
||||||
std::map<v3s16, MapBlock*> * modified_blocks)
|
std::map<v3s16, MapBlock*> *modified_blocks,
|
||||||
|
bool overwrite_generated)
|
||||||
{
|
{
|
||||||
if(m_area.getExtent() == v3s16(0,0,0))
|
if(m_area.getExtent() == v3s16(0,0,0))
|
||||||
return;
|
return;
|
||||||
@ -3601,10 +3602,9 @@ void ManualMapVoxelManipulator::blitBackAll(
|
|||||||
v3s16 p = i->first;
|
v3s16 p = i->first;
|
||||||
MapBlock *block = m_map->getBlockNoCreateNoEx(p);
|
MapBlock *block = m_map->getBlockNoCreateNoEx(p);
|
||||||
bool existed = !(i->second & VMANIP_BLOCK_DATA_INEXIST);
|
bool existed = !(i->second & VMANIP_BLOCK_DATA_INEXIST);
|
||||||
if((existed == false) || (block == NULL))
|
if ((existed == false) || (block == NULL) ||
|
||||||
{
|
(overwrite_generated == false && block->isGenerated() == true))
|
||||||
continue;
|
continue;
|
||||||
}
|
|
||||||
|
|
||||||
block->copyFrom(*this);
|
block->copyFrom(*this);
|
||||||
|
|
||||||
|
@ -543,10 +543,11 @@ public:
|
|||||||
{m_map = map;}
|
{m_map = map;}
|
||||||
|
|
||||||
void initialEmerge(v3s16 blockpos_min, v3s16 blockpos_max,
|
void initialEmerge(v3s16 blockpos_min, v3s16 blockpos_max,
|
||||||
bool load_if_inexistent = true);
|
bool load_if_inexistent = true);
|
||||||
|
|
||||||
// This is much faster with big chunks of generated data
|
// This is much faster with big chunks of generated data
|
||||||
void blitBackAll(std::map<v3s16, MapBlock*> * modified_blocks);
|
void blitBackAll(std::map<v3s16, MapBlock*> * modified_blocks,
|
||||||
|
bool overwrite_generated = true);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
bool m_create_area;
|
bool m_create_area;
|
||||||
|
Loading…
Reference in New Issue
Block a user