meta = $meta; } public function canBeReplaced() : bool{ return true; } public function getName() : string{ static $names = [ 0 => "Dead Shrub", 1 => "Tall Grass", 2 => "Fern" ]; return $names[$this->getVariant()] ?? "Unknown"; } public function place(Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, Player $player = null) : bool{ $down = $this->getSide(Vector3::SIDE_DOWN); if($down->getId() === self::GRASS){ $this->getLevel()->setBlock($blockReplace, $this, true); return true; } return false; } public function onNearbyBlockChange() : void{ if($this->getSide(Vector3::SIDE_DOWN)->isTransparent()){ //Replace with common break method $this->getLevel()->setBlock($this, BlockFactory::get(Block::AIR), true, true); } } public function getToolType() : int{ return BlockToolType::TYPE_SHEARS; } public function getToolHarvestLevel() : int{ return 1; } public function getDrops(Item $item) : array{ if($this->isCompatibleWithTool($item)){ return parent::getDrops($item); } if(mt_rand(0, 15) === 0){ return [ ItemFactory::get(Item::WHEAT_SEEDS) ]; } return []; } public function getFlameEncouragement() : int{ return 60; } public function getFlammability() : int{ return 100; } }