forked from luanti-org/minetest_game
		
	TNT: Gunpowder (and tnt.burn) will trigger the on_ignite of nodes
The previous behaviour is kept as fallback for compatibility, for when the on_ignite is not defined in the node.
This commit is contained in:
		
				
					committed by
					
						 paramat
						paramat
					
				
			
			
				
	
			
			
			
						parent
						
							011ad78b42
						
					
				
				
					commit
					be9121214c
				
			| @@ -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': | ||||
|   | ||||
| @@ -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 | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user