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
+1 -1
View File
@@ -3,7 +3,7 @@ aechannel=stable
aebuild=7 aebuild=7
aegroup=appeng aegroup=appeng
aebasename=appliedenergistics2 aebasename=appliedenergistics2
trousers=omni-fixes-v46p trousers=omni-fixes-v46q
######################################################### #########################################################
# Versions # # Versions #
+15 -36
View File
@@ -191,10 +191,6 @@ public class EnergyGridCache implements IEnergyGrid
@Override @Override
public void onUpdateTick() public void onUpdateTick()
{ {
if( localStorage.stored < MAX_BUFFER_STORAGE - 0.001 )
{
this.myGrid.postEvent( new MENetworkPowerStorage( localStorage, PowerEventType.REQUEST_POWER ) );
}
if( !this.interests.isEmpty() ) if( !this.interests.isEmpty() )
{ {
final double oldPower = this.lastStoredPower; final double oldPower = this.lastStoredPower;
@@ -329,11 +325,7 @@ public class EnergyGridCache implements IEnergyGrid
double extractedPower = 0; double extractedPower = 0;
providersToAdd.forEach( provider -> { providersToAdd.forEach( provider -> {
if( provider instanceof GridPowerStorage ) if( provider != localStorage )
{
providers.put( 1, provider );
}
else
{ {
providers.put( 0, provider ); providers.put( 0, provider );
} }
@@ -355,17 +347,14 @@ public class EnergyGridCache implements IEnergyGrid
if( newPower < req && mode == Actionable.MODULATE ) if( newPower < req && mode == Actionable.MODULATE )
{ {
it.remove(); if (node != localStorage)
it.remove();
} }
} }
} finally } finally
{ {
providersToRemove.forEach( provider -> { providersToRemove.forEach( provider -> {
if( provider instanceof GridPowerStorage ) if( provider != localStorage )
{
providers.remove( 1, provider );
}
else
{ {
providers.remove( 0, provider ); providers.remove( 0, provider );
} }
@@ -396,11 +385,7 @@ public class EnergyGridCache implements IEnergyGrid
final double originalAmount = amt; final double originalAmount = amt;
requestersToAdd.forEach( requester -> { requestersToAdd.forEach( requester -> {
if( requester instanceof GridPowerStorage ) if( requester != localStorage )
{
requesters.put( 0, requester );
}
else
{ {
requesters.put( 1, requester ); requesters.put( 1, requester );
} }
@@ -420,17 +405,14 @@ public class EnergyGridCache implements IEnergyGrid
if( amt > 0 && mode == Actionable.MODULATE ) if( amt > 0 && mode == Actionable.MODULATE )
{ {
it.remove(); if( node != localStorage )
it.remove();
} }
} }
} finally } finally
{ {
requestersToRemove.forEach( requester -> { requestersToRemove.forEach( requester -> {
if( requester instanceof GridPowerStorage ) if( requester != localStorage )
{
requesters.remove( 0, requester );
}
else
{ {
requesters.remove( 1, requester ); requesters.remove( 1, requester );
} }
@@ -636,11 +618,7 @@ public class EnergyGridCache implements IEnergyGrid
private void removeRequester(IAEPowerStorage requester) { private void removeRequester(IAEPowerStorage requester) {
Preconditions.checkState(!ongoingInjectOperation, Preconditions.checkState(!ongoingInjectOperation,
"Cannot modify energy requesters while energy is being injected."); "Cannot modify energy requesters while energy is being injected.");
if( requester instanceof GridPowerStorage ) if( requester != localStorage )
{
requesters.remove( 0, requester );
}
else
{ {
requesters.remove( 1, requester ); requesters.remove( 1, requester );
} }
@@ -662,11 +640,7 @@ public class EnergyGridCache implements IEnergyGrid
private void removeProvider(IAEPowerStorage provider) private void removeProvider(IAEPowerStorage provider)
{ {
Preconditions.checkState( !ongoingExtractOperation, "Cannot modify energy providers while energy is being extracted." ); Preconditions.checkState( !ongoingExtractOperation, "Cannot modify energy providers while energy is being extracted." );
if( provider instanceof GridPowerStorage ) if( provider != localStorage )
{
providers.remove( 1, provider );
}
else
{ {
providers.remove( 0, provider ); providers.remove( 0, provider );
} }
@@ -837,6 +811,11 @@ public class EnergyGridCache implements IEnergyGrid
{ {
this.stored -= amount; 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 ) if( this.stored < 0.01 )
{ {
EnergyGridCache.this.ticksSinceHasPowerChange = 0; EnergyGridCache.this.ticksSinceHasPowerChange = 0;