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.
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.