This took me a while to figure out. We no longer visit all 9 block
around and with the touched node, but instead visit adjacent plus
self. We then walk -non- recursively through all neigbors and if
they cause a nodeupdate, we just keep walking until it ends. On
the way back we prune the tail.
I've tested this with 8000+ sand nodes. Video result is here:
https://youtu.be/liKKgLefhFQ
Took ~ 10 seconds to process and return to normal.
Document hpchange callback ordering thing
Callbacks registered by register_on_player_hpchange are ordered so that non-modifiers are called after modifiers are called. Credit to @TeTpaAka who mentioned this previously-undocumented feature in #3799.
See also commit
aa13baa30a "Add minetest.register_on_player_hpchange"
Related: #3730
This adds a simple, and small "North" indicator to the circular
minimap. The indicator is in a classical triangle-like arrow with a
little bit of shading to accentuate the shape and give it a little
bit depth. The indicator is stuck exactly at the edge as far outwards
as possible, and is not too intrusive but still easy enough to spot.
- Use local variables for tabs in place of globals
- Merge together if statements where possible
- Replace manual table searching code with indexof where possible
Arch Linux doesn't put it's ncursesw includes inside an ncursesw
directory. This script ends up setting USE_CURSES as true, but
doesn't pick up any of the headers.
https://bugs.archlinux.org/task/13994
Instead of doing nothing at node_max.Y + 1 use 1-down
overgeneration for tunnel generation and noisemaps
Move some old unused code in mgv7 to end of file
It was caused by player not moving because fall was prevented, but their
velocity still increasing, causing fatal fall damage when world was
finally loaded. This commit fixes it by setting player velocity to zero
when the world around them is not loaded.
* Fix leak like behaviour if you load multiple schematics in a loop.
* Cleanup check in for, fixing theoretical out of bounds read if
Schematic::deserializeFromMts reduced the number of elements
in m_nodenames. A != check may need an overflow of the counter
before it hits, if origsize is larger than m_nodenames.size().
* Fix function name passed to errorstream: it was wrong. Also use
__FUNCTION__ instead of manually using the method name at other
places in the function.
* Don't shadow the name member in the loop.
This fixes #3935, a regression from 0338c2e.
An 'optimization' was performed where an index for the VoxelManip being
operated on was mistakenly used for bounds checking within the incorrect
VoxelArea, namely, the area wherein light should be spread.
2016-03-27 15:47:01: ERROR[Main]: ServerError: Lua: Runtime error from mod '*builtin*' in callback luaentity_Step(): Node name is not set or is not a string!
2016-03-27 15:47:01: ERROR[Main]: stack traceback:
2016-03-27 15:47:01: ERROR[Main]: [C]: in function 'add_node'
2016-03-27 15:47:01: ERROR[Main]: /usr/share/minetest/builtin/game/falling.lua:96: in function </usr/share/minetest/builtin/game/falling.lua:43>
Commit
65c09a96f4 "Set acceleration only once in falling node"
has made the acceleration being set only once.
But this has introduced a regression.
Fix #3884.