1
0
Fork 0

this module is meant for pure startup code. It shall not contain any library

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.
This commit is contained in:
mfranz 2007-10-07 19:44:58 +00:00
parent 175911c180
commit 693bebcd43

33
Nasal/startup.nas Normal file
View file

@ -0,0 +1,33 @@
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");
});