22declare(strict_types=1);
24namespace pocketmine\block\utils;
28enum HorizontalFacingOption :
int{
29 case NORTH = Facing::NORTH->value;
30 case SOUTH = Facing::SOUTH->value;
31 case WEST = Facing::WEST->value;
32 case EAST = Facing::EAST->value;
34 public static function tryFromFacing(
Facing $facing) : ?self{
35 return match($facing){
36 Facing::NORTH => self::NORTH,
37 Facing::SOUTH => self::SOUTH,
38 Facing::WEST => self::WEST,
39 Facing::EAST => self::EAST,
44 public static function fromFacing(
Facing $facing) : self{
45 return self::tryFromFacing($facing) ?? throw new \InvalidArgumentException(
"Facing $facing->name cannot be converted to a horizontal facing");
48 public function toFacing() :
Facing{
50 self::NORTH => Facing::NORTH,
51 self::SOUTH => Facing::SOUTH,
52 self::WEST => Facing::WEST,
53 self::EAST => Facing::EAST,