private void DrawSubspaces()
        {
            _scrollPosition = GUILayout.BeginScrollView(_scrollPosition, ScrollStyle);
            for (var i = 0; i < SubspaceDisplay.Count; i++)
            {
                GUILayout.BeginVertical(BoxStyle);
                GUILayout.BeginHorizontal(_subspaceStyle);
                if (SubspaceDisplay[i].SubspaceId == -1)
                {
                    GUILayout.Label(StatusTexts.WarpingLabelTxt);
                }
                else
                {
                    GUILayout.Label(StatusTexts.GetTimeLabel(SubspaceDisplay[i]));
                    GUILayout.FlexibleSpace();
                    if (NotWarpingAndIsFutureSubspace(SubspaceDisplay[i].SubspaceId) && GUILayout.Button(SyncIcon, ButtonStyle))
                    {
                        WarpSystem.Singleton.SyncToSubspace(SubspaceDisplay[i].SubspaceId);
                    }
                }
                GUILayout.EndHorizontal();

                for (var j = 0; j < SubspaceDisplay[i].Players.Count; j++)
                {
                    DrawPlayerEntry(StatusSystem.Singleton.GetPlayerStatus(SubspaceDisplay[i].Players[j]));
                }
                GUILayout.EndVertical();
            }

            GUILayout.EndScrollView();
        }
Beispiel #2
0
 private static void DrawPlayerEntry(PlayerStatus playerStatus)
 {
     if (playerStatus == null)
     {
         return;
     }
     GUILayout.BeginHorizontal();
     if (!_playerNameStyle.ContainsKey(playerStatus.PlayerName))
     {
         _playerNameStyle[playerStatus.PlayerName] = new GUIStyle(GUI.skin.label)
         {
             normal       = { textColor = PlayerColorSystem.Singleton.GetPlayerColor(playerStatus.PlayerName) },
             hover        = { textColor = PlayerColorSystem.Singleton.GetPlayerColor(playerStatus.PlayerName) },
             active       = { textColor = PlayerColorSystem.Singleton.GetPlayerColor(playerStatus.PlayerName) },
             fontStyle    = FontStyle.Bold,
             stretchWidth = true,
             wordWrap     = false
         };
     }
     GUILayout.Label(playerStatus.PlayerName, _playerNameStyle[playerStatus.PlayerName]);
     GUILayout.FlexibleSpace();
     GUILayout.Label(playerStatus.StatusText, _stateTextStyle);
     GUILayout.Label(string.IsNullOrEmpty(playerStatus.VesselText) ? string.Empty : StatusTexts.GetPlayerText(playerStatus), _vesselNameStyle);
     GUILayout.EndHorizontal();
 }
Beispiel #3
0
        public override void DrawWindowContent(int windowId)
        {
            GUILayout.BeginVertical();
            GUI.DragWindow(MoveRect);

            #region Horizontal toolbar

            GUILayout.BeginHorizontal();
            ChatWindow.Singleton.Display         = GUILayout.Toggle(ChatWindow.Singleton.Display, ChatSystem.Singleton.NewMessageReceived ? ChatRedIcon : ChatIcon, ButtonStyle);
            CraftLibraryWindow.Singleton.Display = GUILayout.Toggle(CraftLibraryWindow.Singleton.Display, CraftLibrarySystem.Singleton.NewContent ? RocketRedIcon : RocketIcon, ButtonStyle);
            ScreenshotsWindow.Singleton.Display  = GUILayout.Toggle(ScreenshotsWindow.Singleton.Display, ScreenshotSystem.Singleton.NewContent ? CameraRedIcon : CameraIcon, ButtonStyle);
            if (SettingsSystem.ServerSettings.AllowAdmin)
            {
                AdminWindow.Singleton.Display = GUILayout.Toggle(AdminWindow.Singleton.Display, AdminIcon, ButtonStyle);
            }
            GUILayout.EndHorizontal();

            #endregion

            #region Players information

            _scrollPosition = GUILayout.BeginScrollView(_scrollPosition, ScrollStyle);
            for (var i = 0; i < SubspaceDisplay.Count; i++)
            {
                GUILayout.BeginHorizontal(_subspaceStyle);
                if (SubspaceDisplay[i].SubspaceId == -1)
                {
                    GUILayout.Label(StatusTexts.WarpingLabelTxt);
                }
                else
                {
                    GUILayout.Label(StatusTexts.GetTimeLabel(SubspaceDisplay[i]));
                    GUILayout.FlexibleSpace();
                    if (NotWarpingAndIsFutureSubspace(SubspaceDisplay[i].SubspaceId) && GUILayout.Button(SyncIcon, ButtonStyle))
                    {
                        WarpSystem.CurrentSubspace = SubspaceDisplay[i].SubspaceId;
                    }
                }
                GUILayout.EndHorizontal();
                for (var j = 0; j < SubspaceDisplay[i].Players.Count; j++)
                {
                    DrawPlayerEntry(StatusSystem.Singleton.GetPlayerStatus(SubspaceDisplay[i].Players[j]));
                }
            }
            GUILayout.EndScrollView();

            #endregion

            GUILayout.FlexibleSpace();
#if DEBUG
            DrawDebugSection();
#endif
            GUILayout.BeginHorizontal();
            if (GUILayout.Button(DisconnectIcon, ButtonStyle))
            {
                MainSystem.Singleton.DisconnectFromGame();
            }
            OptionsWindow.Singleton.Display = GUILayout.Toggle(OptionsWindow.Singleton.Display, SettingsIcon, ButtonStyle);
            GUILayout.EndHorizontal();

            GUILayout.EndVertical();
        }
Beispiel #4
0
        public void DrawContent(int windowId)
        {
            GUILayout.BeginVertical();
            GUI.DragWindow(MoveRect);

            #region Horizontal toolbar

            GUILayout.BeginHorizontal();

            GUILayout.FlexibleSpace();

            var chatButtonStyle = ButtonStyle;
            if (SystemsContainer.Get <ChatSystem>().ChatButtonHighlighted)
            {
                chatButtonStyle = HighlightStyle;
            }
            if (!SettingsSystem.ServerSettings.DropControlOnVesselSwitching)
            {
                if (GUILayout.Button(new GUIContent(StatusTexts.DropCtrlBtnTxt, StatusTexts.DropCtrlBtnTooltip), ButtonStyle))
                {
                    SystemsContainer.Get <VesselLockSystem>().DropAllOtherVesselControlLocks();
                }
            }
            WindowsContainer.Get <ChatWindow>().Display         = GUILayout.Toggle(WindowsContainer.Get <ChatWindow>().Display, StatusTexts.ChatBtnTxt, chatButtonStyle);
            WindowsContainer.Get <CraftLibraryWindow>().Display = GUILayout.Toggle(WindowsContainer.Get <CraftLibraryWindow>().Display, StatusTexts.CraftBtnTxt, ButtonStyle);
            WindowsContainer.Get <DebugWindow>().Display        = GUILayout.Toggle(WindowsContainer.Get <DebugWindow>().Display, StatusTexts.DebugBtnTxt, ButtonStyle);
#if DEBUG
            WindowsContainer.Get <SystemsWindow>().Display = GUILayout.Toggle(WindowsContainer.Get <SystemsWindow>().Display, StatusTexts.SystemsBtnTxt, ButtonStyle);
            WindowsContainer.Get <LocksWindow>().Display   = GUILayout.Toggle(WindowsContainer.Get <LocksWindow>().Display, StatusTexts.LocksBtnTxt, ButtonStyle);
#endif

            GUILayout.EndHorizontal();

            #endregion

            #region Players information

            ScrollPosition = GUILayout.BeginScrollView(ScrollPosition, ScrollStyle);

            //Draw other subspaces
            for (var i = 0; i < SubspaceDisplay.Count; i++)
            {
                if (SubspaceDisplay[i].SubspaceId == -1)
                {
                    //Draw the warping players
                    GUILayout.BeginHorizontal(SubspaceStyle);
                    GUILayout.Label(StatusTexts.WarpingLabelTxt);
                    GUILayout.EndHorizontal();
                }
                else
                {
                    GUILayout.BeginHorizontal(SubspaceStyle);
                    GUILayout.Label(StatusTexts.GetTimeLabel(SubspaceDisplay[i]));
                    GUILayout.FlexibleSpace();
                    if (NotWarpingAndIsFutureSubspace(SubspaceDisplay[i].SubspaceId) && GUILayout.Button(StatusTexts.SyncBtnTxt, ButtonStyle))
                    {
                        WarpSystem.CurrentSubspace = SubspaceDisplay[i].SubspaceId;
                    }
                    GUILayout.EndHorizontal();
                }

                for (var j = 0; j < SubspaceDisplay[i].Players.Count; j++)
                {
                    DrawPlayerEntry(SubspaceDisplay[i].Players[j] == SettingsSystem.CurrentSettings.PlayerName
                        ? SystemsContainer.Get <StatusSystem>().MyPlayerStatus
                        : SystemsContainer.Get <StatusSystem>().GetPlayerStatus(SubspaceDisplay[i].Players[j]));
                }
            }

            GUILayout.EndScrollView();

            #endregion

            GUILayout.FlexibleSpace();
#if DEBUG
            GUILayout.BeginHorizontal();
            DrawDebugSwitches();
            GUILayout.EndHorizontal();
#endif
            GUILayout.BeginHorizontal();
            if (GUILayout.Button(StatusTexts.DisconnectBtnTxt, ButtonStyle))
            {
                DisconnectEventHandled = false;
            }
            WindowsContainer.Get <OptionsWindow>().Display = GUILayout.Toggle(WindowsContainer.Get <OptionsWindow>().Display, StatusTexts.OptionsBtnTxt, ButtonStyle);
            GUILayout.EndHorizontal();

            GUILayout.EndVertical();
        }