Fixed tiles and entities being closed when replacing chunks, should fix #490

This commit is contained in:
Dylan K. Taylor 2017-04-18 14:47:42 +01:00
parent eefa8abaf2
commit d2efcee115

View File

@ -2228,18 +2228,20 @@ class Level implements ChunkManager, Metadatable{
$oldEntities = $oldChunk !== null ? $oldChunk->getEntities() : []; $oldEntities = $oldChunk !== null ? $oldChunk->getEntities() : [];
$oldTiles = $oldChunk !== null ? $oldChunk->getTiles() : []; $oldTiles = $oldChunk !== null ? $oldChunk->getTiles() : [];
$this->provider->setChunk($chunkX, $chunkZ, $chunk);
$this->chunks[$index] = $chunk;
foreach($oldEntities as $entity){ foreach($oldEntities as $entity){
$chunk->addEntity($entity); $chunk->addEntity($entity);
$oldChunk->removeEntity($entity);
$entity->chunk = $chunk; $entity->chunk = $chunk;
} }
foreach($oldTiles as $tile){ foreach($oldTiles as $tile){
$chunk->addTile($tile); $chunk->addTile($tile);
$oldChunk->removeTile($tile);
$tile->chunk = $chunk; $tile->chunk = $chunk;
} }
$this->provider->setChunk($chunkX, $chunkZ, $chunk);
$this->chunks[$index] = $chunk;
} }
unset($this->chunkCache[$index]); unset($this->chunkCache[$index]);