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:
@@ -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++)
|
||||
|
||||
Reference in New Issue
Block a user