diff --git a/common/mekanism/common/transporter/TransporterStack.java b/common/mekanism/common/transporter/TransporterStack.java index af9d46366..1c72a1615 100644 --- a/common/mekanism/common/transporter/TransporterStack.java +++ b/common/mekanism/common/transporter/TransporterStack.java @@ -168,6 +168,12 @@ public class TransporterStack if(!tileEntity.worldObj.isRemote) { int index = pathToTarget.indexOf(Object3D.get(tileEntity))-1; + + if(index < 0) + { + return null; + } + return pathToTarget.get(index); } else { @@ -200,7 +206,14 @@ public class TransporterStack { return Object3D.get(tileEntity).sideDifference(getPrev(tileEntity)).ordinal(); } - else if(progress >= 50) + else if(progress == 50) + { + if(getNext(tileEntity) != null) + { + return getNext(tileEntity).sideDifference(Object3D.get(tileEntity)).ordinal(); + } + } + else if(progress > 50) { return getNext(tileEntity).sideDifference(Object3D.get(tileEntity)).ordinal(); } diff --git a/common/mekanism/common/util/TransporterUtils.java b/common/mekanism/common/util/TransporterUtils.java index c1402a8ac..bfbfab779 100644 --- a/common/mekanism/common/util/TransporterUtils.java +++ b/common/mekanism/common/util/TransporterUtils.java @@ -187,13 +187,13 @@ public final class TransporterUtils } else { ISidedInventory sidedInventory = (ISidedInventory) inventory; - int[] slots = sidedInventory.getAccessibleSlotsFromSide(side); + int[] slots = sidedInventory.getAccessibleSlotsFromSide(ForgeDirection.getOrientation(side).getOpposite().ordinal()); for(int get = 0; get <= slots.length - 1; get++) { int slotID = slots[get]; - if(sidedInventory.isItemValidForSlot(slotID, itemStack) && sidedInventory.canInsertItem(slotID, itemStack, side)) + if(sidedInventory.isItemValidForSlot(slotID, itemStack) && sidedInventory.canInsertItem(slotID, itemStack, ForgeDirection.getOrientation(side).getOpposite().ordinal())) { ItemStack inSlot = inventory.getStackInSlot(slotID); @@ -266,13 +266,13 @@ public final class TransporterUtils } else { ISidedInventory sidedInventory = (ISidedInventory) inventory; - int[] slots = sidedInventory.getAccessibleSlotsFromSide(side); + int[] slots = sidedInventory.getAccessibleSlotsFromSide(ForgeDirection.getOrientation(side).getOpposite().ordinal()); for(int get = 0; get <= slots.length - 1; get++) { int slotID = slots[get]; - if(sidedInventory.isItemValidForSlot(slotID, itemStack) && sidedInventory.canInsertItem(slotID, itemStack, side)) + if(sidedInventory.isItemValidForSlot(slotID, itemStack) && sidedInventory.canInsertItem(slotID, itemStack, ForgeDirection.getOrientation(side).getOpposite().ordinal())) { ItemStack inSlot = inventory.getStackInSlot(slotID); @@ -328,7 +328,7 @@ public final class TransporterUtils } else { ISidedInventory sidedInventory = (ISidedInventory)inventory; - int[] slots = sidedInventory.getAccessibleSlotsFromSide(side); + int[] slots = sidedInventory.getAccessibleSlotsFromSide(ForgeDirection.getOrientation(side).getOpposite().ordinal()); if(slots != null) { @@ -340,7 +340,7 @@ public final class TransporterUtils { ItemStack toSend = sidedInventory.getStackInSlot(slotID); - if(sidedInventory.canExtractItem(slotID, toSend, side)) + if(sidedInventory.canExtractItem(slotID, toSend, ForgeDirection.getOrientation(side).getOpposite().ordinal())) { sidedInventory.setInventorySlotContents(slotID, null);