diff --git a/src/main/java/refinedstorage/container/ContainerInterface.java b/src/main/java/refinedstorage/container/ContainerInterface.java index 6defd3f33..52ea4830c 100755 --- a/src/main/java/refinedstorage/container/ContainerInterface.java +++ b/src/main/java/refinedstorage/container/ContainerInterface.java @@ -3,8 +3,12 @@ package refinedstorage.container; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; +import refinedstorage.RefinedStorageItems; +import refinedstorage.container.slot.IItemValidator; +import refinedstorage.container.slot.SlotFiltered; import refinedstorage.container.slot.SlotOutput; import refinedstorage.container.slot.SlotSpecimen; +import refinedstorage.item.ItemPattern; import refinedstorage.tile.TileInterface; public class ContainerInterface extends ContainerBase { @@ -23,7 +27,16 @@ public class ContainerInterface extends ContainerBase { addSlotToContainer(new SlotOutput(tile, i, 8 + (18 * (i - 18)), 100)); } - addPlayerInventory(8, 136); + for (int i = 27; i < 27 + 9; ++i) { + addSlotToContainer(new SlotFiltered(tile, i, 8 + (18 * (i - 27)), 134, new IItemValidator() { + @Override + public boolean isValid(ItemStack stack) { + return stack.getItem() == RefinedStorageItems.PATTERN && ItemPattern.hasResult(stack); + } + })); + } + + addPlayerInventory(8, 168); } @Override diff --git a/src/main/java/refinedstorage/gui/GuiInterface.java b/src/main/java/refinedstorage/gui/GuiInterface.java index 6242b976d..509babfc6 100755 --- a/src/main/java/refinedstorage/gui/GuiInterface.java +++ b/src/main/java/refinedstorage/gui/GuiInterface.java @@ -10,7 +10,7 @@ public class GuiInterface extends GuiBase { private TileInterface tile; public GuiInterface(ContainerInterface container, TileInterface tile) { - super(container, 176, 218); + super(container, 176, 250); this.tile = tile; } @@ -38,6 +38,7 @@ public class GuiInterface extends GuiBase { public void drawForeground(int mouseX, int mouseY) { drawString(7, 7, t("gui.refinedstorage:interface.import")); drawString(7, 42, t("gui.refinedstorage:interface.export")); - drawString(7, 123, t("container.inventory")); + drawString(7, 122, t("gui.refinedstorage:interface.patterns")); + drawString(7, 156, t("container.inventory")); } } diff --git a/src/main/java/refinedstorage/item/ItemPattern.java b/src/main/java/refinedstorage/item/ItemPattern.java index 2f71f665c..c92bce782 100755 --- a/src/main/java/refinedstorage/item/ItemPattern.java +++ b/src/main/java/refinedstorage/item/ItemPattern.java @@ -43,8 +43,16 @@ public class ItemPattern extends ItemBase { pattern.getTagCompound().setTag(NBT_RESULT, stackTag); } + public static boolean hasResult(ItemStack pattern) { + if (pattern.getTagCompound() == null) { + return false; + } + + return pattern.getTagCompound().hasKey(NBT_RESULT); + } + public static ItemStack getResult(ItemStack pattern) { - if (pattern.getTagCompound() == null || !pattern.getTagCompound().hasKey(NBT_RESULT)) { + if (!hasResult(pattern)) { return null; } diff --git a/src/main/java/refinedstorage/tile/TileInterface.java b/src/main/java/refinedstorage/tile/TileInterface.java index 41e88d9f7..982c2474b 100755 --- a/src/main/java/refinedstorage/tile/TileInterface.java +++ b/src/main/java/refinedstorage/tile/TileInterface.java @@ -26,7 +26,7 @@ public class TileInterface extends TileMachine implements ICompareConfig, ISided 18, 19, 20, 21, 22, 23, 24, 25, 26 }; - private InventorySimple inventory = new InventorySimple("interface", 9 * 3, this); + private InventorySimple inventory = new InventorySimple("interface", 9 * 4, this); private int compare = 0; diff --git a/src/main/resources/assets/refinedstorage/lang/en_US.lang b/src/main/resources/assets/refinedstorage/lang/en_US.lang index 7459a071e..797ecf483 100755 --- a/src/main/resources/assets/refinedstorage/lang/en_US.lang +++ b/src/main/resources/assets/refinedstorage/lang/en_US.lang @@ -19,6 +19,7 @@ gui.refinedstorage:constructor=Constructor gui.refinedstorage:relay=Relay gui.refinedstorage:interface.import=Interface Import gui.refinedstorage:interface.export=Interface Export +gui.refinedstorage:interface.patterns=Patterns misc.refinedstorage:energy_stored=%d / %d RF misc.refinedstorage:energy_usage=Usage: %d RF/t diff --git a/src/main/resources/assets/refinedstorage/lang/nl_NL.lang b/src/main/resources/assets/refinedstorage/lang/nl_NL.lang index 0c22b0ef7..a5cf3706d 100755 --- a/src/main/resources/assets/refinedstorage/lang/nl_NL.lang +++ b/src/main/resources/assets/refinedstorage/lang/nl_NL.lang @@ -19,6 +19,7 @@ gui.refinedstorage:constructor=Constructor gui.refinedstorage:relay=Relais gui.refinedstorage:interface.import=Interface Import gui.refinedstorage:interface.export=Interface Export +gui.refinedstorage:interface.patterns=Patronen misc.refinedstorage:energy_stored=%d / %d RF misc.refinedstorage:energy_usage=Vebruik: %d RF/t diff --git a/src/main/resources/assets/refinedstorage/textures/gui/interface.png b/src/main/resources/assets/refinedstorage/textures/gui/interface.png index 04066740e..ed6ba581b 100755 Binary files a/src/main/resources/assets/refinedstorage/textures/gui/interface.png and b/src/main/resources/assets/refinedstorage/textures/gui/interface.png differ