Fix mob head crashes and drops, fix #221

This commit is contained in:
Dylan K. Taylor 2017-01-01 01:57:39 +00:00
parent 0e10a149ef
commit e85d6d134e
2 changed files with 12 additions and 16 deletions

View File

@ -29,6 +29,7 @@ use pocketmine\nbt\tag\CompoundTag;
use pocketmine\nbt\tag\IntTag;
use pocketmine\nbt\tag\StringTag;
use pocketmine\Player;
use pocketmine\tile\Skull as SkullTile;
use pocketmine\tile\Spawnable;
use pocketmine\tile\Tile;
@ -36,8 +37,6 @@ class MobHead extends Flowable{
protected $id = self::MOB_HEAD_BLOCK;
protected $type;
public function __construct($meta = 0){
$this->meta = $meta;
}
@ -89,7 +88,6 @@ class MobHead extends Flowable{
}
public function onUpdate($type){
parent::onUpdate($type);
$faces = [
1 => 0,
2 => 3,
@ -105,15 +103,16 @@ class MobHead extends Flowable{
}
}
return false;
return parent::onUpdate($type);
}
public function getDrops(Item $item){
if($this->meta === 3){
return [];
if(($tile = $this->level->getTile($this)) instanceof SkullTile){
return [
[Item::MOB_HEAD, $tile->getType(), 1]
];
}
return [
[Item::MOB_HEAD, $this->type, 1]
];
return [];
}
}

View File

@ -33,6 +33,7 @@ class Skull extends Spawnable{
const TYPE_ZOMBIE = 2;
const TYPE_HUMAN = 3;
const TYPE_CREEPER = 4;
const TYPE_DRAGON = 5;
public function __construct(Chunk $chunk, CompoundTag $nbt){
if(!isset($nbt->SkullType)){
@ -44,13 +45,9 @@ class Skull extends Spawnable{
parent::__construct($chunk, $nbt);
}
public function setType($type){
if($type >= 0 && $type <= 4){
$this->namedtag->SkullType = new ByteTag("SkullType", $type);
$this->onChanged();
return true;
}
return false;
public function setType(int $type){
$this->namedtag->SkullType = new ByteTag("SkullType", $type);
$this->onChanged();
}
public function getType(){