Howto:Create a new system in Nasal

From FlightGear wiki
Revision as of 17:09, 4 December 2010 by Hooray (talk | contribs) (Created page with '{{Stub}} Status: Planning Last updated: 12/2010 Authors: Hooray References: This tutorial will document all the steps involved in creating a new Nasal module that constant…')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
This article is a stub. You can help the wiki by expanding it.

Status: Planning

Last updated: 12/2010

Authors: Hooray

References:


This tutorial will document all the steps involved in creating a new Nasal module that constantly updates itself, Nasal is FlightGear's scripting language. This tutorial is based on Howto: Create a new Nasal module, you should fully understand that one first.

  • create a new plain text file under $FG_ROOT/Nasal/MODULE.nas
  • replace MODULE with the name for your new module (for example, use "test")
  • paste the following code into this file using a text editor (such as notepad on Windows)
# test.nas (save in $FG_ROOT/Nasal)
var mycode = func {
  print("running mycode() ");
  settimer(mycode, 3); # register a timer, invoke the "mycode" function again after 3 seconds
}

_setlistener("/sim/signals/nasal-dir-initialized", mycode);


This piece of code defines a new function named "mycode" that just prints a message to the console. Next, a timer is registered to invoke the mycode function again after 3 seconds have passed.

The _selistener call at the end of the snippet waits for the Nasal system to be initialized before the "mycode" function gets called.