Julian Smith
b6da3872f1
Nasal/globals.nas: setlistener(): call die() if callback is not a function.
...
This avoids getting confusing errors later on, e.g. see bug 2641.
2021-08-26 23:24:46 +01:00
Erik Hofman
9cb073bf8f
Add a license exception to single owner (Melchoir Franz and myself) that clarifies that merely calling Nasal functions from third party aircraft does not invoce the derived-work clause of the GPL. Signed of by the authors
2020-08-12 14:40:59 +02:00
Henning Stahlke
4cb8a03e4b
move globals.Hash to std.Hash
...
Add std.nas to loadpriority.xml and update related files
2020-07-08 15:31:23 +01:00
Henning Stahlke
a13f9b3bb0
emesary.nas add comments, type checks; fix typos; add debug/emesary.deb.nas add fgcommand to use the global transmitter
2020-06-29 14:07:25 +01:00
Henning Stahlke
b5f00cb50e
replace typeof() by is<type>()
...
Signed-off-by: Stuart Buchanan <stuart_d_buchanan@yahoo.co.uk>
2020-06-03 22:55:51 +01:00
James Turner
f074504326
setlistener: tolerate being call()-ed
...
Fix bug https://sourceforge.net/p/flightgear/codetickets/2219/
Changes to logging mean than setlistener breaks when invoked via
call(), which occurs in the Warthog Nasal scripting. The problem is
that call() forces caller() to return nil, which the setlistener()
debug code did not check for.
2020-04-27 22:50:34 +01:00
Henning Stahlke
fba17e4d34
Replace printlog by logprint
2020-04-21 09:07:20 +02:00
Anton Gomez Alvedro
8b16a71d50
Adds assert() for Nasal and fixes io.include internal marking
...
- A simple assert() function is added to the globals namespace.
- io.include() marks the target namespace to avoid dependency loops.
If the namespace is marked before the script to be included is
compiled, a parse error leaves the target namespace marked while
the script has not been loaded. This patch fixes this problem.
2014-06-06 21:41:10 -05:00
Philosopher
e9b1a89052
Clean up some global wrappers
2014-02-02 12:31:48 -06:00
janodesbois
5ce7d55342
FPS2KT and KT2FPS added to Nasal/global.nas
2013-10-27 13:50:39 +01:00
Philosopher
51c66c3df4
Fix defined() implementation
2013-10-20 13:06:51 -05:00
Thomas Geymayer
84b4da563e
Inch/Meter conversion factors IN2M/M2I
2013-06-17 21:20:00 +02:00
Anders Gidenstam
3bcfe8296c
Nasal/globals.nas: Added a missing var-keyword.
2012-06-12 22:35:37 +02:00
mfranz
233a9d27f4
- defined(): also consider the global namespace (as the comment implies)
...
- move local namespace container up
2009-05-05 18:33:43 +00:00
mfranz
8f5304ad90
add values() function as a counterpiece to keys() (see Perl)
2009-02-15 14:13:49 +00:00
mfranz
06cb820759
add KT2MPS/MPS2KT conversion constants
2008-12-17 01:03:32 +00:00
mfranz
e8a666c8e4
globals: cosmetics
...
props: initNode(): allow nil as first arg
2008-12-14 23:45:33 +00:00
mfranz
2be64792e1
add NM2M and M2NM constants
2008-12-13 12:55:47 +00:00
mfranz
db4c98d63e
add constants GAL2L and LB2KG
2008-12-07 14:44:52 +00:00
mfranz
55b7e3d8e0
dynamic_view.nas: use D2R/R2D constants
...
globals.nas: move constants to top
geo.nas: fix comments & make bucket_span "private"
2008-11-20 20:18:39 +00:00
mfranz
55c34a0748
calculate M2FT from FT2M (of course :-)
2008-11-20 11:33:42 +00:00
mfranz
dcb1321923
make constants D2R, R2D, M2FT, FT2M global
2008-11-20 11:24:45 +00:00
mfranz
d1fd61c728
gui.nas: use nasal-dir-initialized signal for INIT func, so that it's
...
earlier available. (The settimer/1 was a workaround for another
problem that should be fixed by now.)
globals.nas: load $FG_HOME/Nasal/ files as first settimer(0) function,
so that it always comes after all nasal-dir-initialized callbacks
This should fix the glide_slope_tunnel/popupTip bug and makes the
startup order clearer and cleaner.
2008-11-11 14:54:51 +00:00
mfranz
4ac84809e9
nasal: cleanup & minor fixes
...
- fuel.nas: use props.initNode()
- debug.nas: fix comment
- globals.nas: load_nasal(): check extension and set module arg
- io.nas: update log message (the rules are no longer for io.open() only)
2008-08-10 17:53:41 +00:00
mfranz
443c261cdd
- drop redundant log message
...
- cosmetics: fix mixed tab/space indentation, drop pair of curly braces
2008-07-30 19:33:42 +00:00
mfranz
8202730c4e
use io.load_nasal() to load the local Nasal files from ~/.fgfs/Nasal/
2008-07-30 19:25:27 +00:00
mfranz
ae40faf4e5
cosmetics (comment fixes & improvements, variable name)
2008-07-27 22:00:58 +00:00
mfranz
de1aa4c56e
finally make printf() globally available
2008-07-23 15:43:45 +00:00
mfranz
b9e7bb1b4b
add thisfunc() for reliable recursion
2008-07-22 19:03:25 +00:00
mfranz
80ed641d69
avoid unnecessary call()
2008-02-13 20:12:42 +00:00
andy
4ae206fc00
Turns out some code likes to call isa() with non-objects. Might as
...
well have it return false (which is valid) instead of throwing an
exception (also valid, but more surprising).
2008-02-07 21:23:42 +00:00
andy
bedac8ec83
Fix isa() when used on classes with superclasses.
2008-02-07 18:03:03 +00:00
mfranz
ecf469e295
prop-key-handler.nas: check for nil property
...
tutorial.nas, globals.nas, controls.nas: cosmetics
2007-11-20 17:02:13 +00:00
mfranz
b3ab26db07
fix comment & cosmetics
2007-11-06 21:23:53 +00:00
mfranz
fc6f357a0e
add new debugging function proptrace(), which outputs all regular property
...
writes (not directly written tied ones), all node additions and removal.
Frames are separated with a line. Turn off ANSI coloring if you want to
pipe the results into a file: --prop:sim/startup/terminal-ansi-colors=0
2007-10-16 15:24:30 +00:00
mfranz
256b1880cb
wrapNode(): One argument ought to be enough for anybody.
2007-10-15 18:32:20 +00:00
mfranz
2bcddab9b6
setlistener(): accessing the node via cmdarg() is now depreciated. Use
...
a regular function argument for that. Note the "n" in this example:
setlistener("/sim/current-view/view-number", func(n) {
setprop("/sim/hud/visibility", !n.getValue());
}, 1);
2007-10-15 18:27:42 +00:00
mfranz
12c11dfa6f
setlistener(): now that we know the params, we only need to unwrap the first two
2007-10-15 18:00:17 +00:00
mfranz
0d3c7cec6f
- setlistener(): add wrapper function to turn ghost arguments into props.Nodes
...
- "modernization": use more named function arguments and "var" keywords
2007-10-15 16:30:37 +00:00
mfranz
705e4bcaac
forward fourth setlistener() arg to _setlistener()
2007-10-14 18:03:31 +00:00
mfranz
dfd21c722d
- add more "var" keywords, fix indentation, drop some parentheses,
...
fix comments, consistency fixes, ...
- aircraft.nas: angular_lowpass -> minor speedup
2007-10-07 15:12:05 +00:00
mfranz
bf050c012f
load and execute all ~/.fgfs/Nasal/*.nas files in alphabetic order after
...
the $FG_ROOT/Nasal/*.nas ones are done. This allows to use props.Node etc.
immediately, without requirement for settimer(func{}, 0) constructions.
Rationale:
- clean separation of local additions (and hacks :-) from standard files
- users might not have write permission to $FG_ROOT/Nasal/ or shouldn't
have to su to root for writing Nasal code
2007-08-06 22:50:06 +00:00
mfranz
cfd9c1b48f
pointless spelling fixes
2007-06-22 18:49:38 +00:00
andy
30502189d8
The screen-capture command no longer pops up a dialog, so toss up a tip
...
from within the F3 keybaord handler instead.
2007-06-07 16:59:07 +00:00
mfranz
1e446a26ae
setlistener(): don't drop calls with invalid property -- the c++ side
...
outputs a nice error message in this case
2007-04-27 15:52:54 +00:00
mfranz
944e6a8548
in debug levels "debug" and "bulk" output listener id, file name, and
...
line-number for every setlistener() wrapper call. This allows to identify
listeners later by their id.
2007-04-27 14:27:01 +00:00
mfranz
5f7104ac8a
revert condition() patch. This can as easily be done in pure Nasal.
2007-03-18 10:52:08 +00:00
mfranz
d1c4bcea85
condition(property) wrapper for the _condition function.
...
See $FG_ROOT/Docs/README.condition
2007-03-17 15:59:39 +00:00
mfranz
cde64c8543
use __ for static variables (one underscore is too handy for use in other
...
modules to waste it here)
2006-02-18 00:12:09 +00:00
mfranz
dc6ab58eaf
allow printlog() to be used with variable arg list (like print()):
...
printlog("warn", "Monty", "Burns");
2006-02-17 22:05:32 +00:00