extra null check
This commit is contained in:
+1
-1
@@ -3,7 +3,7 @@ aechannel=stable
|
|||||||
aebuild=7
|
aebuild=7
|
||||||
aegroup=appeng
|
aegroup=appeng
|
||||||
aebasename=appliedenergistics2
|
aebasename=appliedenergistics2
|
||||||
trousers=omni-fixes-v47
|
trousers=omni-fixes-v47b
|
||||||
|
|
||||||
#########################################################
|
#########################################################
|
||||||
# Versions #
|
# Versions #
|
||||||
|
|||||||
+51
-41
@@ -161,34 +161,33 @@ public class EnergyGridCache implements IEnergyGrid
|
|||||||
{
|
{
|
||||||
if( ev.storage.isAEPublicPowerStorage() )
|
if( ev.storage.isAEPublicPowerStorage() )
|
||||||
{
|
{
|
||||||
switch ( ev.type )
|
if( ev.type == PowerEventType.PROVIDE_POWER )
|
||||||
{
|
{
|
||||||
case PROVIDE_POWER:
|
if( ev.storage.getPowerFlow() != AccessRestriction.WRITE )
|
||||||
if( ev.storage.getPowerFlow() != AccessRestriction.WRITE )
|
{
|
||||||
|
if( !ongoingExtractOperation )
|
||||||
{
|
{
|
||||||
if( !ongoingExtractOperation )
|
addProvider( ev.storage );
|
||||||
{
|
|
||||||
addProvider( ev.storage );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
this.providersToAdd.add( ev.storage );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
else
|
||||||
case REQUEST_POWER:
|
|
||||||
if( ev.storage.getPowerFlow() != AccessRestriction.READ )
|
|
||||||
{
|
{
|
||||||
if( !ongoingInjectOperation )
|
this.providersToAdd.add( ev.storage );
|
||||||
{
|
|
||||||
addRequester( ev.storage );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
this.requesterToAdd.add( ev.storage );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
}
|
||||||
|
}
|
||||||
|
else if( ev.type == PowerEventType.REQUEST_POWER )
|
||||||
|
{
|
||||||
|
if( ev.storage.getPowerFlow() != AccessRestriction.READ )
|
||||||
|
{
|
||||||
|
if( !ongoingInjectOperation )
|
||||||
|
{
|
||||||
|
addRequester( ev.storage );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this.requesterToAdd.add( ev.storage );
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -335,6 +334,8 @@ public class EnergyGridCache implements IEnergyGrid
|
|||||||
|
|
||||||
this.providers.addAll( providersToAdd );
|
this.providers.addAll( providersToAdd );
|
||||||
providersToAdd.clear();
|
providersToAdd.clear();
|
||||||
|
providers.removeIf( providerToRemove::contains );
|
||||||
|
this.providerToRemove.clear();
|
||||||
|
|
||||||
final Iterator<IAEPowerStorage> it = this.providers.iterator();
|
final Iterator<IAEPowerStorage> it = this.providers.iterator();
|
||||||
|
|
||||||
@@ -345,18 +346,24 @@ public class EnergyGridCache implements IEnergyGrid
|
|||||||
while ( extractedPower < amt && it.hasNext() )
|
while ( extractedPower < amt && it.hasNext() )
|
||||||
{
|
{
|
||||||
final IAEPowerStorage node = it.next();
|
final IAEPowerStorage node = it.next();
|
||||||
|
if( node != null )
|
||||||
if( node == localStorage && mode == Actionable.MODULATE )
|
|
||||||
{
|
{
|
||||||
ls = true;
|
if( node == localStorage && mode == Actionable.MODULATE )
|
||||||
continue;
|
{
|
||||||
|
ls = true;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
final double req = amt - extractedPower;
|
||||||
|
final double newPower = node.extractAEPower( req, mode, PowerMultiplier.ONE );
|
||||||
|
extractedPower += newPower;
|
||||||
|
|
||||||
|
if( newPower < req && mode == Actionable.MODULATE )
|
||||||
|
{
|
||||||
|
it.remove();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
final double req = amt - extractedPower;
|
|
||||||
final double newPower = node.extractAEPower( req, mode, PowerMultiplier.ONE );
|
|
||||||
extractedPower += newPower;
|
|
||||||
|
|
||||||
if( newPower < req && mode == Actionable.MODULATE )
|
|
||||||
{
|
{
|
||||||
it.remove();
|
it.remove();
|
||||||
}
|
}
|
||||||
@@ -378,9 +385,6 @@ public class EnergyGridCache implements IEnergyGrid
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
providers.removeIf( p -> providerToRemove.contains( p ) );
|
|
||||||
this.providerToRemove.clear();
|
|
||||||
|
|
||||||
final double result = Math.min( extractedPower, amt );
|
final double result = Math.min( extractedPower, amt );
|
||||||
|
|
||||||
if( mode == Actionable.MODULATE )
|
if( mode == Actionable.MODULATE )
|
||||||
@@ -404,6 +408,8 @@ public class EnergyGridCache implements IEnergyGrid
|
|||||||
|
|
||||||
this.requesters.addAll( requesterToAdd );
|
this.requesters.addAll( requesterToAdd );
|
||||||
requesterToAdd.clear();
|
requesterToAdd.clear();
|
||||||
|
requesters.removeIf( requesterToRemove::contains );
|
||||||
|
this.requesterToRemove.clear();
|
||||||
|
|
||||||
final Iterator<IAEPowerStorage> it = this.requesters.iterator();
|
final Iterator<IAEPowerStorage> it = this.requesters.iterator();
|
||||||
|
|
||||||
@@ -414,9 +420,16 @@ public class EnergyGridCache implements IEnergyGrid
|
|||||||
{
|
{
|
||||||
final IAEPowerStorage node = it.next();
|
final IAEPowerStorage node = it.next();
|
||||||
|
|
||||||
amt = node.injectAEPower( amt, mode );
|
if( node != null )
|
||||||
|
{
|
||||||
|
amt = node.injectAEPower( amt, mode );
|
||||||
|
|
||||||
if( amt > 0 && mode == Actionable.MODULATE )
|
if( amt > 0 && mode == Actionable.MODULATE )
|
||||||
|
{
|
||||||
|
it.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
it.remove();
|
it.remove();
|
||||||
}
|
}
|
||||||
@@ -426,9 +439,6 @@ public class EnergyGridCache implements IEnergyGrid
|
|||||||
ongoingInjectOperation = false;
|
ongoingInjectOperation = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
requesters.removeIf( r -> requesterToRemove.contains( r ) );
|
|
||||||
this.requesterToRemove.clear();
|
|
||||||
|
|
||||||
final double overflow = Math.max( 0.0, amt );
|
final double overflow = Math.max( 0.0, amt );
|
||||||
|
|
||||||
if( mode == Actionable.MODULATE )
|
if( mode == Actionable.MODULATE )
|
||||||
|
|||||||
Reference in New Issue
Block a user