Tuned generator to use a better way to process chunks, closes #1807 #1794 #1740 #1741 #1685

This commit is contained in:
Shoghi Cervantes
2014-07-31 19:27:01 +02:00
parent 95b5979351
commit cb4a970631
10 changed files with 43 additions and 41 deletions

View File

@ -85,6 +85,7 @@ class GenerationChunkManager implements ChunkManager{
$index = Level::chunkHash($chunkX, $chunkZ);
$chunk = !isset($this->chunks[$index]) ? $this->requestChunk($chunkX, $chunkZ) : $this->chunks[$index];
$this->unloadQueue->detach($chunk);
$this->changes[$index] = $chunk;
return $chunk;
}
@ -112,6 +113,9 @@ class GenerationChunkManager implements ChunkManager{
}
foreach($this->chunks as $chunk){
if(isset($this->changes[$index = Level::chunkHash($chunk->getX(), $chunk->getZ())])){
continue;
}
$this->unloadQueue->attach($chunk);
}
}
@ -150,13 +154,11 @@ class GenerationChunkManager implements ChunkManager{
public function setChunkGenerated($chunkX, $chunkZ){
$chunk = $this->getChunk($chunkX, $chunkZ);
$chunk->setGenerated(true);
$this->changes[Level::chunkHash($chunkX, $chunkZ)] = $chunk;
}
public function setChunkPopulated($chunkX, $chunkZ){
$chunk = $this->getChunk($chunkX, $chunkZ);
$chunk->setPopulated(true);
$this->changes[Level::chunkHash($chunkX, $chunkZ)] = $chunk;
}
protected function requestChunk($chunkX, $chunkZ){