1
0
mirror of https://github.com/minetest/minetest_game.git synced 2024-12-23 07:10:19 +01:00

TNT: Allow a custom explosion sound to be used

This commit is contained in:
tenplus1 2017-07-08 21:17:33 +01:00 committed by paramat
parent 20687a6301
commit bb084294ce
2 changed files with 4 additions and 1 deletions

View File

@ -348,6 +348,7 @@ TNT API
* `description` A description for your TNT. * `description` A description for your TNT.
* `radius` The radius within which the TNT can destroy nodes. The default is 3. * `radius` The radius within which the TNT can destroy nodes. The default is 3.
* `damage_radius` The radius within which the TNT can damage players and mobs. By default it is twice the `radius`. * `damage_radius` The radius within which the TNT can damage players and mobs. By default it is twice the `radius`.
* `sound` The sound played when explosion occurs. By default it is `tnt_explode`.
* `disable_drops` Disable drops. By default it is set to false. * `disable_drops` Disable drops. By default it is set to false.
* `ignore_protection` Don't check `minetest.is_protected` before removing a node. * `ignore_protection` Don't check `minetest.is_protected` before removing a node.
* `ignore_on_blast` Don't call `on_blast` even if a node has one. * `ignore_on_blast` Don't call `on_blast` even if a node has one.

View File

@ -384,7 +384,9 @@ end
function tnt.boom(pos, def) function tnt.boom(pos, def)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
local owner = meta:get_string("owner") local owner = meta:get_string("owner")
minetest.sound_play("tnt_explode", {pos = pos, gain = 1.5, max_hear_distance = 2*64}) local sound = def.sound or "tnt_explode"
minetest.sound_play(sound, {pos = pos, gain = 1.5,
max_hear_distance = math.min(def.radius * 20, 128)})
minetest.set_node(pos, {name = "tnt:boom"}) minetest.set_node(pos, {name = "tnt:boom"})
local drops, radius = tnt_explode(pos, def.radius, def.ignore_protection, local drops, radius = tnt_explode(pos, def.radius, def.ignore_protection,
def.ignore_on_blast, owner) def.ignore_on_blast, owner)