Fixed a bucket of lava disappearing when used in a furnace (#3973)

fixes #2385
This commit is contained in:
Govdim 2020-12-18 02:57:34 +03:00 committed by GitHub
parent c95e283507
commit dd2c3db285
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 2 deletions

View File

@ -50,6 +50,14 @@ class Bucket extends Item implements MaybeConsumable{
return 0; return 0;
} }
public function getFuelResidue() : Item{
if($this->meta === Block::LAVA or $this->meta === Block::FLOWING_LAVA){
return ItemFactory::get(Item::BUCKET);
}
return parent::getFuelResidue();
}
public function onActivate(Player $player, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector) : bool{ public function onActivate(Player $player, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector) : bool{
$resultBlock = BlockFactory::get($this->meta); $resultBlock = BlockFactory::get($this->meta);

View File

@ -655,6 +655,16 @@ class Item implements ItemIds, \JsonSerializable{
return 0; return 0;
} }
/**
* Returns an item after burning fuel
*/
public function getFuelResidue() : Item{
$item = clone $this;
$item->pop();
return $item;
}
/** /**
* Returns how many points of damage this item will deal to an entity when used as a weapon. * Returns how many points of damage this item will deal to an entity when used as a weapon.
*/ */

View File

@ -152,8 +152,7 @@ class Furnace extends Spawnable implements InventoryHolder, Container, Nameable{
} }
if($this->burnTime > 0 and $ev->isBurning()){ if($this->burnTime > 0 and $ev->isBurning()){
$fuel->pop(); $this->inventory->setFuel($fuel->getFuelResidue());
$this->inventory->setFuel($fuel);
} }
} }