From 11a9e5048c687130bbde5806178c44ebcc1a8fb6 Mon Sep 17 00:00:00 2001
From: Sidi Liang <1467329765@qq.com>
Date: Thu, 13 Jan 2022 21:34:55 +0800
Subject: [PATCH] Systems: Added a slider to adjust keyboard braking intensity
---
Nasal/systems.nas | 12 +++++++++++-
gui/dialogs/vehicle-dialog.xml | 33 +++++++++++++++++++++++++++++++++
2 files changed, 44 insertions(+), 1 deletion(-)
diff --git a/Nasal/systems.nas b/Nasal/systems.nas
index 9d86b7a..6eaef33 100644
--- a/Nasal/systems.nas
+++ b/Nasal/systems.nas
@@ -314,6 +314,8 @@ var BrakeController = {
leftBrakeValue: 0,
rightBrakeValue: 0,
+ keyboardBrakeIntensity: Variable.new("keyboardBrakeIntensity", 0.8, "Braking Intensity when using s key", 0, 1, 1, "/systems/BrakeController/keyboardBrakeIntensity"), #//Decides how much brakings to be applied, can be adjusted via GUI and defaults to be 0.8
+
applyLeftBrake: func(value){
#For internal use
me.leftBrakeNode.setValue(value);
@@ -386,10 +388,11 @@ var BrakeController = {
safety.emergencyMode();
},
keyboardBrake: func(){
- me.applyFeetBrakes(0.8);
+ me.applyFeetBrakes(me.keyboardBrakeIntensity.getValue());
},
keyboardBrakeRelease: func(){
me.applyFeetBrakes(0);
+ if(vehicleInformation.getSpeedKMH() > 10 and safety.emergencyModeState) safety.disableEmergencyMode();
},
releaseBrake: func(){
me.applyLeftBrake(0);
@@ -537,6 +540,7 @@ var Safety = {
aebActivated: 0,
lastRadarOutput:10000,
throttleNode: vehicleInformation.engine.throttleNode,
+ emergencyModeState: 0,
#Airbag
accXProp: props.getNode("/fdm/jsbsim/accelerations/a-pilot-x-ft_sec2", 1),
accYProp: props.getNode("/fdm/jsbsim/accelerations/a-pilot-y-ft_sec2", 1),
@@ -705,11 +709,17 @@ var Safety = {
},
emergencyMode: func(){
+ me.emergencyModeState = 1;
indicatorController.setMode(3); #Active malfunction light
indicatorController.falseLight = 1;
if(autospeed.autoSpeedTimer.isRunning) autospeed.stopAutoSpeed();
if(autopilot.road_check_timer.isRunning) autopilot.road_check_timer.stop();
},
+ disableEmergencyMode: func(){
+ me.emergencyModeState = 0;
+ indicatorController.setMode(0); #Deactive malfunction light
+ indicatorController.falseLight = 0;
+ },
reset: func(){
#resetting stops the safety system
diff --git a/gui/dialogs/vehicle-dialog.xml b/gui/dialogs/vehicle-dialog.xml
index 13fc1d6..9656deb 100755
--- a/gui/dialogs/vehicle-dialog.xml
+++ b/gui/dialogs/vehicle-dialog.xml
@@ -142,6 +142,39 @@
+
+
+
+
+
+ hbox
+
+ /systems/BrakeController/keyboardBrakeIntensity
+ 0.1
+ 1
+
+ dialog-apply
+
+ true
+
+
+
+ 0.4f
+ systems/BrakeController/keyboardBrakeIntensity
+ true
+
+
+
+