Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 3
0
        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;
        }
Ejemplo n.º 4
0
        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;
        }