From 862c98133c0b28a6e12c049eb6965180fd3ccf65 Mon Sep 17 00:00:00 2001 From: "Nick J. Connors" Date: Sun, 6 Feb 2022 23:05:38 -0500 Subject: [PATCH] Separate StarChartHandler into its own thing --- NewHorizons/Builder/General/ShipLogBuilder.cs | 40 +------------- NewHorizons/Handlers/StarChartHandler.cs | 52 +++++++++++++++++++ NewHorizons/Main.cs | 3 +- NewHorizons/Tools/Patches.cs | 3 +- NewHorizons/Tools/WarpDrivePatches.cs | 9 ++-- 5 files changed, 62 insertions(+), 45 deletions(-) create mode 100644 NewHorizons/Handlers/StarChartHandler.cs diff --git a/NewHorizons/Builder/General/ShipLogBuilder.cs b/NewHorizons/Builder/General/ShipLogBuilder.cs index 6c89fbf9..1f37f1e6 100644 --- a/NewHorizons/Builder/General/ShipLogBuilder.cs +++ b/NewHorizons/Builder/General/ShipLogBuilder.cs @@ -15,8 +15,7 @@ namespace NewHorizons.Builder.General public static class ShipLogBuilder { public static readonly string PAN_ROOT_PATH = "Ship_Body/Module_Cabin/Systems_Cabin/ShipLogPivot/ShipLog/ShipLogPivot/ShipLogCanvas/MapMode/ScaleRoot/PanRoot"; - - public static ShipLogStarChartMode ShipLogStarChartMode; + private static Dictionary astroIdToBody = new Dictionary(); private static NewHorizonsBody GetConfigFromEntry(ShipLogEntry entry) @@ -645,42 +644,5 @@ namespace NewHorizons.Builder.General } } #endregion - - public static void Init() - { - var shipLogRoot = GameObject.Find("Ship_Body/Module_Cabin/Systems_Cabin/ShipLogPivot/ShipLog/ShipLogPivot/ShipLogCanvas"); - - var starChartLog = new GameObject("StarChartMode"); - starChartLog.SetActive(false); - starChartLog.transform.parent = shipLogRoot.transform; - starChartLog.transform.localScale = Vector3.one * 1f; - starChartLog.transform.localPosition = Vector3.zero; - starChartLog.transform.localRotation = Quaternion.Euler(0, 0, 0); - - ShipLogStarChartMode = starChartLog.AddComponent(); - - var reticleImage = GameObject.Instantiate(GameObject.Find("Ship_Body/Module_Cabin/Systems_Cabin/ShipLogPivot/ShipLog/ShipLogPivot/ShipLogCanvas/DetectiveMode/ReticleImage (1)/"), starChartLog.transform); - - var scaleRoot = new GameObject("ScaleRoot"); - scaleRoot.transform.parent = starChartLog.transform; - scaleRoot.transform.localScale = Vector3.one; - scaleRoot.transform.localPosition = Vector3.zero; - scaleRoot.transform.localRotation = Quaternion.Euler(0, 0, 0); - - var panRoot = new GameObject("PanRoot"); - panRoot.transform.parent = scaleRoot.transform; - panRoot.transform.localScale = Vector3.one; - panRoot.transform.localPosition = Vector3.zero; - panRoot.transform.localRotation = Quaternion.Euler(0,0,0); - - var centerPromptList = shipLogRoot.transform.Find("ScreenPromptListScaleRoot/ScreenPromptList_Center")?.GetComponent(); - var upperRightPromptList = shipLogRoot.transform.Find("ScreenPromptListScaleRoot/ScreenPromptList_UpperRight")?.GetComponent(); - var oneShotSource = GameObject.Find("Ship_Body/Module_Cabin/Systems_Cabin/ShipLogPivot/ShipLog/OneShotAudio_ShipLog")?.GetComponent(); - - ShipLogStarChartMode.Initialize( - centerPromptList, - upperRightPromptList, - oneShotSource); - } } } diff --git a/NewHorizons/Handlers/StarChartHandler.cs b/NewHorizons/Handlers/StarChartHandler.cs new file mode 100644 index 00000000..d60d5bb0 --- /dev/null +++ b/NewHorizons/Handlers/StarChartHandler.cs @@ -0,0 +1,52 @@ +using NewHorizons.Components; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using UnityEngine; + +namespace NewHorizons.Handlers +{ + public static class StarChartHandler + { + public static ShipLogStarChartMode ShipLogStarChartMode; + + public static void Init() + { + var shipLogRoot = GameObject.Find("Ship_Body/Module_Cabin/Systems_Cabin/ShipLogPivot/ShipLog/ShipLogPivot/ShipLogCanvas"); + + var starChartLog = new GameObject("StarChartMode"); + starChartLog.SetActive(false); + starChartLog.transform.parent = shipLogRoot.transform; + starChartLog.transform.localScale = Vector3.one * 1f; + starChartLog.transform.localPosition = Vector3.zero; + starChartLog.transform.localRotation = Quaternion.Euler(0, 0, 0); + + ShipLogStarChartMode = starChartLog.AddComponent(); + + var reticleImage = GameObject.Instantiate(GameObject.Find("Ship_Body/Module_Cabin/Systems_Cabin/ShipLogPivot/ShipLog/ShipLogPivot/ShipLogCanvas/DetectiveMode/ReticleImage (1)/"), starChartLog.transform); + + var scaleRoot = new GameObject("ScaleRoot"); + scaleRoot.transform.parent = starChartLog.transform; + scaleRoot.transform.localScale = Vector3.one; + scaleRoot.transform.localPosition = Vector3.zero; + scaleRoot.transform.localRotation = Quaternion.Euler(0, 0, 0); + + var panRoot = new GameObject("PanRoot"); + panRoot.transform.parent = scaleRoot.transform; + panRoot.transform.localScale = Vector3.one; + panRoot.transform.localPosition = Vector3.zero; + panRoot.transform.localRotation = Quaternion.Euler(0, 0, 0); + + var centerPromptList = shipLogRoot.transform.Find("ScreenPromptListScaleRoot/ScreenPromptList_Center")?.GetComponent(); + var upperRightPromptList = shipLogRoot.transform.Find("ScreenPromptListScaleRoot/ScreenPromptList_UpperRight")?.GetComponent(); + var oneShotSource = GameObject.Find("Ship_Body/Module_Cabin/Systems_Cabin/ShipLogPivot/ShipLog/OneShotAudio_ShipLog")?.GetComponent(); + + ShipLogStarChartMode.Initialize( + centerPromptList, + upperRightPromptList, + oneShotSource); + } + } +} diff --git a/NewHorizons/Main.cs b/NewHorizons/Main.cs index 625b076b..af99a57d 100644 --- a/NewHorizons/Main.cs +++ b/NewHorizons/Main.cs @@ -23,6 +23,7 @@ using UnityEngine; using UnityEngine.SceneManagement; using UnityEngine.UI; using Logger = NewHorizons.Utility.Logger; +using NewHorizons.Handlers; namespace NewHorizons { @@ -114,7 +115,7 @@ namespace NewHorizons HasWarpDrive = true; _shipWarpController = GameObject.Find("Ship_Body").AddComponent(); - Instance.ModHelper.Events.Unity.FireOnNextUpdate(() => ShipLogBuilder.Init()); + Instance.ModHelper.Events.Unity.FireOnNextUpdate(() => StarChartHandler.Init()); LoadBody(LoadConfig(this, "AssetBundle/WarpDriveConfig.json")); } diff --git a/NewHorizons/Tools/Patches.cs b/NewHorizons/Tools/Patches.cs index 4c885417..2a74328e 100644 --- a/NewHorizons/Tools/Patches.cs +++ b/NewHorizons/Tools/Patches.cs @@ -16,6 +16,7 @@ using OWML.Utils; using UnityEngine; using Logger = NewHorizons.Utility.Logger; using Object = UnityEngine.Object; +using NewHorizons.Handlers; namespace NewHorizons.Tools { @@ -382,7 +383,7 @@ namespace NewHorizons.Tools { if(__instance._playerAtFlightConsole && OWInput.IsNewlyPressed(InputLibrary.autopilot, InputMode.ShipCockpit)) { - var targetSystem = ShipLogBuilder.ShipLogStarChartMode.GetTargetStarSystem(); + var targetSystem = StarChartHandler.ShipLogStarChartMode.GetTargetStarSystem(); if (targetSystem != null) { Main.Instance.ChangeCurrentStarSystem(targetSystem, true); diff --git a/NewHorizons/Tools/WarpDrivePatches.cs b/NewHorizons/Tools/WarpDrivePatches.cs index e84d0d71..e06ce4c0 100644 --- a/NewHorizons/Tools/WarpDrivePatches.cs +++ b/NewHorizons/Tools/WarpDrivePatches.cs @@ -1,4 +1,5 @@ using NewHorizons.Builder.General; +using NewHorizons.Handlers; using System; using System.Collections.Generic; using System.Linq; @@ -35,7 +36,7 @@ namespace NewHorizons.Tools if (__instance._playerAtFlightConsole && OWInput.IsNewlyPressed(InputLibrary.autopilot, InputMode.ShipCockpit)) { - var targetSystem = ShipLogBuilder.ShipLogStarChartMode.GetTargetStarSystem(); + var targetSystem = StarChartHandler.ShipLogStarChartMode.GetTargetStarSystem(); if (targetSystem != null) { Main.Instance.ChangeCurrentStarSystem(targetSystem, true); @@ -52,7 +53,7 @@ namespace NewHorizons.Tools if (__instance._exiting || OWInput.GetInputMode() != InputMode.ShipComputer || __instance._currentMode.AllowCancelInput() && OWInput.IsNewlyPressed(InputLibrary.cancel, InputMode.All) - || ShipLogBuilder.ShipLogStarChartMode == null) + || StarChartHandler.ShipLogStarChartMode == null) return true; __instance._exitPrompt.SetVisibility(__instance._currentMode.AllowCancelInput()); @@ -66,8 +67,8 @@ namespace NewHorizons.Tools __instance._currentMode = (flag ? __instance._detectiveMode : __instance._mapMode); if (currentMode.Equals(__instance._mapMode)) - __instance._currentMode = ShipLogBuilder.ShipLogStarChartMode; - else if (currentMode.Equals(ShipLogBuilder.ShipLogStarChartMode)) + __instance._currentMode = StarChartHandler.ShipLogStarChartMode; + else if (currentMode.Equals(StarChartHandler.ShipLogStarChartMode)) __instance._currentMode = __instance._detectiveMode; else __instance._currentMode = __instance._mapMode;