diff options
| author | Jeija <jeija@mesecons.net> | 2014-11-22 20:49:54 +0100 | 
|---|---|---|
| committer | Jeija <jeija@mesecons.net> | 2014-11-22 20:49:54 +0100 | 
| commit | 80d136125ef8f17af85d0045800d5e761ace3229 (patch) | |
| tree | f3c564c4151795f6852a64355a58813eb66aba15 /mesecons_walllever | |
| parent | a550323fea995437896d809df5e5c3795271219c (diff) | |
Fix bug in mesecon.find_receptor that caused false turnoffs and rewrite lever +
switch
Diffstat (limited to 'mesecons_walllever')
| -rw-r--r-- | mesecons_walllever/init.lua | 66 | 
1 files changed, 23 insertions, 43 deletions
| diff --git a/mesecons_walllever/init.lua b/mesecons_walllever/init.lua index 89ca88d..bd71871 100644 --- a/mesecons_walllever/init.lua +++ b/mesecons_walllever/init.lua @@ -1,16 +1,9 @@  -- WALL LEVER  -- Basically a switch that can be attached to a wall  -- Powers the block 2 nodes behind (using a receiver) -minetest.register_node("mesecons_walllever:wall_lever_off", { +mesecon.register_node("mesecons_walllever:wall_lever", { +	description="Lever",  	drawtype = "nodebox", -	tiles = { -		"jeija_wall_lever_tb.png", -		"jeija_wall_lever_bottom.png", -		"jeija_wall_lever_sides.png", -		"jeija_wall_lever_sides.png", -		"jeija_wall_lever_back.png", -		"jeija_wall_lever_off.png", -	},  	inventory_image = "jeija_wall_lever_off.png",  	wield_image = "jeija_wall_lever_off.png",  	paramtype = "light", @@ -21,29 +14,34 @@ minetest.register_node("mesecons_walllever:wall_lever_off", {  		type = "fixed",  		fixed = { -8/16, -8/16, 3/16, 8/16, 8/16, 8/16 },  	}, +	sounds = default.node_sound_wood_defaults(), +	on_punch = function (pos, node) +		if(mesecon.flipstate(pos, node) == "on") then +			mesecon.receptor_on(pos, mesecon.rules.buttonlike_get(node)) +		else +			mesecon.receptor_off(pos, mesecon.rules.buttonlike_get(node)) +		end +		minetest.sound_play("mesecons_lever", {pos=pos}) +	end +},{ +	tiles = { "jeija_wall_lever_tb.png", "jeija_wall_lever_bottom.png", +		"jeija_wall_lever_sides.png", "jeija_wall_lever_sides.png", +		"jeija_wall_lever_back.png", "jeija_wall_lever_off.png", +	},  	node_box = {  		type = "fixed",  		fixed = {{ -6/16, -6/16, 6/16, 6/16,  6/16, 8/16 },	-- the base "slab"  			 { -5/16, -3/16, 5/16, 5/16,  3/16, 6/16 },	-- the lighted ring area -			 { -4/16, -2/16, 4/16, 4/16,  2/16, 5/16 },	-- the raised bit that the lever "sits" on +			 { -4/16, -2/16, 4/16, 4/16,  2/16, 5/16 },	-- the raised bit  			 { -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_needs_receiver = 1}, -	description="Lever", -	on_punch = function (pos, node) -		minetest.swap_node(pos, {name = "mesecons_walllever:wall_lever_on", param2 = node.param2}) -		mesecon.receptor_on(pos, mesecon.rules.buttonlike_get(node)) -		minetest.sound_play("mesecons_lever", {pos=pos}) -	end, -	sounds = default.node_sound_wood_defaults(),  	mesecons = {receptor = {  		rules = mesecon.rules.buttonlike_get,  		state = mesecon.state.off -	}} -}) -minetest.register_node("mesecons_walllever:wall_lever_on", { -	drawtype = "nodebox", +	}}, +	groups = {dig_immediate = 2, mesecon_needs_receiver = 1} +},{  	tiles = {  		"jeija_wall_lever_top.png",  		"jeija_wall_lever_tb.png", @@ -52,37 +50,19 @@ minetest.register_node("mesecons_walllever:wall_lever_on", {  		"jeija_wall_lever_back.png",  		"jeija_wall_lever_on.png",  	}, -	inventory_image = "jeija_wall_lever_on.png", -	paramtype = "light", -	paramtype2 = "facedir", -	sunlight_propagates = true, -	walkable = false, -	light_source = LIGHT_MAX-7, -	selection_box = { -		type = "fixed", -		fixed = { -8/16, -8/16, 3/16, 8/16, 8/16, 8/16 }, -	},  	node_box = {  		type = "fixed",  		fixed = {{ -6/16, -6/16,  6/16, 6/16, 6/16,  8/16 },	-- the base "slab"  			 { -5/16, -3/16,  5/16, 5/16, 3/16,  6/16 },	-- the lighted ring area -			 { -4/16, -2/16,  4/16, 4/16, 2/16,  5/16 },	-- the raised bit that the lever "sits" on +			 { -4/16, -2/16,  4/16, 4/16, 2/16,  5/16 },	-- the raised bit  			 { -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_needs_receiver = 1}, -	drop = "mesecons_walllever:wall_lever_off 1", -	description="Lever", -	on_punch = function (pos, node) -		minetest.swap_node(pos, {name = "mesecons_walllever:wall_lever_off", param2 = node.param2}) -		mesecon.receptor_off(pos, mesecon.rules.buttonlike_get(node)) -		minetest.sound_play("mesecons_lever", {pos=pos}) -	end, -	sounds = default.node_sound_wood_defaults(),  	mesecons = {receptor = {  		rules = mesecon.rules.buttonlike_get,  		state = mesecon.state.on -	}} +	}}, +	groups = {dig_immediate = 2, mesecon_needs_receiver = 1, not_in_creative_inventory = 1}  })  minetest.register_craft({ | 
