backport of #5823 - try emptying interfaces first before handling crafting jobs
This commit is contained in:
+1
-3
@@ -4,7 +4,7 @@ aebuild=7
|
|||||||
aegroup=appeng
|
aegroup=appeng
|
||||||
aebasename=appliedenergistics2
|
aebasename=appliedenergistics2
|
||||||
extended=extended_life
|
extended=extended_life
|
||||||
extendedversion=v49x
|
extendedversion=v49aa
|
||||||
#########################################################
|
#########################################################
|
||||||
# Versions #
|
# Versions #
|
||||||
#########################################################
|
#########################################################
|
||||||
@@ -15,7 +15,6 @@ forge_version=14.23.5.2847
|
|||||||
# Installable #
|
# Installable #
|
||||||
#########################################################
|
#########################################################
|
||||||
hwyla_version=1.8.26-B41_1.12.2
|
hwyla_version=1.8.26-B41_1.12.2
|
||||||
|
|
||||||
#########################################################
|
#########################################################
|
||||||
# Provided APIs #
|
# Provided APIs #
|
||||||
#########################################################
|
#########################################################
|
||||||
@@ -27,7 +26,6 @@ cofhcore_version=1.12.2-4.5.2.19
|
|||||||
crafttweaker_version=4.1.8.9
|
crafttweaker_version=4.1.8.9
|
||||||
inventorytweaks_version=1.63
|
inventorytweaks_version=1.63
|
||||||
ctm_version=MC1.12.2-0.3.1.16
|
ctm_version=MC1.12.2-0.3.1.16
|
||||||
|
|
||||||
#########################################################
|
#########################################################
|
||||||
# Deployment #
|
# Deployment #
|
||||||
#########################################################
|
#########################################################
|
||||||
|
|||||||
@@ -109,14 +109,16 @@ import static gregtech.api.block.machines.BlockMachine.getMetaTileEntity;
|
|||||||
|
|
||||||
public class DualityInterface implements IGridTickable, IStorageMonitorable, IInventoryDestination, IAEAppEngInventory, IConfigManagerHost, ICraftingProvider, IUpgradeableHost
|
public class DualityInterface implements IGridTickable, IStorageMonitorable, IInventoryDestination, IAEAppEngInventory, IConfigManagerHost, ICraftingProvider, IUpgradeableHost
|
||||||
{
|
{
|
||||||
private int[] failedCraftTriesSlot = {0,0,0,0,0,0,0,0,0};
|
private int[] failedCraftTriesSlot = {0, 0, 0, 0, 0, 0, 0, 0, 0};
|
||||||
|
|
||||||
public static final int NUMBER_OF_STORAGE_SLOTS = 9;
|
public static final int NUMBER_OF_STORAGE_SLOTS = 9;
|
||||||
public static final int NUMBER_OF_CONFIG_SLOTS = 9;
|
public static final int NUMBER_OF_CONFIG_SLOTS = 9;
|
||||||
public static final int NUMBER_OF_PATTERN_SLOTS = 36;
|
public static final int NUMBER_OF_PATTERN_SLOTS = 36;
|
||||||
|
|
||||||
private static final Collection<Block> BAD_BLOCKS = new HashSet<>( 100 );
|
private static final Collection<Block> BAD_BLOCKS = new HashSet<>( 100 );
|
||||||
private final IAEItemStack[] requireWork = { null, null, null, null, null, null, null, null, null };
|
private final IAEItemStack[] requireWork = {
|
||||||
|
null, null, null, null, null, null, null, null, null
|
||||||
|
};
|
||||||
private final MultiCraftingTracker craftingTracker;
|
private final MultiCraftingTracker craftingTracker;
|
||||||
private final AENetworkProxy gridProxy;
|
private final AENetworkProxy gridProxy;
|
||||||
private final IInterfaceHost iHost;
|
private final IInterfaceHost iHost;
|
||||||
@@ -126,12 +128,8 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn
|
|||||||
private final AppEngInternalAEInventory config = new AppEngInternalAEInventory( this, NUMBER_OF_CONFIG_SLOTS );
|
private final AppEngInternalAEInventory config = new AppEngInternalAEInventory( this, NUMBER_OF_CONFIG_SLOTS );
|
||||||
private final AppEngInternalInventory storage = new AppEngInternalInventory( this, NUMBER_OF_STORAGE_SLOTS );
|
private final AppEngInternalInventory storage = new AppEngInternalInventory( this, NUMBER_OF_STORAGE_SLOTS );
|
||||||
private final AppEngInternalInventory patterns = new AppEngInternalInventory( this, NUMBER_OF_PATTERN_SLOTS );
|
private final AppEngInternalInventory patterns = new AppEngInternalInventory( this, NUMBER_OF_PATTERN_SLOTS );
|
||||||
private final MEMonitorPassThrough<IAEItemStack> items = new MEMonitorPassThrough<>( new NullInventory<IAEItemStack>(), AEApi.instance()
|
private final MEMonitorPassThrough<IAEItemStack> items = new MEMonitorPassThrough<>( new NullInventory<IAEItemStack>(), AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) );
|
||||||
.storage()
|
private final MEMonitorPassThrough<IAEFluidStack> fluids = new MEMonitorPassThrough<>( new NullInventory<IAEFluidStack>(), AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ) );
|
||||||
.getStorageChannel( IItemStorageChannel.class ) );
|
|
||||||
private final MEMonitorPassThrough<IAEFluidStack> fluids = new MEMonitorPassThrough<>( new NullInventory<IAEFluidStack>(), AEApi.instance()
|
|
||||||
.storage()
|
|
||||||
.getStorageChannel( IFluidStorageChannel.class ) );
|
|
||||||
private final UpgradeInventory upgrades;
|
private final UpgradeInventory upgrades;
|
||||||
private boolean hasConfig = false;
|
private boolean hasConfig = false;
|
||||||
private int priority;
|
private int priority;
|
||||||
@@ -246,12 +244,12 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn
|
|||||||
|
|
||||||
NBTTagCompound sidedWaitList = new NBTTagCompound();
|
NBTTagCompound sidedWaitList = new NBTTagCompound();
|
||||||
|
|
||||||
if (this.waitingToSendFacing != null)
|
if( this.waitingToSendFacing != null )
|
||||||
{
|
{
|
||||||
for( EnumFacing s : this.iHost.getTargets() )
|
for( EnumFacing s : this.iHost.getTargets() )
|
||||||
{
|
{
|
||||||
NBTTagList waitingListSided = new NBTTagList();
|
NBTTagList waitingListSided = new NBTTagList();
|
||||||
if (this.waitingToSendFacing.containsKey( s ))
|
if( this.waitingToSendFacing.containsKey( s ) )
|
||||||
{
|
{
|
||||||
for( final ItemStack is : this.waitingToSendFacing.get( s ) )
|
for( final ItemStack is : this.waitingToSendFacing.get( s ) )
|
||||||
{
|
{
|
||||||
@@ -359,8 +357,9 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (this.waitingToSendFacing == null){
|
if( this.waitingToSendFacing == null )
|
||||||
this.waitingToSendFacing = new EnumMap<>(EnumFacing.class);
|
{
|
||||||
|
this.waitingToSendFacing = new EnumMap<>( EnumFacing.class );
|
||||||
}
|
}
|
||||||
|
|
||||||
this.waitingToSendFacing.computeIfAbsent( f, k -> new ArrayList<>() );
|
this.waitingToSendFacing.computeIfAbsent( f, k -> new ArrayList<>() );
|
||||||
@@ -432,12 +431,12 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn
|
|||||||
if( this.craftingList != null )
|
if( this.craftingList != null )
|
||||||
{
|
{
|
||||||
final Iterator<ICraftingPatternDetails> i = this.craftingList.iterator();
|
final Iterator<ICraftingPatternDetails> i = this.craftingList.iterator();
|
||||||
while( i.hasNext() )
|
while ( i.hasNext() )
|
||||||
{
|
{
|
||||||
final ICraftingPatternDetails details = i.next();
|
final ICraftingPatternDetails details = i.next();
|
||||||
boolean found = false;
|
boolean found = false;
|
||||||
|
|
||||||
for( int x = 0; x < accountedFor.length ; x++ )
|
for( int x = 0; x < accountedFor.length; x++ )
|
||||||
{
|
{
|
||||||
final ItemStack is = this.patterns.getStackInSlot( x );
|
final ItemStack is = this.patterns.getStackInSlot( x );
|
||||||
if( details.getPattern() == is )
|
if( details.getPattern() == is )
|
||||||
@@ -453,7 +452,7 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for( int x = 0; x < accountedFor.length ; x++ )
|
for( int x = 0; x < accountedFor.length; x++ )
|
||||||
{
|
{
|
||||||
if( !accountedFor[x] )
|
if( !accountedFor[x] )
|
||||||
{
|
{
|
||||||
@@ -471,18 +470,23 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean hasWorkToDo() {
|
private boolean hasWorkToDo()
|
||||||
|
{
|
||||||
|
|
||||||
if (hasItemsToSend()){
|
if( hasItemsToSend() )
|
||||||
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(hasItemsToSendFacing()){
|
if( hasItemsToSendFacing() )
|
||||||
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (final IAEItemStack requiredWork : this.requireWork) {
|
for( final IAEItemStack requiredWork : this.requireWork )
|
||||||
if (requiredWork != null) {
|
{
|
||||||
|
if( requiredWork != null )
|
||||||
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -593,7 +597,7 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn
|
|||||||
|
|
||||||
private boolean hasItemsToSendFacing()
|
private boolean hasItemsToSendFacing()
|
||||||
{
|
{
|
||||||
if (waitingToSendFacing != null)
|
if( waitingToSendFacing != null )
|
||||||
{
|
{
|
||||||
for( EnumFacing enumFacing : waitingToSendFacing.keySet() )
|
for( EnumFacing enumFacing : waitingToSendFacing.keySet() )
|
||||||
{
|
{
|
||||||
@@ -613,10 +617,13 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn
|
|||||||
List<ItemStack> dropList = new ArrayList<>();
|
List<ItemStack> dropList = new ArrayList<>();
|
||||||
for( int invSlot = 0; invSlot < patterns.getSlots(); invSlot++ )
|
for( int invSlot = 0; invSlot < patterns.getSlots(); invSlot++ )
|
||||||
{
|
{
|
||||||
if( invSlot > 8 + this.getInstalledUpgrades( Upgrades.PATTERN_EXPANSION ) * 9 )
|
if( invSlot > 8 + this.getInstalledUpgrades( Upgrades.PATTERN_EXPANSION ) * 9 )
|
||||||
{
|
{
|
||||||
ItemStack is = patterns.getStackInSlot( invSlot );
|
ItemStack is = patterns.getStackInSlot( invSlot );
|
||||||
if( is.isEmpty() ) continue;
|
if( is.isEmpty() )
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
dropList.add( patterns.extractItem( invSlot, Integer.MAX_VALUE, false ) );
|
dropList.add( patterns.extractItem( invSlot, Integer.MAX_VALUE, false ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -633,8 +640,7 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn
|
|||||||
@Override
|
@Override
|
||||||
public boolean canInsert( final ItemStack stack )
|
public boolean canInsert( final ItemStack stack )
|
||||||
{
|
{
|
||||||
final IAEItemStack out = this.destination.injectItems( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createStack( stack ),
|
final IAEItemStack out = this.destination.injectItems( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createStack( stack ), Actionable.SIMULATE, null );
|
||||||
Actionable.SIMULATE, null );
|
|
||||||
if( out == null )
|
if( out == null )
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
@@ -708,7 +714,7 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn
|
|||||||
this.pushItemsOut( this.iHost.getTargets() );
|
this.pushItemsOut( this.iHost.getTargets() );
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hasItemsToSendFacing())
|
if( hasItemsToSendFacing() )
|
||||||
{
|
{
|
||||||
for( EnumFacing enumFacing : waitingToSendFacing.keySet() )
|
for( EnumFacing enumFacing : waitingToSendFacing.keySet() )
|
||||||
{
|
{
|
||||||
@@ -731,7 +737,7 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn
|
|||||||
final World w = tile.getWorld();
|
final World w = tile.getWorld();
|
||||||
|
|
||||||
final Iterator<ItemStack> i = this.waitingToSend.iterator();
|
final Iterator<ItemStack> i = this.waitingToSend.iterator();
|
||||||
while( i.hasNext() )
|
while ( i.hasNext() )
|
||||||
{
|
{
|
||||||
ItemStack whatToSend = i.next();
|
ItemStack whatToSend = i.next();
|
||||||
|
|
||||||
@@ -778,8 +784,8 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn
|
|||||||
|
|
||||||
private void pushItemsOut( final EnumFacing s )
|
private void pushItemsOut( final EnumFacing s )
|
||||||
{
|
{
|
||||||
if (!this.waitingToSendFacing.containsKey(s) ||
|
if( !this.waitingToSendFacing.containsKey( s ) || ( this.waitingToSendFacing.containsKey( s ) && this.waitingToSendFacing.get( s ).isEmpty() ) )
|
||||||
(this.waitingToSendFacing.containsKey(s) && this.waitingToSendFacing.get( s ).isEmpty())) {
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -843,44 +849,7 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn
|
|||||||
this.destination = this.gridProxy.getStorage().getInventory( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) );
|
this.destination = this.gridProxy.getStorage().getInventory( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) );
|
||||||
final IEnergySource src = this.gridProxy.getEnergy();
|
final IEnergySource src = this.gridProxy.getEnergy();
|
||||||
|
|
||||||
if( this.craftingTracker.isBusy( x ) )
|
if( itemStack.getStackSize() < 0 )
|
||||||
{
|
|
||||||
changed = this.handleCrafting( x, adaptor, itemStack ) || changed;
|
|
||||||
}
|
|
||||||
else if( itemStack.getStackSize() > 0 )
|
|
||||||
{
|
|
||||||
// make sure strange things didn't happen...
|
|
||||||
ItemStack inputStack = itemStack.createItemStack();
|
|
||||||
if( !adaptor.simulateAdd( inputStack ).isEmpty() )
|
|
||||||
{
|
|
||||||
changed = true;
|
|
||||||
throw new GridAccessException();
|
|
||||||
}
|
|
||||||
|
|
||||||
IAEItemStack storedStack = this.gridProxy.getStorage().getInventory( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ).getStorageList().findPrecise( itemStack );
|
|
||||||
if( storedStack != null )
|
|
||||||
{
|
|
||||||
if( storedStack.getStackSize() > 0 )
|
|
||||||
{
|
|
||||||
final IAEItemStack acquired = Platform.poweredExtraction( src, this.destination, itemStack, this.interfaceRequestSource );
|
|
||||||
if( acquired != null )
|
|
||||||
{
|
|
||||||
changed = true;
|
|
||||||
inputStack.setCount( Ints.saturatedCast( acquired.getStackSize() ) );
|
|
||||||
final ItemStack issue = adaptor.addItems( inputStack );
|
|
||||||
if( !issue.isEmpty() )
|
|
||||||
{
|
|
||||||
throw new IllegalStateException( "bad attempt at managing inventory. ( addItems )" );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if( storedStack.isCraftable() )
|
|
||||||
{
|
|
||||||
changed = this.handleCrafting( x, adaptor, itemStack ) || changed;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if( itemStack.getStackSize() < 0 )
|
|
||||||
{
|
{
|
||||||
IAEItemStack toStore = itemStack.copy();
|
IAEItemStack toStore = itemStack.copy();
|
||||||
toStore.setStackSize( -toStore.getStackSize() );
|
toStore.setStackSize( -toStore.getStackSize() );
|
||||||
@@ -918,6 +887,44 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if( this.craftingTracker.isBusy( x ) )
|
||||||
|
{
|
||||||
|
changed = this.handleCrafting( x, adaptor, itemStack ) || changed;
|
||||||
|
}
|
||||||
|
else if( itemStack.getStackSize() > 0 )
|
||||||
|
{
|
||||||
|
// make sure strange things didn't happen...
|
||||||
|
ItemStack inputStack = itemStack.createItemStack();
|
||||||
|
if( !adaptor.simulateAdd( inputStack ).isEmpty() )
|
||||||
|
{
|
||||||
|
changed = true;
|
||||||
|
throw new GridAccessException();
|
||||||
|
}
|
||||||
|
|
||||||
|
IAEItemStack storedStack = this.gridProxy.getStorage().getInventory( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ).getStorageList().findPrecise( itemStack );
|
||||||
|
if( storedStack != null )
|
||||||
|
{
|
||||||
|
if( storedStack.getStackSize() > 0 )
|
||||||
|
{
|
||||||
|
final IAEItemStack acquired = Platform.poweredExtraction( src, this.destination, itemStack, this.interfaceRequestSource );
|
||||||
|
if( acquired != null )
|
||||||
|
{
|
||||||
|
changed = true;
|
||||||
|
inputStack.setCount( Ints.saturatedCast( acquired.getStackSize() ) );
|
||||||
|
final ItemStack issue = adaptor.addItems( inputStack );
|
||||||
|
if( !issue.isEmpty() )
|
||||||
|
{
|
||||||
|
throw new IllegalStateException( "bad attempt at managing inventory. ( addItems )" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if( storedStack.isCraftable() )
|
||||||
|
{
|
||||||
|
changed = this.handleCrafting( x, adaptor, itemStack ) || changed;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
// else wtf?
|
// else wtf?
|
||||||
}
|
}
|
||||||
catch( final GridAccessException e )
|
catch( final GridAccessException e )
|
||||||
@@ -945,13 +952,16 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn
|
|||||||
{
|
{
|
||||||
if( this.getInstalledUpgrades( Upgrades.CRAFTING ) > 0 && itemStack != null )
|
if( this.getInstalledUpgrades( Upgrades.CRAFTING ) > 0 && itemStack != null )
|
||||||
{
|
{
|
||||||
if (this.failedCraftTriesSlot[x] <= 0)
|
if( this.failedCraftTriesSlot[x] <= 0 )
|
||||||
{
|
{
|
||||||
boolean crafted = this.craftingTracker.handleCrafting( x, itemStack.getStackSize(), itemStack, d, this.iHost.getTileEntity().getWorld(),
|
boolean crafted = this.craftingTracker.handleCrafting( x, itemStack.getStackSize(), itemStack, d, this.iHost.getTileEntity().getWorld(), this.gridProxy.getGrid(), this.gridProxy.getCrafting(), this.mySource );
|
||||||
this.gridProxy.getGrid(), this.gridProxy.getCrafting(), this.mySource );
|
|
||||||
|
|
||||||
if (crafted) this.failedCraftTriesSlot[x] = 0;
|
if( crafted )
|
||||||
else{
|
{
|
||||||
|
this.failedCraftTriesSlot[x] = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
this.failedCraftTriesSlot[x] += 2;
|
this.failedCraftTriesSlot[x] += 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1095,7 +1105,7 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn
|
|||||||
|
|
||||||
private boolean invIsBlocked( InventoryAdaptor inv )
|
private boolean invIsBlocked( InventoryAdaptor inv )
|
||||||
{
|
{
|
||||||
return (inv.containsItems());
|
return ( inv.containsItems() );
|
||||||
}
|
}
|
||||||
|
|
||||||
private static boolean invIsBlockedGTCE( GTCEInventoryAdaptor inv )
|
private static boolean invIsBlockedGTCE( GTCEInventoryAdaptor inv )
|
||||||
@@ -1234,7 +1244,7 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn
|
|||||||
final InventoryAdaptor ad = InventoryAdaptor.getAdaptor( te, s.getOpposite() );
|
final InventoryAdaptor ad = InventoryAdaptor.getAdaptor( te, s.getOpposite() );
|
||||||
if( ad != null )
|
if( ad != null )
|
||||||
{
|
{
|
||||||
if( Loader.isModLoaded( "actuallyadditions") && Loader.isModLoaded( "gregtech" ) && te instanceof IPhantomTile )
|
if( Loader.isModLoaded( "actuallyadditions" ) && Loader.isModLoaded( "gregtech" ) && te instanceof IPhantomTile )
|
||||||
{
|
{
|
||||||
phantomTE = ( (IPhantomTile) te );
|
phantomTE = ( (IPhantomTile) te );
|
||||||
if( phantomTE.hasBoundPosition() )
|
if( phantomTE.hasBoundPosition() )
|
||||||
@@ -1269,7 +1279,7 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn
|
|||||||
return busy;
|
return busy;
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean isGTCEblocked(TileEntity te, EnumFacing s)
|
boolean isGTCEblocked( TileEntity te, EnumFacing s )
|
||||||
{
|
{
|
||||||
GTad = GTCEInventoryAdaptor.getAdaptor( te, s.getOpposite() );
|
GTad = GTCEInventoryAdaptor.getAdaptor( te, s.getOpposite() );
|
||||||
return invIsBlockedGTCE( GTad );
|
return invIsBlockedGTCE( GTad );
|
||||||
@@ -1332,13 +1342,13 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn
|
|||||||
|
|
||||||
if( this.waitingToSendFacing != null )
|
if( this.waitingToSendFacing != null )
|
||||||
{
|
{
|
||||||
for (List<ItemStack> itemList : waitingToSendFacing.values())
|
for( List<ItemStack> itemList : waitingToSendFacing.values() )
|
||||||
{
|
{
|
||||||
for (final ItemStack is : itemList)
|
for( final ItemStack is : itemList )
|
||||||
{
|
{
|
||||||
if (!is.isEmpty())
|
if( !is.isEmpty() )
|
||||||
{
|
{
|
||||||
drops.add(is);
|
drops.add( is );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1468,9 +1478,9 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn
|
|||||||
final Block directedBlock = directedBlockState.getBlock();
|
final Block directedBlock = directedBlockState.getBlock();
|
||||||
ItemStack what = new ItemStack( directedBlock, 1, directedBlock.getMetaFromState( directedBlockState ) );
|
ItemStack what = new ItemStack( directedBlock, 1, directedBlock.getMetaFromState( directedBlockState ) );
|
||||||
|
|
||||||
if ( Loader.isModLoaded("gregtech") && directedBlock instanceof BlockMachine )
|
if( Loader.isModLoaded( "gregtech" ) && directedBlock instanceof BlockMachine )
|
||||||
{
|
{
|
||||||
MetaTileEntity metaTileEntity = getMetaTileEntity(hostWorld, targ);
|
MetaTileEntity metaTileEntity = getMetaTileEntity( hostWorld, targ );
|
||||||
return metaTileEntity.getMetaFullName();
|
return metaTileEntity.getMetaFullName();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user