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 + + + +