public void NotifyActiveChargedEnergyGenrator(double efficency, ElectricGeneratorType generatorType) { }
public bool ShouldApplyBalance(ElectricGeneratorType generatorType) { return false; }
public void NotifyActiveThermalEnergyGenrator(double efficency, ElectricGeneratorType generatorType) { currentIsThermalEnergyGenratorActive = efficency; }
public void NotifyActiveThermalEnergyGenrator(double efficency, ElectricGeneratorType generatorType) { currentIsThermalEnergyGeneratorActive = efficency; }
public bool ShouldApplyBalance(ElectricGeneratorType generatorType) { return generatorType == _firstGeneratorType && storedIsThermalEnergyGenratorActive > 0 && storedIsChargedEnergyGenratorActive > 0; }
public override void OnStart(PartModule.StartState state) { windowPosition = new Rect(windowPositionX, windowPositionY, 300, 100); _firstGeneratorType = ElectricGeneratorType.unknown; _hasPowerUpgradeTechnology = PluginHelper.upgradeAvailable(powerUpgradeTechReq); previousTimeWarp = TimeWarp.fixedDeltaTime - 1.0e-6f; hasBimodelUpgradeTechReq = PluginHelper.HasTechRequirmentOrEmpty(bimodelUpgradeTechReq); if (!part.Resources.Contains(FNResourceManager.FNRESOURCE_THERMALPOWER)) { ConfigNode node = new ConfigNode("RESOURCE"); node.AddValue("name", FNResourceManager.FNRESOURCE_THERMALPOWER); node.AddValue("maxAmount", PowerOutput); node.AddValue("possibleAmount", 0); part.AddResource(node); part.Resources.UpdateList(); } // while in edit mode, listen to on attach event if (state == StartState.Editor) part.OnEditorAttach += OnEditorAttach; // initialise resource defenitions thermalPowerResource = part.Resources.list.FirstOrDefault(r => r.resourceName == FNResourceManager.FNRESOURCE_THERMALPOWER); chargedPowerResource = part.Resources.list.FirstOrDefault(r => r.resourceName == FNResourceManager.FNRESOURCE_CHARGED_PARTICLES); wasteheatPowerResource = part.Resources.list.FirstOrDefault(r => r.resourceName == FNResourceManager.FNRESOURCE_WASTEHEAT); // calculate WasteHeat Capacity partBaseWasteheat = part.mass * 1.0e+5 * wasteHeatMultiplier + (StableMaximumReactorPower * 100); String[] resources_to_supply = { FNResourceManager.FNRESOURCE_THERMALPOWER, FNResourceManager.FNRESOURCE_WASTEHEAT, FNResourceManager.FNRESOURCE_CHARGED_PARTICLES }; this.resources_to_supply = resources_to_supply; var rnd = new System.Random(); windowID = rnd.Next(int.MaxValue); base.OnStart(state); // check if we need to upgrade if (state == StartState.Editor) { print("[KSPI] Checking for upgrade tech: " + UpgradeTechnology); if (this.HasTechsRequiredToUpgrade() || CanPartUpgradeAlternative()) { print("[KSPI] Found required upgradeTech, Upgrading Reactor"); upgradePartModule(); } } // configure reactor modes print("[KSP Interstellar] Configuring Reactor Fuel Modes"); fuel_modes = GetReactorFuelModes(); setDefaultFuelMode(); UpdateFuelMode(); print("[KSP Interstellar] Configuration Reactor Fuels Complete"); if (state == StartState.Editor) { maximumThermalPowerFloat = MaximumThermalPower; reactorTypeStr = isupgraded ? upgradedName != "" ? upgradedName : originalName : originalName; coretempStr = CoreTemperature.ToString("0") + " K"; return; } if (this.HasTechsRequiredToUpgrade() || CanPartUpgradeAlternative()) hasrequiredupgrade = true; if (!reactorInit) { IsEnabled = true; reactorInit = true; breedtritium = true; if (startDisabled) { last_active_time = (float)(Planetarium.GetUniversalTime() - 4.0 * GameConstants.EARH_DAY_SECONDS); IsEnabled = false; startDisabled = false; breedtritium = false; } } print("[KSP Interstellar] Reactor Persistent Resource Update"); if (IsEnabled && last_active_time > 0) DoPersistentResourceUpdate(); // only force activate if not with a engine model var myAttachedEngine = this.part.FindModuleImplementing<ModuleEngines>(); if (myAttachedEngine == null) { this.part.force_activate(); Fields["partMass"].guiActiveEditor = true; Fields["radius"].guiActiveEditor = true; Fields["connectedRecieversStr"].guiActiveEditor = true; Fields["heatTransportationEfficiency"].guiActiveEditor = true; } //RenderingManager.AddToPostDrawQueue(0, OnGUI); print("[KSP Interstellar] Succesfully Completed Configuring Reactor"); }
public void NotifyActiveThermalEnergyGenrator(double efficency, ElectricGeneratorType generatorType) { currentIsThermalEnergyGenratorActive = efficency; if (_firstGeneratorType == ElectricGeneratorType.unknown) _firstGeneratorType = generatorType; }