51        parent::readStateFromWorld();
 
   53        $this->collisionBoxes = 
null;
 
   55        $clockwise = Facing::rotateY($this->facing, 
true);
 
   56        if(($backFacing = $this->getPossibleCornerFacing(
false)) !== 
null){
 
   57            $this->shape = $backFacing === $clockwise ? StairShape::OUTER_RIGHT : StairShape::OUTER_LEFT;
 
   58        }elseif(($frontFacing = $this->getPossibleCornerFacing(
true)) !== 
null){
 
   59            $this->shape = $frontFacing === $clockwise ? StairShape::INNER_RIGHT : StairShape::INNER_LEFT;
 
   61            $this->shape = StairShape::STRAIGHT;
 
 
   84        $topStepFace = $this->upsideDown ? 
Facing::DOWN : 
Facing::UP;
 
   86            AxisAlignedBB::one()->trim($topStepFace, 0.5)
 
   89        $topStep = AxisAlignedBB::one()
 
   90            ->trim(Facing::opposite($topStepFace), 0.5)
 
   91            ->trim(Facing::opposite($this->facing), 0.5);
 
   93        if($this->shape === StairShape::OUTER_LEFT || $this->shape === StairShape::OUTER_RIGHT){
 
   94            $topStep->trim(Facing::rotateY($this->facing, $this->shape === StairShape::OUTER_LEFT), 0.5);
 
   95        }elseif($this->shape === StairShape::INNER_LEFT || $this->shape === StairShape::INNER_RIGHT){
 
   97            $bbs[] = AxisAlignedBB::one()
 
   98                ->trim(Facing::opposite($topStepFace), 0.5)
 
   99                ->trim($this->facing, 0.5) 
 
  100                ->trim(Facing::rotateY($this->facing, $this->shape === StairShape::INNER_LEFT), 0.5);
 
 
  110            $facing === 
Facing::UP && $this->upsideDown ||
 
  111            $facing === 
Facing::DOWN && !$this->upsideDown ||
 
  112            ($facing === $this->facing && $this->shape !== StairShape::OUTER_LEFT && $this->shape !== StairShape::OUTER_RIGHT) ||
 
  113            ($facing === 
Facing::rotate($this->facing, 
Axis::Y, false) && $this->shape === StairShape::INNER_LEFT) ||
 
  114            ($facing === 
Facing::rotate($this->facing, 
Axis::Y, true) && $this->shape === StairShape::INNER_RIGHT)
 
  116            return SupportType::FULL;
 
  118        return SupportType::NONE;
 
 
  131        if($player !== null){
 
  132            $this->facing = $player->getHorizontalFacing();
 
  134        $this->upsideDown = (($clickVector->y > 0.5 && $face !== Facing::UP) || $face === Facing::DOWN);
 
  136        return parent::place($tx, $item, $blockReplace, $blockClicked, $face, $clickVector, $player);