1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-06-27 16:36:03 +00:00

Replace old active block random node modifying things with actual ActiveBlockModifiers

This commit is contained in:
Perttu Ahola 2011-11-28 00:45:34 +02:00
parent 05df2ee8a4
commit 842eb5da28
11 changed files with 528 additions and 422 deletions

View file

@ -2011,7 +2011,7 @@ ServerMap::ServerMap(std::string savedir, IGameDef *gamedef):
emergeSector(v2s16(0,0));
// Initially write whole map
save(false);
save(MOD_STATE_CLEAN);
}
ServerMap::~ServerMap()
@ -2023,7 +2023,7 @@ ServerMap::~ServerMap()
if(m_map_saving_enabled)
{
// Save only changed parts
save(true);
save(MOD_STATE_WRITE_AT_UNLOAD);
infostream<<"Server: saved map to "<<m_savedir<<std::endl;
}
else
@ -2324,7 +2324,7 @@ MapBlock* ServerMap::finishBlockMake(mapgen::BlockMakeData *data,
Save changed parts of map
NOTE: Will be saved later.
*/
//save(true);
//save(MOD_STATE_WRITE_AT_UNLOAD);
/*infostream<<"finishBlockMake() done for ("<<blockpos.X<<","<<blockpos.Y<<","
<<blockpos.Z<<")"<<std::endl;*/
@ -2832,7 +2832,7 @@ std::string ServerMap::getBlockFilename(v3s16 p)
return cc;
}
void ServerMap::save(bool only_changed)
void ServerMap::save(ModifiedState save_level)
{
DSTACK(__FUNCTION_NAME);
if(m_map_saving_enabled == false)
@ -2841,11 +2841,11 @@ void ServerMap::save(bool only_changed)
return;
}
if(only_changed == false)
if(save_level == MOD_STATE_CLEAN)
infostream<<"ServerMap: Saving whole map, this can take time."
<<std::endl;
if(only_changed == false || m_map_metadata_changed)
if(m_map_metadata_changed || save_level == MOD_STATE_CLEAN)
{
saveMapMeta();
}
@ -2866,7 +2866,7 @@ void ServerMap::save(bool only_changed)
ServerMapSector *sector = (ServerMapSector*)i.getNode()->getValue();
assert(sector->getId() == MAPSECTOR_SERVER);
if(sector->differs_from_disk || only_changed == false)
if(sector->differs_from_disk || save_level == MOD_STATE_CLEAN)
{
saveSectorMeta(sector);
sector_meta_count++;
@ -2881,8 +2881,7 @@ void ServerMap::save(bool only_changed)
block_count_all++;
if(block->getModified() >= MOD_STATE_WRITE_NEEDED
|| only_changed == false)
if(block->getModified() >= save_level)
{
// Lazy beginSave()
if(!save_started){
@ -2909,7 +2908,7 @@ void ServerMap::save(bool only_changed)
/*
Only print if something happened or saved whole map
*/
if(only_changed == false || sector_meta_count != 0
if(save_level == MOD_STATE_CLEAN || sector_meta_count != 0
|| block_count != 0)
{
infostream<<"ServerMap: Written: "