Minor stability improvements in block emerge handling
This commit is contained in:
parent
6c98fd6658
commit
9d57413af0
31
src/map.cpp
31
src/map.cpp
|
@ -2255,7 +2255,7 @@ bool ServerMap::initBlockMake(BlockMakeData *data, v3s16 blockpos)
|
||||||
//TimeTaker timer("initBlockMake() initialEmerge");
|
//TimeTaker timer("initBlockMake() initialEmerge");
|
||||||
data->vmanip->initialEmerge(bigarea_blocks_min, bigarea_blocks_max, false);
|
data->vmanip->initialEmerge(bigarea_blocks_min, bigarea_blocks_max, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ensure none of the blocks to be generated were marked as containing CONTENT_IGNORE
|
// Ensure none of the blocks to be generated were marked as containing CONTENT_IGNORE
|
||||||
/* for (s16 z = blockpos_min.Z; z <= blockpos_max.Z; z++) {
|
/* for (s16 z = blockpos_min.Z; z <= blockpos_max.Z; z++) {
|
||||||
for (s16 y = blockpos_min.Y; y <= blockpos_max.Y; y++) {
|
for (s16 y = blockpos_min.Y; y <= blockpos_max.Y; y++) {
|
||||||
|
@ -2275,7 +2275,7 @@ bool ServerMap::initBlockMake(BlockMakeData *data, v3s16 blockpos)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
MapBlock* ServerMap::finishBlockMake(BlockMakeData *data,
|
void ServerMap::finishBlockMake(BlockMakeData *data,
|
||||||
std::map<v3s16, MapBlock*> &changed_blocks)
|
std::map<v3s16, MapBlock*> &changed_blocks)
|
||||||
{
|
{
|
||||||
v3s16 blockpos_min = data->blockpos_min;
|
v3s16 blockpos_min = data->blockpos_min;
|
||||||
|
@ -2369,7 +2369,9 @@ MapBlock* ServerMap::finishBlockMake(BlockMakeData *data,
|
||||||
y<=blockpos_max.Y+extra_borders.Y; y++)
|
y<=blockpos_max.Y+extra_borders.Y; y++)
|
||||||
{
|
{
|
||||||
v3s16 p(x, y, z);
|
v3s16 p(x, y, z);
|
||||||
getBlockNoCreateNoEx(p)->setLightingExpired(false);
|
MapBlock * block = getBlockNoCreateNoEx(p);
|
||||||
|
if (block != NULL)
|
||||||
|
block->setLightingExpired(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
|
@ -2385,7 +2387,8 @@ MapBlock* ServerMap::finishBlockMake(BlockMakeData *data,
|
||||||
i != changed_blocks.end(); ++i)
|
i != changed_blocks.end(); ++i)
|
||||||
{
|
{
|
||||||
MapBlock *block = i->second;
|
MapBlock *block = i->second;
|
||||||
assert(block);
|
if (!block)
|
||||||
|
continue;
|
||||||
/*
|
/*
|
||||||
Update day/night difference cache of the MapBlocks
|
Update day/night difference cache of the MapBlocks
|
||||||
*/
|
*/
|
||||||
|
@ -2406,7 +2409,8 @@ MapBlock* ServerMap::finishBlockMake(BlockMakeData *data,
|
||||||
{
|
{
|
||||||
v3s16 p(x, y, z);
|
v3s16 p(x, y, z);
|
||||||
MapBlock *block = getBlockNoCreateNoEx(p);
|
MapBlock *block = getBlockNoCreateNoEx(p);
|
||||||
assert(block);
|
if (!block)
|
||||||
|
continue;
|
||||||
block->setGenerated(true);
|
block->setGenerated(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2419,8 +2423,8 @@ MapBlock* ServerMap::finishBlockMake(BlockMakeData *data,
|
||||||
/*infostream<<"finishBlockMake() done for ("<<blockpos_requested.X
|
/*infostream<<"finishBlockMake() done for ("<<blockpos_requested.X
|
||||||
<<","<<blockpos_requested.Y<<","
|
<<","<<blockpos_requested.Y<<","
|
||||||
<<blockpos_requested.Z<<")"<<std::endl;*/
|
<<blockpos_requested.Z<<")"<<std::endl;*/
|
||||||
|
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
if(enable_mapgen_debug_info)
|
if(enable_mapgen_debug_info)
|
||||||
{
|
{
|
||||||
|
@ -2444,10 +2448,7 @@ MapBlock* ServerMap::finishBlockMake(BlockMakeData *data,
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
MapBlock *block = getBlockNoCreateNoEx(blockpos_requested);
|
getBlockNoCreateNoEx(blockpos_requested);
|
||||||
assert(block);
|
|
||||||
|
|
||||||
return block;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ServerMapSector * ServerMap::createSector(v2s16 p2d)
|
ServerMapSector * ServerMap::createSector(v2s16 p2d)
|
||||||
|
@ -3068,7 +3069,7 @@ void ServerMap::loadMapMeta()
|
||||||
break;
|
break;
|
||||||
params.parseConfigLine(line);
|
params.parseConfigLine(line);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_emerge->loadParamsFromSettings(¶ms);
|
m_emerge->loadParamsFromSettings(¶ms);
|
||||||
|
|
||||||
verbosestream<<"ServerMap::loadMapMeta(): seed="
|
verbosestream<<"ServerMap::loadMapMeta(): seed="
|
||||||
|
@ -3710,7 +3711,7 @@ void ManualMapVoxelManipulator::initialEmerge(v3s16 blockpos_min,
|
||||||
|
|
||||||
if(block_data_inexistent)
|
if(block_data_inexistent)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (load_if_inexistent) {
|
if (load_if_inexistent) {
|
||||||
ServerMap *svrmap = (ServerMap *)m_map;
|
ServerMap *svrmap = (ServerMap *)m_map;
|
||||||
block = svrmap->emergeBlock(p, false);
|
block = svrmap->emergeBlock(p, false);
|
||||||
|
@ -3720,7 +3721,7 @@ void ManualMapVoxelManipulator::initialEmerge(v3s16 blockpos_min,
|
||||||
block->copyTo(*this);
|
block->copyTo(*this);
|
||||||
} else {
|
} else {
|
||||||
flags |= VMANIP_BLOCK_DATA_INEXIST;
|
flags |= VMANIP_BLOCK_DATA_INEXIST;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Mark area inexistent
|
Mark area inexistent
|
||||||
*/
|
*/
|
||||||
|
@ -3760,7 +3761,7 @@ 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)
|
if((existed == false) || (block == NULL))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
@ -401,7 +401,7 @@ public:
|
||||||
Blocks are generated by using these and makeBlock().
|
Blocks are generated by using these and makeBlock().
|
||||||
*/
|
*/
|
||||||
bool initBlockMake(BlockMakeData *data, v3s16 blockpos);
|
bool initBlockMake(BlockMakeData *data, v3s16 blockpos);
|
||||||
MapBlock *finishBlockMake(BlockMakeData *data,
|
void finishBlockMake(BlockMakeData *data,
|
||||||
std::map<v3s16, MapBlock*> &changed_blocks);
|
std::map<v3s16, MapBlock*> &changed_blocks);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -419,7 +419,7 @@ public:
|
||||||
|
|
||||||
*/
|
*/
|
||||||
MapBlock * emergeBlock(v3s16 p, bool create_blank=true);
|
MapBlock * emergeBlock(v3s16 p, bool create_blank=true);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Try to get a block.
|
Try to get a block.
|
||||||
If it does not exist in memory, add it to the emerge queue.
|
If it does not exist in memory, add it to the emerge queue.
|
||||||
|
|
Loading…
Reference in New Issue