Les fonctions fournies par le code sourceCe sont les fonctions fournies avec FlightGear, certaines ne sont pas disponibles sur la version 0.9.10. setlistener(<property>, <function> [, <startup=0> [, <runtime=1>]])_setlistener(<property>, <function> [, <startup=0> [, <runtime=1>]])removelistener(<listener_id>)print([texte [,texte [, texte [...]]]])
Affiche un texte sur la sortie standard (la console), et termine par un retour à la ligne. print ("un texte", " écrit sur ", "une seule", "ligne"); print ("ce texte est écrit sur une deuxième ligne"); getprop(<path>)renvoie la valeur d'une propriété donnée, renvoie nil si la propriété n'existe pas print("Le taux de rafraichissement est de ", getprop("/sim/frame-rate"), " FPS"); setprop(<path> [, <path>, [...]], <value>)affecte une valeur à une propriété donnée, ne renvoie jamais rien Le dernier argument est la valeur à affecter, et le(s) premier(s) arguments sont concaténés pour former une propriété setprop("/sim/current-view/view-number", 2); setprop("/controls/engines/engine["~ i ~"]/reverser", 1); settimer(<function>, <time> [, <realtime=0>])Exécute du code à intervalles réguliers, renvoie le résultat de fonction (fonction de rappel)
systime()renvoie la date en secondes depuis le 1er janvier 1972 à minuit (aussi appelé temps UNIX) cartogeod(<cart_lat>,<cart_lon>,<cart_alt>)Convertit les coordonnées cartésiennes en coordonnées géodésiques, sous forme de vecteur (~ tableau) var geod = carttogeod(-2737504, -4264101, 3862172); print("lat=", geod[0], " lon=", geod[1], " alt=", geod[2]); # écrira lat=37.49999782141546 lon=-122.6999914632327 alt=998.6042055172776 geodtocart(<geaod_lat>, <geod_lon>, <geod_alt_en_metres>)Convertit les données géodésiques en coordonnées cartésiennes, sous forme de vecteur var cart = geodtocart(37.5, -122.7, 1000); # lat/lon/alt(m) print("x=", cart[0], " y=", cart[1], " z=", cart[2]); # écrira x=-2737504.667684828 y=-4264101.900993474 z=3862172.834656495 geodinfo(<lat>, <lon>)Renvoie une information sous forme de vecteur à propos de la coordonnée entrée, ou nil si aucune information n'est disponible, ce qui peut arriver si la tuile n'est pas chargée. La première entrée est l'altitude, la deuxième est un hash qui donne une foule de détails sur le terrain parsexml(<path> [, <start-elem> [, <end-elem> [, <data> [, <pi> ]]]])
Cette fonction permet de lire un fichier XML (ça tombe bien il y en a tout un tas dans FlightGear
var start = func(name, attr) { print("starting tag ", name); foreach (var a; keys(attr)) print("\twith attribute ", a, "=", attr[a]); } var end = func(name) { print("ending tag ", name) } var data = func(data) { print("data=", data) } var pi = func(target, data) { print("processing instruction: target=", target, " data=", data) } parsexml("/tmp/foo.xml", start, end, data, pi); Les quatre fonctions callback sont optionnelles et par défaut sont égales à nil _fgcommand(<command> [, <propriete>])Exécute une commande interne de FlightGear, prend un ou deux arguments
fgcommand("dialog-new", dialog[name].prop()); _cmdarg()Retourne un handle vers les arguments utilisés apr la commande en cours d'exécution var cmdarg = func { props.wrapNode(_cmdarg()) } _interpolate(<path>, [, <vecteur>])Etabli une interpolation pour une propriété
Cette fonction ne devrait pas être appelée directement mais pas l'intermédiaire de la fonction Nasal interpolate implémentée dans $FGROOT/Nasal/globals.nas var fullBrakeTime = 0.5; var applyBrakes = func(v, which = 0) { if (which <= 0) { interpolate("/controls/gear/brake-left", v, fullBrakeTime); } if (which >= 0) { interpolate("/controls/gear/brake-right", v, fullBrakeTime); } } rand()Renvoie un nombre aléatoire srand()Réininitialise le générateur de nombre aléatoire directory(<path>)Renvoie la liste des fichiers contenus dans un répertoire sous forme de tableau foreach (var file; directory(path)) print ( "le répertoire ", path, " contient le fichier: ", file ); airportinfo([<id|type> [, <lat>, <lon> [, <type>]]])
non disponible en version 0.9.10 airportinfo("KSFO"); # des informations sur les pistes de KSFO airportinfo("seaport"); # renvoie des infos sur l'hydrodrome le plus proche airportinfo(); # renvoie des infos sur l'aéroport le plus proche (identique à airportinfo("airport")) airportinfo(37.2, 120, "heliport"); # renvoie des infos sur l'héliport le plus proche des coordonnées _getType()Cette fonction ne devrait pas être appelée directement, préférez getType décrit dans $FGROOT/Nasal/props.nas _getAttribute()Cette fonction ne devrait pas être appelée directement, préférez getAttribute décrit dans $FGROOT/Nasal/props.nas _setAttribute()Cette fonction ne devrait pas être appelée directement, préférez setAttribute décrit dans $FGROOT/Nasal/props.nas _getName()Cette fonction ne devrait pas être appelée directement, préférez getName décrit dans $FGROOT/Nasal/props.nas _getIndex()Cette fonction ne devrait pas être appelée directement, préférez getIndex décrit dans $FGROOT/Nasal/props.nas _getValue()Cette fonction ne devrait pas être appelée directement, préférez getValue décrit dans $FGROOT/Nasal/props.nas _setValue()Cette fonction ne devrait pas être appelée directement, préférez setValue décrit dans $FGROOT/Nasal/props.nas _setIntValue()Cette fonction ne devrait pas être appelée directement, préférez setIntValue décrit dans $FGROOT/Nasal/props.nas _setBoolValue()Cette fonction ne devrait pas être appelée directement, préférez setBoolValue décrit dans $FGROOT/Nasal/props.nas _setDoubleValue()Cette fonction ne devrait pas être appelée directement, préférez setDoubleValue décrit dans $FGROOT/Nasal/props.nas _getParent()Cette fonction ne devrait pas être appelée directement, préférez getParent décrit dans $FGROOT/Nasal/props.nas _getChild()Cette fonction ne devrait pas être appelée directement, préférez getChild décrit dans $FGROOT/Nasal/props.nas _getChildren()Cette fonction ne devrait pas être appelée directement, préférez getChildren décrit dans $FGROOT/Nasal/props.nas _removeChild()Cette fonction ne devrait pas être appelée directement, préférez removeChild décrit dans $FGROOT/Nasal/props.nas _removeChildren()Cette fonction ne devrait pas être appelée directement, préférez removeChildren décrit dans $FGROOT/Nasal/props.nas _getNode()Cette fonction ne devrait pas être appelée directement, préférez getNode décrit dans $FGROOT/Nasal/props.nas _new()_globals() |