facing; } public function readStateFromMeta(int $meta) : void{ $this->facing = $meta; } public function getStateBitmask() : int{ return 0b111; } public function getHardness() : float{ return 1; } public function getName() : string{ return "Mob Head"; } protected function recalculateBoundingBox() : ?AxisAlignedBB{ //TODO: different bounds depending on attached face static $f = 0.25; return new AxisAlignedBB($f, 0, $f, 1 - $f, 0.5, 1 - $f); } public function place(Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, Player $player = null) : bool{ if($face === Facing::DOWN){ return false; } $this->facing = $face; if(parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player)){ Tile::createTile(Tile::SKULL, $this->getLevel(), TileSkull::createNBT($this, $face, $item, $player)); return true; } return false; } public function getItem() : Item{ $tile = $this->level->getTile($this); return ItemFactory::get(Item::SKULL, $tile instanceof TileSkull ? $tile->getType() : 0); } public function isAffectedBySilkTouch() : bool{ return false; } }