This commit is contained in:
AlgorithmX2 2014-06-02 01:44:48 -05:00
commit 584782ec6e
2 changed files with 30 additions and 4 deletions

View file

@ -367,6 +367,13 @@ public class DualityInterface implements IGridTickable, ISegmentedInventory, ISt
if ( itemStack.getStackSize() > 0 )
{
// make sure strange things didn't happen...
if ( adaptor.simulateAdd( itemStack.getItemStack() ) != null )
{
changed = true;
throw new GridAccessException();
}
IAEItemStack aquired = Platform.poweredExtraction( src, destination, itemStack, mySrc );
if ( aquired != null )
{
@ -383,6 +390,14 @@ public class DualityInterface implements IGridTickable, ISegmentedInventory, ISt
long diff = toStore.getStackSize();
// make sure strange things didn't happen...
ItemStack canExtract = adaptor.simulateRemove( (int) diff, toStore.getItemStack(), null );
if ( canExtract == null || canExtract.stackSize != diff )
{
changed = true;
throw new GridAccessException();
}
toStore = Platform.poweredInsert( src, destination, toStore, mySrc );
if ( toStore != null )
@ -394,9 +409,9 @@ public class DualityInterface implements IGridTickable, ISegmentedInventory, ISt
changed = true;
ItemStack removed = adaptor.removeItems( (int) diff, null, null );
if ( removed == null )
throw new RuntimeException( "bad attempt at managing inventory. ( addItems )" );
throw new RuntimeException( "bad attempt at managing inventory. ( removeItems )" );
else if ( removed.stackSize != diff )
throw new RuntimeException( "bad attempt at managing inventory. ( addItems )" );
throw new RuntimeException( "bad attempt at managing inventory. ( removeItems )" );
}
}
// else wtf?

View file

@ -21,10 +21,21 @@ public abstract class RedstoneFlux extends RotaryCraft implements IEnergyHandler
}
else
{
double overFlow = injectExternalPower( PowerUnits.RF, maxReceive );
int demand = (int) Math.floor( getExternalPowerDemand( PowerUnits.RF ) );
int ignored = 0;
int insertAmt = maxReceive;
if ( insertAmt > demand )
{
ignored = insertAmt - demand;
insertAmt = demand;
}
double overFlow = injectExternalPower( PowerUnits.RF, insertAmt );
double ox = Math.floor( overFlow );
internalCurrentPower += PowerUnits.RF.convertTo( PowerUnits.AE, overFlow - ox );
return maxReceive - (int) ox;
return maxReceive - ((int) ox + ignored);
}
}