dead){ $this->position->getWorld()->scheduleDelayedBlockUpdate($this->position, mt_rand(40, 200)); } } public function onScheduledUpdate() : void{ if(!$this->dead && !$this->isCoveredWithWater()){ BlockEventHelper::die($this, (clone $this)->setDead(true)); } } public function getDropsForCompatibleTool(Item $item) : array{ return []; } public function isAffectedBySilkTouch() : bool{ return true; } public function isSolid() : bool{ return false; } protected function isCoveredWithWater() : bool{ $world = $this->position->getWorld(); $hasWater = false; foreach($this->position->sides() as $vector3){ if($world->getBlock($vector3) instanceof Water){ $hasWater = true; break; } } //TODO: check water inside the block itself (not supported on the API yet) return $hasWater; } protected function recalculateCollisionBoxes() : array{ return []; } public function getSupportType(int $facing) : SupportType{ return SupportType::NONE; } }