meta = $meta; } public function getName() : string{ return "Snow Layer"; } public function canBeReplaced(Block $with = null) : bool{ return true; } public function getHardness() : float{ return 0.1; } public function getToolType() : int{ return Tool::TYPE_SHOVEL; } public function place(Item $item, Block $block, Block $target, int $face, Vector3 $facePos, Player $player = null) : bool{ if($block->getSide(Vector3::SIDE_DOWN)->isSolid()){ //TODO: fix placement $this->getLevel()->setBlock($block, $this, true); return true; } return false; } public function onUpdate(int $type){ if($type === Level::BLOCK_UPDATE_NORMAL){ if(!$this->getSide(Vector3::SIDE_DOWN)->isSolid()){ $this->getLevel()->setBlock($this, BlockFactory::get(Block::AIR), false, false); return Level::BLOCK_UPDATE_NORMAL; } }elseif($type === Level::BLOCK_UPDATE_RANDOM){ if($this->level->getBlockLightAt($this->x, $this->y, $this->z) >= 12){ $this->getLevel()->setBlock($this, BlockFactory::get(Block::AIR), false, false); return Level::BLOCK_UPDATE_RANDOM; } } return false; } public function getDrops(Item $item) : array{ if($item->isShovel() !== false){ return [ ItemFactory::get(Item::SNOWBALL, 0, 1) //TODO: check layer count ]; } return []; } }