public override void OnStart(StartState state) { _antimatterDefinition = PartResourceLibrary.Instance.GetDefinition(resourceName); _generator = new AntimatterGenerator(part, efficiencyMultiplier, _antimatterDefinition); if (state == StartState.Editor) { return; } _disabledText = Localizer.Format("#LOC_KSPIE_AntimatterFactory_disabled"); Fields["isActive"].guiName = Localizer.Format(activateTitle); if (!isActive) { return; } var deltaTime = Planetarium.GetUniversalTime() - lastActiveTime; var energyProvidedInMegajoules = electricalPowerRatio * powerCapacity * deltaTime; _generator.Produce(energyProvidedInMegajoules); }
public override void OnStart(StartState state) { _antimatterDefinition = PartResourceLibrary.Instance.GetDefinition(resourceName); _generator = new AntimatterGenerator(this.part, efficiencyMultiplier, _antimatterDefinition); if (state == StartState.Editor) { return; } if (!isActive) { return; } var deltaTime = Planetarium.GetUniversalTime() - last_active_time; var energy_provided_in_megajoules = electrical_power_ratio * powerCapacity * deltaTime; _generator.Produce(energy_provided_in_megajoules); }
public void FixedUpdate() { if (!isActive) { return; } var availablePower = getAvailableStableSupply(ResourceSettings.Config.ElectricPowerInMegawatt); var resourceBarRatio = getResourceBarRatio(ResourceSettings.Config.ElectricPowerInMegawatt); var effectiveResourceThrottling = resourceBarRatio > ONE_THIRD ? 1 : resourceBarRatio * 3; var energyRequestedInMegajoulesPerSecond = Math.Min(powerCapacity, effectiveResourceThrottling * availablePower * (double)(decimal)powerPercentage * 0.01); var energyProvidedInMegajoulesPerSecond = CheatOptions.InfiniteElectricity ? energyRequestedInMegajoulesPerSecond : consumeFNResourcePerSecond(energyRequestedInMegajoulesPerSecond, ResourceSettings.Config.ElectricPowerInMegawatt); electricalPowerRatio = energyRequestedInMegajoulesPerSecond > 0 ? energyProvidedInMegajoulesPerSecond / energyRequestedInMegajoulesPerSecond : 0; _generator.Produce(energyProvidedInMegajoulesPerSecond * (double)(decimal)TimeWarp.fixedDeltaTime); productionRate = _generator.ProductionRate; }
public void FixedUpdate() { if (!isActive) { return; } var availablePower = getAvailableStableSupply(ResourceManager.FNRESOURCE_MEGAJOULES); var resourceBarRatio = getResourceBarRatio(ResourceManager.FNRESOURCE_MEGAJOULES); var effectiveResourceThrotling = resourceBarRatio > ResourceManager.ONE_THIRD ? 1 : resourceBarRatio * 3; var energy_requested_in_megajoules_per_second = Math.Min(powerCapacity, effectiveResourceThrotling * availablePower * (double)(decimal)powerPercentage * 0.01); var energy_provided_in_megajoules_per_second = CheatOptions.InfiniteElectricity ? energy_requested_in_megajoules_per_second : consumeFNResourcePerSecond(energy_requested_in_megajoules_per_second, ResourceManager.FNRESOURCE_MEGAJOULES); electrical_power_ratio = energy_requested_in_megajoules_per_second > 0 ? energy_provided_in_megajoules_per_second / energy_requested_in_megajoules_per_second : 0; _generator.Produce(energy_provided_in_megajoules_per_second * (double)(decimal)TimeWarp.fixedDeltaTime); productionRate = _generator.ProductionRate; }
public void FixedUpdate() { if (!isActive) { return; } var availablePower = getAvailableResourceSupply(ResourceManager.FNRESOURCE_MEGAJOULES); var resourceBarRatio = getResourceBarRatio(ResourceManager.FNRESOURCE_MEGAJOULES); var effectiveResourceThrotling = resourceBarRatio > ResourceManager.ONE_THIRD ? 1 : resourceBarRatio * 3; var energy_requested_in_megajoules = Math.Min(powerCapacity, effectiveResourceThrotling * availablePower * powerPercentage / 100d); var energy_provided_in_megajoules = CheatOptions.InfiniteElectricity ? energy_requested_in_megajoules : consumeFNResourcePerSecond(energy_requested_in_megajoules, ResourceManager.FNRESOURCE_MEGAJOULES); electrical_power_ratio = energy_requested_in_megajoules > 0 ? energy_provided_in_megajoules / energy_requested_in_megajoules : 0; _generator.Produce(energy_provided_in_megajoules); productionRate = _generator.ProductionRate; }