public override void OnStart(PartModule.StartState state) { _initializationCountdown = 10; Debug.Log("[KSPI] - Start Initializing ElectricEngineControllerFX"); try { // initialise resources this.resources_to_supply = new [] { ResourceManager.FNRESOURCE_WASTEHEAT }; base.OnStart(state); AttachToEngine(); _ispFloatCurve = new FloatCurve(); _ispFloatCurve.Add(0, baseISP); _g0 = PluginHelper.GravityConstant; _speedOfLight = GameConstants.speedOfLight * PluginHelper.SpeedOfLightMult; _hasGearTechnology = String.IsNullOrEmpty(gearsTechReq) || PluginHelper.UpgradeAvailable(gearsTechReq); _modifiedEngineBaseIsp = baseISP * PluginHelper.ElectricEngineIspMult; _hasrequiredupgrade = this.HasTechsRequiredToUpgrade(); if (_hasrequiredupgrade && (isupgraded || state == StartState.Editor)) { upgradePartModule(); } UpdateEngineTypeString(); resourceBuffers = new ResourceBuffers(); resourceBuffers.AddConfiguration(new ResourceBuffers.TimeBasedConfig(ResourceManager.FNRESOURCE_WASTEHEAT, wasteHeatMultiplier, 2.0e+4, true)); resourceBuffers.UpdateVariable(ResourceManager.FNRESOURCE_WASTEHEAT, this.part.mass); resourceBuffers.Init(this.part); // initialize propellant _propellants = ElectricEnginePropellant.GetPropellantsEngineForType(type); SetupPropellants(true); } catch (Exception e) { Debug.LogError("[KSPI] - Error OnStart ElectricEngineControllerFX " + e.Message); } Debug.Log("[KSPI] - End Initializing ElectricEngineControllerFX"); }
private void DetermineTechLevel() { numberOfAvailableUpgradeTechs = 0; if (PluginHelper.UpgradeAvailable(upgradeTechReq1)) { numberOfAvailableUpgradeTechs++; } if (PluginHelper.UpgradeAvailable(upgradeTechReq2)) { numberOfAvailableUpgradeTechs++; } if (PluginHelper.UpgradeAvailable(upgradeTechReq3)) { numberOfAvailableUpgradeTechs++; } if (PluginHelper.UpgradeAvailable(upgradeTechReq4)) { numberOfAvailableUpgradeTechs++; } if (PluginHelper.UpgradeAvailable(upgradeTechReq5)) { numberOfAvailableUpgradeTechs++; } if (PluginHelper.UpgradeAvailable(upgradeTechReq6)) { numberOfAvailableUpgradeTechs++; } if (PluginHelper.UpgradeAvailable(upgradeTechReq7)) { numberOfAvailableUpgradeTechs++; } if (PluginHelper.UpgradeAvailable(upgradeTechReq8)) { numberOfAvailableUpgradeTechs++; } EngineGenerationType = (GenerationType)numberOfAvailableUpgradeTechs; }
protected void DetermineTechLevel() { var numberOfUpgradeTechs = 0; if (PluginHelper.UpgradeAvailable(upgradeTechReq1)) { numberOfUpgradeTechs++; } if (PluginHelper.UpgradeAvailable(upgradeTechReq2)) { numberOfUpgradeTechs++; } if (PluginHelper.UpgradeAvailable(upgradeTechReq3)) { numberOfUpgradeTechs++; } if (PluginHelper.UpgradeAvailable(upgradeTechReq4)) { numberOfUpgradeTechs++; } EngineGenerationType = (GenerationType)numberOfUpgradeTechs; }
private RadiatorManager(FNRadiator radiator) { UpdatingRadiator = radiator; // determine number of upgrade techs NrAvailableUpgradeTechs = 1; if (PluginHelper.UpgradeAvailable(PluginHelper.RadiatorUpgradeTech4)) { NrAvailableUpgradeTechs++; } if (PluginHelper.UpgradeAvailable(PluginHelper.RadiatorUpgradeTech3)) { NrAvailableUpgradeTechs++; } if (PluginHelper.UpgradeAvailable(PluginHelper.RadiatorUpgradeTech2)) { NrAvailableUpgradeTechs++; } if (PluginHelper.UpgradeAvailable(PluginHelper.RadiatorUpgradeTech1)) { NrAvailableUpgradeTechs++; } // determine fusion tech levels if (NrAvailableUpgradeTechs == 5) { CurrentGenerationType = GenerationType.Mk5; } else if (NrAvailableUpgradeTechs == 4) { CurrentGenerationType = GenerationType.Mk4; } else if (NrAvailableUpgradeTechs == 3) { CurrentGenerationType = GenerationType.Mk3; } else if (NrAvailableUpgradeTechs == 2) { CurrentGenerationType = GenerationType.Mk2; } else { CurrentGenerationType = GenerationType.Mk1; } MaxVacuumTemperatureTitanium = PluginHelper.RadiatorTemperatureMk3; if (CurrentGenerationType == GenerationType.Mk5) { MaxVacuumTemperatureGraphene = PluginHelper.RadiatorTemperatureMk5; } else if (CurrentGenerationType == GenerationType.Mk4) { MaxVacuumTemperatureGraphene = PluginHelper.RadiatorTemperatureMk4; } else if (CurrentGenerationType == GenerationType.Mk3) { MaxVacuumTemperatureTitanium = MaxVacuumTemperatureGraphene = PluginHelper.RadiatorTemperatureMk3; } else if (CurrentGenerationType == GenerationType.Mk2) { MaxVacuumTemperatureTitanium = MaxVacuumTemperatureGraphene = PluginHelper.RadiatorTemperatureMk2; } else { MaxVacuumTemperatureTitanium = MaxVacuumTemperatureGraphene = PluginHelper.RadiatorTemperatureMk1; } }
public override void OnStart(PartModule.StartState state) { try { Debug.Log("[KSPI]: Start ElectricEngineControllerFX"); if (state != StartState.Editor) { if (vessel.FindPartModulesImplementing <FNGenerator>().Where(m => m.isHighPower).Any() == false) { if (powerThrustMultiplier == 1 && powerThrustMultiplierWithoutReactors > 0) { powerThrustMultiplier = powerThrustMultiplierWithoutReactors; } if (powerReqMult == 1 && powerReqMultWithoutReactor > 0) { powerReqMult = powerReqMultWithoutReactor; } } } ScaleParameters(); // initialise resources this.resources_to_supply = new[] { ResourceManager.FNRESOURCE_WASTEHEAT }; base.OnStart(state); AttachToEngine(); DetermineTechLevel(); powerCapacityModifier = PowerCapacityModifier; _initializationCountdown = 10; _ispFloatCurve = new FloatCurve(); _ispFloatCurve.Add(0, (float)baseISP); _speedOfLight = GameConstants.speedOfLight * PluginHelper.SpeedOfLightMult; _hasGearTechnology = String.IsNullOrEmpty(gearsTechReq) || PluginHelper.UpgradeAvailable(gearsTechReq); _modifiedEngineBaseIsp = baseISP * PluginHelper.ElectricEngineIspMult; _hasrequiredupgrade = this.HasTechsRequiredToUpgrade(); if (_hasrequiredupgrade && (isupgraded || state == StartState.Editor)) { upgradePartModule(); } UpdateEngineTypeString(); resourceBuffers = new ResourceBuffers(); resourceBuffers.AddConfiguration(new ResourceBuffers.TimeBasedConfig(ResourceManager.FNRESOURCE_WASTEHEAT, wasteHeatMultiplier, 2.0e+4, true)); resourceBuffers.UpdateVariable(ResourceManager.FNRESOURCE_WASTEHEAT, (double)(decimal)this.part.mass); resourceBuffers.Init(this.part); InitializePropellantMode(); SetupPropellants(true); _attachedEngine.maxThrust = (float)maxThrustFromPower; } catch (Exception e) { Debug.LogError("[KSPI]: Error OnStart ElectricEngineControllerFX " + e.Message); } Debug.Log("[KSPI]: End Initializing ElectricEngineControllerFX"); }
public static bool HasTechsRequiredToUpgrade(this IUpgradeableModule upg_module) { return(PluginHelper.UpgradeAvailable(upg_module.UpgradeTechnology)); }
private void InitializeEfficiency() { if (chargedParticleMode && efficiencyMk1 == 0) { efficiencyMk1 = directConversionEff; } else if (!chargedParticleMode && efficiencyMk1 == 0) { efficiencyMk1 = pCarnotEff; } if (chargedParticleMode && efficiencyMk2 == 0) { efficiencyMk2 = upgradedDirectConversionEff; } else if (!chargedParticleMode && efficiencyMk2 == 0) { efficiencyMk2 = upgradedpCarnotEff; } if (efficiencyMk3 == 0) { efficiencyMk3 = efficiencyMk2; } if (efficiencyMk4 == 0) { efficiencyMk4 = efficiencyMk3; } if (efficiencyMk5 == 0) { efficiencyMk5 = efficiencyMk4; } if (efficiencyMk6 == 0) { efficiencyMk6 = efficiencyMk5; } if (String.IsNullOrEmpty(Mk2TechReq)) { Mk2TechReq = upgradeTechReq; } int techLevel = 1; if (PluginHelper.UpgradeAvailable(Mk6TechReq)) { techLevel++; } if (PluginHelper.UpgradeAvailable(Mk5TechReq)) { techLevel++; } if (PluginHelper.UpgradeAvailable(Mk4TechReq)) { techLevel++; } if (PluginHelper.UpgradeAvailable(Mk3TechReq)) { techLevel++; } if (PluginHelper.UpgradeAvailable(Mk2TechReq)) { techLevel++; } if (techLevel == 6) { maxEfficiency = efficiencyMk6; } else if (techLevel == 5) { maxEfficiency = efficiencyMk5; } else if (techLevel == 4) { maxEfficiency = efficiencyMk4; } else if (techLevel == 3) { maxEfficiency = efficiencyMk3; } else if (techLevel == 2) { maxEfficiency = efficiencyMk2; } else { maxEfficiency = efficiencyMk1; } }