From a58723273afaba47d8f625a7f19e70afac3b1698 Mon Sep 17 00:00:00 2001 From: AlgorithmX2 Date: Sun, 13 Jul 2014 21:35:56 -0500 Subject: [PATCH] Allow Pattern Swapping. --- .../ContainerInterfaceTerminal.java | 26 +++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/container/implementations/ContainerInterfaceTerminal.java b/container/implementations/ContainerInterfaceTerminal.java index e63d1ab68..002f554af 100644 --- a/container/implementations/ContainerInterfaceTerminal.java +++ b/container/implementations/ContainerInterfaceTerminal.java @@ -100,7 +100,9 @@ public class ContainerInterfaceTerminal extends AEBaseContainer InventoryAdaptor playerHand = new AdaptorPlayerHand( player ); WrapperInvSlot slotInv = new PatternInvSlot( inv.server ); - InventoryAdaptor interfaceSlot = new AdaptorIInventory( slotInv.getWrapper( slot ) ); + + IInventory theSlot = slotInv.getWrapper( slot ); + InventoryAdaptor interfaceSlot = new AdaptorIInventory( theSlot ); switch (action) { @@ -108,7 +110,27 @@ public class ContainerInterfaceTerminal extends AEBaseContainer if ( hasItemInHand ) { - player.inventory.setItemStack( interfaceSlot.addItems( player.inventory.getItemStack() ) ); + ItemStack inSlot = theSlot.getStackInSlot( 0 ); + if ( inSlot == null ) + player.inventory.setItemStack( interfaceSlot.addItems( player.inventory.getItemStack() ) ); + else + { + inSlot = inSlot.copy(); + ItemStack inHand = player.inventory.getItemStack().copy(); + + theSlot.setInventorySlotContents( 0, null ); + player.inventory.setItemStack( null ); + + player.inventory.setItemStack( interfaceSlot.addItems( inHand.copy() ) ); + + if ( player.inventory.getItemStack() == null ) + player.inventory.setItemStack( inSlot ); + else + { + player.inventory.setItemStack( inHand ); + theSlot.setInventorySlotContents( 0, inSlot ); + } + } } else {