public override void OnUpdate() { Events["BeginResearch"].active = !IsEnabled; Events["ReprocessFuel"].active = !IsEnabled; Events["ActivateFactory"].active = !IsEnabled; Events["ActivateElectrolysis"].active = false; Events["ActivateCentrifuge"].active = !IsEnabled && vessel.Splashed; Events["StopActivity"].active = IsEnabled; if (IsEnabled) { //anim [animName1].normalizedTime = 1f; statusTitle = modes[active_mode] + "..."; Fields["scienceRate"].guiActive = false; Fields["reprocessingRate"].guiActive = false; Fields["antimatterRate"].guiActive = false; Fields["electrolysisRate"].guiActive = false; Fields["centrifugeRate"].guiActive = false; Fields["antimatterProductionEfficiency"].guiActive = false; Fields["powerStr"].guiActive = true; double currentpowertmp = electrical_power_ratio * GameConstants.basePowerConsumption; powerStr = currentpowertmp.ToString("0.00") + "MW / " + GameConstants.basePowerConsumption.ToString("0.00") + "MW"; if (active_mode == 0) // Research { Fields["scienceRate"].guiActive = true; float scienceratetmp = science_rate_f * 86400; scienceRate = scienceratetmp.ToString("0.000") + "/Day"; } else if (active_mode == 1) // Fuel Reprocessing { Fields["reprocessingRate"].guiActive = true; float reprocessratetmp = reprocessing_rate_f; reprocessingRate = reprocessratetmp.ToString("0.0") + " Hours Remaining"; } else if (active_mode == 2) // Antimatter { currentpowertmp = electrical_power_ratio * GameConstants.baseAMFPowerConsumption; Fields["antimatterRate"].guiActive = true; Fields["antimatterProductionEfficiency"].guiActive = true; powerStr = currentpowertmp.ToString("0.00") + "MW / " + GameConstants.baseAMFPowerConsumption.ToString("0.00") + "MW"; antimatterProductionEfficiency = (anti_factory.getAntimatterProductionEfficiency() * 100).ToString("0.000") + "%"; double antimatter_rate_per_day = antimatter_rate_f * 86400; if (antimatter_rate_per_day > 0.1) { antimatterRate = (antimatter_rate_per_day).ToString("0.000") + " mg/day"; } else { if (antimatter_rate_per_day > 0.1e-3) { antimatterRate = (antimatter_rate_per_day * 1e3).ToString("0.000") + " ug/day"; } else { antimatterRate = (antimatter_rate_per_day * 1e6).ToString("0.000") + " ng/day"; } } } else if (active_mode == 3) // Electrolysis { currentpowertmp = electrical_power_ratio * GameConstants.baseELCPowerConsumption; Fields["electrolysisRate"].guiActive = true; float electrolysisratetmp = -electrolysis_rate_f * 86400; electrolysisRate = electrolysisratetmp.ToString("0.0") + "mT/day"; powerStr = currentpowertmp.ToString("0.00") + "MW / " + GameConstants.baseELCPowerConsumption.ToString("0.00") + "MW"; } else if (active_mode == 4) // Centrifuge { currentpowertmp = electrical_power_ratio * GameConstants.baseCentriPowerConsumption; Fields["centrifugeRate"].guiActive = true; powerStr = currentpowertmp.ToString("0.00") + "MW / " + GameConstants.baseCentriPowerConsumption.ToString("0.00") + "MW"; float deut_per_hour = deut_rate_f * 3600; centrifugeRate = deut_per_hour.ToString("0.00") + " Kg Deuterium/Hour"; } else { } } else { if (play_down) { anim[animName1].speed = -1f; anim[animName1].normalizedTime = 1f; anim.Blend(animName1, 2f); anim2[animName2].speed = -1f; anim2[animName2].normalizedTime = 1f; anim2.Blend(animName2, 2f); play_down = false; } //anim [animName1].normalizedTime = 0f; Fields["scienceRate"].guiActive = false; Fields["reprocessingRate"].guiActive = false; Fields["antimatterRate"].guiActive = false; Fields["powerStr"].guiActive = false; Fields["centrifugeRate"].guiActive = false; Fields["electrolysisRate"].guiActive = false; Fields["antimatterProductionEfficiency"].guiActive = false; if (crew_capacity_ratio > 0) { statusTitle = "Idle"; } else { statusTitle = "Not enough crew"; } } }
public override void OnUpdate() { base.OnUpdate(); Events["BeginResearch"].active = isupgraded && !IsEnabled; Events["ReprocessFuel"].active = isupgraded && !IsEnabled; Events["ActivateFactory"].active = isupgraded && !IsEnabled; Events["ActivateElectrolysis"].active = false; Events["ActivateCentrifuge"].active = isupgraded && !IsEnabled && vessel.Splashed; Events["StopActivity"].active = isupgraded && IsEnabled; Fields["statusTitle"].guiActive = isupgraded; // only show retrofit btoon if we can actualy upgrade Events["RetrofitEngine"].active = ResearchAndDevelopment.Instance == null ? false : !isupgraded && ResearchAndDevelopment.Instance.Science >= upgradeCost && hasrequiredupgrade; if (IsEnabled) { //anim [animName1].normalizedTime = 1f; statusTitle = modes[active_mode] + "..."; Fields["scienceRate"].guiActive = false; Fields["collectedScience"].guiActive = false; Fields["reprocessingRate"].guiActive = false; Fields["antimatterRate"].guiActive = false; Fields["electrolysisRate"].guiActive = false; Fields["centrifugeRate"].guiActive = false; Fields["antimatterProductionEfficiency"].guiActive = false; Fields["powerStr"].guiActive = true; double currentpowertmp = electrical_power_ratio * PluginHelper.BasePowerConsumption * powerReqMult; powerStr = currentpowertmp.ToString("0.0000") + "MW / " + (powerReqMult * PluginHelper.BasePowerConsumption).ToString("0.0000") + "MW"; if (active_mode == 0) // Research { Fields["scienceRate"].guiActive = true; Fields["collectedScience"].guiActive = true; double scienceratetmp = science_rate_f * GameConstants.EARH_DAY_SECONDS; scienceRate = scienceratetmp.ToString("0.0000") + "/Day"; collectedScience = science_to_add.ToString("0.000000"); } else if (active_mode == 1) // Fuel Reprocessing { Fields["reprocessingRate"].guiActive = true; reprocessingRate = reprocessing_rate_f.ToString("0.0") + " Hours Remaining"; } else if (active_mode == 2) // Antimatter { currentpowertmp = electrical_power_ratio * PluginHelper.BaseAMFPowerConsumption * powerReqMult; Fields["antimatterRate"].guiActive = true; Fields["antimatterProductionEfficiency"].guiActive = true; powerStr = currentpowertmp.ToString("0.00") + "MW / " + (powerReqMult * PluginHelper.BaseAMFPowerConsumption).ToString("0.00") + "MW"; antimatterProductionEfficiency = (anti_factory.getAntimatterProductionEfficiency() * 100).ToString("0.0000") + "%"; double antimatter_rate_per_day = antimatter_rate_f * GameConstants.EARH_DAY_SECONDS; if (antimatter_rate_per_day > 0.1) { antimatterRate = (antimatter_rate_per_day).ToString("0.0000") + " mg/day"; } else { if (antimatter_rate_per_day > 0.1e-3) { antimatterRate = (antimatter_rate_per_day * 1e3).ToString("0.0000") + " ug/day"; } else { antimatterRate = (antimatter_rate_per_day * 1e6).ToString("0.0000") + " ng/day"; } } } else if (active_mode == 3) // Electrolysis { currentpowertmp = electrical_power_ratio * PluginHelper.BaseELCPowerConsumption * powerReqMult; Fields["electrolysisRate"].guiActive = true; double electrolysisratetmp = -electrolysis_rate_f * GameConstants.EARH_DAY_SECONDS; electrolysisRate = electrolysisratetmp.ToString("0.0") + "mT/day"; powerStr = currentpowertmp.ToString("0.00") + "MW / " + (powerReqMult * PluginHelper.BaseELCPowerConsumption).ToString("0.00") + "MW"; } else if (active_mode == 4) // Centrifuge { currentpowertmp = electrical_power_ratio * PluginHelper.BaseCentriPowerConsumption * powerReqMult; Fields["centrifugeRate"].guiActive = true; powerStr = currentpowertmp.ToString("0.00") + "MW / " + (powerReqMult * PluginHelper.BaseCentriPowerConsumption).ToString("0.00") + "MW"; float deut_per_hour = deut_rate_f * 3600; centrifugeRate = deut_per_hour.ToString("0.00") + " Kg Deuterium/Hour"; } else { // nothing } } else { if (play_down) { anim[animName1].speed = -1f; anim[animName1].normalizedTime = 1f; anim.Blend(animName1, 2f); anim2[animName2].speed = -1f; anim2[animName2].normalizedTime = 1f; anim2.Blend(animName2, 2f); play_down = false; } //anim [animName1].normalizedTime = 0f; Fields["scienceRate"].guiActive = false; Fields["collectedScience"].guiActive = false; Fields["reprocessingRate"].guiActive = false; Fields["antimatterRate"].guiActive = false; Fields["powerStr"].guiActive = false; Fields["centrifugeRate"].guiActive = false; Fields["electrolysisRate"].guiActive = false; Fields["antimatterProductionEfficiency"].guiActive = false; if (crew_capacity_ratio > 0) { statusTitle = "Idle"; } else { statusTitle = "Not enough crew"; } } }