getName()); $this->blockTypeId = $block->getTypeId(); $this->blockTypeData = $block->computeTypeData(); } protected function encodeType(RuntimeDataWriter $w) : void{ $w->int(Block::INTERNAL_STATE_DATA_BITS, $this->blockTypeData); } public function getBlock(?int $clickedFace = null) : Block{ //TODO: HACKY MESS, CLEAN IT UP $factory = BlockFactory::getInstance(); if(!$factory->isRegistered($this->blockTypeId)){ return VanillaBlocks::AIR(); } $blockType = BlockFactory::getInstance()->fromTypeId($this->blockTypeId); $blockType->decodeTypeData($this->blockTypeData); return $blockType; } public function getFuelTime() : int{ return $this->getBlock()->getFuelTime(); } public function isFireProof() : bool{ return $this->getBlock()->isFireProofAsItem(); } public function getMaxStackSize() : int{ return $this->getBlock()->getMaxStackSize(); } }