diff options
author | Auke Kok <sofar@foo-projects.org> | 2016-03-30 07:50:10 -0700 |
---|---|---|
committer | kwolekr <kwolekr@minetest.net> | 2016-04-11 00:01:28 -0400 |
commit | d7908ee49480caaab63d05c8a53d93103579d7a9 (patch) | |
tree | 0dbea671ae937fa4558d2bf09355da014f21bf6a /src/map.cpp | |
parent | 2eeb62057a9e08def6a0f013e3ca5d84768d1566 (diff) | |
download | minetest-d7908ee49480caaab63d05c8a53d93103579d7a9.tar.gz minetest-d7908ee49480caaab63d05c8a53d93103579d7a9.tar.bz2 minetest-d7908ee49480caaab63d05c8a53d93103579d7a9.zip |
Convert nodeupdate to non-recursive
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.
Diffstat (limited to 'src/map.cpp')
0 files changed, 0 insertions, 0 deletions