Extex101 / light_tool

Adds a Torch/Flashlight that emits a beam of light to Minetest
Other
9 stars 1 forks source link

Use node timers instead of minetest.after() #6

Open doxygen-spammer opened 3 years ago

doxygen-spammer commented 3 years ago

This reduces the amount of necessary map block updates.

Before this, temporary light sources were removed and readded in every step, which caused a no-op block update everytime. After this, light_beam() just restarts the node timer, so no nodes actually change when you don’t move the light beam.

This can be observed, after pressing F5 twice, in the client_received_packets graph (yellow).

Additionally, this makes the light beam work over the full active_block_range (when you don’t move), because temporary light sources are static then, so the server considers a block update appropriate.

Unfortunately, this doesn’t work with water. I think, the glow nodes are flooded in a way different to e. g. torches, where on_flood() is not executed.


I suggest to sqash-merge this.