mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-04-22 08:44:01 +00:00
PopulationTask: use modification counters to detect changed chunks
instead of using terrain dirty flags, which aren't suitable for this purpose
This commit is contained in:
parent
a5418a019d
commit
d4cbde6f10
@ -89,6 +89,7 @@ class PopulationTask extends AsyncTask{
|
||||
|
||||
/** @var Chunk[] $chunks */
|
||||
$chunks = [];
|
||||
$oldModCounts = [];
|
||||
|
||||
$chunk = $this->chunk !== null ? FastChunkSerializer::deserializeTerrain($this->chunk) : null;
|
||||
|
||||
@ -101,6 +102,7 @@ class PopulationTask extends AsyncTask{
|
||||
$chunks[$i] = null;
|
||||
}else{
|
||||
$chunks[$i] = FastChunkSerializer::deserializeTerrain($ck);
|
||||
$oldModCounts[$i] = $chunks[$i]->getModificationCount();
|
||||
}
|
||||
}
|
||||
|
||||
@ -124,7 +126,8 @@ class PopulationTask extends AsyncTask{
|
||||
$this->chunk = FastChunkSerializer::serializeTerrain($chunk);
|
||||
|
||||
foreach($chunks as $i => $c){
|
||||
$this->{"chunk$i"} = $c->isTerrainDirty() ? FastChunkSerializer::serializeTerrain($c) : null;
|
||||
$oldModCount = $oldModCounts[$i] ?? 0;
|
||||
$this->{"chunk$i"} = $oldModCount !== $c->getModificationCounter() ? FastChunkSerializer::serializeTerrain($c) : null;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user