diff options
| author | Jeija <norrepli@gmail.com> | 2015-02-03 18:10:49 +0100 | 
|---|---|---|
| committer | Jeija <norrepli@gmail.com> | 2015-02-03 18:10:49 +0100 | 
| commit | a895715720561076ecbf03c2a42de8c8b55aae8f (patch) | |
| tree | 431f5a995fc6b858624be18a7f411f4940c003b2 /mesecons_doors | |
| parent | 94604e890c08d54e69abd5507f5b92bc1bb9d31f (diff) | |
Prepare trapdoors code for merging, make trapdoors always toggle their
state when the mesecons signal changes, no matter what state they're in
Diffstat (limited to 'mesecons_doors')
| -rw-r--r-- | mesecons_doors/init.lua | 31 | 
1 files changed, 11 insertions, 20 deletions
| diff --git a/mesecons_doors/init.lua b/mesecons_doors/init.lua index a1f172c..164750a 100644 --- a/mesecons_doors/init.lua +++ b/mesecons_doors/init.lua @@ -51,39 +51,30 @@ meseconify_door("doors:door_glass")  meseconify_door("doors:door_obsidian_glass")  -- Trapdoor -local function punch(pos) -	local meta = minetest.get_meta(pos) -	local state = meta:get_int("state") -	local me = minetest.get_node(pos) -	local tmp_node -	local tmp_node2 +local function trapdoor_switch(pos, node) +	local state = minetest.get_meta(pos):get_int("state") +  	if state == 1 then -		state = 0  		minetest.sound_play("doors_door_close", {pos = pos, gain = 0.3, max_hear_distance = 10}) -		tmp_node = {name="doors:trapdoor", param1=me.param1, param2=me.param2} +		minetest.set_node(pos, {name="doors:trapdoor", param2 = node.param2})  	else -		state = 1  		minetest.sound_play("doors_door_open", {pos = pos, gain = 0.3, max_hear_distance = 10}) -		tmp_node = {name="doors:trapdoor_open", param1=me.param1, param2=me.param2} +		minetest.set_node(pos, {name="doors:trapdoor_open", param2 = node.param2})  	end -	minetest.set_node(pos, tmp_node) -	meta:set_int("state", state) + +	minetest.get_meta(pos):set_int("state", state == 1 and 0 or 1)  end  minetest.override_item("doors:trapdoor", {  	mesecons = {effector = { -		action_on = function(pos) -			punch(pos) -		end, -		rules = mesecon.rules.pplate +		action_on = trapdoor_switch, +		action_off = trapdoor_switch  	}},  })  minetest.override_item("doors:trapdoor_open", {  	mesecons = {effector = { -		action_off = function(pos) -			punch(pos) -		end, -		rules = mesecon.rules.pplate +		action_on = trapdoor_switch, +		action_off = trapdoor_switch  	}},  }) | 
