diff --git a/src/main/java/com/raoulvdberge/refinedstorage/api/util/IComparer.java b/src/main/java/com/raoulvdberge/refinedstorage/api/util/IComparer.java index a77394625..4bda5678f 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/api/util/IComparer.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/api/util/IComparer.java @@ -3,7 +3,7 @@ package com.raoulvdberge.refinedstorage.api.util; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidStack; -import javax.annotation.Nullable; +import javax.annotation.Nonnull; /** * Utilities for comparing item and fluid stacks. @@ -20,7 +20,7 @@ public interface IComparer { * @param flags the flags to compare with * @return true if the left and right stack are the same, false otherwise */ - boolean isEqual(@Nullable ItemStack left, @Nullable ItemStack right, int flags); + boolean isEqual(@Nonnull ItemStack left, @Nonnull ItemStack right, int flags); /** * Compares two stacks by NBT, damage and quantity. @@ -29,7 +29,7 @@ public interface IComparer { * @param right the right stack * @return true if the left and right stack are the same, false otherwise */ - default boolean isEqual(@Nullable ItemStack left, @Nullable ItemStack right) { + default boolean isEqual(@Nonnull ItemStack left, @Nonnull ItemStack right) { return isEqual(left, right, COMPARE_NBT | COMPARE_QUANTITY); } @@ -40,7 +40,7 @@ public interface IComparer { * @param right the right stack * @return true if the left and right stack are the same, false otherwise */ - default boolean isEqualNoQuantity(@Nullable ItemStack left, @Nullable ItemStack right) { + default boolean isEqualNoQuantity(@Nonnull ItemStack left, @Nonnull ItemStack right) { return isEqual(left, right, COMPARE_NBT); } @@ -52,14 +52,5 @@ public interface IComparer { * @param flags the flags to compare with * @return true if the left and right stack are the same, false otherwise */ - boolean isEqual(@Nullable FluidStack left, @Nullable FluidStack right, int flags); - - /** - * Compares the NBT tags of two stacks. - * - * @param left the left stack - * @param right the right stack - * @return true if the NBT tags of the two stacks are the same, false otherwise - */ - boolean isEqualNbt(@Nullable ItemStack left, @Nullable ItemStack right); + boolean isEqual(@Nonnull FluidStack left, @Nonnull FluidStack right, int flags); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/Comparer.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/Comparer.java index 302222b61..4b8626357 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/Comparer.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/Comparer.java @@ -2,26 +2,23 @@ package com.raoulvdberge.refinedstorage.apiimpl.util; import com.raoulvdberge.refinedstorage.api.util.IComparer; import net.minecraft.item.ItemStack; -import net.minecraft.util.ActionResultType; import net.minecraftforge.fluids.FluidStack; -import javax.annotation.Nullable; +import javax.annotation.Nonnull; public class Comparer implements IComparer { @Override - public boolean isEqual(@Nullable ItemStack left, @Nullable ItemStack right, int flags) { - ActionResultType validity = getResult(left, right); - - if (validity == ActionResultType.FAIL || validity == ActionResultType.SUCCESS) { - return validity == ActionResultType.SUCCESS; + public boolean isEqual(@Nonnull ItemStack left, @Nonnull ItemStack right, int flags) { + if (left.isEmpty() && right.isEmpty()) { + return true; } - if (left.getItem() != right.getItem()) { + if (!ItemStack.areItemsEqual(left, right)) { return false; } if ((flags & COMPARE_NBT) == COMPARE_NBT) { - if (!isEqualNbt(left, right)) { + if (!ItemStack.areItemStackTagsEqual(left, right)) { return false; } } @@ -36,77 +33,27 @@ public class Comparer implements IComparer { } @Override - public boolean isEqual(@Nullable FluidStack left, @Nullable FluidStack right, int flags) { - if (left == null && right == null) { + public boolean isEqual(@Nonnull FluidStack left, @Nonnull FluidStack right, int flags) { + if (left.isEmpty() && right.isEmpty()) { return true; } - if ((left == null && right != null) || (left != null && right == null)) { - return false; - } - if (left.getFluid() != right.getFluid()) { return false; } + if ((flags & COMPARE_NBT) == COMPARE_NBT) { + if (!FluidStack.areFluidStackTagsEqual(left, right)) { + return false; + } + } + if ((flags & COMPARE_QUANTITY) == COMPARE_QUANTITY) { if (left.getAmount() != right.getAmount()) { return false; } } - if ((flags & COMPARE_NBT) == COMPARE_NBT) { - if (left.getTag() != null && !left.getTag().equals(right.getTag())) { - return false; - } - } - return true; } - - @Override - public boolean isEqualNbt(@Nullable ItemStack left, @Nullable ItemStack right) { - ActionResultType validity = getResult(left, right); - - if (validity == ActionResultType.FAIL || validity == ActionResultType.SUCCESS) { - return validity == ActionResultType.SUCCESS; - } - - if (!ItemStack.areItemStackTagsEqual(left, right)) { - if (left.hasTag() && !right.hasTag() && left.getTag().isEmpty()) { - return true; - } else if (!left.hasTag() && right.hasTag() && right.getTag().isEmpty()) { - return true; - } else if (!left.hasTag() && !right.hasTag()) { - return true; - } - - return false; - } - - return true; - } - - private ActionResultType getResult(@Nullable ItemStack left, @Nullable ItemStack right) { - if (left == null && right == null) { - return ActionResultType.SUCCESS; - } - - if ((left == null && right != null) || (left != null && right == null)) { - return ActionResultType.FAIL; - } - - boolean leftEmpty = left.isEmpty(); - boolean rightEmpty = right.isEmpty(); - - if (leftEmpty && rightEmpty) { - return ActionResultType.SUCCESS; - } - - if ((leftEmpty && !rightEmpty) || (!leftEmpty && rightEmpty)) { - return ActionResultType.FAIL; - } - - return ActionResultType.PASS; - } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/container/BaseContainer.java b/src/main/java/com/raoulvdberge/refinedstorage/container/BaseContainer.java index df784366a..4000414ef 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/container/BaseContainer.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/container/BaseContainer.java @@ -164,7 +164,7 @@ public abstract class BaseContainer extends Container { @Override protected Slot addSlot(Slot slot) { if (slot instanceof FluidFilterSlot) { - fluids.add(null); + fluids.add(FluidStack.EMPTY); fluidSlots.add((FluidFilterSlot) slot); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiConstructor.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiConstructor.java index d0a8f628f..8a4406538 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiConstructor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiConstructor.java @@ -1,10 +1,9 @@ package com.raoulvdberge.refinedstorage.screen; import com.raoulvdberge.refinedstorage.RS; -import com.raoulvdberge.refinedstorage.api.util.IComparer; import com.raoulvdberge.refinedstorage.container.ConstructorContainer; -import com.raoulvdberge.refinedstorage.screen.widget.sidebutton.CompareSideButton; import com.raoulvdberge.refinedstorage.screen.widget.sidebutton.ConstructorDropSideButton; +import com.raoulvdberge.refinedstorage.screen.widget.sidebutton.ExactModeSideButton; import com.raoulvdberge.refinedstorage.screen.widget.sidebutton.RedstoneModeSideButton; import com.raoulvdberge.refinedstorage.screen.widget.sidebutton.TypeSideButton; import com.raoulvdberge.refinedstorage.tile.TileConstructor; @@ -22,7 +21,7 @@ public class GuiConstructor extends BaseScreen { addSideButton(new TypeSideButton(this, TileConstructor.TYPE)); - addSideButton(new CompareSideButton(this, TileConstructor.COMPARE, IComparer.COMPARE_NBT)); + addSideButton(new ExactModeSideButton(this, TileConstructor.COMPARE)); addSideButton(new ConstructorDropSideButton(this)); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiDestructor.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiDestructor.java index 1f8e634ea..fffd67e38 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiDestructor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiDestructor.java @@ -1,7 +1,6 @@ package com.raoulvdberge.refinedstorage.screen; import com.raoulvdberge.refinedstorage.RS; -import com.raoulvdberge.refinedstorage.api.util.IComparer; import com.raoulvdberge.refinedstorage.container.DestructorContainer; import com.raoulvdberge.refinedstorage.screen.widget.sidebutton.*; import com.raoulvdberge.refinedstorage.tile.TileDestructor; @@ -21,7 +20,7 @@ public class GuiDestructor extends BaseScreen { addSideButton(new WhitelistBlacklistSideButton(this, TileDestructor.WHITELIST_BLACKLIST)); - addSideButton(new CompareSideButton(this, TileDestructor.COMPARE, IComparer.COMPARE_NBT)); + addSideButton(new ExactModeSideButton(this, TileDestructor.COMPARE)); addSideButton(new DestructorPickupSideButton(this)); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiDetector.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiDetector.java index 0610c5297..7ecb41ab0 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiDetector.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiDetector.java @@ -1,10 +1,9 @@ package com.raoulvdberge.refinedstorage.screen; import com.raoulvdberge.refinedstorage.RS; -import com.raoulvdberge.refinedstorage.api.util.IComparer; import com.raoulvdberge.refinedstorage.container.DetectorContainer; -import com.raoulvdberge.refinedstorage.screen.widget.sidebutton.CompareSideButton; import com.raoulvdberge.refinedstorage.screen.widget.sidebutton.DetectorModeSideButton; +import com.raoulvdberge.refinedstorage.screen.widget.sidebutton.ExactModeSideButton; import com.raoulvdberge.refinedstorage.screen.widget.sidebutton.TypeSideButton; import com.raoulvdberge.refinedstorage.tile.TileDetector; import net.minecraft.client.gui.widget.TextFieldWidget; @@ -24,7 +23,7 @@ public class GuiDetector extends BaseScreen { addSideButton(new DetectorModeSideButton(this)); - addSideButton(new CompareSideButton(this, TileDetector.COMPARE, IComparer.COMPARE_NBT)); + addSideButton(new ExactModeSideButton(this, TileDetector.COMPARE)); amount = new TextFieldWidget(font, x + 41 + 1, y + 23 + 1, 50, font.FONT_HEIGHT, ""); amount.setText(String.valueOf(TileDetector.AMOUNT.getValue())); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiDiskManipulator.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiDiskManipulator.java index 76a7e6409..82397aeb5 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiDiskManipulator.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiDiskManipulator.java @@ -1,7 +1,6 @@ package com.raoulvdberge.refinedstorage.screen; import com.raoulvdberge.refinedstorage.RS; -import com.raoulvdberge.refinedstorage.api.util.IComparer; import com.raoulvdberge.refinedstorage.container.DiskManipulatorContainer; import com.raoulvdberge.refinedstorage.screen.widget.sidebutton.*; import com.raoulvdberge.refinedstorage.tile.TileDiskManipulator; @@ -19,7 +18,7 @@ public class GuiDiskManipulator extends BaseScreen { addSideButton(new IoModeSideButton(this)); addSideButton(new TypeSideButton(this, TileDiskManipulator.TYPE)); addSideButton(new WhitelistBlacklistSideButton(this, TileDiskManipulator.WHITELIST_BLACKLIST)); - addSideButton(new CompareSideButton(this, TileDiskManipulator.COMPARE, IComparer.COMPARE_NBT)); + addSideButton(new ExactModeSideButton(this, TileDiskManipulator.COMPARE)); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiExporter.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiExporter.java index ccedf8150..5a99b0a40 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiExporter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiExporter.java @@ -1,9 +1,8 @@ package com.raoulvdberge.refinedstorage.screen; import com.raoulvdberge.refinedstorage.RS; -import com.raoulvdberge.refinedstorage.api.util.IComparer; import com.raoulvdberge.refinedstorage.container.ExporterContainer; -import com.raoulvdberge.refinedstorage.screen.widget.sidebutton.CompareSideButton; +import com.raoulvdberge.refinedstorage.screen.widget.sidebutton.ExactModeSideButton; import com.raoulvdberge.refinedstorage.screen.widget.sidebutton.RedstoneModeSideButton; import com.raoulvdberge.refinedstorage.screen.widget.sidebutton.TypeSideButton; import com.raoulvdberge.refinedstorage.tile.TileExporter; @@ -21,7 +20,7 @@ public class GuiExporter extends BaseScreen { addSideButton(new TypeSideButton(this, TileExporter.TYPE)); - addSideButton(new CompareSideButton(this, TileExporter.COMPARE, IComparer.COMPARE_NBT)); + addSideButton(new ExactModeSideButton(this, TileExporter.COMPARE)); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiImporter.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiImporter.java index 9982a47b0..e4a58faf9 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiImporter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiImporter.java @@ -1,9 +1,8 @@ package com.raoulvdberge.refinedstorage.screen; import com.raoulvdberge.refinedstorage.RS; -import com.raoulvdberge.refinedstorage.api.util.IComparer; import com.raoulvdberge.refinedstorage.container.ImporterContainer; -import com.raoulvdberge.refinedstorage.screen.widget.sidebutton.CompareSideButton; +import com.raoulvdberge.refinedstorage.screen.widget.sidebutton.ExactModeSideButton; import com.raoulvdberge.refinedstorage.screen.widget.sidebutton.RedstoneModeSideButton; import com.raoulvdberge.refinedstorage.screen.widget.sidebutton.TypeSideButton; import com.raoulvdberge.refinedstorage.screen.widget.sidebutton.WhitelistBlacklistSideButton; @@ -24,7 +23,7 @@ public class GuiImporter extends BaseScreen { addSideButton(new WhitelistBlacklistSideButton(this, TileImporter.WHITELIST_BLACKLIST)); - addSideButton(new CompareSideButton(this, TileImporter.COMPARE, IComparer.COMPARE_NBT)); + addSideButton(new ExactModeSideButton(this, TileImporter.COMPARE)); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiInterface.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiInterface.java index 73d0c1785..1e238b3da 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiInterface.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiInterface.java @@ -1,9 +1,8 @@ package com.raoulvdberge.refinedstorage.screen; import com.raoulvdberge.refinedstorage.RS; -import com.raoulvdberge.refinedstorage.api.util.IComparer; import com.raoulvdberge.refinedstorage.container.InterfaceContainer; -import com.raoulvdberge.refinedstorage.screen.widget.sidebutton.CompareSideButton; +import com.raoulvdberge.refinedstorage.screen.widget.sidebutton.ExactModeSideButton; import com.raoulvdberge.refinedstorage.screen.widget.sidebutton.RedstoneModeSideButton; import com.raoulvdberge.refinedstorage.tile.TileInterface; import net.minecraft.client.resources.I18n; @@ -18,7 +17,7 @@ public class GuiInterface extends BaseScreen { public void onPostInit(int x, int y) { addSideButton(new RedstoneModeSideButton(this, TileInterface.REDSTONE_MODE)); - addSideButton(new CompareSideButton(this, TileInterface.COMPARE, IComparer.COMPARE_NBT)); + addSideButton(new ExactModeSideButton(this, TileInterface.COMPARE)); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiStorageMonitor.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiStorageMonitor.java index 78c555b77..43419268c 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiStorageMonitor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiStorageMonitor.java @@ -1,9 +1,8 @@ package com.raoulvdberge.refinedstorage.screen; import com.raoulvdberge.refinedstorage.RS; -import com.raoulvdberge.refinedstorage.api.util.IComparer; import com.raoulvdberge.refinedstorage.container.StorageMonitorContainer; -import com.raoulvdberge.refinedstorage.screen.widget.sidebutton.CompareSideButton; +import com.raoulvdberge.refinedstorage.screen.widget.sidebutton.ExactModeSideButton; import com.raoulvdberge.refinedstorage.tile.TileStorageMonitor; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.PlayerInventory; @@ -15,7 +14,7 @@ public class GuiStorageMonitor extends BaseScreen { @Override public void onPostInit(int x, int y) { - addSideButton(new CompareSideButton(this, TileStorageMonitor.COMPARE, IComparer.COMPARE_NBT)); + addSideButton(new ExactModeSideButton(this, TileStorageMonitor.COMPARE)); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/StorageScreen.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/StorageScreen.java index 0ba7e5ef9..46b7ae47f 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/StorageScreen.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/StorageScreen.java @@ -2,12 +2,10 @@ package com.raoulvdberge.refinedstorage.screen; import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.api.storage.AccessType; -import com.raoulvdberge.refinedstorage.api.util.IComparer; import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.screen.widget.sidebutton.*; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import com.raoulvdberge.refinedstorage.util.RenderUtils; -import net.minecraft.client.gui.widget.button.Button; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.PlayerInventory; import net.minecraft.inventory.container.Container; @@ -26,22 +24,20 @@ public class StorageScreen extends BaseScreen { private String texture; private TileDataParameter typeParameter; private TileDataParameter redstoneModeParameter; - private TileDataParameter compareParameter; + private TileDataParameter exactModeParameter; private TileDataParameter whitelistBlacklistParameter; private TileDataParameter priorityParameter; private TileDataParameter accessTypeParameter; private Supplier storedSupplier; private Supplier capacitySupplier; - private Button priorityButton; - public StorageScreen(T container, PlayerInventory inventory, ITextComponent title, String texture, @Nullable TileDataParameter typeParameter, @Nullable TileDataParameter redstoneModeParameter, - @Nullable TileDataParameter compareParameter, + @Nullable TileDataParameter exactModeParameter, @Nullable TileDataParameter whitelistBlacklistParameter, TileDataParameter priorityParameter, @Nullable TileDataParameter accessTypeParameter, @@ -51,7 +47,7 @@ public class StorageScreen extends BaseScreen { this.texture = texture; this.typeParameter = typeParameter; this.redstoneModeParameter = redstoneModeParameter; - this.compareParameter = compareParameter; + this.exactModeParameter = exactModeParameter; this.whitelistBlacklistParameter = whitelistBlacklistParameter; this.priorityParameter = priorityParameter; this.accessTypeParameter = accessTypeParameter; @@ -73,8 +69,8 @@ public class StorageScreen extends BaseScreen { addSideButton(new WhitelistBlacklistSideButton(this, whitelistBlacklistParameter)); } - if (compareParameter != null) { - addSideButton(new CompareSideButton(this, compareParameter, IComparer.COMPARE_NBT)); + if (exactModeParameter != null) { + addSideButton(new ExactModeSideButton(this, exactModeParameter)); } if (accessTypeParameter != null) { @@ -83,7 +79,7 @@ public class StorageScreen extends BaseScreen { int buttonWidth = 10 + font.getStringWidth(I18n.format("misc.refinedstorage.priority")); - priorityButton = addButton(x + 169 - buttonWidth, y + 41, buttonWidth, 20, I18n.format("misc.refinedstorage.priority"), true, true, btn -> { + addButton(x + 169 - buttonWidth, y + 41, buttonWidth, 20, I18n.format("misc.refinedstorage.priority"), true, true, btn -> { minecraft.displayGuiScreen(new PriorityScreen(this, priorityParameter, playerInventory)); }); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/widget/sidebutton/CompareSideButton.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/widget/sidebutton/ExactModeSideButton.java similarity index 62% rename from src/main/java/com/raoulvdberge/refinedstorage/screen/widget/sidebutton/CompareSideButton.java rename to src/main/java/com/raoulvdberge/refinedstorage/screen/widget/sidebutton/ExactModeSideButton.java index 8f21f0501..9d4a99ce2 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/widget/sidebutton/CompareSideButton.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/widget/sidebutton/ExactModeSideButton.java @@ -7,25 +7,25 @@ import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import net.minecraft.client.resources.I18n; import net.minecraft.util.text.TextFormatting; -public class CompareSideButton extends SideButton { - private TileDataParameter parameter; - private int mask; +public class ExactModeSideButton extends SideButton { + private static final int MASK = IComparer.COMPARE_NBT; - public CompareSideButton(BaseScreen screen, TileDataParameter parameter, int mask) { + private TileDataParameter parameter; + + public ExactModeSideButton(BaseScreen screen, TileDataParameter parameter) { super(screen); this.parameter = parameter; - this.mask = mask; } @Override public String getTooltip() { - String tooltip = I18n.format("sidebutton.refinedstorage.compare." + mask) + "\n" + TextFormatting.GRAY; + String tooltip = I18n.format("sidebutton.refinedstorage.exact_mode") + "\n" + TextFormatting.GRAY; - if ((parameter.getValue() & mask) == mask) { - tooltip += I18n.format("gui.yes"); + if ((parameter.getValue() & MASK) == MASK) { + tooltip += I18n.format("sidebutton.refinedstorage.exact_mode.on"); } else { - tooltip += I18n.format("gui.no"); + tooltip += I18n.format("sidebutton.refinedstorage.exact_mode.off"); } return tooltip; @@ -33,19 +33,14 @@ public class CompareSideButton extends SideButton { @Override protected void renderButtonIcon(int x, int y) { - int ty = 0; - - if (mask == IComparer.COMPARE_NBT) { - ty = 48; - } - - int tx = (parameter.getValue() & mask) == mask ? 0 : 16; + int ty = 16 * 12; + int tx = (parameter.getValue() & MASK) == MASK ? 0 : 16; screen.blit(x, y, tx, ty, 16, 16); } @Override public void onPress() { - TileDataManager.setParameter(parameter, parameter.getValue() ^ mask); + TileDataManager.setParameter(parameter, parameter.getValue() ^ MASK); } } diff --git a/src/main/resources/assets/refinedstorage/lang/en_us.json b/src/main/resources/assets/refinedstorage/lang/en_us.json index e51dd4ad8..34399f854 100644 --- a/src/main/resources/assets/refinedstorage/lang/en_us.json +++ b/src/main/resources/assets/refinedstorage/lang/en_us.json @@ -123,7 +123,9 @@ "misc.refinedstorage.last_modified.weeks": "Last modified %d weeks ago by %s", "misc.refinedstorage.last_modified.year": "Last modified %d year ago by %s", "misc.refinedstorage.last_modified.years": "Last modified %d years ago by %s", - "sidebutton.refinedstorage.compare.1": "Use NBT", + "sidebutton.refinedstorage.exact_mode": "Exact mode", + "sidebutton.refinedstorage.exact_mode.on": "On", + "sidebutton.refinedstorage.exact_mode.off": "Off", "sidebutton.refinedstorage.redstone_mode": "Redstone mode", "sidebutton.refinedstorage.redstone_mode.0": "Ignore redstone signal", "sidebutton.refinedstorage.redstone_mode.1": "Only work with redstone signal", diff --git a/src/main/resources/assets/refinedstorage/textures/icons.png b/src/main/resources/assets/refinedstorage/textures/icons.png index 33d052a21..4285d2ac9 100755 Binary files a/src/main/resources/assets/refinedstorage/textures/icons.png and b/src/main/resources/assets/refinedstorage/textures/icons.png differ