aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/api/EntryStack.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/me/shedaniel/rei/api/EntryStack.java')
-rw-r--r--src/main/java/me/shedaniel/rei/api/EntryStack.java21
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();