Fixed bad vector initialization

This commit is contained in:
Shoghi Cervantes
2015-05-28 23:58:29 +02:00
parent 3bb037204e
commit 8d4decc548
2 changed files with 17 additions and 7 deletions

View File

@ -2042,18 +2042,28 @@ class Level implements ChunkManager, Metadatable{
return;
}
$index = Level::chunkHash($chunkX, $chunkZ);
if($unload){
if($this->isChunkLoaded($chunkX, $chunkZ) and ($oldChunk = $this->getChunk($chunkX, $chunkZ, false)) !== false){
foreach($this->getChunkLoaders($chunkX, $chunkZ) as $loader){
$loader->onChunkUnloaded($oldChunk);
}
}
$oldChunk = $this->getChunk($chunkX, $chunkZ, false);
if($unload and $oldChunk !== null){
$this->unloadChunk($chunkX, $chunkZ, false);
$this->provider->setChunk($chunkX, $chunkZ, $chunk);
$this->chunks[$index] = $chunk;
}else{
$oldEntities = $oldChunk !== null ? $oldChunk->getEntities() : [];
$oldTiles = $oldChunk !== null ? $oldChunk->getTiles() : [];
$this->provider->setChunk($chunkX, $chunkZ, $chunk);
$this->chunks[$index] = $chunk;
foreach($oldEntities as $entity){
$chunk->addEntity($entity);
$entity->chunk = $chunk;
}
foreach($oldTiles as $tile){
$chunk->addTile($tile);
$tile->chunk = $chunk;
}
}
unset($this->chunkCache[$index]);