105        if(!$blockReplace->getSide(
Facing::opposite($face))->isFullCube() || 
Facing::axis($face) === 
Axis::Y){
 
  109        $this->faces = $blockReplace instanceof 
Vine ? $blockReplace->faces : [];
 
  110        $this->faces[Facing::opposite($face)] = Facing::opposite($face);
 
  112        return parent::place($tx, $item, $blockReplace, $blockClicked, $face, $clickVector, $player);
 
 
  118        $up = $this->getSide(Facing::UP);
 
  120        $supportedFaces = $up instanceof 
Vine ? array_intersect_key($this->faces, $up->faces) : [];
 
  122        foreach($this->faces as $face){
 
  123            if(!isset($supportedFaces[$face]) && !$this->getSide($face)->isSolid()){
 
  124                unset($this->faces[$face]);
 
  130            $world = $this->position->getWorld();
 
  131            if(count($this->faces) === 0){
 
  132                $world->useBreakOn($this->position);
 
  134                $world->setBlock($this->position, $this);