Just Markdown, no variant of it. File name intentionally
not changed to “lua_api.md” because of fear to break references
to that file. The file can still be renamed later.
Changes:
* Add extra documentation for remove_item.
This isn't as silly as it sounds: iterate a list containing items with
unique metadata each, and remove_item the first one you find, placing
into a different - fine, except the remove will invariably remove the
wrong one, leading to items being duplicated and others destroyed.
Arguably it's a bug, and Inventory::removeItem should actually remove
the item you tell it to. (i.e. if the passed ItemStack has metadata,
match it). But it seems reasonable to just document the behaviour
more clearly.
* Improve string_to_pos documentation.
* Clarify dig_node documentation (return value).
* Better on_step documentation.
* get_nodemeta -> get_meta.
* Other minor fixes.
See: https://github.com/minetest/minetest/issues/1525
Background
Wuzzy2: If you attempt to spawn a L-system tree with minetest.spawn_tree, you can make Minetest crash if it is attempted to pop an empty stack.
ShadowNinja: This shouldn't cause a segmentation fault, but it should throw a Lua error
Commit Description
This commit throws a Lua error instead of causing a segmentation fault. The server will still "crash" but will include a Lua backtrace.
L-Systems fix randomness
Unless a random seed is provided (via Lua treedef) seed the PRNG with a different seed for each tree
Resolves: https://github.com/minetest/minetest/issues/1469
Fix l-system crash when treedef random_level not set by Lua
Config settings:
profiling = true/false (gather statistics)
detailed_profiling = true/false (break mod times to callbacks)
Chat commands:
save_mod_profile saves current statistics in debug.txt and shows on console (on default loglevel)