diff --git a/src/main/java/refinedstorage/apiimpl/autocrafting/craftingmonitor/CraftingMonitorElementItemRender.java b/src/main/java/refinedstorage/apiimpl/autocrafting/craftingmonitor/CraftingMonitorElementItemRender.java new file mode 100755 index 000000000..f51b65a8b --- /dev/null +++ b/src/main/java/refinedstorage/apiimpl/autocrafting/craftingmonitor/CraftingMonitorElementItemRender.java @@ -0,0 +1,26 @@ +package refinedstorage.apiimpl.autocrafting.craftingmonitor; + +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.item.ItemStack; +import refinedstorage.api.autocrafting.craftingmonitor.ICraftingMonitorElement; +import refinedstorage.gui.GuiBase; + +public abstract class CraftingMonitorElementItemRender implements ICraftingMonitorElement { + @Override + public void draw(GuiBase gui, int x, int y) { + gui.drawItem(x + 2, y + 1, getItem()); + + float scale = 0.5f; + + GlStateManager.pushMatrix(); + GlStateManager.scale(scale, scale, 1); + + gui.drawString(gui.calculateOffsetOnScale(x + 21, scale), gui.calculateOffsetOnScale(y + 7, scale), getQuantity() + " " + getItem().getDisplayName()); + + GlStateManager.popMatrix(); + } + + protected abstract ItemStack getItem(); + + protected abstract int getQuantity(); +} diff --git a/src/main/java/refinedstorage/apiimpl/autocrafting/craftingmonitor/CraftingMonitorElementRoot.java b/src/main/java/refinedstorage/apiimpl/autocrafting/craftingmonitor/CraftingMonitorElementRoot.java index a9579984b..95beed9b8 100755 --- a/src/main/java/refinedstorage/apiimpl/autocrafting/craftingmonitor/CraftingMonitorElementRoot.java +++ b/src/main/java/refinedstorage/apiimpl/autocrafting/craftingmonitor/CraftingMonitorElementRoot.java @@ -1,13 +1,10 @@ package refinedstorage.apiimpl.autocrafting.craftingmonitor; import io.netty.buffer.ByteBuf; -import net.minecraft.client.renderer.GlStateManager; import net.minecraft.item.ItemStack; import net.minecraftforge.fml.common.network.ByteBufUtils; -import refinedstorage.api.autocrafting.craftingmonitor.ICraftingMonitorElement; -import refinedstorage.gui.GuiBase; -public class CraftingMonitorElementRoot implements ICraftingMonitorElement { +public class CraftingMonitorElementRoot extends CraftingMonitorElementItemRender { public static final String ID = "root"; private int id; @@ -20,20 +17,6 @@ public class CraftingMonitorElementRoot implements ICraftingMonitorElement { + public static final String ID = "text"; + + private String text; + private int offset; + + public CraftingMonitorElementText(String text, int offset) { + this.text = text; + this.offset = offset; + } + + public String getText() { + return text; + } + + public int getOffset() { + return offset; + } + + @Override + public void draw(GuiBase gui, int x, int y) { + float scale = 0.5f; + + GlStateManager.pushMatrix(); + GlStateManager.scale(scale, scale, 1); + + gui.drawString(gui.calculateOffsetOnScale(x + offset, scale), gui.calculateOffsetOnScale(y + 7, scale), I18n.format(text)); + + GlStateManager.popMatrix(); + } + + @Override + public int getTaskId() { + return -1; + } + + @Override + public String getId() { + return ID; + } + + @Override + public void write(ByteBuf buf) { + ByteBufUtils.writeUTF8String(buf, text); + buf.writeInt(offset); + } +} diff --git a/src/main/java/refinedstorage/apiimpl/autocrafting/craftingmonitor/CraftingMonitorElementToTake.java b/src/main/java/refinedstorage/apiimpl/autocrafting/craftingmonitor/CraftingMonitorElementToTake.java index 70d27e948..6d2ac9e53 100755 --- a/src/main/java/refinedstorage/apiimpl/autocrafting/craftingmonitor/CraftingMonitorElementToTake.java +++ b/src/main/java/refinedstorage/apiimpl/autocrafting/craftingmonitor/CraftingMonitorElementToTake.java @@ -1,13 +1,11 @@ package refinedstorage.apiimpl.autocrafting.craftingmonitor; import io.netty.buffer.ByteBuf; -import net.minecraft.client.renderer.GlStateManager; import net.minecraft.item.ItemStack; import net.minecraftforge.fml.common.network.ByteBufUtils; -import refinedstorage.api.autocrafting.craftingmonitor.ICraftingMonitorElement; import refinedstorage.gui.GuiBase; -public class CraftingMonitorElementToTake implements ICraftingMonitorElement { +public class CraftingMonitorElementToTake extends CraftingMonitorElementItemRender { public static final String ID = "to_take"; private ItemStack toTake; @@ -20,18 +18,7 @@ public class CraftingMonitorElementToTake implements ICraftingMonitorElement new CraftingMonitorElementToTake(stack, stack.stackSize)) .collect(Collectors.toList()) diff --git a/src/main/java/refinedstorage/gui/GuiCraftingMonitor.java b/src/main/java/refinedstorage/gui/GuiCraftingMonitor.java index d3dbfcd2e..157d3d87d 100755 --- a/src/main/java/refinedstorage/gui/GuiCraftingMonitor.java +++ b/src/main/java/refinedstorage/gui/GuiCraftingMonitor.java @@ -59,7 +59,7 @@ public class GuiCraftingMonitor extends GuiBase { itemSelected = -1; } - cancelButton.enabled = itemSelected != -1; + cancelButton.enabled = itemSelected != -1 && getElements().get(itemSelected).getTaskId() != -1; cancelAllButton.enabled = getElements().size() > 0; } diff --git a/src/main/java/refinedstorage/proxy/CommonProxy.java b/src/main/java/refinedstorage/proxy/CommonProxy.java index 88fe3003b..c2f2447ea 100755 --- a/src/main/java/refinedstorage/proxy/CommonProxy.java +++ b/src/main/java/refinedstorage/proxy/CommonProxy.java @@ -20,6 +20,7 @@ import refinedstorage.RSBlocks; import refinedstorage.RSItems; import refinedstorage.api.RSAPI; import refinedstorage.apiimpl.autocrafting.craftingmonitor.CraftingMonitorElementRoot; +import refinedstorage.apiimpl.autocrafting.craftingmonitor.CraftingMonitorElementText; import refinedstorage.apiimpl.autocrafting.craftingmonitor.CraftingMonitorElementToTake; import refinedstorage.apiimpl.autocrafting.registry.CraftingTaskFactoryNormal; import refinedstorage.apiimpl.solderer.*; @@ -51,6 +52,7 @@ public class CommonProxy { RSAPI.instance().getCraftingMonitorElementRegistry().add(CraftingMonitorElementRoot.ID, buf -> new CraftingMonitorElementRoot(buf.readInt(), ByteBufUtils.readItemStack(buf), buf.readInt())); RSAPI.instance().getCraftingMonitorElementRegistry().add(CraftingMonitorElementToTake.ID, buf -> new CraftingMonitorElementToTake(ByteBufUtils.readItemStack(buf), buf.readInt())); + RSAPI.instance().getCraftingMonitorElementRegistry().add(CraftingMonitorElementText.ID, buf -> new CraftingMonitorElementText(ByteBufUtils.readUTF8String(buf), buf.readInt())); int id = 0; diff --git a/src/main/resources/assets/refinedstorage/lang/en_US.lang b/src/main/resources/assets/refinedstorage/lang/en_US.lang index eef4c9054..aa7861596 100755 --- a/src/main/resources/assets/refinedstorage/lang/en_US.lang +++ b/src/main/resources/assets/refinedstorage/lang/en_US.lang @@ -19,8 +19,7 @@ gui.refinedstorage:relay=Relay gui.refinedstorage:interface.import=Interface Import gui.refinedstorage:interface.export=Interface Export gui.refinedstorage:crafting_monitor=Crafting Monitor -gui.refinedstorage:crafting_monitor.missing_items=Missing items -gui.refinedstorage:crafting_monitor.items_crafting=Items crafting +gui.refinedstorage:crafting_monitor.items_taking=Items taking gui.refinedstorage:crafting_monitor.items_processing=Items processing gui.refinedstorage:crafting_monitor.machine_in_use=Waiting on machine that is in use by another task gui.refinedstorage:crafting_monitor.machine_none=No machine found