22declare(strict_types=1);
27use pocketmine\block\utils\DirtType;
57 $world = $this->position->getWorld();
58 $lightAbove = $world->getFullLightAt($this->position->x, $this->position->y + 1, $this->position->z);
59 if($lightAbove < 4 && $world->getBlockAt($this->position->x, $this->position->y + 1, $this->position->z)->getLightFilter() >= 2){
61 BlockEventHelper::spread($this, VanillaBlocks::DIRT(), $this);
62 }elseif($lightAbove >= 9){
64 for($i = 0; $i < 4; ++$i){
65 $x = mt_rand($this->position->x - 1, $this->position->x + 1);
66 $y = mt_rand($this->position->y - 3, $this->position->y + 1);
67 $z = mt_rand($this->position->z - 1, $this->position->z + 1);
69 $b = $world->getBlockAt($x, $y, $z);
71 !($b instanceof
Dirt) ||
72 $b->getDirtType() !== DirtType::NORMAL ||
73 $world->getFullLightAt($x, $y + 1, $z) < 4 ||
74 $world->getBlockAt($x, $y + 1, $z)->getLightFilter() >= 2
79 BlockEventHelper::spread($b, VanillaBlocks::GRASS(), $this);
88 $world = $this->position->getWorld();
91 TallGrassObject::growGrass($world, $this->position,
new Random(mt_rand()), 8, 2);
95 if($face !== Facing::DOWN){
96 if($item instanceof Hoe){
97 $item->applyDamage(1);
98 $newBlock = VanillaBlocks::FARMLAND();
99 $world->addSound($this->position->add(0.5, 0.5, 0.5),
new ItemUseOnBlockSound($newBlock));
100 $world->setBlock($this->position, $newBlock);
103 }elseif($item instanceof Shovel){
104 $item->applyDamage(1);
105 $newBlock = VanillaBlocks::GRASS_PATH();
106 $world->addSound($this->position->add(0.5, 0.5, 0.5),
new ItemUseOnBlockSound($newBlock));
107 $world->setBlock($this->position, $newBlock);
onInteract(Item $item, int $face, Vector3 $clickVector, ?Player $player=null, array &$returnedItems=[])
getDropsForCompatibleTool(Item $item)