isActivable = true; $this->hardness = 0; } public function place(Item $item, PocketMine\Player $player, Block $block, Block $target, $face, $fx, $fy, $fz){ $down = $this->getSide(0); if($down->getID() === self::FARMLAND){ $this->level->setBlock($block, $this, true, false, true); return true; } return false; } public function onActivate(Item $item, PocketMine\Player $player){ if($item->getID() === Item::DYE and $item->getMetadata() === 0x0F){ //Bonemeal $this->meta = 0x07; $this->level->setBlock($this, $this, true, false, true); if(($player->gamemode & 0x01) === 0){ $item->count--; } return true; } return false; } public function onUpdate($type){ if($type === Level::BLOCK_UPDATE_NORMAL){ if($this->getSide(0)->isTransparent === true){ //Replace with common break method //TODO //ServerAPI::request()->api->entity->drop($this, Item::get(CARROT, 0, 1)); $this->level->setBlock($this, new Air(), false, false, true); return Level::BLOCK_UPDATE_NORMAL; } } elseif($type === Level::BLOCK_UPDATE_RANDOM){ if(mt_rand(0, 2) == 1){ if($this->meta < 0x07){ ++$this->meta; $this->level->setBlock($this, $this, true, false, true); return Level::BLOCK_UPDATE_RANDOM; } } else{ return Level::BLOCK_UPDATE_RANDOM; } } return false; } public function getDrops(Item $item, PocketMine\Player $player){ $drops = array(); if($this->meta >= 0x07){ $drops[] = array(CARROT, 0, mt_rand(1, 4)); } else{ $drops[] = array(CARROT, 0, 1); } return $drops; } }