Skip to content

Commit efc91e0

Browse files
vanillamcclaude
andcommitted
Fix autostage toggle and StringBuilder return bug
- Autostage field is _autostage on AscentSettings, not StagingController. The Autostage property setter manages Staging.Users.Add/Remove internally. - Fix ShowMenu returning currentMenu.ToString() instead of stringBuilder.ToString() Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent d64eaa3 commit efc91e0

2 files changed

Lines changed: 7 additions & 5 deletions

File tree

MechJebRPM/MechJebProxy.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ private static void InitializeFieldInfoCache()
150150
f_Ascent_LimitAoA = typeof(MechJebModuleAscentSettings).GetField(nameof(MechJebModuleAscentSettings.LimitAoA), BindingFlags.Public | BindingFlags.Instance);
151151
f_Ascent_CorrectiveSteering = typeof(MechJebModuleAscentSettings).GetField(nameof(MechJebModuleAscentSettings.CorrectiveSteering), BindingFlags.Public | BindingFlags.Instance);
152152
f_Ascent_AutoPath = typeof(MechJebModuleAscentSettings).GetField(nameof(MechJebModuleAscentSettings.AutoPath), BindingFlags.Public | BindingFlags.Instance);
153-
f_Ascent_Autostage = typeof(MechJebModuleAscentSettings).GetField(nameof(MechJebModuleAscentSettings.Autostage), BindingFlags.Public | BindingFlags.Instance);
153+
f_Ascent_Autostage = typeof(MechJebModuleAscentSettings).GetField(nameof(MechJebModuleAscentSettings._autostage), BindingFlags.Public | BindingFlags.Instance);
154154
f_Landing_DeployGears = typeof(MechJebModuleLandingAutopilot).GetField(nameof(MechJebModuleLandingAutopilot.DeployGears), BindingFlags.Public | BindingFlags.Instance);
155155
f_Landing_DeployChutes = typeof(MechJebModuleLandingAutopilot).GetField(nameof(MechJebModuleLandingAutopilot.DeployChutes), BindingFlags.Public | BindingFlags.Instance);
156156
f_Landing_UseRCS = typeof(MechJebModuleLandingAutopilot).GetField(nameof(MechJebModuleLandingAutopilot.RCSAdjustment), BindingFlags.Public | BindingFlags.Instance);
@@ -166,7 +166,8 @@ private static void InitializeFieldInfoCache()
166166
f_Thrust_DifferentialThrottle = typeof(MechJebModuleThrustController).GetField(nameof(MechJebModuleThrustController.DifferentialThrottle), BindingFlags.Public | BindingFlags.Instance);
167167
f_Thrust_TransKillH = typeof(MechJebModuleThrustController).GetField(nameof(MechJebModuleThrustController.TransKillH), BindingFlags.Public | BindingFlags.Instance);
168168
f_Node_Autowarp = typeof(MechJebModuleNodeExecutor).GetField(nameof(MechJebModuleNodeExecutor.Autowarp), BindingFlags.Public | BindingFlags.Instance);
169-
f_Staging_Autostage = typeof(MechJebModuleStagingController).GetField("autostage", BindingFlags.Public | BindingFlags.Instance);
169+
// Staging autostage is actually AscentSettings._autostage — the property setter manages Staging.Users
170+
f_Staging_Autostage = typeof(MechJebModuleAscentSettings).GetField(nameof(MechJebModuleAscentSettings._autostage), BindingFlags.Public | BindingFlags.Instance);
170171
f_Staging_DropSolids = typeof(MechJebModuleStagingController).GetField(nameof(MechJebModuleStagingController.DropSolids), BindingFlags.Public | BindingFlags.Instance);
171172
f_Docking_ForceRoll = typeof(MechJebModuleDockingAutopilot).GetField(nameof(MechJebModuleDockingAutopilot.forceRol), BindingFlags.Public | BindingFlags.Instance);
172173
f_Docking_OverrideSafeDistance = typeof(MechJebModuleDockingAutopilot).GetField(nameof(MechJebModuleDockingAutopilot.overrideSafeDistance), BindingFlags.Public | BindingFlags.Instance);

MechJebRPM/MechJebRPM.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -618,7 +618,8 @@ private TextMenu BuildAscentStagingMenu()
618618
menu.selectedColor = JUtil.ColorToColorTag(Color.green);
619619
menu.disabledColor = JUtil.ColorToColorTag(Color.gray);
620620

621-
AddToggleItem(menu, "Autostage", mjCore.AscentSettings, MechJebProxy.f_Ascent_Autostage);
621+
AddToggleItem(menu, "Autostage",
622+
mjCore.AscentSettings, MechJebProxy.f_Staging_Autostage);
622623
AddNumericItem(menu, "Stop at Stage", mjCore.Staging.AutostageLimit,
623624
1.0, v => v.ToString("F0"), null, true, 0, false, 0);
624625

@@ -1672,7 +1673,7 @@ private TextMenu BuildUtilitiesMenu()
16721673
menu.disabledColor = JUtil.ColorToColorTag(Color.gray);
16731674

16741675
AddToggleItem(menu, "Autostage",
1675-
mjCore.Staging, MechJebProxy.f_Staging_Autostage);
1676+
mjCore.AscentSettings, MechJebProxy.f_Staging_Autostage);
16761677
AddNumericItem(menu, "Stop at Stage", mjCore.Staging.AutostageLimit,
16771678
1.0, v => v.ToString("F0"), null, true, 0, false, 0);
16781679
AddMenuItem(menu, "Stage Once", () => mjCore.Staging.AutostageOnce(null));
@@ -2440,7 +2441,7 @@ public string ShowMenu(int screenWidth, int screenHeight)
24402441
stringBuilder.Clear();
24412442
stringBuilder.AppendLine(pageTitle);
24422443
currentMenu.ShowMenu(stringBuilder, screenWidth, screenHeight - 1);
2443-
return currentMenu.ToString();
2444+
return stringBuilder.ToString();
24442445
}
24452446
#endregion
24462447
}

0 commit comments

Comments
 (0)