// Turn energy (at atmos tick rate) into wattage.
var power = electricalEnergy / args.dt;
+
// Add ramp factor. This magics slight power into existence, but allows us to ramp up.
- supplier.MaxSupply = power * component.RampFactor;
+ // Also apply an exponential moving average to smooth out fluttering, as it was causing
+ // seizures.
+ supplier.MaxSupply = component.PowerSmoothingFactor * (power * component.RampFactor) +
+ (1 - component.PowerSmoothingFactor) * supplier.MaxSupply;
var circAComp = Comp<TegCirculatorComponent>(circA);
var circBComp = Comp<TegCirculatorComponent>(circB);