22declare(strict_types=1);
26use pocketmine\block\utils\HorizontalFacingTrait;
37 use HorizontalFacingTrait;
40 $w->horizontalFacing($this->facing);
44 $axis =
Facing::axis($face);
45 if(($axis !== Axis::X && $axis !== Axis::Z) || !$this->canBeSupportedAt($blockReplace,
Facing::opposite($face))){
48 $this->facing = $face;
50 $this->dead = !$this->isCoveredWithWater();
52 return parent::place($tx, $item, $blockReplace, $blockClicked, $face, $clickVector, $player);
56 $world = $this->position->getWorld();
57 if(!$this->canBeSupportedAt($this, Facing::opposite($this->facing))){
58 $world->useBreakOn($this->position);
60 parent::onNearbyBlockChange();
64 private function canBeSupportedAt(Block $block,
int $face) : bool{
65 return $block->getAdjacentSupportType($face)->hasCenterSupport();
69 return
VanillaItems::CORAL_FAN()->setCoralType($this->coralType)->setDead($this->dead);
describeBlockOnlyState(RuntimeDataDescriber $w)
place(BlockTransaction $tx, Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, ?Player $player=null)
static opposite(int $direction)