rotation; } public function readStateFromData(int $id, int $stateMeta) : void{ $this->rotation = $stateMeta; } public function getStateBitmask() : int{ return 0b1111; } public function getHardness() : float{ return 1; } public function isSolid() : bool{ return false; } protected function recalculateBoundingBox() : ?AxisAlignedBB{ return null; } public function place(Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, ?Player $player = null) : bool{ if($face !== Facing::DOWN){ if($face === Facing::UP){ $this->rotation = $player !== null ? ((int) floor((($player->yaw + 180) * 16 / 360) + 0.5)) & 0x0f : 0; return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player); } return $this->getLevel()->setBlock($blockReplace, BlockFactory::get(Block::WALL_SIGN, $face)); } return false; } public function onNearbyBlockChange() : void{ if($this->getSide(Facing::DOWN)->getId() === self::AIR){ $this->getLevel()->useBreakOn($this); } } public function getToolType() : int{ return BlockToolType::TYPE_AXE; } }