From 301e36bb37103d5502399d237b22a679ab158a75 Mon Sep 17 00:00:00 2001 From: Nick Date: Sun, 21 Aug 2022 22:55:32 -0400 Subject: [PATCH] Add localized warp rich presence --- NewHorizons/Assets/translations/english.json | 3 ++- NewHorizons/Assets/translations/french.json | 3 ++- NewHorizons/Handlers/TranslationHandler.cs | 25 ++++++------------- NewHorizons/Main.cs | 3 ++- .../OWRichPresence/RichPresenceHandler.cs | 11 +++++++- 5 files changed, 24 insertions(+), 21 deletions(-) diff --git a/NewHorizons/Assets/translations/english.json b/NewHorizons/Assets/translations/english.json index 528d5fa3..b7aae651 100644 --- a/NewHorizons/Assets/translations/english.json +++ b/NewHorizons/Assets/translations/english.json @@ -13,7 +13,8 @@ "ENGAGE_WARP_PROMPT": "Engage Warp To {0}", "WARP_LOCKED": "AUTOPILOT LOCKED TO:\n{0}", "LOCK_AUTOPILOT_WARP": "Lock Autopilot to Star System", - "RICH_PRESENCE_EXPLORING": "Exploring {0}." + "RICH_PRESENCE_EXPLORING": "Exploring {0}.", + "RICH_PRESENCE_WARPING": "Warping to {0}." }, "AchievementTranslations": { "NH_EATEN_OUTSIDE_BRAMBLE": { diff --git a/NewHorizons/Assets/translations/french.json b/NewHorizons/Assets/translations/french.json index a3a2ab56..37adf8ac 100644 --- a/NewHorizons/Assets/translations/french.json +++ b/NewHorizons/Assets/translations/french.json @@ -13,7 +13,8 @@ "ENGAGE_WARP_PROMPT": "Engagez la distorsion vers {0}", "WARP_LOCKED": "PILOTE AUTOMATIQUE VISÉ SUR:\n{0}", "LOCK_AUTOPILOT_WARP": "Visez le pilote automatique", - "RICH_PRESENCE_EXPLORING": "En explorant {0}." + "RICH_PRESENCE_EXPLORING": "En explorant {0}.", + "RICH_PRESENCE_WARPING": "En route vers {0}." }, "AchievementTranslations": { "NH_EATEN_OUTSIDE_BRAMBLE": { diff --git a/NewHorizons/Handlers/TranslationHandler.cs b/NewHorizons/Handlers/TranslationHandler.cs index d682f578..aa253c3e 100644 --- a/NewHorizons/Handlers/TranslationHandler.cs +++ b/NewHorizons/Handlers/TranslationHandler.cs @@ -2,6 +2,8 @@ using NewHorizons.External.Configs; using System; using System.Collections.Generic; using System.Linq; +using Logger = NewHorizons.Utility.Logger; + namespace NewHorizons.Handlers { public static class TranslationHandler @@ -18,11 +20,6 @@ namespace NewHorizons.Handlers } public static string GetTranslation(string text, TextType type) - { - return GetTranslation(text, type, out var _); - } - - public static string GetTranslation(string text, TextType type, out TextTranslation.Language translatedLanguage) { Dictionary> dictionary; var language = TextTranslation.Get().m_language; @@ -39,31 +36,25 @@ namespace NewHorizons.Handlers dictionary = _uiTranslationDictionary; break; default: - translatedLanguage = TextTranslation.Language.UNKNOWN; + Logger.LogVerbose($"Invalid TextType {type}"); return text; } + // Get the translated text if (dictionary.TryGetValue(language, out var table)) - { if (table.TryGetValue(text, out var translatedText)) - { - translatedLanguage = language; return translatedText; - } - } + + Logger.LogVerbose($"Defaulting to english for {text}"); // Try to default to English if (dictionary.TryGetValue(TextTranslation.Language.ENGLISH, out var englishTable)) - { if (englishTable.TryGetValue(text, out var englishText)) - { - translatedLanguage = TextTranslation.Language.ENGLISH; return englishText; - } - } + + Logger.LogVerbose($"Defaulting to key for {text}"); // Default to the key - translatedLanguage = TextTranslation.Language.UNKNOWN; return text; } diff --git a/NewHorizons/Main.cs b/NewHorizons/Main.cs index 8df95592..bdaf697b 100644 --- a/NewHorizons/Main.cs +++ b/NewHorizons/Main.cs @@ -200,7 +200,8 @@ namespace NewHorizons AchievementHandler.Init(); VoiceHandler.Init(); RichPresenceHandler.Init(); - OnStarSystemLoaded.AddListener(RichPresenceHandler.SetUpSolarSystem); + OnStarSystemLoaded.AddListener(RichPresenceHandler.OnStarSystemLoaded); + OnChangeStarSystem.AddListener(RichPresenceHandler.OnChangeStarSystem); LoadAddonManifest("Assets/addon-manifest.json", this); } diff --git a/NewHorizons/OtherMods/OWRichPresence/RichPresenceHandler.cs b/NewHorizons/OtherMods/OWRichPresence/RichPresenceHandler.cs index d1462451..eab39d4c 100644 --- a/NewHorizons/OtherMods/OWRichPresence/RichPresenceHandler.cs +++ b/NewHorizons/OtherMods/OWRichPresence/RichPresenceHandler.cs @@ -5,6 +5,7 @@ using System; using System.IO; using System.Linq; using UnityEngine; +using UnityEngine.SceneManagement; using Logger = NewHorizons.Utility.Logger; namespace NewHorizons.OtherMods.OWRichPresence @@ -49,7 +50,7 @@ namespace NewHorizons.OtherMods.OWRichPresence API.CreateTrigger(go, sector, message, name.Replace(" ", "").Replace("'", "").ToLowerInvariant()); } - public static void SetUpSolarSystem(string name) + public static void OnStarSystemLoaded(string name) { if (name == "SolarSystem") return; @@ -58,5 +59,13 @@ namespace NewHorizons.OtherMods.OWRichPresence API.SetCurrentRootPresence(message, "sun"); } + + public static void OnChangeStarSystem(string destination) + { + var localizedName = ShipLogStarChartMode.UniqueIDToName(destination); + var message = TranslationHandler.GetTranslation("RICH_PRESENCE_WARPING", TranslationHandler.TextType.UI).Replace("{0}", localizedName); + + API.SetRichPresence(message, "newhorizons"); + } } }