pocketmine\block\ExtendedRailBlock::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);
        if ($down->isTransparent() === false || $down instanceof Slab && ($down->meta & 0x8) === 0x8 || $down instanceof WoodSlab && ($down->meta & 0x8) === 0x8 || $down instanceof Stair && ($down->meta & 0x4) === 0x4) {
            $this->getLevel()->setBlock($this, Block::get($this->id, 0));
            $up = $block->getSide(Vector3::SIDE_UP);
            if ($block->getSide(Vector3::SIDE_EAST) instanceof RailBlock && $block->getSide(Vector3::SIDE_WEST) instanceof RailBlock) {
                if ($up->getSide(Vector3::SIDE_EAST) instanceof RailBlock) {
                    $this->setDirection(Vector3::SIDE_EAST, true);
                } elseif ($up->getSide(Vector3::SIDE_WEST) instanceof RailBlock) {
                    $this->setDirection(Vector3::SIDE_WEST, true);
                } else {
                    $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) {
                    $this->setDirection(Vector3::SIDE_SOUTH, true);
                } elseif ($up->getSide(Vector3::SIDE_NORTH) instanceof RailBlock) {
                    $this->setDirection(Vector3::SIDE_NORTH, true);
                } else {
                    $this->setDirection(Vector3::SIDE_SOUTH);
                }
            } else {
                $this->setDirection(Vector3::SIDE_NORTH);
            }
            return true;
        }
        return false;
    }