put everything back in context menu as one big happy family.

This commit is contained in:
2025-09-05 10:50:00 -05:00
parent 32f3e8b2db
commit d692567d95
2 changed files with 24 additions and 29 deletions

View File

@@ -2,6 +2,6 @@
<PropertyGroup> <PropertyGroup>
<MajorVersion>2</MajorVersion> <MajorVersion>2</MajorVersion>
<MinorVersion>1</MinorVersion> <MinorVersion>1</MinorVersion>
<PatchVersion>7</PatchVersion> <PatchVersion>8</PatchVersion>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

View File

@@ -34,8 +34,6 @@ internal class CarPickable_HandleShowContextMenu_Patch
{ {
trainController.SelectedCar = ((trainController.SelectedCar == car) ? null : car); trainController.SelectedCar = ((trainController.SelectedCar == car) ? null : car);
}); });
if (GameInput.IsShiftDown)
{
if (!car.EnumerateCoupled().Any(c => !c.SupportsBleed())) if (!car.EnumerateCoupled().Any(c => !c.SupportsBleed()))
{ {
shared.AddButton(ContextMenuQuadrant.Brakes, $"Bleed Consist", SpriteName.Bleed, delegate shared.AddButton(ContextMenuQuadrant.Brakes, $"Bleed Consist", SpriteName.Bleed, delegate
@@ -43,12 +41,22 @@ internal class CarPickable_HandleShowContextMenu_Patch
CarInspector_PopulateCarPanel_Patch.MrocConsistHelper(car, MrocHelperType.BleedAirSystem, buttonsHaveCost); CarInspector_PopulateCarPanel_Patch.MrocConsistHelper(car, MrocHelperType.BleedAirSystem, buttonsHaveCost);
}); });
} }
if (car.SupportsBleed())
{
shared.AddButton(ContextMenuQuadrant.Brakes, "Bleed", SpriteName.Bleed, car.SetBleed);
}
shared.AddButton(ContextMenuQuadrant.Brakes, $"{(car.EnumerateCoupled().Any(c => c.HandbrakeApplied()) ? "Release " : "Set ")} Consist", SpriteName.Handbrake, delegate shared.AddButton(ContextMenuQuadrant.Brakes, $"{(car.EnumerateCoupled().Any(c => c.HandbrakeApplied()) ? "Release " : "Set ")} Consist", SpriteName.Handbrake, delegate
{ {
CarInspector_PopulateCarPanel_Patch.MrocConsistHelper(car, MrocHelperType.Handbrake, buttonsHaveCost); CarInspector_PopulateCarPanel_Patch.MrocConsistHelper(car, MrocHelperType.Handbrake, buttonsHaveCost);
}); });
shared.AddButton(ContextMenuQuadrant.Brakes, car.air.handbrakeApplied ? "Release Handbrake" : "Apply Handbrake", SpriteName.Handbrake, delegate
{
bool apply = !car.air.handbrakeApplied;
car.SetHandbrake(apply);
});
if (car.EnumerateCoupled().Any(c => c.EndAirSystemIssue())) if (car.EnumerateCoupled().Any(c => c.EndAirSystemIssue()))
{ {
shared.AddButton(ContextMenuQuadrant.General, $"Air Up Consist", SpriteName.Select, delegate shared.AddButton(ContextMenuQuadrant.General, $"Air Up Consist", SpriteName.Select, delegate
@@ -56,19 +64,6 @@ internal class CarPickable_HandleShowContextMenu_Patch
CarInspector_PopulateCarPanel_Patch.MrocConsistHelper(car, MrocHelperType.GladhandAndAnglecock, buttonsHaveCost); CarInspector_PopulateCarPanel_Patch.MrocConsistHelper(car, MrocHelperType.GladhandAndAnglecock, buttonsHaveCost);
}); });
} }
}
else
{
if (car.SupportsBleed())
{
shared.AddButton(ContextMenuQuadrant.Brakes, "Bleed", SpriteName.Bleed, car.SetBleed);
}
shared.AddButton(ContextMenuQuadrant.Brakes, car.air.handbrakeApplied ? "Release Handbrake" : "Apply Handbrake", SpriteName.Handbrake, delegate
{
bool apply = !car.air.handbrakeApplied;
car.SetHandbrake(apply);
});
}
shared.AddButton(ContextMenuQuadrant.General, $"Follow", SpriteName.Inspect, delegate shared.AddButton(ContextMenuQuadrant.General, $"Follow", SpriteName.Inspect, delegate
{ {
@@ -76,7 +71,7 @@ internal class CarPickable_HandleShowContextMenu_Patch
}); });
string secondaryLine = car.Waybill.HasValue ? $"{Environment.NewLine}{car.Waybill.Value.Destination.DisplayName}" : string.Empty; string secondaryLine = car.Waybill.HasValue ? $"{Environment.NewLine}{car.Waybill.Value.Destination.DisplayName}" : string.Empty;
secondaryLine = secondaryLine.Length > 10 + Environment.NewLine.Length ? $"{secondaryLine.Substring(0, 7+ Environment.NewLine.Length)}..." : secondaryLine; secondaryLine = secondaryLine.Length > 10 + Environment.NewLine.Length ? $"{secondaryLine.Substring(0, 7 + Environment.NewLine.Length)}..." : secondaryLine;
shared.Show($"{car.DisplayName}{secondaryLine}"); shared.Show($"{car.DisplayName}{secondaryLine}");
shared.BuildItemAngles(); shared.BuildItemAngles();
shared.StartCoroutine(shared.AnimateButtonsShown()); shared.StartCoroutine(shared.AnimateButtonsShown());