diff options
| author | Jeija <norrepli@gmail.com> | 2012-08-15 20:43:45 +0200 | 
|---|---|---|
| committer | Jeija <norrepli@gmail.com> | 2012-08-15 20:43:45 +0200 | 
| commit | 67b21804e3214aa2c2b6909fb067d588e95483a0 (patch) | |
| tree | a77a6db999db4e1497d73c4a5a51ad0d66dee798 /mesecons_walllever | |
| parent | 6214dbf66e30f86315d0d0099aa89f4948f25a47 (diff) | |
Fix/Improve Wall lever rules
Diffstat (limited to 'mesecons_walllever')
| -rw-r--r-- | mesecons_walllever/init.lua | 36 | 
1 files changed, 30 insertions, 6 deletions
| diff --git a/mesecons_walllever/init.lua b/mesecons_walllever/init.lua index 1904085..b41e87a 100644 --- a/mesecons_walllever/init.lua +++ b/mesecons_walllever/init.lua @@ -26,7 +26,7 @@ minetest.register_node("mesecons_walllever:wall_lever_off", {  			 { -2/16, -1/16, 3/16, 2/16,  1/16, 4/16 },	-- the lever "hinge"  			 { -1/16, -8/16, 4/16, 1/16,  0,    6/16 }}	-- the lever itself.  	}, -	groups = {dig_immediate=2, mesecon = 1}, +	groups = {dig_immediate=2, mesecon = 3},  	description="Lever",  })  minetest.register_node("mesecons_walllever:wall_lever_on", { @@ -56,7 +56,7 @@ minetest.register_node("mesecons_walllever:wall_lever_on", {  			 { -2/16, -1/16,  3/16, 2/16, 1/16,  4/16 },	-- the lever "hinge"  			 { -1/16,  0,     4/16, 1/16, 8/16,  6/16 }}	-- the lever itself.  	}, -	groups = {dig_immediate=2,not_in_creative_inventory=1, mesecon = 1}, +	groups = {dig_immediate=2,not_in_creative_inventory=1, mesecon = 3},  	drop = '"mesecons_walllever:wall_lever_off" 1',  	description="Lever",  }) @@ -64,11 +64,11 @@ minetest.register_node("mesecons_walllever:wall_lever_on", {  minetest.register_on_punchnode(function(pos, node, puncher)  	if node.name == "mesecons_walllever:wall_lever_off" then  		minetest.env:add_node(pos, {name="mesecons_walllever:wall_lever_on",param2=node.param2}) -		mesecon:receptor_on(pos, mesecon.button_get_rules(node.param2)) +		mesecon:receptor_on(pos, mesecon.walllever_get_rules(node.param2))  	end  	if node.name == "mesecons_walllever:wall_lever_on" then  		minetest.env:add_node(pos, {name="mesecons_walllever:wall_lever_off",param2=node.param2}) -		mesecon:receptor_off(pos, mesecon.button_get_rules(node.param2)) +		mesecon:receptor_off(pos, mesecon.walllever_get_rules(node.param2))  	end  end) @@ -80,5 +80,29 @@ minetest.register_craft({  		{'"default:stick"'},  	}  }) -mesecon:add_receptor_node("mesecons_walllever:wall_lever_on", nil, mesecon.button_get_rules) -mesecon:add_receptor_node_off("mesecons_walllever:wall_lever_off", nil, mesecon.button_get_rules) + +mesecon:add_rules("walllever", { +{x = 1,  y = 0, z = 0}, +{x = 1,  y = 1, z = 0}, +{x = 1,  y =-1, z = 0}, +{x = 1,  y =-1, z = 1}, +{x = 1,  y =-1, z =-1}, +{x = 2,  y = 0, z = 0},}) + + +mesecon.walllever_get_rules = function(param2) +	local rules=mesecon:get_rules("walllever") +	if param2 == 2 then +		rules=mesecon:rotate_rules_left(rules) +	end +	if param2 == 3 then +		rules=mesecon:rotate_rules_right(mesecon:rotate_rules_right(rules)) +	end +	if param2 == 0 then +		rules=mesecon:rotate_rules_right(rules) +	end +	return rules +end + +mesecon:add_receptor_node("mesecons_walllever:wall_lever_on", nil, mesecon.walllever_get_rules) +mesecon:add_receptor_node_off("mesecons_walllever:wall_lever_off", nil, mesecon.walllever_get_rules) | 
