From 82261bc3447556d6319f753e5bbf576f09b9aa0d Mon Sep 17 00:00:00 2001 From: flyingsausage87 Date: Sat, 30 May 2026 21:40:41 -0500 Subject: [PATCH 1/2] Fix HUD vanishing after closing the Instant Actions menu StardewUI's menu (DocumentViewMenu) sets Game1.displayHUD = false while open and never restores it on close. Because the radial wheel has already closed by the time that menu opens, StarControl's own HUD save/restore never covers it, so the HUD stayed hidden after closing Instant Actions -- and the latched-off value then poisoned the wheel's HUD capture on the next open, requiring F4 to recover. Capture the HUD state in OpenRemappingMenu and restore it via the menu controller's Closing event (the cleanupBeforeExit lifecycle hook that fires at actual close time; Closed fires at open). Co-Authored-By: Claude Opus 4.8 --- StarControl/ModEntry.cs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/StarControl/ModEntry.cs b/StarControl/ModEntry.cs index 7762760..e8fec76 100644 --- a/StarControl/ModEntry.cs +++ b/StarControl/ModEntry.cs @@ -525,6 +525,13 @@ private void OpenRemappingMenu() var controller = ViewEngine.OpenRootMenu("Remapping", context); context.Controller = controller; controller.PositionSelector = context.GetMenuPosition; + // StardewUI's menu sets Game1.displayHUD = false while it's open and never restores + // it on close, which permanently hides the HUD (and the latched value then poisons + // the radial wheel's own HUD save/restore on the next open). Capture the HUD state + // and restore it when the menu closes. Note: the Closing event (cleanupBeforeExit + // lifecycle) is the one that fires at actual close time; Closed fires at open. + var hudWasVisible = Game1.displayHUD; + controller.Closing += () => Game1.displayHUD = hudWasVisible; Game1.activeClickableMenu = controller!.Menu; } From f671fa8294b1868e9a4347dda4616a9f18988d99 Mon Sep 17 00:00:00 2001 From: flyingsausage87 Date: Sat, 30 May 2026 22:45:29 -0500 Subject: [PATCH 2/2] Fix GMCM extension deploy path for monorepo layout The Deploy target copied StarControl.Gmcm.dll to $(SolutionDir)StarControl/assets/extensions, which assumes the solution sits beside the StarControl project. In a monorepo where the .sln lives elsewhere, this created a stray StarControl/ folder at the solution root and the extension never reached the deployed mod, so keybinding sync silently failed with "GMCM extension not found". Deploy directly into the game's deployed mod folder via $(GameModsPath), which is exactly where StarControl loads it from at runtime (Helper.DirectoryPath/assets/extensions/StarControl.Gmcm.dll). Guarded on GameModsPath being set so a CI build without a game install won't fail. Co-Authored-By: Claude Opus 4.8 --- StarControl.Gmcm/StarControl.Gmcm.csproj | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/StarControl.Gmcm/StarControl.Gmcm.csproj b/StarControl.Gmcm/StarControl.Gmcm.csproj index 279f7b8..ae683c2 100644 --- a/StarControl.Gmcm/StarControl.Gmcm.csproj +++ b/StarControl.Gmcm/StarControl.Gmcm.csproj @@ -50,8 +50,22 @@ - - + + + + $(GameModsPath)\Star Control - CustomisationPlus\assets\extensions + + + +