mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-04-22 00:33:59 +00:00
Bucket: Fixed appearing empty when picking up still liquids
Buckets already affected by this bug will still appear empty until used. After that they'll work fine.
This commit is contained in:
parent
db52501462
commit
33352638a9
@ -48,6 +48,14 @@ class Lava extends Liquid{
|
||||
return "Lava";
|
||||
}
|
||||
|
||||
public function getStillForm() : Block{
|
||||
return BlockFactory::get(Block::STILL_LAVA, $this->meta);
|
||||
}
|
||||
|
||||
public function getFlowingForm() : Block{
|
||||
return BlockFactory::get(Block::FLOWING_LAVA, $this->meta);
|
||||
}
|
||||
|
||||
public function tickRate() : int{
|
||||
return 30;
|
||||
}
|
||||
|
@ -76,6 +76,10 @@ abstract class Liquid extends Transparent{
|
||||
return [];
|
||||
}
|
||||
|
||||
abstract public function getStillForm() : Block;
|
||||
|
||||
abstract public function getFlowingForm() : Block;
|
||||
|
||||
public function getFluidHeightPercent(){
|
||||
$d = $this->meta;
|
||||
if($d >= 8){
|
||||
|
@ -44,6 +44,14 @@ class Water extends Liquid{
|
||||
return 2;
|
||||
}
|
||||
|
||||
public function getStillForm() : Block{
|
||||
return BlockFactory::get(Block::STILL_WATER, $this->meta);
|
||||
}
|
||||
|
||||
public function getFlowingForm() : Block{
|
||||
return BlockFactory::get(Block::FLOWING_WATER, $this->meta);
|
||||
}
|
||||
|
||||
public function tickRate() : int{
|
||||
return 5;
|
||||
}
|
||||
|
@ -59,7 +59,7 @@ class Bucket extends Item implements Consumable{
|
||||
$stack = clone $this;
|
||||
|
||||
$resultItem = $stack->pop();
|
||||
$resultItem->setDamage($blockClicked->getId());
|
||||
$resultItem->setDamage($blockClicked->getFlowingForm()->getId());
|
||||
$player->getServer()->getPluginManager()->callEvent($ev = new PlayerBucketFillEvent($player, $blockReplace, $face, $this, $resultItem));
|
||||
if(!$ev->isCancelled()){
|
||||
$player->getLevel()->setBlock($blockClicked, BlockFactory::get(Block::AIR), true, true);
|
||||
@ -84,7 +84,7 @@ class Bucket extends Item implements Consumable{
|
||||
$resultItem->setDamage(0);
|
||||
$player->getServer()->getPluginManager()->callEvent($ev = new PlayerBucketEmptyEvent($player, $blockReplace, $face, $this, $resultItem));
|
||||
if(!$ev->isCancelled()){
|
||||
$player->getLevel()->setBlock($blockReplace, $resultBlock, true, true);
|
||||
$player->getLevel()->setBlock($blockReplace, $resultBlock->getFlowingForm(), true, true);
|
||||
if($player->isSurvival()){
|
||||
$player->getInventory()->setItemInHand($ev->getItem());
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user