`tnt.burn(position, [nodename])`
-^ Ignite TNT at position, nodename isn't required unless already known.
-
+^ Ignite node at position, triggering its `on_ignite` callback (see fire mod).
+If no such callback exists, fallback to turn tnt group nodes to their
+"_burning" variant.
+ nodename isn't required unless already known.
To make dropping items from node inventories easier, you can use the
following helper function from 'default':
function tnt.burn(pos, nodename)
local name = nodename or minetest.get_node(pos).name
- local group = minetest.get_item_group(name, "tnt")
- if group > 0 then
+ local def = minetest.registered_nodes[name]
+ if not def then
+ return
+ elseif def.on_ignite then
+ def.on_ignite(pos)
+ elseif minetest.get_item_group(name, "tnt") > 0 then
minetest.sound_play("tnt_ignite", {pos = pos})
minetest.set_node(pos, {name = name .. "_burning"})
minetest.get_node_timer(pos):start(1)
- elseif name == "tnt:gunpowder" then
- minetest.set_node(pos, {name = "tnt:gunpowder_burning"})
end
end