From 2d3f86aaf8149ab4dc39231283becec52359356e Mon Sep 17 00:00:00 2001 From: Nicholas Ignoffo Date: Wed, 7 Feb 2018 18:46:18 -0800 Subject: [PATCH] Fixup Soul Forge crafting --- .../WayofTime/bloodmagic/tile/TileSoulForge.java | 15 +++++++-------- .../tile/container/ContainerSoulForge.java | 4 ++-- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/main/java/WayofTime/bloodmagic/tile/TileSoulForge.java b/src/main/java/WayofTime/bloodmagic/tile/TileSoulForge.java index b9055639..64d7fde1 100644 --- a/src/main/java/WayofTime/bloodmagic/tile/TileSoulForge.java +++ b/src/main/java/WayofTime/bloodmagic/tile/TileSoulForge.java @@ -11,6 +11,7 @@ import WayofTime.bloodmagic.demonAura.WorldDemonWillHandler; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ITickable; +import net.minecraftforge.items.ItemHandlerHelper; import java.util.ArrayList; import java.util.List; @@ -115,28 +116,26 @@ public class TileSoulForge extends TileInventory implements ITickable, IDemonWil if (recipe == null) return false; - ItemStack outputStack = recipe.getOutput(); ItemStack currentOutputStack = getStackInSlot(outputSlot); - if (outputStack.isEmpty()) + if (recipe.getOutput().isEmpty()) return false; if (currentOutputStack.isEmpty()) return true; - if (!currentOutputStack.isItemEqual(outputStack)) + if (!currentOutputStack.isItemEqual(recipe.getOutput())) return false; - int result = currentOutputStack.getCount() + outputStack.getCount(); + int result = currentOutputStack.getCount() + recipe.getOutput().getCount(); return result <= getInventoryStackLimit() && result <= currentOutputStack.getMaxStackSize(); } public void craftItem(RecipeTartaricForge recipe) { if (this.canCraft(recipe)) { - ItemStack outputStack = recipe.getOutput(); ItemStack currentOutputStack = getStackInSlot(outputSlot); if (currentOutputStack.isEmpty()) { - setInventorySlotContents(outputSlot, outputStack); - } else if (currentOutputStack.getItem() == currentOutputStack.getItem()) { - currentOutputStack.grow(outputStack.getCount()); + setInventorySlotContents(outputSlot, recipe.getOutput().copy()); + } else if (ItemHandlerHelper.canItemStacksStack(currentOutputStack, recipe.getOutput())) { + currentOutputStack.grow(recipe.getOutput().getCount()); } consumeInventory(); diff --git a/src/main/java/WayofTime/bloodmagic/tile/container/ContainerSoulForge.java b/src/main/java/WayofTime/bloodmagic/tile/container/ContainerSoulForge.java index bd82760e..37973d53 100644 --- a/src/main/java/WayofTime/bloodmagic/tile/container/ContainerSoulForge.java +++ b/src/main/java/WayofTime/bloodmagic/tile/container/ContainerSoulForge.java @@ -17,8 +17,8 @@ public class ContainerSoulForge extends Container { this.tileForge = tileForge; this.addSlotToContainer(new Slot(tileForge, 0, 8, 15)); this.addSlotToContainer(new Slot(tileForge, 1, 80, 15)); - this.addSlotToContainer(new Slot(tileForge, 2, 80, 87)); - this.addSlotToContainer(new Slot(tileForge, 3, 8, 87)); + this.addSlotToContainer(new Slot(tileForge, 2, 8, 87)); + this.addSlotToContainer(new Slot(tileForge, 3, 80, 87)); this.addSlotToContainer(new SlotSoul(tileForge, TileSoulForge.soulSlot, 152, 51)); this.addSlotToContainer(new SlotOutput(tileForge, TileSoulForge.outputSlot, 44, 51));