diff options
Diffstat (limited to 'src/main/java/me/shedaniel/rei/api/EntryStack.java')
| -rw-r--r-- | src/main/java/me/shedaniel/rei/api/EntryStack.java | 21 |
1 files changed, 21 insertions, 0 deletions
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<Identifier> getIdentifier(); EntryStack.Type getType(); |
