Calculate blast intensity at all locations.
authorAuke Kok <sofar@foo-projects.org>
Wed, 23 Mar 2016 05:05:34 +0000 (22:05 -0700)
committerparamat <mat.gregory@virginmedia.com>
Sat, 16 Apr 2016 18:27:16 +0000 (19:27 +0100)
commitccee025ce3e3f56596aeda69f8dc32940bba7b57
tree31cd197a57de3cbafa67914a880de5293113f961
parent8c801529df08fcf01752e4906a517019f5b581af
Calculate blast intensity at all locations.

We define the blast intensity as the square of the tnt_radius, divided
by the square of the distance to the explosion center, where distance
is limited to 1 at the lower end.

When destroying nodes, we calculate the intensity for each node, and
only destroy the nodes when the intensity is 1.0 or larger. To avoid
perfectly spherical explosions, we make sure to retain a randomness
factor of 20%. This will make explosion edges jagged and not smooth,
but not too much.

We pass the calculated intensity to on_blast() functions as well,
except we take the jitter here out and make sure it's always 1.0
or larger.
mods/tnt/init.lua