1
0
Fork 0
fgdata/Nasal/startup.nas

34 lines
1.3 KiB
Text
Raw Normal View History

var set_runway_from_metar_wind = func {
if (!getprop("/environment/realwx/enabled"))
return printlog("info", "metar-rwy: no live weather");
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");
});