getHarvestLevel())); } public function getId() : int{ return $this->lit ? $this->idInfo->getSecondId() : parent::getId(); } public function readStateFromData(int $id, int $stateMeta) : void{ $this->readFacingStateFromData($id, $stateMeta); $this->lit = $id === $this->idInfo->getSecondId(); } public function getLightLevel() : int{ return $this->lit ? 13 : 0; } public function isLit() : bool{ return $this->lit; } /** * @return $this */ public function setLit(bool $lit = true) : self{ $this->lit = $lit; return $this; } public function place(BlockTransaction $tx, Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, ?Player $player = null) : bool{ if($player !== null){ $this->facing = Facing::opposite($player->getHorizontalFacing()); } return parent::place($tx, $item, $blockReplace, $blockClicked, $face, $clickVector, $player); } public function onInteract(Item $item, int $face, Vector3 $clickVector, ?Player $player = null) : bool{ if($player instanceof Player){ $furnace = $this->pos->getWorld()->getTile($this->pos); if($furnace instanceof TileFurnace and $furnace->canOpenWith($item->getCustomName())){ $player->setCurrentWindow($furnace->getInventory()); } } return true; } public function onScheduledUpdate() : void{ $furnace = $this->pos->getWorld()->getTile($this->pos); if($furnace instanceof TileFurnace and $furnace->onUpdate()){ $this->pos->getWorld()->scheduleDelayedBlockUpdate($this->pos, 1); //TODO: check this } } }