diff --git a/Directory.Build.targets b/Directory.Build.targets index 4f08c7c..9dc8f41 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -12,7 +12,7 @@ 0 1 - 0 + 1 $(MajorVersion).$(MinorVersion).$(PatchVersion) $(AssemblyVersion) $(AssemblyVersion) diff --git a/TweaksAndThings/Patches/CarInspector_PopulateCarPanel_Patch.cs b/TweaksAndThings/Patches/CarInspector_PopulateCarPanel_Patch.cs index f85411b..2a176c4 100644 --- a/TweaksAndThings/Patches/CarInspector_PopulateCarPanel_Patch.cs +++ b/TweaksAndThings/Patches/CarInspector_PopulateCarPanel_Patch.cs @@ -46,17 +46,24 @@ public class CarInspector_PopulateCarPanel_Patch builder.HStack(delegate (UIPanelBuilder hstack) { - hstack.AddButtonCompact("Handbrakes", delegate + var consist = __instance._car.EnumerateCoupled(LogicalEnd.A); + + var buttonName = $"{(consist.Any(c => c.HandbrakeApplied()) ? "Release " : "Set ")} {TextSprites.HandbrakeWheel}"; + hstack.AddButtonCompact(buttonName, delegate { MrocConsistHelper(__instance._car, MrocHelperType.Handbrake); - }).Tooltip("Release Consist Handbrakes", "Iterates over each car in this consist and releases handbrakes."); - if (StateManager.IsHost || true) + hstack.Rebuild(); + }).Tooltip(buttonName, $"Iterates over cars in this consist and {(consist.Any(c => c.HandbrakeApplied()) ? "releases" : "sets")} {TextSprites.HandbrakeWheel}."); + + if (consist.Any(c => c.EndAirSystemIssue())) { - hstack.AddButtonCompact("Air Lines", delegate + hstack.AddButtonCompact("Connect Air Lines", delegate { MrocConsistHelper(__instance._car, MrocHelperType.GladhandAndAnglecock); + hstack.Rebuild(); }).Tooltip("Connect Consist Air Lines", "Iterates over each car in this consist and connects gladhands and opens anglecocks."); } + hstack.RebuildOnInterval(1f); }); return true; @@ -70,7 +77,14 @@ public class CarInspector_PopulateCarPanel_Patch switch (mrocHelperType) { case MrocHelperType.Handbrake: - consist.Do(c => c.SetHandbrake(false)); + if (consist.Any(c => c.HandbrakeApplied())) + { + consist.Do(c => c.SetHandbrake(false)); + } else + { + TrainController tc = UnityEngine.Object.FindObjectOfType(); + tc.ApplyHandbrakesAsNeeded(consist.ToList(), PlaceTrainHandbrakes.Automatic); + } break; case MrocHelperType.GladhandAndAnglecock: