aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2020-03-05 15:49:06 +0800
committershedaniel <daniel@shedaniel.me>2020-03-05 15:49:06 +0800
commit37d201d5db11c717ffa0d9d3d4af5ed6381a21fa (patch)
treebcbd169dad006bcc2f1581e8063b12260f40b575 /src
parent0fc97290731e0e857c6276411e0a89a056dba561 (diff)
downloadRoughlyEnoughItems-37d201d5db11c717ffa0d9d3d4af5ed6381a21fa.tar.gz
RoughlyEnoughItems-37d201d5db11c717ffa0d9d3d4af5ed6381a21fa.tar.bz2
RoughlyEnoughItems-37d201d5db11c717ffa0d9d3d4af5ed6381a21fa.zip
get fluid bucket
Signed-off-by: shedaniel <daniel@shedaniel.me>
Diffstat (limited to 'src')
-rw-r--r--src/main/java/me/shedaniel/rei/api/EntryStack.java21
-rw-r--r--src/main/java/me/shedaniel/rei/gui/config/entry/FilteringEntry.java1
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/EntryListWidget.java2
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/FavoritesListWidget.java2
-rw-r--r--src/main/java/me/shedaniel/rei/impl/ItemEntryStack.java25
-rw-r--r--src/main/java/me/shedaniel/rei/listeners/BucketItemHooks.java12
-rwxr-xr-xsrc/main/resources/assets/roughlyenoughitems/textures/gui/recipecontainer.pngbin8371 -> 8469 bytes
-rw-r--r--src/main/resources/assets/roughlyenoughitems/textures/gui/recipecontainer_dark.pngbin7516 -> 7629 bytes
-rw-r--r--src/main/resources/listeners.roughlyenoughitems.json3
9 files changed, 40 insertions, 26 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();
diff --git a/src/main/java/me/shedaniel/rei/gui/config/entry/FilteringEntry.java b/src/main/java/me/shedaniel/rei/gui/config/entry/FilteringEntry.java
index 922a06e07..0d3c1916b 100644
--- a/src/main/java/me/shedaniel/rei/gui/config/entry/FilteringEntry.java
+++ b/src/main/java/me/shedaniel/rei/gui/config/entry/FilteringEntry.java
@@ -546,7 +546,6 @@ public class FilteringEntry extends AbstractConfigListEntry<List<EntryStack>> {
if (tooltip != null) {
FilteringEntry.this.tooltip = tooltip;
}
-// System.out.println(getCurrentEntry().getItemStack().toTag(new CompoundTag()).toString());
}
}
}
diff --git a/src/main/java/me/shedaniel/rei/gui/widget/EntryListWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/EntryListWidget.java
index eba0a2fda..436394f85 100644
--- a/src/main/java/me/shedaniel/rei/gui/widget/EntryListWidget.java
+++ b/src/main/java/me/shedaniel/rei/gui/widget/EntryListWidget.java
@@ -816,6 +816,8 @@ public class EntryListWidget extends WidgetWithBounds {
if (containsMouse(mouseX, mouseY) && ClientHelper.getInstance().isCheating()) {
EntryStack entry = getCurrentEntry().copy();
if (!entry.isEmpty()) {
+ if (entry.getType() == EntryStack.Type.FLUID)
+ entry = EntryStack.copyFluidToBucket(entry);
if (entry.getType() == EntryStack.Type.ITEM)
entry.setAmount(button != 1 && !Screen.hasShiftDown() ? 1 : entry.getItemStack().getMaxCount());
ClientHelper.getInstance().tryCheatingEntry(entry);
diff --git a/src/main/java/me/shedaniel/rei/gui/widget/FavoritesListWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/FavoritesListWidget.java
index 4c841bad7..4c1d22c68 100644
--- a/src/main/java/me/shedaniel/rei/gui/widget/FavoritesListWidget.java
+++ b/src/main/java/me/shedaniel/rei/gui/widget/FavoritesListWidget.java
@@ -387,6 +387,8 @@ public class FavoritesListWidget extends WidgetWithBounds {
if (containsMouse(mouseX, mouseY) && ClientHelper.getInstance().isCheating()) {
EntryStack entry = getCurrentEntry().copy();
if (!entry.isEmpty()) {
+ if (entry.getType() == EntryStack.Type.FLUID)
+ entry = EntryStack.copyFluidToBucket(entry);
if (entry.getType() == EntryStack.Type.ITEM)
entry.setAmount(button != 1 && !Screen.hasShiftDown() ? 1 : entry.getItemStack().getMaxCount());
ClientHelper.getInstance().tryCheatingEntry(entry);
diff --git a/src/main/java/me/shedaniel/rei/impl/ItemEntryStack.java b/src/main/java/me/shedaniel/rei/impl/ItemEntryStack.java
index 2532a6ff6..38eecf3ac 100644
--- a/src/main/java/me/shedaniel/rei/impl/ItemEntryStack.java
+++ b/src/main/java/me/shedaniel/rei/impl/ItemEntryStack.java
@@ -56,21 +56,9 @@ import java.util.function.Predicate;
@ApiStatus.Internal
public class ItemEntryStack extends AbstractEntryStack implements OptimalEntryStack {
- private static final Predicate<BakedModel> IS_SIDE_LIT;
+ private static final Predicate<BakedModel> IS_SIDE_LIT = BakedModel::isSideLit;
private static final MatrixStack MATRICES = new MatrixStack();
- static {
- boolean isOn1_15_2 = false;
- String isSideLit = FabricLoader.getInstance().getMappingResolver().mapMethodName("intermediary", "net.minecraft.class_1087", "method_24304", "()Z");
- try {
- BakedModel.class.getDeclaredMethod(isSideLit);
- isOn1_15_2 = true;
- } catch (NoSuchMethodException ignored) {
- }
- //noinspection Convert2MethodRef
- IS_SIDE_LIT = isOn1_15_2 ? Executor.call(() -> () -> new ModelSideLit1152Compat()) : Executor.call(() -> () -> new ModelHasDepth1151Compat());
- }
-
private ItemStack itemStack;
public ItemEntryStack(ItemStack itemStack) {
@@ -136,19 +124,8 @@ public class ItemEntryStack extends AbstractEntryStack implements OptimalEntrySt
public boolean equalsIgnoreAmount(EntryStack stack) {
if (stack.getType() != Type.ITEM)
return false;
- if (itemStack.getItem() == Items.GRASS_BLOCK) {
-// System.out.println(itemStack.toTag(new CompoundTag()).toString() + " " + stack.getItemStack().toTag(new CompoundTag()).toString());
- }
if (itemStack.getItem() != stack.getItem())
return false;
- if (itemStack.getItem() == Items.GRASS_BLOCK) {
- ItemStack otherStack = stack.getItemStack();
- CompoundTag o1 = itemStack.getTag();
- CompoundTag o2 = otherStack.getTag();
- boolean b = o1 == o2 || ((o1 != null && o2 != null) && equals(o1, o2));
-// System.out.println(itemStack.toTag(new CompoundTag()).toString() + " " + stack.getItemStack().toTag(new CompoundTag()).toString() + " " + b);
- return b;
- }
ItemStack otherStack = stack.getItemStack();
CompoundTag o1 = itemStack.getTag();
CompoundTag o2 = otherStack.getTag();
diff --git a/src/main/java/me/shedaniel/rei/listeners/BucketItemHooks.java b/src/main/java/me/shedaniel/rei/listeners/BucketItemHooks.java
new file mode 100644
index 000000000..e49ded38e
--- /dev/null
+++ b/src/main/java/me/shedaniel/rei/listeners/BucketItemHooks.java
@@ -0,0 +1,12 @@
+package me.shedaniel.rei.listeners;
+
+import net.minecraft.fluid.Fluid;
+import net.minecraft.item.BucketItem;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.gen.Accessor;
+
+@Mixin(BucketItem.class)
+public interface BucketItemHooks {
+ @Accessor("fluid")
+ Fluid getFluid();
+}
diff --git a/src/main/resources/assets/roughlyenoughitems/textures/gui/recipecontainer.png b/src/main/resources/assets/roughlyenoughitems/textures/gui/recipecontainer.png
index 6ca062b10..283666cda 100755
--- a/src/main/resources/assets/roughlyenoughitems/textures/gui/recipecontainer.png
+++ b/src/main/resources/assets/roughlyenoughitems/textures/gui/recipecontainer.png
Binary files differ
diff --git a/src/main/resources/assets/roughlyenoughitems/textures/gui/recipecontainer_dark.png b/src/main/resources/assets/roughlyenoughitems/textures/gui/recipecontainer_dark.png
index a0fe563c7..2c3ef6597 100644
--- a/src/main/resources/assets/roughlyenoughitems/textures/gui/recipecontainer_dark.png
+++ b/src/main/resources/assets/roughlyenoughitems/textures/gui/recipecontainer_dark.png
Binary files differ
diff --git a/src/main/resources/listeners.roughlyenoughitems.json b/src/main/resources/listeners.roughlyenoughitems.json
index 79586f4e3..31568c4f2 100644
--- a/src/main/resources/listeners.roughlyenoughitems.json
+++ b/src/main/resources/listeners.roughlyenoughitems.json
@@ -8,7 +8,8 @@
"ContainerScreenHooks",
"RecipeBookGuiHooks",
"AbstractInventoryScreenHooks",
- "RecipeBookButtonWidgetHooks"
+ "RecipeBookButtonWidgetHooks",
+ "BucketItemHooks"
],
"injectors": {
"defaultRequire": 1