private void OnFlagsChanged(EDStatus_Flags flags)
 {
     if (flags.HasFlag(flag) != isOn)
     {
         isOn = flags.HasFlag(flag);
         TriggerRefresh();
     }
 }
Example #2
0
        void Refresh()
        {
            if (ModeOverride != CockpitModeOverride.None)
            {
                SetMode((CockpitMode)ModeOverride);
                return;
            }

            if (!EDStateManager.instance.IsEliteDangerousRunning)
            {
                if (gameNotRunning != null)
                {
                    gameNotRunning.SetActive(true);
                }
                SetMode(CockpitMode.GameNotRunning);
                return;
            }

            if (CockpitStateController.instance.menuMode)
            {
                SetMode(CockpitMode.MenuMode);
                return;
            }

            var mode = CockpitMode.InGame;

            if (GuiFocus == EDGuiFocus.GalaxyMap || GuiFocus == EDGuiFocus.SystemMap)
            {
                mode |= CockpitMode.Map;
            }
            else
            {
                mode |= CockpitMode.Cockpit;
                if (StatusFlags.HasFlag(EDStatus_Flags.InMainShip) || StatusFlags.HasFlag(EDStatus_Flags.InFighter))
                {
                    mode |= CockpitMode.InShip;
                }
                if (StatusFlags.HasFlag(EDStatus_Flags.InMainShip))
                {
                    mode |= CockpitMode.InMainShip;
                }
                if (StatusFlags.HasFlag(EDStatus_Flags.InFighter))
                {
                    mode |= CockpitMode.InFighter;
                }
                if (StatusFlags.HasFlag(EDStatus_Flags.InSRV))
                {
                    mode |= CockpitMode.InSRV;
                }
            }

            SetMode(mode);
        }
        void Refresh()
        {
            if (ModeOverride != CockpitModeOverride.None)
            {
                SetMode((CockpitMode)ModeOverride);
                return;
            }

            if (!EDStateManager.instance.IsEliteDangerousRunning)
            {
                if (gameNotRunning != null)
                {
                    gameNotRunning.SetActive(true);
                }
                SetMode(CockpitMode.GameNotRunning);
                return;
            }

            if (CockpitStateController.instance.menuMode)
            {
                SetMode(CockpitMode.MenuMode);
                return;
            }

            var mode = CockpitMode.InGame;

            if (GuiFocus == EDGuiFocus.GalaxyMap || GuiFocus == EDGuiFocus.SystemMap || GuiFocus == EDGuiFocus.Orrery)
            {
                mode |= CockpitMode.Map;
            }
            else if (GuiFocus == EDGuiFocus.FSSMode)
            {
                mode |= CockpitMode.FSSMode;
            }
            else
            {
                mode |= CockpitMode.Cockpit;
                if (StatusFlags.HasFlag(EDStatus_Flags.InMainShip) || StatusFlags.HasFlag(EDStatus_Flags.InFighter))
                {
                    mode |= CockpitMode.InShip;
                }
                if (StatusFlags.HasFlag(EDStatus_Flags.InMainShip))
                {
                    mode |= CockpitMode.InMainShip;
                }
                if (StatusFlags.HasFlag(EDStatus_Flags.InFighter))
                {
                    mode |= CockpitMode.InFighter;
                }
                if (StatusFlags.HasFlag(EDStatus_Flags.InSRV))
                {
                    mode |= CockpitMode.InSRV;
                }

                switch (GuiFocus)
                {
                case EDGuiFocus.StationServices:
                    mode |= CockpitMode.StationServices;
                    break;

                case EDGuiFocus.SAAMode:
                    mode |= CockpitMode.DSSMode;
                    break;
                }

                // @todo Test and add Codex as well
            }

            SetMode(mode);
        }