Throw exceptions if something attempts to add a closed Tile or Entity to a chunk

This commit is contained in:
Dylan K. Taylor 2017-04-18 14:45:33 +01:00
parent 8a775e0c45
commit eefa8abaf2

View File

@ -568,6 +568,9 @@ class Chunk{
* @param Entity $entity
*/
public function addEntity(Entity $entity){
if($entity->closed){
throw new \InvalidArgumentException("Attempted to add a garbage closed Entity to a chunk");
}
$this->entities[$entity->getId()] = $entity;
if(!($entity instanceof Player) and $this->isInit){
$this->hasChanged = true;
@ -588,6 +591,9 @@ class Chunk{
* @param Tile $tile
*/
public function addTile(Tile $tile){
if($tile->closed){
throw new \InvalidArgumentException("Attempted to add a garbage closed Tile to a chunk");
}
$this->tiles[$tile->getId()] = $tile;
if(isset($this->tileList[$index = (($tile->x & 0x0f) << 12) | (($tile->z & 0x0f) << 8) | ($tile->y & 0xff)]) and $this->tileList[$index] !== $tile){
$this->tileList[$index]->close();