internal static void Display(int windowId) { // Reset Tooltip active flag... ToolTipActive = false; var rect = new Rect(496, 4, 16, 16); if (GUI.Button(rect, new GUIContent("", "Close Window"))) { ShowWindow = false; ToolTip = ""; } if (Event.current.type == EventType.Repaint && ShowToolTips) { ToolTip = RMToolTips.SetActiveToolTip(rect, GUI.tooltip, ref ToolTipActive, 10); } GUILayout.BeginVertical(); Utilities.DebugScrollPosition = GUILayout.BeginScrollView(Utilities.DebugScrollPosition, GUILayout.Height(300), GUILayout.Width(500)); GUILayout.BeginVertical(); foreach (var error in Utilities.ErrorList) { GUILayout.TextArea(error, GUILayout.Width(460)); } GUILayout.EndVertical(); GUILayout.EndScrollView(); GUILayout.BeginHorizontal(); if (GUILayout.Button("Clear log", GUILayout.Height(20))) { Utilities.ErrorList.Clear(); Utilities.ErrorList.Add("Info: Log Cleared at " + DateTime.UtcNow + " UTC."); } if (GUILayout.Button("Save Log", GUILayout.Height(20))) { // Create log file and save. Savelog(); } if (GUILayout.Button("Close", GUILayout.Height(20))) { // Create log file and save. ShowWindow = false; } GUILayout.EndHorizontal(); GUILayout.EndVertical(); GUI.DragWindow(new Rect(0, 0, Screen.width, 30)); RMSettings.RepositionWindows("WindowDebugger"); }
internal static void Display(int windowId) { // Reset Tooltip active flag... ToolTipActive = false; var rect = new Rect(371, 4, 16, 16); if (GUI.Button(rect, new GUIContent("", "Close Window"))) { ToolTip = ""; RMSettings.RestoreTempSettings(); ShowWindow = false; } if (Event.current.type == EventType.Repaint && ShowToolTips) { ToolTip = RMToolTips.SetActiveToolTip(rect, GUI.tooltip, ref ToolTipActive, 10); } // Store settings in case we cancel later... //RMSettings.StoreTempSettings(); GUILayout.BeginVertical(); _scrollViewerPosition = GUILayout.BeginScrollView(_scrollViewerPosition, GUILayout.Height(280), GUILayout.Width(375)); GUILayout.BeginVertical(); DisplayOptions(); DisplayHighlighting(); DisplayToolTips(); DisplayConfiguration(); GUILayout.EndVertical(); GUILayout.EndScrollView(); GUILayout.BeginHorizontal(); if (GUILayout.Button("Save")) { //If EnableAging has been turned ON when it was previously OFF, we reset age processing, otherwise they could all die instantly. if (RMLifeSpan.Instance.RMGameSettings.EnableAging && RMSettings.PrevEnableAging == false) { Utilities.LogMessage("RosterManagerWindowSettings.Display Save settings, aging has been enabled. Reset all birthdays.", "info", RMSettings.VerboseLogging); var currentTime = Planetarium.GetUniversalTime(); foreach (var rmkerbal in RMLifeSpan.Instance.RMKerbals.AllrmKerbals) { rmkerbal.Value.TimelastBirthday = currentTime; rmkerbal.Value.TimeNextBirthday = RMKerbal.BirthdayNextDue(currentTime); } } //If EnableSalaries has been turned OFF when it was previously ON, reset any kerbals from tourist back to active. if (!RMLifeSpan.Instance.RMGameSettings.EnableSalaries && RMSettings.PrevEnableSalaries) { Utilities.LogMessage("RosterManagerWindowSettings.Display Save settings, salaries have been turned off. Reset all salary related fields for all kerbals.", "info", RMSettings.VerboseLogging); foreach (var rmkerbal in RMLifeSpan.Instance.RMKerbals.AllrmKerbals) { if (rmkerbal.Value.Type == ProtoCrewMember.KerbalType.Tourist && rmkerbal.Value.Kerbal.rosterStatus != ProtoCrewMember.RosterStatus.Dead) { rmkerbal.Value.Type = ProtoCrewMember.KerbalType.Crew; rmkerbal.Value.Kerbal.type = ProtoCrewMember.KerbalType.Crew; rmkerbal.Value.Trait = rmkerbal.Value.RealTrait; rmkerbal.Value.Kerbal.trait = rmkerbal.Value.RealTrait; KerbalRoster.SetExperienceTrait(rmkerbal.Value.Kerbal, rmkerbal.Value.Trait); RMKerbal.RegisterExperienceTrait(rmkerbal.Value); } rmkerbal.Value.SalaryContractDispute = false; rmkerbal.Value.SalaryContractDisputePeriods = 0; rmkerbal.Value.SalaryContractDisputeProcessed = true; } } //If EnableSalaries has been turned ON when it was previously OFF, reset all kerbals salary time to now. if (RMLifeSpan.Instance.RMGameSettings.EnableSalaries && RMSettings.PrevEnableSalaries == false) { Utilities.LogMessage("RosterManagerWindowSettings.Display Save settings, salaries have been turned on. Reset all salary related fields for all kerbals.", "info", RMSettings.VerboseLogging); var currentTime = Planetarium.GetUniversalTime(); foreach (var rmkerbal in RMLifeSpan.Instance.RMKerbals.AllrmKerbals) { rmkerbal.Value.Timelastsalary = currentTime; rmkerbal.Value.TimeSalaryDue = RMKerbal.SalaryNextDue(currentTime); } } RMSettings.SaveSettings(); ShowWindow = false; } if (GUILayout.Button("Cancel")) { // We've canclled, so restore original settings. RMSettings.RestoreTempSettings(); ShowWindow = false; } GUILayout.EndHorizontal(); GUILayout.EndVertical(); GUI.DragWindow(new Rect(0, 0, Screen.width, 30)); RMSettings.RepositionWindows("WindowSettings"); }
internal static void Display(int windowId) { // Reset Tooltip active flag... ToolTipActive = false; // Close window button var rect = new Rect(Position.width - 20, 4, 16, 16); if (GUI.Button(rect, new GUIContent("", "Close Window"))) { SelectedKerbal = null; DisplayMode = DisplayModes.Index; ToolTip = ""; if (HighLogic.LoadedScene == GameScenes.SPACECENTER || HighLogic.LoadedScene == GameScenes.EDITOR || HighLogic.LoadedScene == GameScenes.TRACKSTATION || HighLogic.LoadedScene == GameScenes.FLIGHT) { RMAddon.OnRMRosterToggle(); } else { ShowWindow = false; } } if (Event.current.type == EventType.Repaint && ShowToolTips) { ToolTip = RMToolTips.SetActiveToolTip(rect, GUI.tooltip, ref ToolTipActive, 10); } // Ok, now lets render the window... try { GUILayout.BeginVertical(); DisplayRosterFilter(); DisplayRosterViewer(); switch (DisplayMode) { case DisplayModes.Index: DisplayActionButtonsIndex(); break; case DisplayModes.Edit: GUILayout.Label("Kerbal Manager", RMStyle.LabelStyleBoldCenter, GUILayout.Width(680)); DisplayTabButtons(); DisplaySelectedTab(); break; case DisplayModes.Create: GUILayout.Label("Create a Kerbal", RMStyle.LabelStyleBoldCenter, GUILayout.Width(680)); DisplaySelectProfession(); DisplaySelectGender(); DisplayActionButtonsCreate(); break; default: DisplayActionButtonsIndex(); break; } GUILayout.EndVertical(); GUI.DragWindow(new Rect(0, 0, Screen.width, 30)); RMSettings.RepositionWindows("WindowRoster"); } catch (Exception ex) { Utilities.LogMessage(string.Format(" in Roster Window. Error: {0} \r\n\r\n{1}", ex.Message, ex.StackTrace), "Error", true); } }
internal static void Display(int windowId) { // Reset Tooltip active flag... ToolTipActive = false; var rect = new Rect(680, 4, 16, 16); if (GUI.Button(rect, new GUIContent("", "Close Window"))) { ToolTip = ""; ShowWindow = false; } if (Event.current.type == EventType.Repaint && ShowToolTips) { ToolTip = RMToolTips.SetActiveToolTip(rect, GUI.tooltip, ref ToolTipActive, 10); } GUILayout.BeginVertical(); DisplayRosterFilter(); DisplayHeadings(); _scrollViewerPosition = GUILayout.BeginScrollView(_scrollViewerPosition, RMStyle.ScrollStyle, GUILayout.Height(280), GUILayout.Width(680)); GUILayout.BeginVertical(); if (IsAll || IsDispute || IsStrike) { DisplayDisputes(); } if (IsAll || IsContracted) { DisplayContracted(); } GUILayout.EndVertical(); GUILayout.EndScrollView(); GUILayout.BeginHorizontal(); var disputekerbals = new List <RMKerbal>(RMLifeSpan.Instance.RMKerbals.AllrmKerbals.Values.Where(a => a.SalaryContractDispute).ToList()); string buttonToolTip; if (disputekerbals.Any()) { buttonToolTip = "Accept All Payrises. Kerbals will continue working."; if (GUILayout.Button(new GUIContent("Accept All", buttonToolTip), RMStyle.ButtonStyle)) { // Accept all disputes. foreach (var disputekerbal in disputekerbals.Where(disputekerbal => !disputekerbal.SalaryContractDisputeProcessed)) { AcceptDispute(disputekerbal); } ToolTip = ""; ShowWindow = false; } rect = GUILayoutUtility.GetLastRect(); if (Event.current.type == EventType.Repaint && ShowToolTips) { ToolTip = RMToolTips.SetActiveToolTip(rect, GUI.tooltip, ref ToolTipActive, 10); } buttonToolTip = "Decline All Payrises, All listed kerbals will become tourists until you can pay them."; if (GUILayout.Button(new GUIContent("Decline All", buttonToolTip), RMStyle.ButtonStyle)) { // Decline all disputes. foreach (var disputekerbal in disputekerbals.Where(disputekerbal => !disputekerbal.SalaryContractDisputeProcessed)) { DeclineDispute(disputekerbal); } ToolTip = ""; ShowWindow = false; } rect = GUILayoutUtility.GetLastRect(); if (Event.current.type == EventType.Repaint && ShowToolTips) { ToolTip = RMToolTips.SetActiveToolTip(rect, GUI.tooltip, ref ToolTipActive, 10); } } if (_recontractFlag) { buttonToolTip = "ReContract All Disputed Kerbals."; if (GUILayout.Button(new GUIContent("Recontract All", buttonToolTip), RMStyle.ButtonStyle)) { // ReContract all disputes. foreach (var disputekerbal in disputekerbals.Where(disputekerbal => disputekerbal.SalaryContractDisputeProcessed)) { ReContract(disputekerbal); } ToolTip = ""; ShowWindow = false; } rect = GUILayoutUtility.GetLastRect(); if (Event.current.type == EventType.Repaint && ShowToolTips) { ToolTip = RMToolTips.SetActiveToolTip(rect, GUI.tooltip, ref ToolTipActive, 10); } } GUILayout.EndHorizontal(); GUILayout.EndVertical(); GUI.DragWindow(new Rect(0, 0, Screen.width, 30)); RMSettings.RepositionWindows("WindowContracts"); }