Exemple #1
0
        internal void SyncUnits(FCSPowerStates powerState, PowerToggleStates toggleState, bool auto, bool baseDrainState)
        {
            QuickLogger.Debug($"BPU Count = {BasePowerStorageUnits.Count}", true);

            foreach (FCSPowerStorageController controller in BasePowerStorageUnits)
            {
                if (controller.PowerManager.GetPowerState() == FCSPowerStates.Unpowered)
                {
                    continue;
                }
                controller.SetAutoActivate(auto);
                controller.PowerManager.SetChargeMode(toggleState);
                controller.PowerManager.SetPowerState(powerState);
                controller.SetBaseDrainProtection(baseDrainState);
            }
        }
        internal void SetChargeMode(PowerToggleStates savedDataChargeMode)
        {
            QuickLogger.Debug($"Toggle State {savedDataChargeMode}");
            _chargeMode = savedDataChargeMode;

            if (_powerState == FCSPowerStates.Unpowered)
            {
                return;
            }

            switch (savedDataChargeMode)
            {
            case PowerToggleStates.TrickleMode:
                _mono.SystemLightManager.ChangeSystemLights(SystemLightState.Default);
                _mono.AnimationManager.SetBoolHash(_mono.ToggleHash, false);
                break;

            case PowerToggleStates.ChargeMode:
                _mono.SystemLightManager.ChangeSystemLights(SystemLightState.Warning);
                _mono.AnimationManager.SetBoolHash(_mono.ToggleHash, true);
                break;
            }
        }