Block: Use parent::place() instead of setBlock() directly

This commit is contained in:
Dylan K. Taylor 2018-09-12 20:07:39 +01:00
parent 54342ab0ce
commit c0962a47be
45 changed files with 93 additions and 134 deletions

View File

@ -97,6 +97,6 @@ class Anvil extends Fallable{
public function place(Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, Player $player = null) : bool{
$direction = $player !== null ? Bearing::rotate($player->getDirection(), -1) : 0;
$this->meta = $this->getVariant() | $direction;
return $this->getLevel()->setBlock($blockReplace, $this, true, true);
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
}
}

View File

@ -85,7 +85,7 @@ abstract class BaseRail extends Flowable{
}
public function place(Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, Player $player = null) : bool{
if(!$blockReplace->getSide(Facing::DOWN)->isTransparent() and $this->getLevel()->setBlock($blockReplace, $this, true, true)){
if(!$blockReplace->getSide(Facing::DOWN)->isTransparent() and parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player)){
$this->tryReconnect();
return true;
}

View File

@ -152,11 +152,11 @@ class Bed extends Transparent{
public function place(Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, Player $player = null) : bool{
$down = $this->getSide(Facing::DOWN);
if(!$down->isTransparent()){
$meta = $player instanceof Player ? Bearing::rotate($player->getDirection(), 2) : 0; //rotate 180 degrees
$next = $this->getSide(self::getOtherHalfSide($meta));
$this->meta = $player instanceof Player ? Bearing::rotate($player->getDirection(), 2) : 0; //rotate 180 degrees
$next = $this->getSide(self::getOtherHalfSide($this->meta));
if($next->canBeReplaced() and !$next->getSide(Facing::DOWN)->isTransparent()){
$this->getLevel()->setBlock($blockReplace, BlockFactory::get($this->id, $meta), true, true);
$this->getLevel()->setBlock($next, BlockFactory::get($this->id, $meta | self::BITFLAG_HEAD), true, true);
parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
$this->getLevel()->setBlock($next, BlockFactory::get($this->id, $this->meta | self::BITFLAG_HEAD), true, true);
Tile::createTile(Tile::BED, $this->getLevel(), TileBed::createNBT($this, $face, $item, $player));
Tile::createTile(Tile::BED, $this->getLevel(), TileBed::createNBT($next, $face, $item, $player));

View File

@ -181,7 +181,7 @@ class Block extends Position implements BlockIds, Metadatable{
* @return bool
*/
public function place(Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, Player $player = null) : bool{
return $this->getLevel()->setBlock($this, $this, true, true);
return $this->getLevel()->setBlock($blockReplace, $this, true, true);
}
/**

View File

@ -55,7 +55,7 @@ class BoneBlock extends Solid{
public function place(Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, Player $player = null) : bool{
$this->meta = PillarRotationHelper::getMetaFromFace($this->meta, $face);
return $this->getLevel()->setBlock($blockReplace, $this, true, true);
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
}
public function getVariantBitmask() : int{

View File

@ -65,11 +65,12 @@ class BurningFurnace extends Solid{
if($player !== null){
$this->meta = Bearing::toFacing($player->getDirection());
}
$this->getLevel()->setBlock($blockReplace, $this, true, true);
if(parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player)){
Tile::createTile(Tile::FURNACE, $this->getLevel(), TileFurnace::createNBT($this, $face, $item, $player));
return true;
}
Tile::createTile(Tile::FURNACE, $this->getLevel(), TileFurnace::createNBT($this, $face, $item, $player));
return true;
return false;
}
public function onActivate(Item $item, Player $player = null) : bool{

View File

@ -40,8 +40,7 @@ abstract class Button extends Flowable{
public function place(Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, Player $player = null) : bool{
//TODO: check valid target block
$this->meta = $face;
return $this->level->setBlock($this, $this, true, true);
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
}
public function onActivate(Item $item, Player $player = null) : bool{

View File

@ -112,9 +112,7 @@ class Cactus extends Transparent{
$block2 = $this->getSide(Facing::WEST);
$block3 = $this->getSide(Facing::EAST);
if(!$block0->isSolid() and !$block1->isSolid() and !$block2->isSolid() and !$block3->isSolid()){
$this->getLevel()->setBlock($this, $this, true);
return true;
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
}
}

View File

@ -64,9 +64,7 @@ class Cake extends Transparent implements FoodSource{
public function place(Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, Player $player = null) : bool{
$down = $this->getSide(Facing::DOWN);
if($down->getId() !== self::AIR){
$this->getLevel()->setBlock($blockReplace, $this, true, true);
return true;
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
}
return false;

View File

@ -57,9 +57,7 @@ class Carpet extends Flowable{
public function place(Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, Player $player = null) : bool{
$down = $this->getSide(Facing::DOWN);
if($down->getId() !== self::AIR){
$this->getLevel()->setBlock($blockReplace, $this, true, true);
return true;
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
}
return false;

View File

@ -77,15 +77,18 @@ class Chest extends Transparent{
}
}
$this->getLevel()->setBlock($blockReplace, $this, true, true);
$tile = Tile::createTile(Tile::CHEST, $this->getLevel(), TileChest::createNBT($this, $face, $item, $player));
if(parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player)){
$tile = Tile::createTile(Tile::CHEST, $this->getLevel(), TileChest::createNBT($this, $face, $item, $player));
if($chest instanceof TileChest and $tile instanceof TileChest){
$chest->pairWith($tile);
$tile->pairWith($chest);
if($chest instanceof TileChest and $tile instanceof TileChest){
$chest->pairWith($tile);
$tile->pairWith($chest);
}
return true;
}
return true;
return false;
}
public function onActivate(Item $item, Player $player = null) : bool{

View File

@ -34,9 +34,7 @@ abstract class Crops extends Flowable{
public function place(Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, Player $player = null) : bool{
if($blockReplace->getSide(Facing::DOWN)->getId() === Block::FARMLAND){
$this->getLevel()->setBlock($blockReplace, $this, true, true);
return true;
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
}
return false;

View File

@ -44,9 +44,7 @@ class Dandelion extends Flowable{
public function place(Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, Player $player = null) : bool{
$down = $this->getSide(Facing::DOWN);
if($down->getId() === Block::GRASS or $down->getId() === Block::DIRT or $down->getId() === Block::FARMLAND){
$this->getLevel()->setBlock($blockReplace, $this, true, true);
return true;
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
}
return false;

View File

@ -138,7 +138,7 @@ abstract class Door extends Transparent{
}
$this->setDamage(Bearing::rotate($player->getDirection(), -1));
$this->getLevel()->setBlock($blockReplace, $this, true, true); //Bottom
parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
$this->getLevel()->setBlock($blockUp, BlockFactory::get($this->getId(), $metaUp), true); //Top
return true;
}

View File

@ -40,11 +40,12 @@ class EnchantingTable extends Transparent{
}
public function place(Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, Player $player = null) : bool{
$this->getLevel()->setBlock($blockReplace, $this, true, true);
if(parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player)){
Tile::createTile(Tile::ENCHANT_TABLE, $this->getLevel(), TileEnchantTable::createNBT($this, $face, $item, $player));
return true;
}
Tile::createTile(Tile::ENCHANT_TABLE, $this->getLevel(), TileEnchantTable::createNBT($this, $face, $item, $player));
return true;
return false;
}
public function getHardness() : float{

View File

@ -51,7 +51,7 @@ class EndRod extends Flowable{
$this->meta ^= 0x01;
}
return $this->level->setBlock($blockReplace, $this, true, true);
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
}
public function isSolid() : bool{

View File

@ -66,10 +66,12 @@ class EnderChest extends Chest{
$this->meta = Bearing::toFacing($player->getDirection());
}
$this->getLevel()->setBlock($blockReplace, $this, true, true);
Tile::createTile(Tile::ENDER_CHEST, $this->getLevel(), TileEnderChest::createNBT($this, $face, $item, $player));
if(Block::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player)){
Tile::createTile(Tile::ENDER_CHEST, $this->getLevel(), TileEnderChest::createNBT($this, $face, $item, $player));
return true;
}
return true;
return false;
}
public function onActivate(Item $item, Player $player = null) : bool{

View File

@ -72,9 +72,8 @@ class FenceGate extends Transparent{
if($player !== null){
$this->meta = Bearing::rotate($player->getDirection(), 2);
}
$this->getLevel()->setBlock($blockReplace, $this, true, true);
return true;
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
}
public function getVariantBitmask() : int{

View File

@ -63,9 +63,7 @@ class Flower extends Flowable{
public function place(Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, Player $player = null) : bool{
$down = $this->getSide(Facing::DOWN);
if($down->getId() === Block::GRASS or $down->getId() === Block::DIRT or $down->getId() === Block::FARMLAND){
$this->getLevel()->setBlock($blockReplace, $this, true);
return true;
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
}
return false;

View File

@ -57,9 +57,12 @@ class FlowerPot extends Flowable{
return false;
}
$this->getLevel()->setBlock($blockReplace, $this, true, true);
Tile::createTile(Tile::FLOWER_POT, $this->getLevel(), TileFlowerPot::createNBT($this, $face, $item, $player));
return true;
if(parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player)){
Tile::createTile(Tile::FLOWER_POT, $this->getLevel(), TileFlowerPot::createNBT($this, $face, $item, $player));
return true;
}
return false;
}
public function onNearbyBlockChange() : void{

View File

@ -48,7 +48,8 @@ class GlazedTerracotta extends Solid{
if($player !== null){
$this->meta = Bearing::toFacing($player->getDirection());
}
return $this->getLevel()->setBlock($blockReplace, $this, true, true);
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
}
public function getVariantBitmask() : int{

View File

@ -46,9 +46,7 @@ class HayBale extends Solid{
public function place(Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, Player $player = null) : bool{
$this->meta = PillarRotationHelper::getMetaFromFace($this->meta, $face);
$this->getLevel()->setBlock($blockReplace, $this, true, true);
return true;
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
}
public function getVariantBitmask() : int{

View File

@ -83,11 +83,13 @@ class ItemFrame extends Flowable{
];
$this->meta = $faces[$face];
$this->level->setBlock($blockReplace, $this, true, true);
Tile::createTile(Tile::ITEM_FRAME, $this->getLevel(), TileItemFrame::createNBT($this, $face, $item, $player));
if(parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player)){
Tile::createTile(Tile::ITEM_FRAME, $this->getLevel(), TileItemFrame::createNBT($this, $face, $item, $player));
return true;
}
return true;
return false;
}

View File

@ -93,9 +93,7 @@ class Ladder extends Transparent{
public function place(Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, Player $player = null) : bool{
if(!$blockClicked->isTransparent() and Facing::axis($face) !== Facing::AXIS_Y){
$this->meta = $face;
$this->getLevel()->setBlock($blockReplace, $this, true, true);
return true;
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
}
return false;

View File

@ -27,10 +27,7 @@ use pocketmine\entity\Entity;
use pocketmine\event\entity\EntityCombustByBlockEvent;
use pocketmine\event\entity\EntityDamageByBlockEvent;
use pocketmine\event\entity\EntityDamageEvent;
use pocketmine\item\Item;
use pocketmine\math\Vector3;
use pocketmine\network\mcpe\protocol\LevelSoundEventPacket;
use pocketmine\Player;
use pocketmine\Server;
class Lava extends Liquid{
@ -114,11 +111,4 @@ class Lava extends Liquid{
$entity->resetFallDistance();
}
public function place(Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, Player $player = null) : bool{
$ret = $this->getLevel()->setBlock($this, $this, true, false);
$this->getLevel()->scheduleDelayedBlockUpdate($this, $this->tickRate());
return $ret;
}
}

View File

@ -160,7 +160,7 @@ class Leaves extends Transparent{
public function place(Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, Player $player = null) : bool{
$this->meta |= 0x04;
return $this->getLevel()->setBlock($this, $this, true);
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
}
public function getVariantBitmask() : int{

View File

@ -73,7 +73,7 @@ class Lever extends Flowable{
}
}
return $this->level->setBlock($blockReplace, $this, true, true);
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
}
public function onNearbyBlockChange() : void{

View File

@ -47,9 +47,7 @@ class NetherWartPlant extends Flowable{
public function place(Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, Player $player = null) : bool{
$down = $this->getSide(Facing::DOWN);
if($down->getId() === Block::SOUL_SAND){
$this->getLevel()->setBlock($blockReplace, $this, false, true);
return true;
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
}
return false;

View File

@ -58,7 +58,7 @@ class Quartz extends Solid{
if($this->meta !== self::NORMAL){
$this->meta = PillarRotationHelper::getMetaFromFace($this->meta, $face);
}
return $this->getLevel()->setBlock($blockReplace, $this, true, true);
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
}
public function getToolType() : int{

View File

@ -53,9 +53,7 @@ class RedMushroom extends Flowable{
public function place(Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, Player $player = null) : bool{
$down = $this->getSide(Facing::DOWN);
if(!$down->isTransparent()){
$this->getLevel()->setBlock($blockReplace, $this, true, true);
return true;
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
}
return false;

View File

@ -59,9 +59,7 @@ class Sapling extends Flowable{
public function place(Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, Player $player = null) : bool{
$down = $this->getSide(Facing::DOWN);
if($down->getId() === self::GRASS or $down->getId() === self::DIRT or $down->getId() === self::FARMLAND){
$this->getLevel()->setBlock($blockReplace, $this, true, true);
return true;
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
}
return false;

View File

@ -63,15 +63,16 @@ class SignPost extends Transparent{
if($face === Facing::UP){
$this->meta = $player !== null ? (floor((($player->yaw + 180) * 16 / 360) + 0.5) & 0x0f) : 0;
$this->getLevel()->setBlock($blockReplace, $this, true);
$ret = parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
}else{
$this->meta = $face;
$this->getLevel()->setBlock($blockReplace, BlockFactory::get(Block::WALL_SIGN, $this->meta), true);
$ret = $this->getLevel()->setBlock($blockReplace, BlockFactory::get(Block::WALL_SIGN, $this->meta), true);
}
Tile::createTile(Tile::SIGN, $this->getLevel(), TileSign::createNBT($this, $face, $item, $player));
return true;
if($ret){
Tile::createTile(Tile::SIGN, $this->getLevel(), TileSign::createNBT($this, $face, $item, $player));
return true;
}
}
return false;

View File

@ -60,10 +60,12 @@ class Skull extends Flowable{
}
$this->meta = $face;
$this->getLevel()->setBlock($blockReplace, $this, true);
Tile::createTile(Tile::SKULL, $this->getLevel(), TileSkull::createNBT($this, $face, $item, $player));
if(parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player)){
Tile::createTile(Tile::SKULL, $this->getLevel(), TileSkull::createNBT($this, $face, $item, $player));
return true;
}
return true;
return false;
}
public function getDropsForCompatibleTool(Item $item) : array{

View File

@ -96,9 +96,8 @@ abstract class Slab extends Transparent{
if($blockReplace->getId() === $this->id and $blockClicked->getVariant() !== $this->getVariant()){
return false;
}
$this->getLevel()->setBlock($blockReplace, $this, true, true);
return true;
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
}
public function getVariantBitmask() : int{

View File

@ -61,9 +61,7 @@ class SnowLayer extends Flowable{
public function place(Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, Player $player = null) : bool{
if($blockReplace->getSide(Facing::DOWN)->isSolid()){
//TODO: fix placement
$this->getLevel()->setBlock($blockReplace, $this, true);
return true;
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
}
return false;

View File

@ -83,9 +83,8 @@ abstract class Stair extends Transparent{
if(($clickVector->y > 0.5 and $face !== Facing::UP) or $face === Facing::DOWN){
$this->meta |= 0x04; //Upside-down stairs
}
$this->getLevel()->setBlock($blockReplace, $this, true, true);
return true;
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
}
public function getVariantBitmask() : int{

View File

@ -62,14 +62,16 @@ class StandingBanner extends Transparent{
if($face !== Facing::DOWN){
if($face === Facing::UP and $player !== null){
$this->meta = floor((($player->yaw + 180) * 16 / 360) + 0.5) & 0x0f;
$this->getLevel()->setBlock($blockReplace, $this, true);
$ret = parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
}else{
$this->meta = $face;
$this->getLevel()->setBlock($blockReplace, BlockFactory::get(Block::WALL_BANNER, $this->meta), true);
$ret = $this->getLevel()->setBlock($blockReplace, BlockFactory::get(Block::WALL_BANNER, $this->meta), true);
}
Tile::createTile(Tile::BANNER, $this->getLevel(), TileBanner::createNBT($this, $face, $item, $player));
return true;
if($ret){
Tile::createTile(Tile::BANNER, $this->getLevel(), TileBanner::createNBT($this, $face, $item, $player));
return true;
}
}
return false;

View File

@ -102,18 +102,14 @@ class Sugarcane extends Flowable{
public function place(Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, Player $player = null) : bool{
$down = $this->getSide(Facing::DOWN);
if($down->getId() === self::SUGARCANE_BLOCK){
$this->getLevel()->setBlock($blockReplace, BlockFactory::get(Block::SUGARCANE_BLOCK), true);
return true;
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
}elseif($down->getId() === self::GRASS or $down->getId() === self::DIRT or $down->getId() === self::SAND){
$block0 = $down->getSide(Facing::NORTH);
$block1 = $down->getSide(Facing::SOUTH);
$block2 = $down->getSide(Facing::WEST);
$block3 = $down->getSide(Facing::EAST);
if(($block0 instanceof Water) or ($block1 instanceof Water) or ($block2 instanceof Water) or ($block3 instanceof Water)){
$this->getLevel()->setBlock($blockReplace, BlockFactory::get(Block::SUGARCANE_BLOCK), true);
return true;
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
}
}

View File

@ -53,9 +53,7 @@ class TallGrass extends Flowable{
public function place(Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, Player $player = null) : bool{
$down = $this->getSide(Facing::DOWN);
if($down->getId() === self::GRASS){
$this->getLevel()->setBlock($blockReplace, $this, true);
return true;
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
}
return false;

View File

@ -73,14 +73,11 @@ class Torch extends Flowable{
Facing::EAST => 1
];
$this->meta = $faces[$face];
$this->getLevel()->setBlock($blockReplace, $this, true, true);
return true;
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
}elseif(!$below->isTransparent() or $below->getId() === self::FENCE or $below->getId() === self::COBBLESTONE_WALL){
$this->meta = 0;
$this->getLevel()->setBlock($blockReplace, $this, true, true);
return true;
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
}
return false;

View File

@ -95,8 +95,8 @@ class Trapdoor extends Transparent{
if(($clickVector->y > 0.5 and $face !== Facing::UP) or $face === Facing::DOWN){
$this->meta |= self::MASK_UPPER; //top half of block
}
$this->getLevel()->setBlock($blockReplace, $this, true, true);
return true;
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
}
public function getVariantBitmask() : int{

View File

@ -141,8 +141,7 @@ class Vine extends Flowable{
$this->meta |= $blockReplace->meta;
}
$this->getLevel()->setBlock($blockReplace, $this, true, true);
return true;
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
}
public function onNearbyBlockChange() : void{

View File

@ -24,10 +24,7 @@ declare(strict_types=1);
namespace pocketmine\block;
use pocketmine\entity\Entity;
use pocketmine\item\Item;
use pocketmine\math\Vector3;
use pocketmine\network\mcpe\protocol\LevelSoundEventPacket;
use pocketmine\Player;
class Water extends Liquid{
@ -73,11 +70,4 @@ class Water extends Liquid{
$entity->resetFallDistance();
}
public function place(Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, Player $player = null) : bool{
$ret = $this->getLevel()->setBlock($this, $this, true, false);
$this->getLevel()->scheduleDelayedBlockUpdate($this, $this->tickRate());
return $ret;
}
}

View File

@ -54,8 +54,7 @@ class WaterLily extends Flowable{
if($blockClicked instanceof Water){
$up = $blockClicked->getSide(Facing::UP);
if($up->getId() === Block::AIR){
$this->getLevel()->setBlock($up, $this, true, true);
return true;
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
}
}

View File

@ -56,7 +56,7 @@ class Wood extends Solid{
public function place(Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, Player $player = null) : bool{
$this->meta = PillarRotationHelper::getMetaFromFace($this->meta, $face);
return $this->getLevel()->setBlock($blockReplace, $this, true, true);
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
}
public function getVariantBitmask() : int{