From 56e4d0bd9747d15dbae724af7cd991757fe0aa20 Mon Sep 17 00:00:00 2001 From: Alexander Yalov Date: Sun, 28 Nov 2021 20:27:59 +0300 Subject: [PATCH] Stock Alarm Clock App, NET v4.7 --- .../FrameworkExt/MonoBehaviourWindowPlus.cs | 4 +- .../Properties/AssemblyInfo.cs | 4 +- TransferWindowPlanner/Settings.cs | 4 +- TransferWindowPlanner/TWPWindow.cs | 41 ++++++++++++++---- TransferWindowPlanner/TWPWindowSettings.cs | 42 +++++++++++++------ .../TransferWindowPlanner.csproj | 2 +- 6 files changed, 70 insertions(+), 27 deletions(-) diff --git a/TransferWindowPlanner/FrameworkExt/MonoBehaviourWindowPlus.cs b/TransferWindowPlanner/FrameworkExt/MonoBehaviourWindowPlus.cs index 1ec7012..ca14b7d 100644 --- a/TransferWindowPlanner/FrameworkExt/MonoBehaviourWindowPlus.cs +++ b/TransferWindowPlanner/FrameworkExt/MonoBehaviourWindowPlus.cs @@ -418,7 +418,7 @@ internal Boolean DrawButton() if (blnReturn) ListVisible = !ListVisible; //get the drawn button rectangle - if (Event.current.type == EventType.repaint) + if (Event.current.type == EventType.Repaint) rectButton = GUILayoutUtility.GetLastRect(); //draw a dropdown symbol on the right edge if (DropDownGlyph != null) @@ -530,7 +530,7 @@ internal void DrawDropDownList() internal Boolean CloseOnOutsideClick() { - if (ListVisible && Event.current.type == EventType.mouseDown && !rectListBox.Contains(Event.current.mousePosition)) + if (ListVisible && Event.current.type == EventType.MouseDown && !rectListBox.Contains(Event.current.mousePosition)) { ListVisible = false; return true; diff --git a/TransferWindowPlanner/Properties/AssemblyInfo.cs b/TransferWindowPlanner/Properties/AssemblyInfo.cs index fb8d967..725920e 100644 --- a/TransferWindowPlanner/Properties/AssemblyInfo.cs +++ b/TransferWindowPlanner/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.7.2.0")] -[assembly: AssemblyFileVersion("1.7.2.0")] +[assembly: AssemblyVersion("1.7.3.0")] +[assembly: AssemblyFileVersion("1.7.3.0")] diff --git a/TransferWindowPlanner/Settings.cs b/TransferWindowPlanner/Settings.cs index ecdb88c..e2cf762 100644 --- a/TransferWindowPlanner/Settings.cs +++ b/TransferWindowPlanner/Settings.cs @@ -63,7 +63,7 @@ internal enum DisplaySkin [Persistent] internal TWP_KACWrapper.KACWrapper.KACAPI.AlarmActionEnum KACAlarmAction = TWP_KACWrapper.KACWrapper.KACAPI.AlarmActionEnum.KillWarp; - [Persistent] internal Double KACMargin = 24; + [Persistent] internal Double AlarmMargin = 24; [Persistent] internal Boolean ClickThroughProtect_KSC=true; [Persistent] internal Boolean ClickThroughProtect_Editor=true; @@ -72,6 +72,8 @@ internal enum DisplaySkin [Persistent] internal bool UseStockDateFormatters = true; + [Persistent] internal bool OverrideKAC = false; + //Version Stuff [Persistent] internal Boolean DailyVersionCheck = true; internal Boolean VersionAttentionFlag = false; diff --git a/TransferWindowPlanner/TWPWindow.cs b/TransferWindowPlanner/TWPWindow.cs index ea6b252..9a9c8c0 100644 --- a/TransferWindowPlanner/TWPWindow.cs +++ b/TransferWindowPlanner/TWPWindow.cs @@ -370,7 +370,7 @@ internal override void DrawWindow(int id) } //close the settings window if we click elsewhere - if (!ShowMinimized && Event.current.type == EventType.mouseDown) + if (!ShowMinimized && Event.current.type == EventType.MouseDown) { if (!mbTWP.windowSettings.WindowRect.Contains(Event.current.mousePosition)) mbTWP.windowSettings.Visible = false; @@ -446,18 +446,18 @@ private void DrawTransferDetails() } //Action Buttons - if (KACWrapper.APIReady) + if (KACWrapper.APIReady && !settings.OverrideKAC) { if (GUI.Button(new Rect(10, WindowRect.height - 30, 132, 20), new GUIContent(" Add KAC Alarm", Resources.btnKAC))) { String tmpID = KACWrapper.KAC.CreateAlarm(KACWrapper.KACAPI.AlarmTypeEnum.TransferModelled, String.Format("{0} -> {1}", mbTWP.windowMain.TransferSelected.Origin.bodyName, mbTWP.windowMain.TransferSelected.Destination.bodyName), - (mbTWP.windowMain.TransferSelected.DepartureTime - settings.KACMargin * 60 * 60)); + (mbTWP.windowMain.TransferSelected.DepartureTime - settings.AlarmMargin * 60 * 60)); KACWrapper.KACAPI.KACAlarm alarmNew = KACWrapper.KAC.Alarms.First(a => a.ID == tmpID); alarmNew.Notes = mbTWP.windowMain.GenerateTransferDetailsText(); - alarmNew.AlarmMargin = settings.KACMargin * 60 * 60; + alarmNew.AlarmMargin = settings.AlarmMargin * 60 * 60; alarmNew.AlarmAction = settings.KACAlarmAction; alarmNew.XferOriginBodyName = mbTWP.windowMain.TransferSelected.Origin.bodyName; alarmNew.XferTargetBodyName = mbTWP.windowMain.TransferSelected.Destination.bodyName; @@ -471,13 +471,38 @@ private void DrawTransferDetails() } else { - if (GUI.Button(new Rect(10, WindowRect.height - 30, 250, 20), new GUIContent(" Copy Transfer Details", Resources.btnCopy))) + if (GUI.Button(new Rect(10, WindowRect.height - 30, 132, 20), new GUIContent(" Add ACA Alarm", Resources.btnKAC))) + { + AlarmTypeRaw raw = new AlarmTypeRaw(); + + raw.title = String.Format("{0}@{2:0} -> {1}@{3:0}", + mbTWP.windowMain.TransferSelected.Origin.bodyName, + mbTWP.windowMain.TransferSelected.Destination.bodyName, + TransferSpecs.InitialOrbitAltitude / 1000, + TransferSpecs.FinalOrbitAltitude / 1000); + + raw.ut = mbTWP.windowMain.TransferSelected.DepartureTime - settings.AlarmMargin * 60 * 60; + raw.description = $"Alarm Margin: {settings.AlarmMargin} hours
"; + raw.description += mbTWP.windowMain.GenerateTransferDetailsText().Replace("\n", "
"); + // alarmNew.AlarmMargin = settings.KACMargin * 60 * 60; + raw.actions.warp = AlarmActions.WarpEnum.KillWarp; + + //raw.sourceBody = mbTWP.windowMain.TransferSelected.Origin.bodyName; + //raw.destBody = mbTWP.windowMain.TransferSelected.Destination.bodyName; + + if (raw.CanSetAlarm(KSP.UI.AlarmUIDisplayMode.Add)) + { + AlarmClockScenario.AddAlarm(raw); + } + } + + + if (GUI.Button(new Rect(132 + 15, WindowRect.height - 30, 120, 20), new GUIContent(" Copy Details", Resources.btnCopy))) { CopyAllDetailsToClipboard(); } } - - + GUILayout.EndVertical(); GUILayout.BeginVertical(); @@ -827,7 +852,7 @@ internal void ResetWindow() internal override void OnGUIEvery() { //close the settings window if we click elsewhere - if (!ShowMinimized && Event.current.type == EventType.mouseDown) + if (!ShowMinimized && Event.current.type == EventType.MouseDown) { if (!mbTWP.windowSettings.WindowRect.Contains(Event.current.mousePosition)) mbTWP.windowSettings.Visible = false; diff --git a/TransferWindowPlanner/TWPWindowSettings.cs b/TransferWindowPlanner/TWPWindowSettings.cs index db80157..652e9a5 100644 --- a/TransferWindowPlanner/TWPWindowSettings.cs +++ b/TransferWindowPlanner/TWPWindowSettings.cs @@ -250,7 +250,33 @@ private void DrawWindow_General() private void DrawWindow_Alarm() { - GUILayout.Label("Kerbal Alarm Clock Options", Styles.styleTextHeading); + GUILayout.BeginVertical(Styles.styleSettingsArea); + + GUILayout.Space(10); + + GUILayout.BeginHorizontal(); + GUILayout.Label("Margin", Styles.styleText, GUILayout.Width(85)); + if (DrawTextBox(ref settings.AlarmMargin)) + settings.Save(); + GUILayout.Label("(hours)", Styles.styleTextYellow, GUILayout.Width(50)); + GUILayout.EndHorizontal(); + + GUILayout.Space(10); + GUILayout.Label("Alarm Clock App (ACA)", Styles.styleTextHeading); + + if (!TWP_KACWrapper.KACWrapper.AssemblyExists || !TWP_KACWrapper.KACWrapper.InstanceExists) + { + GUILayout.Label("Stock Alarm Clock App is used.", Styles.styleTextCenterGreen); + } + else + { + if (DrawToggle(ref settings.OverrideKAC, "use Stock ACA instead of KAC", Styles.styleToggle)) + { + settings.Save(); + } + } + GUILayout.Space(10); + GUILayout.Label("Kerbal Alarm Clock (KAC)", Styles.styleTextHeading); if (!TWP_KACWrapper.KACWrapper.AssemblyExists) { @@ -273,28 +299,18 @@ private void DrawWindow_Alarm() GUILayout.Label("You can access these in scenes where KAC is visible", Styles.styleTextGreen); GUILayout.Space(10); GUILayout.Label("Go on... Move along... Nothing to see...", Styles.styleTextGreen); - } else { //Alarm Area - GUILayout.BeginVertical(Styles.styleSettingsArea); //if (KACWrapper.KAC.DrawAlarmActionChoice(ref KACAlarmAction, "On Alarm:", 108, 61)) if (KACWrapper.KAC.DrawAlarmActionChoice(ref settings.KACAlarmAction, "Action:", 90 , 38)) { settings.Save(); } - - GUILayout.BeginHorizontal(); - GUILayout.Label("Margin", Styles.styleText,GUILayout.Width(85)); - if (DrawTextBox(ref settings.KACMargin)) - settings.Save(); - GUILayout.Label("(hours)", Styles.styleTextYellow, GUILayout.Width(50)); - - GUILayout.EndHorizontal(); - - GUILayout.EndVertical(); } + + GUILayout.EndVertical(); } private void DrawWindow_Calendar() diff --git a/TransferWindowPlanner/TransferWindowPlanner.csproj b/TransferWindowPlanner/TransferWindowPlanner.csproj index 871f0de..0fa5909 100644 --- a/TransferWindowPlanner/TransferWindowPlanner.csproj +++ b/TransferWindowPlanner/TransferWindowPlanner.csproj @@ -9,7 +9,7 @@ Properties TransferWindowPlanner TransferWindowPlanner - v3.5 + v4.7.2 512