code that is called from outside. It will be removed from the global namespace once it has done its job. For now it only selects a proper runway for wind directions reported by METAR, but only, of course, if an airport was chosen, but no runway and no heading, and if the aircraft is actually on ground.
33 lines
1.3 KiB
Text
33 lines
1.3 KiB
Text
var metar_runway = func {
|
|
# select runway according to wind direction reported by METAR
|
|
|
|
if (!getprop("/environment/metar/real-metar"))
|
|
return printlog("info", "metar-rwy: no live weather");
|
|
if (getprop("/environment/metar/base-wind-speed-kt") < 1)
|
|
return; # windspeed pointless for runway choice
|
|
if (!getprop("/sim/startup/options/airport"))
|
|
return printlog("info", "metar-rwy: no airport requested");
|
|
if (getprop("/sim/startup/options/runway"))
|
|
return printlog("info", "metar-rwy: won't override explicit runway");
|
|
if (getprop("/sim/startup/options/heading-deg") < 9990.0)
|
|
return printlog("info", "metar-rwy: won't override explicit heading");
|
|
if (!getprop("/sim/presets/onground"))
|
|
return printlog("info", "metar-rwy: we aren't on ground");
|
|
|
|
var from = getprop("/environment/metar/base-wind-range-from");
|
|
var to = getprop("/environment/metar/base-wind-range-to");
|
|
var wind_from = (from + to) * 0.5;
|
|
|
|
printlog("info", "metar-rwy: setting new target heading ", wind_from);
|
|
setprop("/sim/presets/heading-deg", wind_from);
|
|
setprop("/sim/presets/longitude-deg", -9999);
|
|
setprop("/sim/presets/latitude-deg", -9999);
|
|
fgcommand("presets-commit");
|
|
printlog("info", "metar-rwy: selected runway: ", getprop("/sim/atc/runway"));
|
|
}
|
|
|
|
|
|
_setlistener("/sim/signals/nasal-dir-initialized", func {
|
|
metar_runway();
|
|
delete(globals, "startup");
|
|
});
|