facing); } public function readStateFromMeta(int $meta) : void{ $this->facing = Bearing::toFacing($meta); } public function getStateBitmask() : int{ return 0b11; } public function isTransparent() : bool{ return true; } public function getHardness() : float{ return 5; } public function getBlastResistance() : float{ return 6000; } public function getToolType() : int{ return BlockToolType::TYPE_PICKAXE; } public function getToolHarvestLevel() : int{ return TieredTool::TIER_WOODEN; } public function recalculateBoundingBox() : ?AxisAlignedBB{ $inset = 0.125; if(Facing::axis($this->facing) === Facing::AXIS_X){ return new AxisAlignedBB(0, 0, $inset, 1, 1, 1 - $inset); }else{ return new AxisAlignedBB($inset, 0, 0, 1 - $inset, 1, 1); } } public function onActivate(Item $item, Player $player = null) : bool{ if($player instanceof Player){ $player->addWindow(new AnvilInventory($this)); } return true; } public function place(Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, Player $player = null) : bool{ if($player !== null){ $this->facing = Bearing::toFacing(Bearing::rotate($player->getDirection(), 1)); } return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player); } }