public override void OnFixedUpdateResourceSuppliable(double fixedDeltaTime) { if (_solarPanel == null) { return; } if (_fieldKerbalismNominalRate != null) { kerbalism_nominalRate = _fieldKerbalismNominalRate.GetValue <double>(_solarPanelFixer); kerbalism_panelState = _fieldKerbalismPanelStatus.GetValue <string>(_solarPanelFixer); var kerbalismPanelStateArray = kerbalism_panelState.Split(' '); kerbalism_panelOutput = kerbalismPanelStateArray[0]; double.TryParse(kerbalism_panelOutput, out kerbalism_panelPower); } if (_outputResource != null && _solarPanel.deployState == ModuleDeployablePart.DeployState.EXTENDED) { outputResourceRate = _outputResource.rate; outputResourceCurrentRequest = _outputResource.currentRequest; } else { outputResourceRate = 0; outputResourceCurrentRequest = 0; } if (_outputType == ResourceType.other) { return; } chargeRate = _solarPanel.chargeRate; double age = (Planetarium.GetUniversalTime() - _solarPanel.launchUT) * 1.15740740740741E-05; calculatedEfficency = _solarPanel._efficMult > 0 ? _solarPanel._efficMult : _solarPanel.temperatureEfficCurve.Evaluate((float)part.skinTemperature) * _solarPanel.timeEfficCurve.Evaluate((float)age) * _solarPanel.efficiencyMult; double maxSupply = 0.0, solarRate = 0.0; sunAOA = 0; CalculateSolarFlowRate(calculatedEfficency / scale, ref maxSupply, ref solarRate); _resourceBuffers?.UpdateBuffers(); if (_outputResource != null) { if (Kerbalism.IsLoaded) { //if (kerbalism_panelPower > 0) // part.RequestResource(_solarPanel.resourceName, kerbalism_panelPower * fixedDeltaTime); } else if (_outputResource != null) { _outputResource.rate = 0; } else { part.RequestResource(_solarPanel.resourceName, solarRate * fixedDeltaTime); } } // provide power to supply manager solar_supply = _outputType == ResourceType.megajoule ? solarRate : solarRate / GameConstants.ecPerMJ; solarMaxSupply = _outputType == ResourceType.megajoule ? maxSupply : maxSupply / GameConstants.ecPerMJ; if (!Kerbalism.IsLoaded) { mjSolarSupply = PluginHelper.GetFormattedPowerString(SupplyFnResourcePerSecondWithMax(solar_supply, solarMaxSupply, ResourceSettings.Config.ElectricPowerInMegawatt)); mjMaxSupply = PluginHelper.GetFormattedPowerString(solarMaxSupply); } }