From c6074aec30900c17fa0cdecf66c5c7348f84bab9 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Sun, 10 Apr 2016 14:53:45 +0200 Subject: [PATCH] Creating the actual patterns now --- .../container/ContainerGrid.java | 6 +++++ .../refinedstorage/tile/grid/TileGrid.java | 23 +++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/src/main/java/refinedstorage/container/ContainerGrid.java b/src/main/java/refinedstorage/container/ContainerGrid.java index e45fd5604..bf8257afc 100755 --- a/src/main/java/refinedstorage/container/ContainerGrid.java +++ b/src/main/java/refinedstorage/container/ContainerGrid.java @@ -121,6 +121,12 @@ public class ContainerGrid extends ContainerBase { } } + if (!player.worldObj.isRemote && slot instanceof SlotDisabled && grid.getType() == EnumGridType.PATTERN && slot.getHasStack()) { + ((TileGrid) grid).onCreatePattern(); + + return null; + } + return super.func_184996_a(id, clickedButton, clickType, player); } } diff --git a/src/main/java/refinedstorage/tile/grid/TileGrid.java b/src/main/java/refinedstorage/tile/grid/TileGrid.java index 7ae2885e6..7824f2ee6 100755 --- a/src/main/java/refinedstorage/tile/grid/TileGrid.java +++ b/src/main/java/refinedstorage/tile/grid/TileGrid.java @@ -10,10 +10,12 @@ import net.minecraft.item.crafting.CraftingManager; import net.minecraft.nbt.NBTTagCompound; import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageBlocks; +import refinedstorage.RefinedStorageItems; import refinedstorage.block.BlockGrid; import refinedstorage.block.EnumGridType; import refinedstorage.container.ContainerGrid; import refinedstorage.inventory.InventorySimple; +import refinedstorage.item.ItemPattern; import refinedstorage.network.MessageGridSettingsUpdate; import refinedstorage.network.MessageGridStoragePull; import refinedstorage.network.MessageGridStoragePush; @@ -159,6 +161,27 @@ public class TileGrid extends TileMachine implements IGrid { } } + public void onCreatePattern() { + ItemStack crafted = craftingResultInventory.getStackInSlot(0); + + if (patternsInventory.getStackInSlot(1) == null && patternsInventory.getStackInSlot(0) != null && patternsInventory.getStackInSlot(0).stackSize > 0) { + patternsInventory.decrStackSize(0, 1); + + ItemStack pattern = new ItemStack(RefinedStorageItems.PATTERN); + ItemPattern.setResult(pattern, crafted); + + for (int i = 0; i < 9; ++i) { + ItemStack slot = craftingInventory.getStackInSlot(i); + + if (slot != null) { + ItemPattern.setSlot(pattern, i, slot); + } + } + + patternsInventory.setInventorySlotContents(1, pattern); + } + } + public void onRecipeTransfer(ItemStack[][] recipe) { if (isConnected()) { for (int i = 0; i < craftingInventory.getSizeInventory(); ++i) {