pocketmine\block\ItemFrame::onActivate PHP Метод

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

public onActivate ( Item $item, Player $player = null )
$item pocketmine\item\Item
$player pocketmine\Player
    public function onActivate(Item $item, Player $player = null)
    {
        $tile = $this->getLevel()->getTile($this);
        if (!$tile instanceof ItemFrameTile) {
            $nbt = new CompoundTag("", [new StringTag("id", Tile::ITEM_FRAME), new IntTag("x", $this->x), new IntTag("y", $this->y), new IntTag("z", $this->z), new ByteTag("ItemRotation", 0), new FloatTag("ItemDropChance", 1.0)]);
            Tile::createTile(Tile::ITEM_FRAME, $this->getLevel()->getChunk($this->x >> 4, $this->z >> 4), $nbt);
        }
        if ($tile->getItem()->getId() === 0) {
            $item = clone $item;
            $item->setCount(1);
            $tile->setItem($item);
            if ($player instanceof Player) {
                if ($player->isSurvival()) {
                    $count = $item->getCount();
                    if (--$count <= 0) {
                        $player->getInventory()->setItemInHand(Item::get(Item::AIR));
                        return true;
                    }
                    $item->setCount($count);
                    $player->getInventory()->setItemInHand($item);
                }
            }
        } else {
            $itemRot = $tile->getItemRotation();
            if ($itemRot === 7) {
                $itemRot = 0;
            } else {
                $itemRot++;
            }
            $tile->setItemRotation($itemRot);
        }
        return true;
    }