public override void OnStart(PartModule.StartState state) { Transform intakeTransform = part.FindModelTransform(intakeTransformName); if (intakeTransform == null) { Debug.Log("[KSPI] AtmosphericIntake unable to get intake transform for " + part.name); } //_intake_direction = intakeTransform != null ? intakeTransform.forward.normalized : Vector3.forward; _resourceAtmosphere = PartResourceLibrary.Instance.GetDefinition(InterstellarResourcesConfiguration.Instance.IntakeAtmosphere); // ToDo: connect with atmospheric intake to readout updated area // ToDo: change density of air to _intake_speed = maxIntakeSpeed; bool hasJetUpgradeTech0 = PluginHelper.HasTechRequirementOrEmpty(PluginHelper.JetUpgradeTech0); bool hasJetUpgradeTech1 = PluginHelper.HasTechRequirementOrEmpty(PluginHelper.JetUpgradeTech1); bool hasJetUpgradeTech2 = PluginHelper.HasTechRequirementOrEmpty(PluginHelper.JetUpgradeTech2); bool hasJetUpgradeTech3 = PluginHelper.HasTechRequirementOrEmpty(PluginHelper.JetUpgradeTech3); var jetTechBonus = Convert.ToInt32(hasJetUpgradeTech0) + 1.2f * Convert.ToInt32(hasJetUpgradeTech1) + 1.44f * Convert.ToInt32(hasJetUpgradeTech2) + 1.728f * Convert.ToInt32(hasJetUpgradeTech3); jetTechBonusPercentage = 1 + (jetTechBonus / 10.736f); }
public override void OnStart(PartModule.StartState state) { if (state == StartState.Editor) { return; // don't do any of this stuff in editor } _moduleResourceIntake = this.part.FindModuleImplementing <ModuleResourceIntake>(); if (_moduleResourceIntake == null) { return; } bool hasJetUpgradeTech0 = PluginHelper.HasTechRequirementOrEmpty(PluginHelper.JetUpgradeTech1); bool hasJetUpgradeTech1 = PluginHelper.HasTechRequirementOrEmpty(PluginHelper.JetUpgradeTech2); bool hasJetUpgradeTech2 = PluginHelper.HasTechRequirementOrEmpty(PluginHelper.JetUpgradeTech3); bool hasJetUpgradeTech3 = PluginHelper.HasTechRequirementOrEmpty(PluginHelper.JetUpgradeTech4); var jetTechBonus = Convert.ToInt32(hasJetUpgradeTech0) + 1.2f * Convert.ToInt32(hasJetUpgradeTech1) + 1.44f * Convert.ToInt32(hasJetUpgradeTech2) + 1.728f * Convert.ToInt32(hasJetUpgradeTech3); jetTechBonusPercentage = 10 * (1 + (jetTechBonus / 10.736f)); area = _moduleResourceIntake.area; intakeTransformName = _moduleResourceIntake.intakeTransformName; unitScalar = _moduleResourceIntake.unitScalar; resourceBuffers = new ResourceBuffers(); resourceBuffers.AddConfiguration( new ResourceBuffers.TimeBasedConfig(InterstellarResourcesConfiguration.Instance.IntakeAtmosphere, 300, area * unitScalar * jetTechBonusPercentage * maxIntakeSpeed)); resourceBuffers.Init(this.part); _resourceAtmosphere = PartResourceLibrary.Instance.GetDefinition(InterstellarResourcesConfiguration.Instance.IntakeAtmosphere); _intake_speed = maxIntakeSpeed; }
public override void OnStart(PartModule.StartState state) { if (state == StartState.Editor) { return; // don't do any of this stuff in editor } bool hasJetUpgradeTech0 = PluginHelper.HasTechRequirementOrEmpty(PluginHelper.JetUpgradeTech1); bool hasJetUpgradeTech1 = PluginHelper.HasTechRequirementOrEmpty(PluginHelper.JetUpgradeTech2); bool hasJetUpgradeTech2 = PluginHelper.HasTechRequirementOrEmpty(PluginHelper.JetUpgradeTech3); bool hasJetUpgradeTech3 = PluginHelper.HasTechRequirementOrEmpty(PluginHelper.JetUpgradeTech4); var jetTechBonus = Convert.ToInt32(hasJetUpgradeTech0) + 1.2f * Convert.ToInt32(hasJetUpgradeTech1) + 1.44f * Convert.ToInt32(hasJetUpgradeTech2) + 1.728f * Convert.ToInt32(hasJetUpgradeTech3); jetTechBonusPercentage = 10 * (1 + (jetTechBonus / 10.736f)); _moduleResourceIntake = this.part.FindModuleImplementing <ModuleResourceIntake>(); // if _moduleResourceIntake is null there SHOULD be an exception - and it's a good thing. area = _moduleResourceIntake.area; intakeTransformName = _moduleResourceIntake.intakeTransformName; unitScalar = _moduleResourceIntake.unitScalar; atmosphereBuffer = area * unitScalar * jetTechBonusPercentage * maxIntakeSpeed * 300; _intake_atmosphere_resource = part.Resources[InterstellarResourcesConfiguration.Instance.IntakeAtmosphere]; _resourceAtmosphere = PartResourceLibrary.Instance.GetDefinition(InterstellarResourcesConfiguration.Instance.IntakeAtmosphere); _intake_speed = maxIntakeSpeed; }
public override void OnStart(PartModule.StartState state) { if (state == StartState.Editor) { return; // don't do any of this stuff in editor } bool hasJetUpgradeTech0 = PluginHelper.HasTechRequirementOrEmpty(PluginHelper.JetUpgradeTech1); bool hasJetUpgradeTech1 = PluginHelper.HasTechRequirementOrEmpty(PluginHelper.JetUpgradeTech2); bool hasJetUpgradeTech2 = PluginHelper.HasTechRequirementOrEmpty(PluginHelper.JetUpgradeTech3); bool hasJetUpgradeTech3 = PluginHelper.HasTechRequirementOrEmpty(PluginHelper.JetUpgradeTech4); var jetTechBonus = Convert.ToInt32(hasJetUpgradeTech0) + 1.2f * Convert.ToInt32(hasJetUpgradeTech1) + 1.44f * Convert.ToInt32(hasJetUpgradeTech2) + 1.728f * Convert.ToInt32(hasJetUpgradeTech3); jetTechBonusPercentage = 10 * (1 + (jetTechBonus / 10.736f)); _moduleResourceIntake = this.part.FindModuleImplementing <ModuleResourceIntake>(); foundModuleResourceIntake = _moduleResourceIntake != null; atmosphereBuffer = area * unitScalar * jetTechBonusPercentage * maxIntakeSpeed * 300; if (!part.Resources.Contains(InterstellarResourcesConfiguration.Instance.IntakeAtmosphere)) { ConfigNode node = new ConfigNode("RESOURCE"); node.AddValue("name", InterstellarResourcesConfiguration.Instance.IntakeAtmosphere); node.AddValue("maxAmount", atmosphereBuffer); node.AddValue("amount", 0); part.AddResource(node); } _intake_atmosphere_resource = part.Resources[InterstellarResourcesConfiguration.Instance.IntakeAtmosphere]; _resourceAtmosphere = PartResourceLibrary.Instance.GetDefinition(InterstellarResourcesConfiguration.Instance.IntakeAtmosphere); _intake_speed = maxIntakeSpeed; }
public override void OnStart(PartModule.StartState state) { Debug.Log("[KSPI]: AtmosphericIntake OnStart Reading PluginHelper Upgrades"); JetUpgradeTech1 = PluginHelper.JetUpgradeTech1; JetUpgradeTech2 = PluginHelper.JetUpgradeTech2; JetUpgradeTech3 = PluginHelper.JetUpgradeTech3; JetUpgradeTech4 = PluginHelper.JetUpgradeTech4; JetUpgradeTech5 = PluginHelper.JetUpgradeTech5; hasJetUpgradeTech1 = PluginHelper.HasTechRequirementOrEmpty(PluginHelper.JetUpgradeTech1); hasJetUpgradeTech2 = PluginHelper.HasTechRequirementOrEmpty(PluginHelper.JetUpgradeTech2); hasJetUpgradeTech3 = PluginHelper.HasTechRequirementOrEmpty(PluginHelper.JetUpgradeTech3); hasJetUpgradeTech4 = PluginHelper.HasTechRequirementOrEmpty(PluginHelper.JetUpgradeTech4); hasJetUpgradeTech5 = PluginHelper.HasTechRequirementOrEmpty(PluginHelper.JetUpgradeTech5); var jetTech = Convert.ToInt32(hasJetUpgradeTech1) * 1.2f + 1.44f * Convert.ToInt32(hasJetUpgradeTech2) + 1.728f * Convert.ToInt32(hasJetUpgradeTech3) + 2.0736f * Convert.ToInt32(hasJetUpgradeTech4) + 2.48832f * Convert.ToInt32(hasJetUpgradeTech5); jetTechBonus = 5 * (1 + (jetTech / 9.92992f)); _moduleResourceIntake = this.part.FindModulesImplementing <ModuleResourceIntake>().FirstOrDefault(m => m.resourceName == InterstellarResourcesConfiguration._INTAKE_AIR); _resourceAtmosphereDefinition = PartResourceLibrary.Instance.GetDefinition(InterstellarResourcesConfiguration.Instance.IntakeAtmosphere); if (_moduleResourceIntake == null) { Debug.LogWarning("[KSPI]: ModuleResourceIntake with IntakeAir is missing on " + part.partInfo.title); } var field = Fields["intakeOpen"]; var flightToggle = field.uiControlFlight as UI_Toggle; var editorToggle = field.uiControlEditor as UI_Toggle; flightToggle.onFieldChanged = IntakeOpenChanged; editorToggle.onFieldChanged = IntakeOpenChanged; UpdateResourceIntakeConfiguration(); if (state == StartState.Editor) { return; // don't do any of this stuff in editor } resourceBuffers = new ResourceBuffers(); resourceBuffers.AddConfiguration(new ResourceBuffers.TimeBasedConfig(InterstellarResourcesConfiguration.Instance.IntakeAtmosphere, 300, area * unitScalar * 100)); resourceBuffers.Init(this.part); }
public static List <ElectricEnginePropellant> GetPropellantsEngineForType(int type) { ConfigNode[] propellantlist = GameDatabase.Instance.GetConfigNodes("ELECTRIC_PROPELLANT"); List <ElectricEnginePropellant> propellant_list; if (propellantlist.Length == 0) { PluginHelper.showInstallationErrorMessage(); propellant_list = new List <ElectricEnginePropellant>(); } else { propellant_list = propellantlist.Select(prop => new ElectricEnginePropellant(prop)) .Where(eep => (eep.SupportedEngines & type) == type && PluginHelper.HasTechRequirementOrEmpty(eep.TechRequirement)).ToList(); } // initialize resource Defnitionions foreach (var propellant in propellant_list) { propellant.resourceDefinition = PartResourceLibrary.Instance.GetDefinition(propellant.propellant.name); } return(propellant_list); }