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])` | `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 | To make dropping items from node inventories easier, you can use the | ||||||
| following helper function from 'default': | following helper function from 'default': | ||||||
|   | |||||||
| @@ -260,13 +260,15 @@ end | |||||||
|  |  | ||||||
| function tnt.burn(pos, nodename) | function tnt.burn(pos, nodename) | ||||||
| 	local name = nodename or minetest.get_node(pos).name | 	local name = nodename or minetest.get_node(pos).name | ||||||
| 	local group = minetest.get_item_group(name, "tnt") | 	local def = minetest.registered_nodes[name] | ||||||
| 	if group > 0 then | 	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.sound_play("tnt_ignite", {pos = pos}) | ||||||
| 		minetest.set_node(pos, {name = name .. "_burning"}) | 		minetest.set_node(pos, {name = name .. "_burning"}) | ||||||
| 		minetest.get_node_timer(pos):start(1) | 		minetest.get_node_timer(pos):start(1) | ||||||
| 	elseif name == "tnt:gunpowder" then |  | ||||||
| 		minetest.set_node(pos, {name = "tnt:gunpowder_burning"}) |  | ||||||
| 	end | 	end | ||||||
| end | end | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user