pocketmine\block\RailBlock::place PHP Метод

place() публичный Метод

public place ( Item $item, Block $block, Block $target, $face, $fx, $fy, $fz, Player $player = null )
$item pocketmine\item\Item
$block Block
$target Block
$player pocketmine\Player
    public function place(Item $item, Block $block, Block $target, $face, $fx, $fy, $fz, Player $player = null)
    {
        $down = $block->getSide(Vector3::SIDE_DOWN);
        $class = "";
        if ($down->isTransparent() === false) {
            $up = $block->getSide(Vector3::SIDE_UP);
            if ($block->getSide(Vector3::SIDE_EAST) instanceof RailBlock && $block->getSide(Vector3::SIDE_SOUTH) instanceof RailBlock) {
                return $this->setDirection(self::SIDE_SOUTH_EAST);
            } elseif ($block->getSide(Vector3::SIDE_EAST) instanceof RailBlock && $block->getSide(Vector3::SIDE_NORTH) instanceof RailBlock) {
                return $this->setDirection(self::SIDE_NORTH_EAST);
            } elseif ($block->getSide(Vector3::SIDE_SOUTH) instanceof RailBlock && $block->getSide(Vector3::SIDE_WEST) instanceof RailBlock) {
                return $this->setDirection(self::SIDE_SOUTH_WEST);
            } elseif ($block->getSide(Vector3::SIDE_NORTH) instanceof RailBlock && $block->getSide(Vector3::SIDE_WEST) instanceof RailBlock) {
                return $this->setDirection(self::SIDE_NORTH_WEST);
            } elseif ($block->getSide(Vector3::SIDE_EAST) instanceof RailBlock && $block->getSide(Vector3::SIDE_WEST) instanceof RailBlock) {
                if ($up->getSide(Vector3::SIDE_EAST) instanceof RailBlock) {
                    return $this->setDirection(Vector3::SIDE_EAST, true);
                } elseif ($up->getSide(Vector3::SIDE_WEST) instanceof RailBlock) {
                    return $this->setDirection(Vector3::SIDE_WEST, true);
                } else {
                    return $this->setDirection(Vector3::SIDE_EAST);
                }
            } elseif ($block->getSide(Vector3::SIDE_SOUTH) instanceof RailBlock && $block->getSide(Vector3::SIDE_NORTH) instanceof RailBlock) {
                if ($up->getSide(Vector3::SIDE_SOUTH) instanceof RailBlock) {
                    return $this->setDirection(Vector3::SIDE_SOUTH, true);
                } elseif ($up->getSide(Vector3::SIDE_NORTH) instanceof RailBlock) {
                    return $this->setDirection(Vector3::SIDE_NORTH, true);
                } else {
                    return $this->setDirection(Vector3::SIDE_SOUTH);
                }
            } else {
                return $this->setDirection(Vector3::SIDE_NORTH);
            }
        }
        return false;
    }