diff --git a/helpers/DualityInterface.java b/helpers/DualityInterface.java index b2580da28..1cf677658 100644 --- a/helpers/DualityInterface.java +++ b/helpers/DualityInterface.java @@ -740,6 +740,8 @@ public class DualityInterface implements IGridTickable, ISegmentedInventory, ISt TileEntity tile = iHost.getTileEntity(); World w = tile.getWorldObj(); + boolean allAreBusy=true; + for (ForgeDirection s : possibleDirections) { TileEntity te = w.getTileEntity( tile.xCoord + s.offsetX, tile.yCoord + s.offsetY, tile.zCoord + s.offsetZ ); @@ -747,13 +749,15 @@ public class DualityInterface implements IGridTickable, ISegmentedInventory, ISt InventoryAdaptor ad = InventoryAdaptor.getAdaptor( te, s.getOpposite() ); if ( ad != null ) { - if ( ad.simulateRemove( 1, null, null ) != null ) + if ( ad.simulateRemove( 1, null, null ) == null ) { - busy = true; + allAreBusy = false; break; } } } + + busy = allAreBusy; } return busy; @@ -804,6 +808,12 @@ public class DualityInterface implements IGridTickable, ISegmentedInventory, ISt InventoryAdaptor ad = InventoryAdaptor.getAdaptor( te, s.getOpposite() ); if ( ad != null ) { + if ( isBlocking() ) + { + if ( ad.simulateRemove( 1, null, null ) != null ) + continue; + } + if ( acceptsItems( ad, table ) ) { for (int x = 0; x < table.getSizeInventory(); x++) diff --git a/util/InventoryAdaptor.java b/util/InventoryAdaptor.java index 8b3c496be..47f09b596 100644 --- a/util/InventoryAdaptor.java +++ b/util/InventoryAdaptor.java @@ -65,11 +65,16 @@ public abstract class InventoryAdaptor implements Iterable } else if ( te instanceof ISidedInventory ) { - return new AdaptorIInventory( new WrapperMCISidedInventory( (ISidedInventory) te, d ) ); + ISidedInventory si =(ISidedInventory)te; + int[] slots = si.getAccessibleSlotsFromSide( d.ordinal() ); + if ( si.getSizeInventory() > 0 && slots != null && slots.length > 0 ) + return new AdaptorIInventory( new WrapperMCISidedInventory( si, d ) ); } else if ( te instanceof IInventory ) { - return new AdaptorIInventory( (IInventory) te ); + IInventory i =(IInventory)te; + if ( i.getSizeInventory() > 0 ) + return new AdaptorIInventory( i ); } return null;