meta = $meta; } public function getName() : string{ return "TNT"; } public function getHardness() : float{ return 0; } public function onActivate(Item $item, Player $player = null) : bool{ if($item->getId() === Item::FLINT_STEEL){ $item->useOn($this); $this->ignite(); return true; } return false; } public function ignite(int $fuse = 80){ $this->getLevel()->setBlock($this, BlockFactory::get(Block::AIR), true); $mot = (new Random())->nextSignedFloat() * M_PI * 2; $tnt = Entity::createEntity("PrimedTNT", $this->getLevel(), new CompoundTag("", [ new ListTag("Pos", [ new DoubleTag("", $this->x + 0.5), new DoubleTag("", $this->y), new DoubleTag("", $this->z + 0.5) ]), new ListTag("Motion", [ new DoubleTag("", -sin($mot) * 0.02), new DoubleTag("", 0.2), new DoubleTag("", -cos($mot) * 0.02) ]), new ListTag("Rotation", [ new FloatTag("", 0), new FloatTag("", 0) ]), new ByteTag("Fuse", $fuse) ])); $tnt->spawnToAll(); } }