diff --git a/Nasal/aircraft.nas b/Nasal/aircraft.nas index 7d020dc87..7c88f8d3d 100644 --- a/Nasal/aircraft.nas +++ b/Nasal/aircraft.nas @@ -270,7 +270,7 @@ var lowpass = { me.value = v; }, _filter_: func(v) { - var dt = getprop("/sim/time/delta-sec"); + var dt = getprop("/sim/time/delta-sec")*getprop("/sim/speed-up"); var c = dt / (me.coeff + dt); me.value = v * c + me.value * (1 - c); }, @@ -788,12 +788,31 @@ var autotrim = { # var tyresmoke_0 = aircraft.tyresmoke.new(0); # tyresmoke_0.update(); # +# PARAMETERS: +# +# number: index of gear to be animated, i.e. "2" for /gear/gear[2]/... +# +# auto: 1 when tyresmoke should start on update loop. 0 when you're going +# to call the update method from one of your own loops. +# +# diff_norm: value adjusting the necessary percental change of roll-speed +# to trigger tyre smoke. Default value is 0.05. More realistic results can +# be achieved with significantly higher values (i.e. use 0.8). +# +# check_vspeed: 1 when tyre smoke should only be triggered when vspeed is negative +# (usually doesn't work for all gear, since vspeed=0.0 after the first gear touches +# ground). Use 0 to make tyre smoke independent of vspeed. +# Note: in reality, tyre smoke doesn't depend on vspeed, but only on acceleration +# and friction. +# + var tyresmoke = { - new: func(number, auto = 0) { + new: func(number, auto = 0, diff_norm = 0.05, check_vspeed=1) { var m = { parents: [tyresmoke] }; - me.vertical_speed = props.globals.initNode("velocities/vertical-speed-fps"); - me.speed = props.globals.initNode("velocities/groundspeed-kt"); - me.rain = props.globals.initNode("environment/metar/rain-norm"); + m.vertical_speed = (!check_vspeed) ? nil : props.globals.initNode("velocities/vertical-speed-fps"); + m.diff_norm = diff_norm; + m.speed = props.globals.initNode("velocities/groundspeed-kt"); + m.rain = props.globals.initNode("environment/metar/rain-norm"); var gear = props.globals.getNode("gear/gear[" ~ number ~ "]/"); m.wow = gear.initNode("wow"); @@ -827,7 +846,7 @@ var tyresmoke = { }, update: func { var rollspeed = me.get_rollspeed(); - var vert_speed = me.vertical_speed.getValue(); + var vert_speed = (me.vertical_speed) ? me.vertical_speed.getValue() : -999; var groundspeed = me.speed.getValue(); var friction_factor = me.friction_factor.getValue(); var wow = me.wow.getValue(); @@ -837,7 +856,8 @@ var tyresmoke = { var diff = math.abs(rollspeed - filtered_rollspeed); var diff_norm = diff > 0 ? diff / rollspeed : 0; - if (wow and vert_speed < -1.2 and diff_norm > 0.05 + if (wow and vert_speed < -1.2 + and diff_norm > me.diff_norm and friction_factor > 0.7 and groundspeed > 50 and rain < 0.20) { me.tyresmoke.setValue(1); diff --git a/Nasal/tutorial/tutorial.nas b/Nasal/tutorial/tutorial.nas index 67aceb08a..6d1a5f74d 100644 --- a/Nasal/tutorial/tutorial.nas +++ b/Nasal/tutorial/tutorial.nas @@ -2,8 +2,8 @@ # --------------------------------------------------------------------------------------- -var step_interval = 5; # time between tutorial steps -var exit_interval = 1; # time between fulfillment of a step and the start of the next step +var step_interval = 0.0; # time between tutorial steps (default is set below) +var exit_interval = 0.0; # time between fulfillment of a step and the start of the next step (default is set below) var loop_id = 0; var tutorialN = nil; @@ -67,8 +67,8 @@ var startTutorial = func { last_step_time = time_elapsedN.getValue(); steps = tutorialN.getChildren("step"); - step_interval = read_double(tutorialN, "step-time", step_interval); - exit_interval = read_double(tutorialN, "exit-time", exit_interval); + step_interval = read_double(tutorialN, "step-time", 5.0); # time between tutorial steps + exit_interval = read_double(tutorialN, "exit-time", 1.0); # time between fulfillment of steps run_nasal(tutorialN); set_models(tutorialN.getNode("models")); diff --git a/Translations/strings-default.xml b/Translations/strings-default.xml index 0b8938d6d..e689a2676 100644 --- a/Translations/strings-default.xml +++ b/Translations/strings-default.xml @@ -225,6 +225,7 @@ Enable sky blending Disable textures Enable textures + Specify the materials file used to render the scenery (default: materials.xml) Anisotropic Texture Filtering: values should be 1 (default),2,4,8 or 16 Disable wireframe drawing mode Enable wireframe drawing mode diff --git a/options.xml b/options.xml index 763fcc37b..293cfd616 100644 --- a/options.xml +++ b/options.xml @@ -452,6 +452,12 @@ strings/enable-textures-desc + +