levelId = $level->getId(); $this->chunk = $chunk->fastSerialize(); } public function onRun(){ /** @var Chunk $chunk */ $chunk = GenericChunk::fastDeserialize($this->chunk); if($chunk === null){ //TODO error return; } $chunk->recalculateHeightMap(); $chunk->populateSkyLight(); $chunk->setLightPopulated(); $this->chunk = $chunk->fastSerialize(); } public function onCompletion(Server $server){ $level = $server->getLevel($this->levelId); if($level !== null){ /** @var Chunk $chunk */ $chunk = GenericChunk::fastDeserialize($this->chunk, $level->getProvider()); if($chunk === null){ //TODO error return; } $level->generateChunkCallback($chunk->getX(), $chunk->getZ(), $chunk); } } }