forked from minetest-mods/MoreMesecons
		
	disallow removing any node using the igniter
This commit is contained in:
		| @@ -1,12 +1,36 @@ | ||||
| local function add_back_igniter(pos) | ||||
| 	local name = minetest.get_node(pos).name | ||||
|  | ||||
| 	if name == "moremesecons_igniter:igniter" then | ||||
| 		-- this should not happen | ||||
| 		minetest.log("error", "[moremesecons_igniter] igniter is already back") | ||||
| 		return | ||||
| 	end | ||||
|  | ||||
| 	if name == "ignore" then | ||||
| 		-- in case of unloaded chunk | ||||
| 		minetest.get_voxel_manip():read_from_map(pos, pos) | ||||
| 		name = minetest.get_node(pos).name | ||||
| 	end | ||||
|  | ||||
| 	if name == "air" | ||||
| 	or name == "fire:basic_flame" then | ||||
| 		minetest.set_node(pos, {name="moremesecons_igniter:igniter"}) | ||||
| 	else | ||||
| 		-- drop it as item if something took place there in the 0.8 seconds | ||||
| 		pos.y = pos.y+1 | ||||
| 		minetest.add_item(pos, "moremesecons_igniter:igniter") | ||||
| 		pos.y = pos.y-1 | ||||
| 	end | ||||
| end | ||||
|  | ||||
| local function igniter_on(pos) | ||||
| 	local fire_node = {name="fire:basic_flame"} | ||||
| 	local igniter_node = {name="moremesecons_igniter:igniter"} | ||||
| 	minetest.set_node(pos, fire_node) | ||||
| 	minetest.after(0.8, minetest.set_node, pos, igniter_node) | ||||
| 	minetest.set_node(pos, {name="fire:basic_flame"}) | ||||
| 	minetest.after(0.8, add_back_igniter, pos) | ||||
| end | ||||
|  | ||||
| minetest.register_node("moremesecons_igniter:igniter", { | ||||
| 	description="Igniter", | ||||
| 	description = "Igniter", | ||||
| 	paramtype = "light", | ||||
| 	tiles = {"moremesecons_igniter.png"}, | ||||
| 	groups = {cracky=3}, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user