Extended Avg for power to 40 ticks instead of 10, used better storage method as well.

This commit is contained in:
AlgorithmX2
2014-01-24 10:33:31 -06:00
parent cf8c931cb5
commit c2f27378d0
+46 -23
View File
@@ -35,8 +35,17 @@ public class EnergyGridCache implements IEnergyGrid
* idle draw. * idle draw.
*/ */
double drainPerTick = 0; double drainPerTick = 0;
Double[] totalDrainPastTicks = new Double[] { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
Double[] totalInjectionPastTicks = new Double[] { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; final double AvgLength = 40.0;
double avgDrainPerTick = 0;
double avgInjectionPerTick = 0;
double tickDrainPerTick = 0;
double tickInjectionPerTick = 0;
// Double[] totalDrainPastTicks = new Double[] { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
// Double[] totalInjectionPastTicks = new Double[] { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
/** /**
* power status * power status
@@ -154,6 +163,9 @@ public class EnergyGridCache implements IEnergyGrid
} }
else else
{ {
tickInjectionPerTick += i;
// totalInjectionPastTicks[0] += i;
while (i > 0 && !requesters.isEmpty()) while (i > 0 && !requesters.isEmpty())
{ {
IAEPowerStorage node = getFirstRequestor(); IAEPowerStorage node = getFirstRequestor();
@@ -167,7 +179,6 @@ public class EnergyGridCache implements IEnergyGrid
} }
extra = i; extra = i;
totalInjectionPastTicks[0] += i;
} }
return i; return i;
@@ -248,14 +259,23 @@ public class EnergyGridCache implements IEnergyGrid
@Override @Override
public void onUpdateTick(IGrid grid) public void onUpdateTick(IGrid grid)
{ {
// next tick is here... avgDrainPerTick *= (AvgLength - 1) / AvgLength;
for (int x = 0; x < totalDrainPastTicks.length - 1; x++) avgInjectionPerTick *= (AvgLength - 1) / AvgLength;
totalDrainPastTicks[x + 1] = totalDrainPastTicks[x];
totalDrainPastTicks[0] = 0.0;
for (int x = 0; x < totalInjectionPastTicks.length - 1; x++) avgDrainPerTick += tickDrainPerTick / AvgLength;
totalInjectionPastTicks[x + 1] = totalInjectionPastTicks[x]; avgInjectionPerTick += tickInjectionPerTick / AvgLength;
totalInjectionPastTicks[0] = 0.0;
tickDrainPerTick = 0;
tickInjectionPerTick = 0;
// next tick is here...
// for (int x = 0; x < totalDrainPastTicks.length - 1; x++)
// totalDrainPastTicks[x + 1] = totalDrainPastTicks[x];
// totalDrainPastTicks[0] = 0.0;
// for (int x = 0; x < totalInjectionPastTicks.length - 1; x++)
// totalInjectionPastTicks[x + 1] = totalInjectionPastTicks[x];
// totalInjectionPastTicks[0] = 0.0;
// power information. // power information.
double drained = extractAEPower( getIdlePowerUsage(), Actionable.MODULATE, PowerMultiplier.CONFIG ); double drained = extractAEPower( getIdlePowerUsage(), Actionable.MODULATE, PowerMultiplier.CONFIG );
@@ -366,7 +386,8 @@ public class EnergyGridCache implements IEnergyGrid
} }
} }
totalDrainPastTicks[0] += extractedPower; tickDrainPerTick += extractedPower;
// totalDrainPastTicks[0] += extractedPower;
return extractedPower; return extractedPower;
} }
@@ -401,23 +422,25 @@ public class EnergyGridCache implements IEnergyGrid
@Override @Override
public double getAvgPowerUsage() public double getAvgPowerUsage()
{ {
double out = 0; return avgDrainPerTick;/*
* double out = 0;
for (double x : totalDrainPastTicks) *
out += x; * for (double x : totalDrainPastTicks) out += x;
*
return out / totalDrainPastTicks.length; * return out / totalDrainPastTicks.length;
*/
} }
@Override @Override
public double getAvgPowerInjection() public double getAvgPowerInjection()
{ {
double out = 0; return avgInjectionPerTick;/*
* double out = 0;
for (double x : totalInjectionPastTicks) *
out += x; * for (double x : totalInjectionPastTicks) out += x;
*
return out / totalInjectionPastTicks.length; * return out / totalInjectionPastTicks.length;
*/
} }
@Override @Override