diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockMasterRoutingNode.java b/src/main/java/WayofTime/bloodmagic/block/BlockMasterRoutingNode.java index 28c4ff14..e0b42dd7 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockMasterRoutingNode.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockMasterRoutingNode.java @@ -6,7 +6,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.api.Constants; -import WayofTime.bloodmagic.routing.TileMasterRoutingNode; +import WayofTime.bloodmagic.tile.routing.TileMasterRoutingNode; public class BlockMasterRoutingNode extends BlockContainer { diff --git a/src/main/java/WayofTime/bloodmagic/registry/ModBlocks.java b/src/main/java/WayofTime/bloodmagic/registry/ModBlocks.java index 1a747b04..6e9630d2 100644 --- a/src/main/java/WayofTime/bloodmagic/registry/ModBlocks.java +++ b/src/main/java/WayofTime/bloodmagic/registry/ModBlocks.java @@ -31,7 +31,6 @@ import WayofTime.bloodmagic.item.block.ItemBlockCrystal; import WayofTime.bloodmagic.item.block.ItemBlockPedestal; import WayofTime.bloodmagic.item.block.ItemBlockRitualController; import WayofTime.bloodmagic.item.block.ItemBlockRitualStone; -import WayofTime.bloodmagic.routing.TileMasterRoutingNode; import WayofTime.bloodmagic.tile.TileAlchemyArray; import WayofTime.bloodmagic.tile.TileAltar; import WayofTime.bloodmagic.tile.TileImperfectRitualStone; @@ -42,6 +41,7 @@ import WayofTime.bloodmagic.tile.TileSoulForge; import WayofTime.bloodmagic.tile.TileSpectralBlock; import WayofTime.bloodmagic.tile.TileTeleposer; import WayofTime.bloodmagic.tile.routing.TileInputRoutingNode; +import WayofTime.bloodmagic.tile.routing.TileMasterRoutingNode; import WayofTime.bloodmagic.tile.routing.TileOutputRoutingNode; import WayofTime.bloodmagic.util.helper.InventoryRenderHelper; diff --git a/src/main/java/WayofTime/bloodmagic/routing/TestItemFilter.java b/src/main/java/WayofTime/bloodmagic/routing/TestItemFilter.java index 4387dff8..f3c1e4ea 100644 --- a/src/main/java/WayofTime/bloodmagic/routing/TestItemFilter.java +++ b/src/main/java/WayofTime/bloodmagic/routing/TestItemFilter.java @@ -182,9 +182,12 @@ public class TestItemFilter implements IItemFilter ItemStack testStack = inputStack.copy(); testStack.stackSize = allowedAmount; - ItemStack remainderStack = Utils.insertStackIntoInventory(testStack, accessedInventory, accessedSide, allowedAmount); + ItemStack remainderStack = Utils.insertStackIntoInventory(testStack, accessedInventory, accessedSide); +// System.out.println("Remaining stack size: " + (remainderStack != null ? remainderStack.stackSize : 0) + ", allowed amount: " + allowedAmount); - int changeAmount = inputStack.stackSize - (remainderStack == null ? 0 : remainderStack.stackSize); + int changeAmount = allowedAmount - (remainderStack == null ? 0 : remainderStack.stackSize); + testStack = inputStack.copy(); + testStack.stackSize -= changeAmount; for (ItemStack filterStack : requestList) { @@ -198,7 +201,7 @@ public class TestItemFilter implements IItemFilter } } - return remainderStack; + return testStack; } /** @@ -254,6 +257,8 @@ public class TestItemFilter implements IItemFilter ItemStack testStack = inputStack.copy(); testStack.stackSize = allowedAmount; ItemStack remainderStack = outputFilter.transferStackThroughOutputFilter(testStack); + int changeAmount = allowedAmount - (remainderStack == null ? 0 : remainderStack.stackSize); +// System.out.println("Change amount: " + changeAmount); if (remainderStack != null && remainderStack.stackSize == allowedAmount) { @@ -261,9 +266,9 @@ public class TestItemFilter implements IItemFilter continue; } - accessedInventory.setInventorySlotContents(slot, remainderStack); //Sets the slot in the inventory + inputStack.stackSize -= changeAmount; - int changeAmount = inputStack.stackSize - (remainderStack == null ? 0 : remainderStack.stackSize); + accessedInventory.setInventorySlotContents(slot, inputStack.stackSize <= 0 ? null : inputStack); //Sets the slot in the inventory for (ItemStack filterStack : requestList) { diff --git a/src/main/java/WayofTime/bloodmagic/tile/routing/TileFilteredRoutingNode.java b/src/main/java/WayofTime/bloodmagic/tile/routing/TileFilteredRoutingNode.java index cef39e20..039e613c 100644 --- a/src/main/java/WayofTime/bloodmagic/tile/routing/TileFilteredRoutingNode.java +++ b/src/main/java/WayofTime/bloodmagic/tile/routing/TileFilteredRoutingNode.java @@ -26,6 +26,12 @@ public class TileFilteredRoutingNode extends TileRoutingNode implements ISidedIn } } + @Override + public boolean isInventoryConnectedToSide(EnumFacing side) + { + return true; + } + @Override public void readFromNBT(NBTTagCompound tag) { diff --git a/src/main/java/WayofTime/bloodmagic/routing/TileMasterRoutingNode.java b/src/main/java/WayofTime/bloodmagic/tile/routing/TileMasterRoutingNode.java similarity index 96% rename from src/main/java/WayofTime/bloodmagic/routing/TileMasterRoutingNode.java rename to src/main/java/WayofTime/bloodmagic/tile/routing/TileMasterRoutingNode.java index d87e8e47..d420eabc 100644 --- a/src/main/java/WayofTime/bloodmagic/routing/TileMasterRoutingNode.java +++ b/src/main/java/WayofTime/bloodmagic/tile/routing/TileMasterRoutingNode.java @@ -1,4 +1,4 @@ -package WayofTime.bloodmagic.routing; +package WayofTime.bloodmagic.tile.routing; import java.util.HashMap; import java.util.LinkedList; @@ -14,6 +14,12 @@ import net.minecraft.util.EnumFacing; import net.minecraft.util.ITickable; import net.minecraft.world.World; import WayofTime.bloodmagic.api.Constants; +import WayofTime.bloodmagic.routing.IInputItemRoutingNode; +import WayofTime.bloodmagic.routing.IItemFilter; +import WayofTime.bloodmagic.routing.IMasterRoutingNode; +import WayofTime.bloodmagic.routing.IOutputItemRoutingNode; +import WayofTime.bloodmagic.routing.IRoutingNode; +import WayofTime.bloodmagic.routing.NodeHelper; public class TileMasterRoutingNode extends TileEntity implements IMasterRoutingNode, ITickable { @@ -46,6 +52,7 @@ public class TileMasterRoutingNode extends TileEntity implements IMasterRoutingN { if (!outputNode.isInventoryConnectedToSide(facing) || !outputNode.isOutput(facing)) { + System.out.println("Hello"); continue; } diff --git a/src/main/java/WayofTime/bloodmagic/util/GhostItemHelper.java b/src/main/java/WayofTime/bloodmagic/util/GhostItemHelper.java index b218c811..a56067da 100644 --- a/src/main/java/WayofTime/bloodmagic/util/GhostItemHelper.java +++ b/src/main/java/WayofTime/bloodmagic/util/GhostItemHelper.java @@ -55,6 +55,10 @@ public class GhostItemHelper NBTTagCompound tag = newStack.getTagCompound(); int amount = getItemGhostAmount(ghostStack); tag.removeTag(Constants.NBT.GHOST_STACK_SIZE); + if (tag.hasNoTags()) + { + newStack.setTagCompound(null); + } newStack.stackSize = amount; return newStack;