2020using Microsoft . Xna . Framework ;
2121using Orts . Common ;
2222using Orts . Simulation . RollingStocks ;
23+ using Orts . Simulation . RollingStocks . SubSystems . Brakes ;
2324using Orts . Simulation . RollingStocks . SubSystems . Brakes . MSTS ;
2425using Orts . Simulation . RollingStocks . SubSystems . PowerSupplies ;
2526using ORTS . Common ;
@@ -47,12 +48,22 @@ protected override ControlLayout Layout(ControlLayout layout)
4748 {
4849 Label ID , buttonHandbrake , buttonTogglePower , buttonToggleMU , buttonToggleBatterySwitch , buttonToggleElectricTrainSupplyCable , buttonToggleBrakeHose , buttonToggleAngleCockA , buttonToggleAngleCockB , buttonToggleBleedOffValve , buttonClose ;
4950
51+ TrainCar trainCar = Viewer . PlayerTrain . Cars [ CarPosition ] ;
52+ BrakeSystem brakeSystem = ( trainCar as MSTSWagon ) . BrakeSystem ;
53+
5054 var vbox = base . Layout ( layout ) . AddLayoutVertical ( ) ;
5155 vbox . Add ( ID = new Label ( vbox . RemainingWidth , Owner . TextFontDefault . Height , Viewer . Catalog . GetString ( "Car ID" ) + " " + ( CarPosition >= Viewer . PlayerTrain . Cars . Count ? " " : Viewer . PlayerTrain . Cars [ CarPosition ] . CarID ) , LabelAlignment . Center ) ) ;
5256 ID . Color = Color . Red ;
5357 vbox . AddHorizontalSeparator ( ) ;
54- vbox . Add ( buttonHandbrake = new Label ( vbox . RemainingWidth , Owner . TextFontDefault . Height , Viewer . Catalog . GetString ( "Toggle Handbrake" ) , LabelAlignment . Center ) ) ;
58+
59+ string buttonHandbrakeText = "" ;
60+ if ( ( trainCar as MSTSWagon ) . GetTrainHandbrakeStatus ( ) )
61+ buttonHandbrakeText = Viewer . Catalog . GetString ( "Toggle Handbrake to off" ) ;
62+ else
63+ buttonHandbrakeText = Viewer . Catalog . GetString ( "Toggle Handbrake to set" ) ;
64+ vbox . Add ( buttonHandbrake = new Label ( vbox . RemainingWidth , Owner . TextFontDefault . Height , buttonHandbrakeText , LabelAlignment . Center ) ) ;
5565 vbox . AddHorizontalSeparator ( ) ;
66+
5667 vbox . Add ( buttonTogglePower = new Label ( vbox . RemainingWidth , Owner . TextFontDefault . Height , Viewer . Catalog . GetString ( "Toggle Power" ) , LabelAlignment . Center ) ) ;
5768 vbox . AddHorizontalSeparator ( ) ;
5869 vbox . Add ( buttonToggleMU = new Label ( vbox . RemainingWidth , Owner . TextFontDefault . Height , Viewer . Catalog . GetString ( "Toggle MU Connection" ) , LabelAlignment . Center ) ) ;
@@ -61,22 +72,55 @@ protected override ControlLayout Layout(ControlLayout layout)
6172 vbox . AddHorizontalSeparator ( ) ;
6273 vbox . Add ( buttonToggleElectricTrainSupplyCable = new Label ( vbox . RemainingWidth , Owner . TextFontDefault . Height , Viewer . Catalog . GetString ( "Toggle Electric Train Supply Connection" ) , LabelAlignment . Center ) ) ;
6374 vbox . AddHorizontalSeparator ( ) ;
64- vbox . Add ( buttonToggleBrakeHose = new Label ( vbox . RemainingWidth , Owner . TextFontDefault . Height , Viewer . Catalog . GetString ( "Toggle Brake Hose Connection" ) , LabelAlignment . Center ) ) ;
75+
76+ string buttonToggleBrakeHoseText = "" ;
77+ if ( brakeSystem . FrontBrakeHoseConnected )
78+ buttonToggleBrakeHoseText = Viewer . Catalog . GetString ( "Toggle Brake Hose to unconnected" ) ;
79+ else
80+ buttonToggleBrakeHoseText = Viewer . Catalog . GetString ( "Toggle Brake Hose to connected" ) ;
81+ vbox . Add ( buttonToggleBrakeHose = new Label ( vbox . RemainingWidth , Owner . TextFontDefault . Height , buttonToggleBrakeHoseText , LabelAlignment . Center ) ) ;
6582 vbox . AddHorizontalSeparator ( ) ;
66- vbox . Add ( buttonToggleAngleCockA = new Label ( vbox . RemainingWidth , Owner . TextFontDefault . Height , Viewer . Catalog . GetString ( "Open/Close Front Angle Cock" ) , LabelAlignment . Center ) ) ;
83+
84+ string buttonToggleAngleCockAText = "" ;
85+ if ( brakeSystem . AngleCockAOpen )
86+ buttonToggleAngleCockAText = Viewer . Catalog . GetString ( "Close Front Angle Cock" ) ;
87+ else
88+ buttonToggleAngleCockAText = Viewer . Catalog . GetString ( "Open Front Angle Cock" ) ;
89+ vbox . Add ( buttonToggleAngleCockA = new Label ( vbox . RemainingWidth , Owner . TextFontDefault . Height , buttonToggleAngleCockAText , LabelAlignment . Center ) ) ;
6790 vbox . AddHorizontalSeparator ( ) ;
68- vbox . Add ( buttonToggleAngleCockB = new Label ( vbox . RemainingWidth , Owner . TextFontDefault . Height , Viewer . Catalog . GetString ( "Open/Close Rear Angle Cock" ) , LabelAlignment . Center ) ) ;
91+
92+ string buttonToggleAngleCockBText = "" ;
93+ if ( brakeSystem . AngleCockBOpen )
94+ buttonToggleAngleCockBText = Viewer . Catalog . GetString ( "Close Rear Angle Cock" ) ;
95+ else
96+ buttonToggleAngleCockBText = Viewer . Catalog . GetString ( "Open Rear Angle Cock" ) ;
97+ vbox . Add ( buttonToggleAngleCockB = new Label ( vbox . RemainingWidth , Owner . TextFontDefault . Height , buttonToggleAngleCockBText , LabelAlignment . Center ) ) ;
6998 vbox . AddHorizontalSeparator ( ) ;
70- vbox . Add ( buttonToggleBleedOffValve = new Label ( vbox . RemainingWidth , Owner . TextFontDefault . Height , Viewer . Catalog . GetString ( "Open/Close Bleed Off Valve" ) , LabelAlignment . Center ) ) ;
99+
100+ string buttonToggleBleedOffValveAText = "" ;
101+ if ( brakeSystem . BleedOffValveOpen )
102+ buttonToggleBleedOffValveAText = Viewer . Catalog . GetString ( "Close Bleed Off Valve" ) ;
103+ else
104+ buttonToggleBleedOffValveAText = Viewer . Catalog . GetString ( "Open Bleed Off Valve" ) ;
105+ vbox . Add ( buttonToggleBleedOffValve = new Label ( vbox . RemainingWidth , Owner . TextFontDefault . Height , buttonToggleBleedOffValveAText , LabelAlignment . Center ) ) ;
71106 vbox . AddHorizontalSeparator ( ) ;
107+
72108 vbox . Add ( buttonClose = new Label ( vbox . RemainingWidth , Owner . TextFontDefault . Height , Viewer . Catalog . GetString ( "Close window" ) , LabelAlignment . Center ) ) ;
73109
74- buttonHandbrake . Click += new Action < Control , Point > ( buttonHandbrake_Click ) ;
110+ if ( ( trainCar as MSTSWagon ) . HandBrakePresent )
111+ buttonHandbrake . Click += new Action < Control , Point > ( buttonHandbrake_Click ) ;
112+ else
113+ buttonHandbrake . Color = Color . Gray ;
75114 buttonTogglePower . Click += new Action < Control , Point > ( buttonTogglePower_Click ) ;
76115 buttonToggleMU . Click += new Action < Control , Point > ( buttonToggleMU_Click ) ;
77116 buttonToggleBatterySwitch . Click += new Action < Control , Point > ( buttonToggleBatterySwitch_Click ) ;
78117 buttonToggleElectricTrainSupplyCable . Click += new Action < Control , Point > ( buttonToggleElectricTrainSupplyCable_Click ) ;
79- buttonToggleBrakeHose . Click += new Action < Control , Point > ( buttonToggleBrakeHose_Click ) ;
118+
119+ if ( CarPosition > 0 )
120+ buttonToggleBrakeHose . Click += new Action < Control , Point > ( buttonToggleBrakeHose_Click ) ;
121+ else
122+ buttonToggleBrakeHose . Color = Color . Gray ;
123+
80124 buttonToggleAngleCockA . Click += new Action < Control , Point > ( buttonToggleAngleCockA_Click ) ;
81125 buttonToggleAngleCockB . Click += new Action < Control , Point > ( buttonToggleAngleCockB_Click ) ;
82126 buttonToggleBleedOffValve . Click += new Action < Control , Point > ( buttonToggleBleedOffValve_Click ) ;
0 commit comments