Moved chunk population to async tasks, and no more cut trees!

This commit is contained in:
Shoghi Cervantes
2015-03-27 01:56:49 +01:00
parent 72c4c01542
commit 08f2b7f291
13 changed files with 359 additions and 43 deletions

View File

@ -44,7 +44,7 @@ class GenerationTask extends AsyncTask{
$this->settings = $generator->getSettings();
$this->seed = $level->getSeed();
$this->levelId = $level->getId();
$this->chunk = $chunk->toBinary();
$this->chunk = $chunk->toFastBinary();
$this->chunkClass = get_class($chunk);
}
@ -67,7 +67,7 @@ class GenerationTask extends AsyncTask{
/** @var FullChunk $chunk */
$chunk = $this->chunkClass;
$chunk = $chunk::fromBinary($this->chunk);
$chunk = $chunk::fromFastBinary($this->chunk);
if($chunk === null){
//TODO error
return;
@ -79,7 +79,7 @@ class GenerationTask extends AsyncTask{
$chunk = $manager->getChunk($chunk->getX(), $chunk->getZ());
$chunk->setGenerated(true);
$this->chunk = $chunk->toBinary();
$this->chunk = $chunk->toFastBinary();
$manager->setChunk($chunk->getX(), $chunk->getZ(), null);
}
@ -89,7 +89,7 @@ class GenerationTask extends AsyncTask{
if($level !== null){
/** @var FullChunk $chunk */
$chunk = $this->chunkClass;
$chunk = $chunk::fromBinary($this->chunk);
$chunk = $chunk::fromFastBinary($this->chunk, $level->getProvider());
if($chunk === null){
//TODO error
return;