diff --git a/CHANGELOG.md b/CHANGELOG.md index c69634181..a270bf333 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ ## Changelog +0.9.21: +- Compatible with game version 0.10.34.28470 + 0.9.20: - Compatible with game version 0.10.34.28392 - @gabrielgad: Sync Planet Memo diff --git a/NebulaNetwork/PacketProcessors/Universe/PlanetMemoUpdateProcessor.cs b/NebulaNetwork/PacketProcessors/Universe/PlanetMemoUpdateProcessor.cs index 8793b3ae9..2b916cfba 100644 --- a/NebulaNetwork/PacketProcessors/Universe/PlanetMemoUpdateProcessor.cs +++ b/NebulaNetwork/PacketProcessors/Universe/PlanetMemoUpdateProcessor.cs @@ -86,5 +86,12 @@ private static void UpdateTodosPool(PlanetMemoUpdatePacket packet) newTodo.contentColorIndex = packet.ColorData; } } + + // Refresh UI if it's open for this planet + var uiTodoPanel = UIRoot.instance.uiGame.planetDetail.uiTodoPanel; + if (uiTodoPanel.active && uiTodoPanel.astroId == packet.PlanetId) + { + uiTodoPanel.SetData(uiTodoPanel.astroId); + } } } diff --git a/NebulaPatcher/Patches/Dynamic/UIAstroTodoPanel_Patch.cs b/NebulaPatcher/Patches/Dynamic/UIAstroTodoPanel_Patch.cs index 433534bfd..afa517021 100644 --- a/NebulaPatcher/Patches/Dynamic/UIAstroTodoPanel_Patch.cs +++ b/NebulaPatcher/Patches/Dynamic/UIAstroTodoPanel_Patch.cs @@ -45,14 +45,27 @@ public static void SetData_Postfix(UIAstroTodoPanel __instance, int _astroId) } } + [HarmonyPostfix] + [HarmonyPatch(nameof(UIAstroTodoPanel._OnRegEvent))] + public static void OnRegEvent_Postfix(UIAstroTodoPanel __instance) + { + __instance.todoInputField.onEndEdit.AddListener(OnTodoInputFieldEndEdit); + } + + [HarmonyPostfix] + [HarmonyPatch(nameof(UIAstroTodoPanel._OnUnregEvent))] + public static void OnUnregEvent_Postfix(UIAstroTodoPanel __instance) + { + __instance.todoInputField.onEndEdit.RemoveListener(OnTodoInputFieldEndEdit); + } + /// /// Sync memo content when user finishes editing. /// - [HarmonyPostfix] - [HarmonyPatch(nameof(UIAstroTodoPanel.OnTodoInputFieldEndEdit))] - public static void OnTodoInputFieldEndEdit_Postfix(UIAstroTodoPanel __instance) + public static void OnTodoInputFieldEndEdit(string _) { if (!Multiplayer.IsActive || Multiplayer.Session.Warning.IsIncomingMarkerPacket) return; + var __instance = UIRoot.instance.uiGame.planetDetail.uiTodoPanel; if (__instance.astroId <= 0 || __instance.todo == null) return; Multiplayer.Session.Network.SendPacket( diff --git a/version.json b/version.json index c49a6c343..c255bee6d 100644 --- a/version.json +++ b/version.json @@ -1,6 +1,6 @@ { "$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json", - "version": "0.9.20", + "version": "0.9.21", "assemblyVersion": { "precision": "build" },