mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-07-23 11:26:37 +00:00
WaterCauldron: remove more repeated code
This commit is contained in:
parent
4a3843a881
commit
8454076235
@ -108,6 +108,7 @@ final class WaterCauldron extends FillableCauldron{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function onInteract(Item $item, int $face, Vector3 $clickVector, ?Player $player = null, array &$returnedItems = []) : bool{
|
public function onInteract(Item $item, int $face, Vector3 $clickVector, ?Player $player = null, array &$returnedItems = []) : bool{
|
||||||
|
$world = $this->position->getWorld();
|
||||||
if(($dyeColor = match($item->getTypeId()){
|
if(($dyeColor = match($item->getTypeId()){
|
||||||
ItemTypeIds::LAPIS_LAZULI => DyeColor::BLUE(),
|
ItemTypeIds::LAPIS_LAZULI => DyeColor::BLUE(),
|
||||||
ItemTypeIds::INK_SAC => DyeColor::BLACK(),
|
ItemTypeIds::INK_SAC => DyeColor::BLACK(),
|
||||||
@ -117,8 +118,8 @@ final class WaterCauldron extends FillableCauldron{
|
|||||||
default => null
|
default => null
|
||||||
}) !== null && ($newColor = $dyeColor->getRgbValue())->toRGBA() !== $this->customWaterColor?->toRGBA()
|
}) !== null && ($newColor = $dyeColor->getRgbValue())->toRGBA() !== $this->customWaterColor?->toRGBA()
|
||||||
){
|
){
|
||||||
$this->position->getWorld()->setBlock($this->position, $this->setCustomWaterColor($this->customWaterColor === null ? $newColor : Color::mix($this->customWaterColor, $newColor)));
|
$world->setBlock($this->position, $this->setCustomWaterColor($this->customWaterColor === null ? $newColor : Color::mix($this->customWaterColor, $newColor)));
|
||||||
$this->position->getWorld()->addSound($this->position->add(0.5, 0.5, 0.5), new CauldronAddDyeSound());
|
$world->addSound($this->position->add(0.5, 0.5, 0.5), new CauldronAddDyeSound());
|
||||||
|
|
||||||
$item->pop();
|
$item->pop();
|
||||||
}elseif($item instanceof Potion || $item instanceof SplashPotion){ //TODO: lingering potion
|
}elseif($item instanceof Potion || $item instanceof SplashPotion){ //TODO: lingering potion
|
||||||
@ -137,13 +138,13 @@ final class WaterCauldron extends FillableCauldron{
|
|||||||
default => false
|
default => false
|
||||||
} && $item->getCustomColor()?->toRGBA() !== $this->customWaterColor->toRGBA()){
|
} && $item->getCustomColor()?->toRGBA() !== $this->customWaterColor->toRGBA()){
|
||||||
$item->setCustomColor($this->customWaterColor);
|
$item->setCustomColor($this->customWaterColor);
|
||||||
$this->position->getWorld()->setBlock($this->position, $this->withFillLevel($this->getFillLevel() - self::DYE_ARMOR_USE_AMOUNT));
|
$world->setBlock($this->position, $this->withFillLevel($this->getFillLevel() - self::DYE_ARMOR_USE_AMOUNT));
|
||||||
$this->position->getWorld()->addSound($this->position->add(0.5, 0.5, 0.5), new CauldronDyeItemSound());
|
$world->addSound($this->position->add(0.5, 0.5, 0.5), new CauldronDyeItemSound());
|
||||||
}
|
}
|
||||||
}elseif($item->getCustomColor() !== null){
|
}elseif($item->getCustomColor() !== null){
|
||||||
$item->clearCustomColor();
|
$item->clearCustomColor();
|
||||||
$this->position->getWorld()->setBlock($this->position, $this->withFillLevel($this->getFillLevel() - self::CLEAN_ARMOR_USE_AMOUNT));
|
$world->setBlock($this->position, $this->withFillLevel($this->getFillLevel() - self::CLEAN_ARMOR_USE_AMOUNT));
|
||||||
$this->position->getWorld()->addSound($this->position->add(0.5, 0.5, 0.5), new CauldronCleanItemSound());
|
$world->addSound($this->position->add(0.5, 0.5, 0.5), new CauldronCleanItemSound());
|
||||||
}
|
}
|
||||||
}elseif($item instanceof Banner){
|
}elseif($item instanceof Banner){
|
||||||
$patterns = $item->getPatterns();
|
$patterns = $item->getPatterns();
|
||||||
@ -151,8 +152,8 @@ final class WaterCauldron extends FillableCauldron{
|
|||||||
array_pop($patterns);
|
array_pop($patterns);
|
||||||
$item->setPatterns($patterns);
|
$item->setPatterns($patterns);
|
||||||
|
|
||||||
$this->position->getWorld()->setBlock($this->position, $this->withFillLevel($this->getFillLevel() - self::CLEAN_BANNER_USE_AMOUNT));
|
$world->setBlock($this->position, $this->withFillLevel($this->getFillLevel() - self::CLEAN_BANNER_USE_AMOUNT));
|
||||||
$this->position->getWorld()->addSound($this->position->add(0.5, 0.5, 0.5), new CauldronCleanItemSound());
|
$world->addSound($this->position->add(0.5, 0.5, 0.5), new CauldronCleanItemSound());
|
||||||
}
|
}
|
||||||
}elseif(ItemTypeIds::toBlockTypeId($item->getTypeId()) === BlockTypeIds::DYED_SHULKER_BOX){
|
}elseif(ItemTypeIds::toBlockTypeId($item->getTypeId()) === BlockTypeIds::DYED_SHULKER_BOX){
|
||||||
if($this->customWaterColor === null){
|
if($this->customWaterColor === null){
|
||||||
@ -162,8 +163,8 @@ final class WaterCauldron extends FillableCauldron{
|
|||||||
$item->pop();
|
$item->pop();
|
||||||
$returnedItems[] = $newItem;
|
$returnedItems[] = $newItem;
|
||||||
|
|
||||||
$this->position->getWorld()->setBlock($this->position, $this->withFillLevel($this->getFillLevel() - self::CLEAN_SHULKER_BOX_USE_AMOUNT));
|
$world->setBlock($this->position, $this->withFillLevel($this->getFillLevel() - self::CLEAN_SHULKER_BOX_USE_AMOUNT));
|
||||||
$this->position->getWorld()->addSound($this->position->add(0.5, 0.5, 0.5), new CauldronCleanItemSound());
|
$world->addSound($this->position->add(0.5, 0.5, 0.5), new CauldronCleanItemSound());
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
match($item->getTypeId()){
|
match($item->getTypeId()){
|
||||||
|
Loading…
x
Reference in New Issue
Block a user