mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-04-22 00:33:59 +00:00
Fix mob head crashes and drops, fix #221
This commit is contained in:
parent
0e10a149ef
commit
e85d6d134e
@ -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 [];
|
||||
}
|
||||
}
|
@ -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(){
|
||||
|
Loading…
x
Reference in New Issue
Block a user