Fixed bad vector initialization

This commit is contained in:
Shoghi Cervantes 2015-05-28 23:58:29 +02:00
parent 3bb037204e
commit 8d4decc548
No known key found for this signature in database
GPG Key ID: 78464DB0A7837F89
2 changed files with 17 additions and 7 deletions

View File

@ -1291,7 +1291,7 @@ abstract class Entity extends Location implements Metadatable{
$maxY = Math::ceilFloat($this->boundingBox->maxY - 0.001); $maxY = Math::ceilFloat($this->boundingBox->maxY - 0.001);
$maxZ = Math::ceilFloat($this->boundingBox->maxZ - 0.001); $maxZ = Math::ceilFloat($this->boundingBox->maxZ - 0.001);
$vector = $this->temporalVector; $vector = new Vector3(0, 0, 0);
$v = new Vector3(0, 0, 0); $v = new Vector3(0, 0, 0);
for($v->z = $minZ; $v->z <= $maxZ; ++$v->z){ for($v->z = $minZ; $v->z <= $maxZ; ++$v->z){

View File

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