コード例 #1
0
        private void Recharge()
        {
            if (DayNightCycle.main == null || _mono.Manager == null || GetPowerSum() >= GetMaxPower())
            {
                return;
            }

            if (_mono.GetBaseDrainProtection())
            {
                if (GetBasePower() <= _mono.GetBasePowerProtectionGoal())
                {
                    return;
                }
            }

            _passedTime += DayNightCycle.main.deltaTime;

            if (_powerState != FCSPowerStates.Unpowered && _chargeMode == PowerToggleStates.ChargeMode && _passedTime >= 2f)
            {
                float num2 = 0f;
                _passedTime = num2;

                float num3 = DayNightCycle.main.deltaTime * LoadData.BatteryConfiguration.ChargeSpeed * LoadData.BatteryConfiguration.Capacity;
                if (_charge + num3 > LoadData.BatteryConfiguration.Capacity)
                {
                    num3 = LoadData.BatteryConfiguration.Capacity - _charge;
                }
                num2 += num3;

                float num4 = 0f;

                if (num2 > 0f && _connectedRelay.GetPower() > num2)
                {
                    _connectedRelay.ConsumeEnergy(num2, out num4);
                }

                if (num4 > 0f)
                {
                    ChargeBatteries(num4);
                }
            }
        }