diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiCraftingPreview.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiCraftingPreview.java index 02c11ed81..fb600aeba 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiCraftingPreview.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiCraftingPreview.java @@ -79,7 +79,7 @@ public class GuiCraftingPreview extends GuiBase { this.quantity = quantity; this.fluids = fluids; - this.scrollbar = new Scrollbar(235, 20, 12, 168); + this.scrollbar = new Scrollbar(235, 20, 12, 149); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GuiGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GuiGrid.java index 080677632..db679ff6b 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GuiGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GuiGrid.java @@ -18,6 +18,7 @@ import com.raoulvdberge.refinedstorage.gui.grid.view.GridViewFluid; import com.raoulvdberge.refinedstorage.gui.grid.view.GridViewItem; import com.raoulvdberge.refinedstorage.gui.grid.view.IGridView; import com.raoulvdberge.refinedstorage.network.*; +import com.raoulvdberge.refinedstorage.tile.config.IType; import com.raoulvdberge.refinedstorage.tile.data.TileDataManager; import com.raoulvdberge.refinedstorage.tile.grid.TileGrid; import com.raoulvdberge.refinedstorage.tile.grid.portable.IPortableGrid; @@ -124,7 +125,15 @@ public class GuiGrid extends GuiBase implements IResizableDisplay { if (grid.getGridType() == GridType.PATTERN) { processingPattern = addCheckBox(x + 7, y + tabs.getHeight() + getTopHeight() + (getVisibleRows() * 18) + 60, t("misc.refinedstorage:processing"), TileGrid.PROCESSING_PATTERN.getValue()); - oredictPattern = addCheckBox(processingPattern.x + processingPattern.width + 5, y + tabs.getHeight() + getTopHeight() + (getVisibleRows() * 18) + 60, t("misc.refinedstorage:oredict"), TileGrid.OREDICT_PATTERN.getValue()); + + boolean showOredict = true; + if (((NetworkNodeGrid) grid).isProcessingPattern() && ((NetworkNodeGrid) grid).getType() == IType.FLUIDS) { + showOredict = false; + } + + if (showOredict) { + oredictPattern = addCheckBox(processingPattern.x + processingPattern.width + 5, y + tabs.getHeight() + getTopHeight() + (getVisibleRows() * 18) + 60, t("misc.refinedstorage:oredict"), TileGrid.OREDICT_PATTERN.getValue()); + } addSideButton(new SideButtonType(this, TileGrid.PROCESSING_TYPE)); } @@ -455,7 +464,7 @@ public class GuiGrid extends GuiBase implements IResizableDisplay { FMLCommonHandler.instance().showGuiScreen(new GuiGridCraftingSettings(this, ((ContainerGrid) this.inventorySlots).getPlayer(), stack)); } else if (grid.getGridType() == GridType.FLUID && held.isEmpty()) { RS.INSTANCE.network.sendToServer(new MessageGridFluidPull(view.getStacks().get(slotNumber).getHash(), GuiScreen.isShiftKeyDown())); - } else if (grid.getGridType() == GridType.NORMAL || grid.getGridType() == GridType.PATTERN) { + } else if (grid.getGridType() != GridType.FLUID) { int flags = 0; if (clickedButton == 1) { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/config/IType.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/config/IType.java index 73010f40d..1beda8d85 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/config/IType.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/config/IType.java @@ -3,15 +3,18 @@ package com.raoulvdberge.refinedstorage.tile.config; import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeProxy; import com.raoulvdberge.refinedstorage.container.ContainerBase; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; +import com.raoulvdberge.refinedstorage.tile.data.TileDataParameterClientListener; import net.minecraft.network.datasync.DataSerializers; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.items.IItemHandler; +import javax.annotation.Nullable; + public interface IType { int ITEMS = 0; int FLUIDS = 1; - static TileDataParameter createParameter() { + static TileDataParameter createParameter(@Nullable TileDataParameterClientListener clientListener) { return new TileDataParameter<>(DataSerializers.VARINT, ITEMS, t -> ((IType) t.getNode()).getType(), (t, v) -> { if (v == IType.ITEMS || v == IType.FLUIDS) { ((IType) t.getNode()).setType(v); @@ -20,7 +23,11 @@ public interface IType { .filter(p -> p.openContainer instanceof ContainerBase && ((ContainerBase) p.openContainer).getTile().getPos().equals(t.getPos())) .forEach(p -> p.openContainer.detectAndSendChanges()); } - }); + }, clientListener); + } + + static TileDataParameter createParameter() { + return createParameter(null); } int getType(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/TileGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/TileGrid.java index 71b2f95fc..1bde80987 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/TileGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/TileGrid.java @@ -83,7 +83,7 @@ public class TileGrid extends TileNode { ((ContainerGrid) player.openContainer).sendAllSlots(); }); }, (initial, p) -> GuiBase.executeLater(GuiGrid.class, GuiBase::initGui)); - public static final TileDataParameter PROCESSING_TYPE = IType.createParameter(); + public static final TileDataParameter PROCESSING_TYPE = IType.createParameter((initial, p) -> GuiBase.executeLater(GuiGrid.class, GuiBase::initGui)); public static void trySortGrid(boolean initial) { if (!initial) {