diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockCraftingMonitor.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockCraftingMonitor.java index 13d49b95d..21eb2c03a 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockCraftingMonitor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockCraftingMonitor.java @@ -2,7 +2,7 @@ package com.raoulvdberge.refinedstorage.block; import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.RSGui; -import com.raoulvdberge.refinedstorage.tile.TileCraftingMonitor; +import com.raoulvdberge.refinedstorage.tile.craftingmonitor.TileCraftingMonitor; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerCraftingMonitor.java b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerCraftingMonitor.java index 3ff74a117..8cd5b0967 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerCraftingMonitor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerCraftingMonitor.java @@ -1,6 +1,6 @@ package com.raoulvdberge.refinedstorage.container; -import com.raoulvdberge.refinedstorage.tile.TileCraftingMonitor; +import com.raoulvdberge.refinedstorage.tile.craftingmonitor.TileCraftingMonitor; import net.minecraft.entity.player.EntityPlayer; public class ContainerCraftingMonitor extends ContainerBase { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiCraftingMonitor.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiCraftingMonitor.java index a0d71c4c5..94937d85a 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiCraftingMonitor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiCraftingMonitor.java @@ -1,20 +1,18 @@ package com.raoulvdberge.refinedstorage.gui; -import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.api.autocrafting.craftingmonitor.ICraftingMonitorElement; import com.raoulvdberge.refinedstorage.api.render.IElementDrawer; import com.raoulvdberge.refinedstorage.api.render.IElementDrawers; import com.raoulvdberge.refinedstorage.container.ContainerCraftingMonitor; import com.raoulvdberge.refinedstorage.gui.sidebutton.SideButtonRedstoneMode; -import com.raoulvdberge.refinedstorage.network.MessageCraftingMonitorCancel; -import com.raoulvdberge.refinedstorage.tile.TileCraftingMonitor; +import com.raoulvdberge.refinedstorage.tile.craftingmonitor.ICraftingMonitor; +import com.raoulvdberge.refinedstorage.tile.craftingmonitor.TileCraftingMonitor; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.resources.I18n; import java.io.IOException; -import java.util.List; public class GuiCraftingMonitor extends GuiBase { public class CraftingMonitorElementDrawers extends ElementDrawers { @@ -35,7 +33,7 @@ public class GuiCraftingMonitor extends GuiBase { private static final int ITEM_WIDTH = 143; private static final int ITEM_HEIGHT = 18; - private TileCraftingMonitor craftingMonitor; + private ICraftingMonitor craftingMonitor; private GuiButton cancelButton; private GuiButton cancelAllButton; @@ -47,7 +45,7 @@ public class GuiCraftingMonitor extends GuiBase { private int itemSelectedX = -1; private int itemSelectedY = -1; - public GuiCraftingMonitor(ContainerCraftingMonitor container, TileCraftingMonitor craftingMonitor) { + public GuiCraftingMonitor(ContainerCraftingMonitor container, ICraftingMonitor craftingMonitor) { super(container, 176, 230); this.craftingMonitor = craftingMonitor; @@ -74,12 +72,12 @@ public class GuiCraftingMonitor extends GuiBase { scrollbar.setEnabled(getRows() > VISIBLE_ROWS); scrollbar.setMaxOffset(getRows() - VISIBLE_ROWS); - if (itemSelected >= getElements().size()) { + if (itemSelected >= craftingMonitor.getElements().size()) { itemSelected = -1; } - cancelButton.enabled = itemSelected != -1 && getElements().get(itemSelected).getTaskId() != -1; - cancelAllButton.enabled = getElements().size() > 0; + cancelButton.enabled = itemSelected != -1 && craftingMonitor.getElements().get(itemSelected).getTaskId() != -1; + cancelAllButton.enabled = craftingMonitor.getElements().size() > 0; } @Override @@ -88,7 +86,11 @@ public class GuiCraftingMonitor extends GuiBase { drawTexture(x, y, 0, 0, width, height); - if (itemSelectedX != -1 && itemSelectedY != -1 && itemSelected >= 0 && itemSelected < getElements().size() && getElements().get(itemSelected).canDrawSelection()) { + if (itemSelectedX != -1 && + itemSelectedY != -1 && + itemSelected >= 0 && + itemSelected < craftingMonitor.getElements().size() && + craftingMonitor.getElements().get(itemSelected).canDrawSelection()) { drawTexture(x + itemSelectedX, y + itemSelectedY, 0, 232, ITEM_WIDTH, ITEM_HEIGHT); } } @@ -111,8 +113,8 @@ public class GuiCraftingMonitor extends GuiBase { String itemSelectedTooltip = null; for (int i = 0; i < VISIBLE_ROWS; ++i) { - if (item < getElements().size()) { - ICraftingMonitorElement element = getElements().get(item); + if (item < craftingMonitor.getElements().size()) { + ICraftingMonitorElement element = craftingMonitor.getElements().get(item); if (item == itemSelected) { itemSelectedX = x; @@ -138,7 +140,7 @@ public class GuiCraftingMonitor extends GuiBase { } private int getRows() { - return getElements().size(); + return craftingMonitor.getElements().size(); } @Override @@ -146,13 +148,13 @@ public class GuiCraftingMonitor extends GuiBase { super.actionPerformed(button); if (button == cancelButton && itemSelected != -1) { - ICraftingMonitorElement element = getElements().get(itemSelected); + ICraftingMonitorElement element = craftingMonitor.getElements().get(itemSelected); if (element.getTaskId() != -1) { - RS.INSTANCE.network.sendToServer(new MessageCraftingMonitorCancel(craftingMonitor, element.getTaskId())); + craftingMonitor.onCancelled(element); } - } else if (button == cancelAllButton && getElements().size() > 0) { - RS.INSTANCE.network.sendToServer(new MessageCraftingMonitorCancel(craftingMonitor, -1)); + } else if (button == cancelAllButton && craftingMonitor.getElements().size() > 0) { + craftingMonitor.onCancelledAll(); } } @@ -169,14 +171,10 @@ public class GuiCraftingMonitor extends GuiBase { int ix = 8; int iy = 20 + (i * ITEM_HEIGHT); - if (inBounds(ix, iy, ITEM_WIDTH, ITEM_HEIGHT, mouseX - guiLeft, mouseY - guiTop) && (item + i) < getElements().size()) { + if (inBounds(ix, iy, ITEM_WIDTH, ITEM_HEIGHT, mouseX - guiLeft, mouseY - guiTop) && (item + i) < craftingMonitor.getElements().size()) { itemSelected = item + i; } } } } - - private List getElements() { - return TileCraftingMonitor.ELEMENTS.getValue(); - } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiHandler.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiHandler.java index 029dcd10b..8e8383ba2 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiHandler.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiHandler.java @@ -4,6 +4,7 @@ import com.raoulvdberge.refinedstorage.RSGui; import com.raoulvdberge.refinedstorage.container.*; import com.raoulvdberge.refinedstorage.gui.grid.GuiGrid; import com.raoulvdberge.refinedstorage.tile.*; +import com.raoulvdberge.refinedstorage.tile.craftingmonitor.TileCraftingMonitor; import com.raoulvdberge.refinedstorage.tile.externalstorage.TileExternalStorage; import com.raoulvdberge.refinedstorage.tile.grid.TileGrid; import com.raoulvdberge.refinedstorage.tile.grid.WirelessGrid; @@ -65,18 +66,6 @@ public class GuiHandler implements IGuiHandler { } } - private WirelessGrid getWirelessGrid(EntityPlayer player, int hand, int controllerDimension) { - return new WirelessGrid(controllerDimension, player.getHeldItem(EnumHand.values()[hand])); - } - - private ContainerGrid getWirelessGridContainer(EntityPlayer player, int hand, int controllerDimension) { - return new ContainerGrid(getWirelessGrid(player, hand, controllerDimension), player); - } - - private ContainerGridFilter getGridFilterContainer(EntityPlayer player, int hand) { - return new ContainerGridFilter(player, player.getHeldItem(EnumHand.values()[hand])); - } - @Override public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { if (ID == RSGui.WIRELESS_GRID) { @@ -144,9 +133,21 @@ public class GuiHandler implements IGuiHandler { } } + private WirelessGrid getWirelessGrid(EntityPlayer player, int hand, int controllerDimension) { + return new WirelessGrid(controllerDimension, player.getHeldItem(EnumHand.values()[hand])); + } + private GuiGrid getWirelessGridGui(EntityPlayer player, int hand, int controllerDimension) { WirelessGrid grid = getWirelessGrid(player, hand, controllerDimension); return new GuiGrid(new ContainerGrid(grid, player), grid); } + + private ContainerGrid getWirelessGridContainer(EntityPlayer player, int hand, int controllerDimension) { + return new ContainerGrid(getWirelessGrid(player, hand, controllerDimension), player); + } + + private ContainerGridFilter getGridFilterContainer(EntityPlayer player, int hand) { + return new ContainerGridFilter(player, player.getHeldItem(EnumHand.values()[hand])); + } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageCraftingMonitorCancel.java b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageCraftingMonitorCancel.java index 350bd5ae2..cd3a53169 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageCraftingMonitorCancel.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageCraftingMonitorCancel.java @@ -1,6 +1,6 @@ package com.raoulvdberge.refinedstorage.network; -import com.raoulvdberge.refinedstorage.tile.TileCraftingMonitor; +import com.raoulvdberge.refinedstorage.tile.craftingmonitor.TileCraftingMonitor; import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.tileentity.TileEntity; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyCommon.java b/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyCommon.java index 1c4d089ba..66157747a 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyCommon.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyCommon.java @@ -18,6 +18,7 @@ import com.raoulvdberge.refinedstorage.integration.craftingtweaks.IntegrationCra import com.raoulvdberge.refinedstorage.item.*; import com.raoulvdberge.refinedstorage.network.*; import com.raoulvdberge.refinedstorage.tile.*; +import com.raoulvdberge.refinedstorage.tile.craftingmonitor.TileCraftingMonitor; import com.raoulvdberge.refinedstorage.tile.data.ContainerListener; import com.raoulvdberge.refinedstorage.tile.data.TileDataManager; import com.raoulvdberge.refinedstorage.tile.externalstorage.TileExternalStorage; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java index 78e204444..374fd1fcf 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java @@ -49,6 +49,7 @@ import com.raoulvdberge.refinedstorage.network.MessageGridItemDelta; import com.raoulvdberge.refinedstorage.network.MessageGridItemUpdate; import com.raoulvdberge.refinedstorage.tile.config.IRedstoneConfigurable; import com.raoulvdberge.refinedstorage.tile.config.RedstoneMode; +import com.raoulvdberge.refinedstorage.tile.craftingmonitor.TileCraftingMonitor; import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer; import com.raoulvdberge.refinedstorage.tile.data.RSSerializers; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/craftingmonitor/ICraftingMonitor.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/craftingmonitor/ICraftingMonitor.java new file mode 100755 index 000000000..62bafdb8f --- /dev/null +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/craftingmonitor/ICraftingMonitor.java @@ -0,0 +1,13 @@ +package com.raoulvdberge.refinedstorage.tile.craftingmonitor; + +import com.raoulvdberge.refinedstorage.api.autocrafting.craftingmonitor.ICraftingMonitorElement; + +import java.util.List; + +public interface ICraftingMonitor { + void onCancelled(ICraftingMonitorElement element); + + void onCancelledAll(); + + List getElements(); +} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileCraftingMonitor.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/craftingmonitor/TileCraftingMonitor.java similarity index 66% rename from src/main/java/com/raoulvdberge/refinedstorage/tile/TileCraftingMonitor.java rename to src/main/java/com/raoulvdberge/refinedstorage/tile/craftingmonitor/TileCraftingMonitor.java index 0884d308a..21818d8ac 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileCraftingMonitor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/craftingmonitor/TileCraftingMonitor.java @@ -1,7 +1,9 @@ -package com.raoulvdberge.refinedstorage.tile; +package com.raoulvdberge.refinedstorage.tile.craftingmonitor; import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.api.autocrafting.craftingmonitor.ICraftingMonitorElement; +import com.raoulvdberge.refinedstorage.network.MessageCraftingMonitorCancel; +import com.raoulvdberge.refinedstorage.tile.TileNode; import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer; import com.raoulvdberge.refinedstorage.tile.data.RSSerializers; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; @@ -10,7 +12,7 @@ import java.util.Collections; import java.util.List; import java.util.stream.Collectors; -public class TileCraftingMonitor extends TileNode { +public class TileCraftingMonitor extends TileNode implements ICraftingMonitor { public static final TileDataParameter> ELEMENTS = new TileDataParameter<>(RSSerializers.CRAFTING_MONITOR_ELEMENT_SERIALIZER, Collections.emptyList(), new ITileDataProducer, TileCraftingMonitor>() { @Override public List getValue(TileCraftingMonitor tile) { @@ -39,4 +41,19 @@ public class TileCraftingMonitor extends TileNode { public boolean hasConnectivityState() { return true; } + + @Override + public void onCancelled(ICraftingMonitorElement element) { + RS.INSTANCE.network.sendToServer(new MessageCraftingMonitorCancel(this, element.getTaskId())); + } + + @Override + public void onCancelledAll() { + RS.INSTANCE.network.sendToServer(new MessageCraftingMonitorCancel(this, -1)); + } + + @Override + public List getElements() { + return ELEMENTS.getValue(); + } }