yet another try at fixing power issues

This commit is contained in:
Salomão
2021-09-05 14:39:09 -03:00
committed by PrototypeTrousers
parent d229570495
commit 059f20d801
2 changed files with 16 additions and 37 deletions
+15 -36
View File
@@ -191,10 +191,6 @@ public class EnergyGridCache implements IEnergyGrid
@Override
public void onUpdateTick()
{
if( localStorage.stored < MAX_BUFFER_STORAGE - 0.001 )
{
this.myGrid.postEvent( new MENetworkPowerStorage( localStorage, PowerEventType.REQUEST_POWER ) );
}
if( !this.interests.isEmpty() )
{
final double oldPower = this.lastStoredPower;
@@ -329,11 +325,7 @@ public class EnergyGridCache implements IEnergyGrid
double extractedPower = 0;
providersToAdd.forEach( provider -> {
if( provider instanceof GridPowerStorage )
{
providers.put( 1, provider );
}
else
if( provider != localStorage )
{
providers.put( 0, provider );
}
@@ -355,17 +347,14 @@ public class EnergyGridCache implements IEnergyGrid
if( newPower < req && mode == Actionable.MODULATE )
{
it.remove();
if (node != localStorage)
it.remove();
}
}
} finally
{
providersToRemove.forEach( provider -> {
if( provider instanceof GridPowerStorage )
{
providers.remove( 1, provider );
}
else
if( provider != localStorage )
{
providers.remove( 0, provider );
}
@@ -396,11 +385,7 @@ public class EnergyGridCache implements IEnergyGrid
final double originalAmount = amt;
requestersToAdd.forEach( requester -> {
if( requester instanceof GridPowerStorage )
{
requesters.put( 0, requester );
}
else
if( requester != localStorage )
{
requesters.put( 1, requester );
}
@@ -420,17 +405,14 @@ public class EnergyGridCache implements IEnergyGrid
if( amt > 0 && mode == Actionable.MODULATE )
{
it.remove();
if( node != localStorage )
it.remove();
}
}
} finally
{
requestersToRemove.forEach( requester -> {
if( requester instanceof GridPowerStorage )
{
requesters.remove( 0, requester );
}
else
if( requester != localStorage )
{
requesters.remove( 1, requester );
}
@@ -636,11 +618,7 @@ public class EnergyGridCache implements IEnergyGrid
private void removeRequester(IAEPowerStorage requester) {
Preconditions.checkState(!ongoingInjectOperation,
"Cannot modify energy requesters while energy is being injected.");
if( requester instanceof GridPowerStorage )
{
requesters.remove( 0, requester );
}
else
if( requester != localStorage )
{
requesters.remove( 1, requester );
}
@@ -662,11 +640,7 @@ public class EnergyGridCache implements IEnergyGrid
private void removeProvider(IAEPowerStorage provider)
{
Preconditions.checkState( !ongoingExtractOperation, "Cannot modify energy providers while energy is being extracted." );
if( provider instanceof GridPowerStorage )
{
providers.remove( 1, provider );
}
else
if( provider != localStorage )
{
providers.remove( 0, provider );
}
@@ -837,6 +811,11 @@ public class EnergyGridCache implements IEnergyGrid
{
this.stored -= amount;
if( stored < MAX_BUFFER_STORAGE - 0.001 )
{
EnergyGridCache.this.myGrid.postEvent( new MENetworkPowerStorage( this, PowerEventType.REQUEST_POWER ) );
}
if( this.stored < 0.01 )
{
EnergyGridCache.this.ticksSinceHasPowerChange = 0;