Remove lots of annoying code and comments.
Write algorithm + some optimization.
Add some files.
Fix some bugs. Remove debug info.
Conflicts since original:
builtin/chatcommands.lua
src/script/lua_api/l_env.h
Autonomous entities remain active at all times, keeping a radius of
blocks around them active in the same way a player does (although with a
different and configurable radius to that used for players).
A lua entity can set itself into autonomous mode via the api, and should
switch it off again when it no longer needs it.
Autonomous capability is completely disabled by default and can only be
enabled by a setting in minetest.conf.
Conflicts since original:
minetest.conf.example
src/defaultsettings.cpp
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