Improved Blocking Behavior for interfaces with inventories on multiple sides.

AE now ignores inventories that have no sizes this will improve a few strange behaviors.
This commit is contained in:
AlgorithmX2
2014-07-23 11:47:59 -05:00
parent 175e21782a
commit 253221e494
2 changed files with 19 additions and 4 deletions
+12 -2
View File
@@ -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++)