From 37d201d5db11c717ffa0d9d3d4af5ed6381a21fa Mon Sep 17 00:00:00 2001 From: shedaniel Date: Thu, 5 Mar 2020 15:49:06 +0800 Subject: get fluid bucket Signed-off-by: shedaniel --- src/main/java/me/shedaniel/rei/api/EntryStack.java | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'src/main/java/me/shedaniel/rei/api/EntryStack.java') diff --git a/src/main/java/me/shedaniel/rei/api/EntryStack.java b/src/main/java/me/shedaniel/rei/api/EntryStack.java index c90111ac2..376ae2aef 100644 --- a/src/main/java/me/shedaniel/rei/api/EntryStack.java +++ b/src/main/java/me/shedaniel/rei/api/EntryStack.java @@ -30,8 +30,10 @@ import me.shedaniel.rei.gui.widget.QueuedTooltip; import me.shedaniel.rei.impl.EmptyEntryStack; import me.shedaniel.rei.impl.FluidEntryStack; import me.shedaniel.rei.impl.ItemEntryStack; +import me.shedaniel.rei.listeners.BucketItemHooks; import net.minecraft.client.resource.language.I18n; import net.minecraft.fluid.Fluid; +import net.minecraft.item.BucketItem; import net.minecraft.item.Item; import net.minecraft.item.ItemConvertible; import net.minecraft.item.ItemStack; @@ -122,6 +124,25 @@ public interface EntryStack { } } + static EntryStack copyFluidToBucket(EntryStack stack) { + if (stack.getType() != Type.FLUID) + throw new IllegalArgumentException("EntryStack must be fluid!"); + Fluid fluid = stack.getFluid(); + Item item = fluid.getBucketItem(); + if (item == null) + return EntryStack.empty(); + return EntryStack.create(item); + } + + static EntryStack copyBucketToFluid(EntryStack stack) { + if (stack.getType() != Type.ITEM) + throw new IllegalArgumentException("EntryStack must be item!"); + Item item = stack.getItem(); + if (item instanceof BucketItem) + return EntryStack.create(((BucketItemHooks) item).getFluid(), 1000); + return EntryStack.empty(); + } + Optional getIdentifier(); EntryStack.Type getType(); -- cgit