From e3f13e94a79ba0c52c84cdff8a8c6eaba8bcffa2 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Sat, 7 May 2016 15:20:26 +0200 Subject: [PATCH] More bugfixes --- .../gui/GuiCraftingMonitor.java | 15 ++++----- .../autocrafting/TileCraftingMonitor.java | 33 +++++++++++-------- 2 files changed, 25 insertions(+), 23 deletions(-) diff --git a/src/main/java/refinedstorage/gui/GuiCraftingMonitor.java b/src/main/java/refinedstorage/gui/GuiCraftingMonitor.java index 01d7980ed..730abe491 100755 --- a/src/main/java/refinedstorage/gui/GuiCraftingMonitor.java +++ b/src/main/java/refinedstorage/gui/GuiCraftingMonitor.java @@ -3,7 +3,6 @@ package refinedstorage.gui; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; import refinedstorage.RefinedStorage; import refinedstorage.container.ContainerCraftingMonitor; import refinedstorage.gui.sidebutton.SideButtonRedstoneMode; @@ -98,34 +97,32 @@ public class GuiCraftingMonitor extends GuiBase { RenderHelper.enableGUIStandardItemLighting(); - List tasks = craftingMonitor.getTasks(); - List infoLines = null; renderItemSelection = false; for (int i = 0; i < 6; ++i) { - if (item < tasks.size() && item < craftingMonitor.getInfo().length) { + if (item < craftingMonitor.getTasks().size()) { if (item == itemSelected) { renderItemSelection = true; renderItemSelectionX = x; renderItemSelectionY = y; } - ItemStack task = tasks.get(item); + TileCraftingMonitor.ClientSideCraftingTask task = craftingMonitor.getTasks().get(i); - drawItem(x + 4, y + 11, task); + drawItem(x + 4, y + 11, task.output); GlStateManager.pushMatrix(); float scale = 0.5f; GlStateManager.scale(scale, scale, 1); - drawString(calculateOffsetOnScale(x + 5, scale), calculateOffsetOnScale(y + 4, scale), task.getDisplayName()); + drawString(calculateOffsetOnScale(x + 5, scale), calculateOffsetOnScale(y + 4, scale), task.output.getDisplayName()); GlStateManager.popMatrix(); if (inBounds(x + 5, y + 10, 16, 16, mouseX, mouseY)) { - infoLines = Arrays.asList(craftingMonitor.getInfo()[item].split("\n")); + infoLines = Arrays.asList(task.info.split("\n")); for (int j = 0; j < infoLines.size(); ++j) { String line = infoLines.get(j); @@ -169,7 +166,7 @@ public class GuiCraftingMonitor extends GuiBase { super.actionPerformed(button); if (button == cancelButton && itemSelected != -1) { - RefinedStorage.NETWORK.sendToServer(new MessageCraftingMonitorCancel(craftingMonitor, itemSelected)); + RefinedStorage.NETWORK.sendToServer(new MessageCraftingMonitorCancel(craftingMonitor, craftingMonitor.getTasks().get(itemSelected).id)); } else if (button == cancelAllButton && craftingMonitor.getTasks().size() > 0) { RefinedStorage.NETWORK.sendToServer(new MessageCraftingMonitorCancel(craftingMonitor, -1)); } diff --git a/src/main/java/refinedstorage/tile/autocrafting/TileCraftingMonitor.java b/src/main/java/refinedstorage/tile/autocrafting/TileCraftingMonitor.java index 34d0ea6cd..e4e8a3c2c 100755 --- a/src/main/java/refinedstorage/tile/autocrafting/TileCraftingMonitor.java +++ b/src/main/java/refinedstorage/tile/autocrafting/TileCraftingMonitor.java @@ -12,8 +12,13 @@ import java.util.ArrayList; import java.util.List; public class TileCraftingMonitor extends TileMachine { - private List tasks = new ArrayList(); - private String[] info = new String[0]; + public class ClientSideCraftingTask { + public ItemStack output; + public int id; + public String info; + } + + private List tasks = new ArrayList(); @Override public int getEnergyUsage() { @@ -51,31 +56,31 @@ public class TileCraftingMonitor extends TileMachine { int size = buf.readInt(); - List newTasks = new ArrayList(); - String[] newInfo = new String[size]; + List newTasks = new ArrayList(); for (int i = 0; i < size; ++i) { - newInfo[i] = ByteBufUtils.readUTF8String(buf); + String info = ByteBufUtils.readUTF8String(buf); - int outputSize = buf.readInt(); + int outputs = buf.readInt(); - for (int j = 0; j < outputSize; ++j) { - newTasks.add(ByteBufUtils.readItemStack(buf)); + for (int j = 0; j < outputs; ++j) { + ClientSideCraftingTask task = new ClientSideCraftingTask(); + + task.info = info; + task.output = ByteBufUtils.readItemStack(buf); + task.id = i; + + newTasks.add(task); } } tasks = newTasks; - info = newInfo; } - public List getTasks() { + public List getTasks() { return tasks; } - public String[] getInfo() { - return info; - } - @Override public Class getContainer() { return ContainerCraftingMonitor.class;