0fcc99d9a3
and don't care if it's from realwx or static input. There is still a timing issue, probably we should wait for a valid METAR if realwx is enabled.
31 lines
1.2 KiB
Text
31 lines
1.2 KiB
Text
var set_runway_from_metar_wind = func {
|
|
if (!getprop("/environment/metar/valid"))
|
|
return printlog("info", "metar-rwy: no valid metar");
|
|
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");
|
|
if (getprop("/environment/metar/base-wind-speed-kt") < 1)
|
|
return;
|
|
|
|
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 {
|
|
set_runway_from_metar_wind();
|
|
delete(globals, "startup");
|
|
});
|