public override bool Initialize(PartModule pm) { base.Initialize(pm); harvester = (ModuleResourceHarvester)pm; core = pm.GetComponent <ModuleCoreHeat>(); return(harvester.GeneratesHeat); }
public void Start() { if (HighLogic.LoadedSceneIsFlight) { core = this.GetComponent <ModuleCoreHeat>(); } Fields["RadiatorStatus"].guiName = Localizer.Format("#LOC_NFElectrical_ModuleFissionFlowRadiator_Field_RadiatorStatus"); }
private void Start() { heat = (ModuleCoreHeat)((Component)this).GetComponent <ModuleCoreHeat>(); Variants = new List <PartVariant>(); Variants.Add(new PartVariant("Fission", "Fission", part.attachNodes)); Variants.Add(new PartVariant("Fusion", "Fusion", part.attachNodes)); ((UI_VariantSelector)Fields[nameof(Type)].uiControlEditor).variants = Variants; }
private void SetHeatParams() { this.part.AddModule("ModuleCoreHeat"); coreHeat = this.part.Modules.GetModule <ModuleCoreHeat>(); coreHeat.CoreTempGoal = maxCoreTemp * 1.4; // placeholder value, there is no optimum temperature coreHeat.CoolantTransferMultiplier *= 2d; coreHeat.HeatRadiantMultiplier *= 2d; }
public override void OnStart(PartModule.StartState state) { base.OnStart(state); furnaceTempField = Fields["furnaceTemp"]; EL_Utils.SetupEVAEvent(Events["StartResourceConverter"], EVARange); EL_Utils.SetupEVAEvent(Events["StopResourceConverter"], EVARange); coreHeat = part.FindModuleImplementing <ModuleCoreHeat> (); }
public void Start() { StartCoroutine(InitValues()); coreModule = part.Modules.GetModules <ModuleCoreHeat>().FirstOrDefault(); if (coreModule != null) { Fields["coreTemp"].guiActive = true; } }
public override void OnStart(PartModule.StartState state) { if (UseStagingIcon) { //this.part.stackIcon.CreateIcon(); //this.part.stackIcon.SetIcon(DefaultIcons.FUEL_TANK); } else { Utils.LogWarn("Fission Reactor: Staging Icon Disabled!"); } if (state != StartState.Editor) { core = this.GetComponent <ModuleCoreHeat>(); if (core == null) { Utils.LogError("Fission Reactor: Could not find core heat module!"); } SetupResourceRatios(); // Set up staging icon heat bar if (UseStagingIcon) { infoBox = this.part.stackIcon.DisplayInfo(); //infoBox.SetMsgBgColor(XKCDColors.RedOrange); //infoBox.SetMsgTextColor(XKCDColors.Orange); //infoBox.SetLength(1.0f); //infoBox.SetValue(0.0f); //infoBox.SetMessage("Meltdwn"); //infoBox.SetProgressBarBgColor(XKCDColors.RedOrange); //infoBox.SetProgressBarColor(XKCDColors.Orange); } if (OverheatAnimation != "") { overheatStates = Utils.SetUpAnimation(OverheatAnimation, this.part); } if (UseForcedActivation) { this.part.force_activate(); } } else { this.CurrentSafetyOverride = this.NominalTemperature; } base.OnStart(state); }
public override bool Initialize(PartModule pm) { base.Initialize(pm); core = (ModuleCoreHeat)pm; if (core.MaxCoolant > 0f) { return(false); } else { return(true); } }
public void Start() { core = GetComponent <ModuleCoreHeat>(); if (HighLogic.LoadedSceneIsFlight || HighLogic.LoadedSceneIsEditor) { if (fuelModuleID != "") { fuelColorChanger = this.GetComponents <ModuleColorChanger>().ToList().Find(i => i.moduleID == fuelModuleID); } if (wasteModuleID != "") { wasteColorChanger = this.GetComponents <ModuleColorChanger>().ToList().Find(i => i.moduleID == wasteModuleID); } } }
public void Start() { if (base.vessel == null) { return; } _emissiveColor = new Color(); _propertyBlock = new MaterialPropertyBlock(); if (enableHeatEmissive) { if (useCoreTemp) { _coreHeatModule = base.part.FindModuleImplementing <ModuleCoreHeat>(); if (_coreHeatModule == null) { this.LogError("Part has no Core Heat module, skipping"); useCoreTemp = false; } } if (double.IsNaN(lerpMax)) { if (useCoreTemp) { lerpMax = _coreHeatModule.CoreShutdownTemp; } else { lerpMax = useSkinTemp ? part.skinMaxTemp : part.maxTemp; } } _lerpRange = lerpMax - lerpMin - draperPoint; _shaderPropertyID = Shader.PropertyToID(shaderProperty); } if (disableBlackbody) { _shaderBlackbodyID = Shader.PropertyToID(_shaderBlackbody); } }
private void SetupReactor() { reactor = this.GetComponent<FissionReactor>(); flowRadiator = this.GetComponent<FissionFlowRadiator>(); core = this.GetComponent<ModuleCoreHeat>(); }
public override void OnStart(PartModule.StartState state) { throttleCurve = new FloatCurve(); throttleCurve.Add(0, 0, 0, 0); throttleCurve.Add(70, 10, 0, 0); throttleCurve.Add(100, 100, 0, 0); if (UseStagingIcon) { //this.part.stackIcon.CreateIcon(); //this.part.stackIcon.SetIcon(DefaultIcons.FUEL_TANK); } else Utils.LogWarn("Fission Reactor: Staging Icon Disabled!"); if (state != StartState.Editor) { core = this.GetComponent<ModuleCoreHeat>(); if (core == null) Utils.LogError("Fission Reactor: Could not find core heat module!"); SetupResourceRatios(); // Set up staging icon heat bar if (UseStagingIcon) { infoBox = this.part.stackIcon.DisplayInfo(); //infoBox.SetMsgBgColor(XKCDColors.RedOrange); //infoBox.SetMsgTextColor(XKCDColors.Orange); //infoBox.SetLength(1.0f); //infoBox.SetValue(0.0f); //infoBox.SetMessage("Meltdwn"); //infoBox.SetProgressBarBgColor(XKCDColors.RedOrange); //infoBox.SetProgressBarColor(XKCDColors.Orange); } if (OverheatAnimation != "") overheatStates = Utils.SetUpAnimation(OverheatAnimation, this.part); if (UseForcedActivation) this.part.force_activate(); } else { this.CurrentSafetyOverride = this.NominalTemperature; } base.OnStart(state); }
public void OverriddenStart() { var range = (UI_FloatRange)this.Fields["CurrentSafetyOverride"].uiControlEditor; range.minValue = 0f; range.maxValue = MaximumTemperature; range = (UI_FloatRange)this.Fields["CurrentSafetyOverride"].uiControlFlight; range.minValue = 0f; range.maxValue = MaximumTemperature; throttleCurve = new FloatCurve(); throttleCurve.Add(0, 0, 0, 0); throttleCurve.Add(50, 20, 0, 0); throttleCurve.Add(100, 100, 0, 0); Actions["TogglePanelAction"].guiName = Localizer.Format("#LOC_NFElectrical_ModuleFissionReactor_Action_TogglePanelAction"); Events["ShowReactorControl"].guiName = Localizer.Format("#LOC_NFElectrical_ModuleFissionReactor_Event_ShowReactorControl"); Events["RepairReactor"].guiName = Localizer.Format("#LOC_NFElectrical_ModuleFissionReactor_Event_RepairReactor"); Fields["CurrentSafetyOverride"].guiName = Localizer.Format("#LOC_NFElectrical_ModuleFissionReactor_Field_CurrentSafetyOverride"); Fields["CurrentPowerPercent"].guiName = Localizer.Format("#LOC_NFElectrical_ModuleFissionReactor_Field_CurrentPowerPercent"); Fields["ReactorOutput"].guiName = Localizer.Format("#LOC_NFElectrical_ModuleFissionReactor_Field_ReactorOutput"); Fields["ThermalTransfer"].guiName = Localizer.Format("#LOC_NFElectrical_ModuleFissionReactor_Field_ThermalTransfer"); Fields["CoreTemp"].guiName = Localizer.Format("#LOC_NFElectrical_ModuleFissionReactor_Field_CoreTemp"); Fields["CoreStatus"].guiName = Localizer.Format("#LOC_NFElectrical_ModuleFissionReactor_Field_CoreStatus"); Fields["FuelStatus"].guiName = Localizer.Format("#LOC_NFElectrical_ModuleFissionReactor_Field_FuelStatus"); if (FirstLoad) { this.CurrentSafetyOverride = this.CriticalTemperature; FirstLoad = false; } if (HighLogic.LoadedScene != GameScenes.EDITOR) { core = this.GetComponent <ModuleCoreHeat>(); if (core == null) { Utils.LogError("Fission Reactor: Could not find core heat module!"); } SetupResourceRatios(); if (OverheatAnimation != "") { overheatStates = Utils.SetUpAnimation(OverheatAnimation, this.part); } if (FollowThrottle) { reactorEngine = this.GetComponent <FissionEngine>(); } } else { //this.CurrentSafetyOverride = this.NominalTemperature; } }
protected void updateDrill() { bool enableDrill = false; float value; string resourceName; ModuleResourceHarvester harvester = this.part.FindModuleImplementing <ModuleResourceHarvester>(); //No drill? No need to proceed. if (harvester == null) { return; } //See if the drill is enabled. if (CurrentTemplate.HasValue("enableDrill")) { enableDrill = bool.Parse(CurrentTemplate.GetValue("enableDrill")); } ModuleOverheatDisplay overheat = this.part.FindModuleImplementing <ModuleOverheatDisplay>(); if (overheat != null) { overheat.enabled = enableDrill; overheat.isEnabled = enableDrill; } ModuleCoreHeat coreHeat = this.part.FindModuleImplementing <ModuleCoreHeat>(); if (coreHeat != null) { coreHeat.enabled = enableDrill; coreHeat.isEnabled = enableDrill; } WBIDrillSwitcher drillSwitcher = this.part.FindModuleImplementing <WBIDrillSwitcher>(); if (drillSwitcher != null) { drillSwitcher.enabled = enableDrill; drillSwitcher.isEnabled = enableDrill; } WBIEfficiencyMonitor extractionMonitor = this.part.FindModuleImplementing <WBIEfficiencyMonitor>(); if (extractionMonitor != null) { extractionMonitor.enabled = enableDrill; extractionMonitor.isEnabled = enableDrill; } //Update the drill if (enableDrill) { harvester.EnableModule(); } else { harvester.DisableModule(); } //Setup drill parameters if (enableDrill) { if (CurrentTemplate.HasValue("converterName")) { harvester.ConverterName = CurrentTemplate.GetValue("converterName"); } if (CurrentTemplate.HasValue("drillStartAction")) { harvester.StartActionName = CurrentTemplate.GetValue("drillStartAction"); harvester.Events["StartResourceConverter"].guiName = CurrentTemplate.GetValue("drillStartAction"); } if (CurrentTemplate.HasValue("drillStopAction")) { harvester.StopActionName = CurrentTemplate.GetValue("drillStopAction"); harvester.Events["StopResourceConverter"].guiName = CurrentTemplate.GetValue("drillStopAction"); } if (CurrentTemplate.HasValue("drillEficiency")) { harvester.Efficiency = float.Parse(CurrentTemplate.GetValue("drillEficiency")); } if (CurrentTemplate.HasValue("drillResource")) { resourceName = CurrentTemplate.GetValue("drillResource"); harvester.ResourceName = resourceName; harvester.Fields["ResourceStatus"].guiName = resourceName + " rate"; } if (CurrentTemplate.HasValue("drillElectricCharge")) { if (float.TryParse(CurrentTemplate.GetValue("drillElectricCharge"), out value)) { ResourceRatio[] inputRatios = harvester.inputList.ToArray(); for (int inputIndex = 0; inputIndex < inputRatios.Length; inputIndex++) { if (inputRatios[inputIndex].ResourceName == "ElectricCharge") { inputRatios[inputIndex].Ratio = value; } } } } harvester.Fields["status"].guiName = "Drill Status"; MonoUtilities.RefreshContextWindows(this.part); } }
public override void OnStart(PartModule.StartState state) { var range = (UI_FloatRange)this.Fields["CurrentSafetyOverride"].uiControlEditor; range.minValue = 0f; range.maxValue = MaximumTemperature; range = (UI_FloatRange)this.Fields["CurrentSafetyOverride"].uiControlFlight; range.minValue = 0f; range.maxValue = MaximumTemperature; throttleCurve = new FloatCurve(); throttleCurve.Add(0, 0, 0, 0); throttleCurve.Add(50, 20, 0, 0); throttleCurve.Add(100, 100, 0, 0); if (UseStagingIcon) { //this.part.stackIcon.CreateIcon(); //this.part.stackIcon.SetIcon(DefaultIcons.FUEL_TANK); } else Utils.LogWarn("Fission Reactor: Staging Icon Disabled!"); if (FirstLoad) { this.CurrentSafetyOverride = this.CriticalTemperature; FirstLoad = false; } if (state != StartState.Editor) { core = this.GetComponent<ModuleCoreHeat>(); if (core == null) Utils.LogError("Fission Reactor: Could not find core heat module!"); SetupResourceRatios(); // Set up staging icon heat bar if (UseStagingIcon) { infoBox = this.part.stackIcon.DisplayInfo(); } if (OverheatAnimation != "") overheatStates = Utils.SetUpAnimation(OverheatAnimation, this.part); if (FollowThrottle) reactorEngine = this.GetComponent<FissionEngine>(); if (UseForcedActivation) this.part.force_activate(); } else { //this.CurrentSafetyOverride = this.NominalTemperature; } base.OnStart(state); }
private void SetupReactor() { reactor = this.GetComponent <FissionReactor>(); flowRadiator = this.GetComponent <FissionFlowRadiator>(); core = this.GetComponent <ModuleCoreHeat>(); }
public override void OnStart(PartModule.StartState state) { var range = (UI_FloatRange)this.Fields["CurrentSafetyOverride"].uiControlEditor; range.minValue = 0f; range.maxValue = MaximumTemperature; range = (UI_FloatRange)this.Fields["CurrentSafetyOverride"].uiControlFlight; range.minValue = 0f; range.maxValue = MaximumTemperature; throttleCurve = new FloatCurve(); throttleCurve.Add(0, 0, 0, 0); throttleCurve.Add(50, 20, 0, 0); throttleCurve.Add(100, 100, 0, 0); if (UseStagingIcon) { //this.part.stackIcon.CreateIcon(); //this.part.stackIcon.SetIcon(DefaultIcons.FUEL_TANK); } else { Utils.LogWarn("Fission Reactor: Staging Icon Disabled!"); } if (FirstLoad) { this.CurrentSafetyOverride = this.CriticalTemperature; FirstLoad = false; } if (state != StartState.Editor) { core = this.GetComponent <ModuleCoreHeat>(); if (core == null) { Utils.LogError("Fission Reactor: Could not find core heat module!"); } SetupResourceRatios(); // Set up staging icon heat bar if (UseStagingIcon) { infoBox = this.part.stackIcon.DisplayInfo(); } if (OverheatAnimation != "") { overheatStates = Utils.SetUpAnimation(OverheatAnimation, this.part); } if (FollowThrottle) { reactorEngine = this.GetComponent <FissionEngine>(); } if (UseForcedActivation) { this.part.force_activate(); } } else { //this.CurrentSafetyOverride = this.NominalTemperature; } base.OnStart(state); }