Skip to content

Commit

Permalink
TNT: Gunpowder (and tnt.burn) will trigger the on_ignite of nodes
Browse files Browse the repository at this point in the history
The previous behaviour is kept as fallback for compatibility, for when the on_ignite
is not defined in the node.
  • Loading branch information
Ferk authored and paramat committed May 1, 2017
1 parent 011ad78 commit be91212
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 6 deletions.
6 changes: 4 additions & 2 deletions game_api.txt
Expand Up @@ -312,8 +312,10 @@ TNT API

`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':
Expand Down
10 changes: 6 additions & 4 deletions mods/tnt/init.lua
Expand Up @@ -260,13 +260,15 @@ end

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

Expand Down

0 comments on commit be91212

Please sign in to comment.