diff --git a/Nasal/engine.nas b/Nasal/engine.nas index 192079a..f0d0b87 100644 --- a/Nasal/engine.nas +++ b/Nasal/engine.nas @@ -202,29 +202,28 @@ engine_1.engineSwitch.switchDisconnect(); followme.circuit_1.addUnitToSeries(0, followme.Cable.new(5, 0.008)); var outputForce = func(force){ - #Changed to rear wheel drive before firguring out how to make sure that - #forces on the front wheel changes its direction to make sure it's the same as the wheel + #//Four wheel drive - #if(props.getNode("/",1).getValue("/fdm/jsbsim/gear/unit/compression-ft") > 0){ - # props.getNode("/",1).setValue("/fdm/jsbsim/external_reactions/FL/magnitude", force/4); - #}else{ - # props.getNode("/",1).setValue("/fdm/jsbsim/external_reactions/FL/magnitude", 0); - #} + if(props.getNode("/",1).getValue("/fdm/jsbsim/gear/unit/compression-ft") > 0){ + props.getNode("/",1).setValue("/fdm/jsbsim/external_reactions/FL/magnitude", force/4); + }else{ + props.getNode("/",1).setValue("/fdm/jsbsim/external_reactions/FL/magnitude", 0); + } - #if(props.getNode("/",1).getValue("/fdm/jsbsim/gear/unit[1]/compression-ft") > 0){ - # props.getNode("/",1).setValue("/fdm/jsbsim/external_reactions/FR/magnitude", force/4); - #}else{ - # props.getNode("/",1).setValue("/fdm/jsbsim/external_reactions/FR/magnitude", 0); - #} + if(props.getNode("/",1).getValue("/fdm/jsbsim/gear/unit[1]/compression-ft") > 0){ + props.getNode("/",1).setValue("/fdm/jsbsim/external_reactions/FR/magnitude", force/4); + }else{ + props.getNode("/",1).setValue("/fdm/jsbsim/external_reactions/FR/magnitude", 0); + } if(props.getNode("/",1).getValue("/fdm/jsbsim/gear/unit[2]/compression-ft") > 0){ - props.getNode("/",1).setValue("/fdm/jsbsim/external_reactions/BL/magnitude", force/2); + props.getNode("/",1).setValue("/fdm/jsbsim/external_reactions/BL/magnitude", force/4); }else{ props.getNode("/",1).setValue("/fdm/jsbsim/external_reactions/BL/magnitude", 0); } if(props.getNode("/",1).getValue("/fdm/jsbsim/gear/unit[3]/compression-ft") > 0){ - props.getNode("/",1).setValue("/fdm/jsbsim/external_reactions/BR/magnitude", force/2); + props.getNode("/",1).setValue("/fdm/jsbsim/external_reactions/BR/magnitude", force/4); }else{ props.getNode("/",1).setValue("/fdm/jsbsim/external_reactions/FR/magnitude", 0); } diff --git a/Nasal/steering.nas b/Nasal/steering.nas index da49b17..0a71cbd 100644 --- a/Nasal/steering.nas +++ b/Nasal/steering.nas @@ -169,8 +169,24 @@ var Steering = { }, }; +#//Force calculation for front wheel drive(and four wheel drive) +var flForce = props.getNode("/fdm/jsbsim/external_reactions/FL"); +var frForce = props.getNode("/fdm/jsbsim/external_reactions/FR"); +var calculateFWForce = func(input){ + var rad = input * 45 * D2R; + var x = math.cos(rad); + var y = math.sin(rad); + flForce.setValue("x", x); + flForce.setValue("y", y); + frForce.setValue("x", x); + frForce.setValue("y", y); +} var steeringAssistance = Steering.new(); +var frontWheelListener = setlistener("/controls/flight/rudder", func(n){ # create listener + calculateFWForce(n.getValue()); +}); + addcommand("enableAdvancedSteering", func() { steeringAssistance.mode = 1; print("Advanced Steering Enabled");