diff options
| -rw-r--r-- | mesecons_extrawires/vertical.lua | 136 | 
1 files changed, 70 insertions, 66 deletions
| diff --git a/mesecons_extrawires/vertical.lua b/mesecons_extrawires/vertical.lua index 29b5cf6..16de55e 100644 --- a/mesecons_extrawires/vertical.lua +++ b/mesecons_extrawires/vertical.lua @@ -1,64 +1,68 @@ -local vbox = { +local vertical_box = {  	type = "fixed", -	fixed = {-1/16, -.5, -1/16, 1/16, .5, 1/16} +	fixed = {-1/16, -8/16, -1/16, 1/16, 8/16, 1/16}  } -local tbox = { +local top_box = {  	type = "fixed", -	fixed = {{-.5, -.5, -.5, .5, -.5 + 1/16, .5}} +	fixed = {{-8/16, -8/16, -8/16, 8/16, -7/16, 8/16}}  } -local bbox = { +local bottom_box = {  	type = "fixed", -	fixed = {{  -.5, -.5     ,   -.5,   .5, -.5+1/16,   .5}, -		 {-1/16, -.5+1/16, -1/16, 1/16,  .5     , 1/16}} +	fixed = { +		{-8/16, -8/16, -8/16, 8/16, -7/16, 8/16}, +		{-1/16, -7/16, -1/16, 1/16, 8/16, 1/16}, +	}  } -local vrules = -{{x = 0, y = 1, z = 0}, - {x = 0, y =-1, z = 0}} +local vertical_rules = { +	{x=0, y=1, z=0}, +	{x=0, y=-1, z=0}, +} -local trules =  -{{x = 1, y = 0, z = 0}, - {x =-1, y = 0, z = 0}, - {x = 0, y = 0, z = 1}, - {x = 0, y = 0, z =-1}, - {x = 0, y =-1, z = 0}} +local top_rules = { +	{x=1,y=0, z=0}, +	{x=-1,y=0, z=0}, +	{x=0,y=0, z=1}, +	{x=0,y=0, z=-1}, +	{x=0,y=-1, z=0}, +} -local brules =  -{{x = 1, y = 0, z = 0}, - {x =-1, y = 0, z = 0}, - {x = 0, y = 0, z = 1}, - {x = 0, y = 0, z =-1}, - {x = 0, y = 1, z = 0}} +local bottom_rules = { +	{x=1, y=0, z=0}, +	{x=-1, y=0, z=0}, +	{x=0, y=0, z=1}, +	{x=0, y=0, z=-1}, +	{x=0, y=1, z=0}, +}  local vertical_updatepos = function (pos)  	local node = minetest.get_node(pos) -	if minetest.registered_nodes[node.name] -	and minetest.registered_nodes[node.name].is_vertical_conductor then -		local node_above = minetest.get_node(mesecon:addPosRule(pos, vrules[1])) -		local node_below = minetest.get_node(mesecon:addPosRule(pos, vrules[2])) +	if minetest.registered_nodes[node.name] and minetest.registered_nodes[node.name].is_vertical_conductor then +		local node_above = minetest.get_node(mesecon:addPosRule(pos, vertical_rules[1])) +		local node_below = minetest.get_node(mesecon:addPosRule(pos, vertical_rules[2]))  		local namestate = minetest.registered_nodes[node.name].vertical_conductor_state  		local above = minetest.registered_nodes[node_above.name] and minetest.registered_nodes[node_above.name].is_vertical_conductor  		local below = minetest.registered_nodes[node_below.name] and minetest.registered_nodes[node_below.name].is_vertical_conductor  		if above and below then -- above and below: vertical mesecon -			minetest.add_node(pos, {name = "mesecons_extrawires:vertical_"..namestate}) +			minetest.add_node(pos, {name = "mesecons_extrawires:vertical_" .. namestate})  		elseif above and not below then -- above only: bottom -			minetest.add_node(pos, {name = "mesecons_extrawires:vertical_bottom_"..namestate}) +			minetest.add_node(pos, {name = "mesecons_extrawires:vertical_bottom_" .. namestate})  		elseif not above and below then -- below only: top -			minetest.add_node(pos, {name = "mesecons_extrawires:vertical_top_"..namestate}) +			minetest.add_node(pos, {name = "mesecons_extrawires:vertical_top_" .. namestate})  		else -- no vertical wire above, no vertical wire below: use default wire -			minetest.add_node(pos, {name = "mesecons_extrawires:vertical_"..namestate}) +			minetest.add_node(pos, {name = "mesecons_extrawires:vertical_" .. namestate})  		end  	end  end  local vertical_update = function (pos, node)  	vertical_updatepos(pos) -- this one -	vertical_updatepos(mesecon:addPosRule(pos, vrules[1])) -- above -	vertical_updatepos(mesecon:addPosRule(pos, vrules[2])) -- below +	vertical_updatepos(mesecon:addPosRule(pos, vertical_rules[1])) -- above +	vertical_updatepos(mesecon:addPosRule(pos, vertical_rules[2])) -- below  end  -- Vertical wire @@ -69,19 +73,19 @@ minetest.register_node("mesecons_extrawires:vertical_on", {  	walkable = false,  	paramtype = "light",  	sunlight_propagates = true, -	groups = {dig_immediate = 3, not_in_creative_inventory = 1}, -	selection_box = vbox, -	node_box = vbox, +	groups = {dig_immediate=3, not_in_creative_inventory=1}, +	selection_box = vertical_box, +	node_box = vertical_box,  	is_vertical_conductor = true,  	vertical_conductor_state = "on",  	mesecons = {conductor = {  		state = mesecon.state.on,  		offstate = "mesecons_extrawires:vertical_off", -		rules = vrules +		rules = vertical_rules,  	}},  	drop = "mesecons_extrawires:vertical_off", -	after_place_node	= vertical_update, -	after_dig_node 		= vertical_update +	after_place_node = vertical_update, +	after_dig_node = vertical_update,  })  minetest.register_node("mesecons_extrawires:vertical_off", { @@ -91,18 +95,18 @@ minetest.register_node("mesecons_extrawires:vertical_off", {  	walkable = false,  	paramtype = "light",  	sunlight_propagates = true, -	groups = {dig_immediate = 3}, -	selection_box = vbox, -	node_box = vbox, +	groups = {dig_immediate=3}, +	selection_box = vertical_box, +	node_box = vertical_box,  	is_vertical_conductor = true,  	vertical_conductor_state = "off",  	mesecons = {conductor = {  		state = mesecon.state.off,  		onstate = "mesecons_extrawires:vertical_on", -		rules = vrules +		rules = vertical_rules,  	}}, -	after_place_node	= vertical_update, -	after_dig_node 		= vertical_update +	after_place_node = vertical_update, +	after_dig_node = vertical_update,  })  -- Vertical wire top @@ -113,19 +117,19 @@ minetest.register_node("mesecons_extrawires:vertical_top_on", {  	walkable = false,  	paramtype = "light",  	sunlight_propagates = true, -	groups = {dig_immediate = 3, not_in_creative_inventory = 1}, -	selection_box = tbox, -	node_box = tbox, +	groups = {dig_immediate=3, not_in_creative_inventory=1}, +	selection_box = top_box, +	node_box = top_box,  	is_vertical_conductor = true,  	vertical_conductor_state = "on",  	mesecons = {conductor = {  		state = mesecon.state.on,  		offstate = "mesecons_extrawires:vertical_top_off", -		rules = trules +		rules = top_rules,  	}},  	drop = "mesecons_extrawires:vertical_off", -	after_place_node	= vertical_update, -	after_dig_node 		= vertical_update +	after_place_node = vertical_update, +	after_dig_node = vertical_update,  })  minetest.register_node("mesecons_extrawires:vertical_top_off", { @@ -135,19 +139,19 @@ minetest.register_node("mesecons_extrawires:vertical_top_off", {  	walkable = false,  	paramtype = "light",  	sunlight_propagates = true, -	groups = {dig_immediate = 3, not_in_creative_inventory = 1}, -	selection_box = tbox, -	node_box = tbox, +	groups = {dig_immediate=3, not_in_creative_inventory=1}, +	selection_box = top_box, +	node_box = top_box,  	is_vertical_conductor = true,  	vertical_conductor_state = "off",  	mesecons = {conductor = {  		state = mesecon.state.off,  		onstate = "mesecons_extrawires:vertical_top_on", -		rules = trules +		rules = top_rules,  	}},  	drop = "mesecons_extrawires:vertical_off", -	after_place_node	= vertical_update, -	after_dig_node 		= vertical_update +	after_place_node = vertical_update, +	after_dig_node = vertical_update,  })  -- Vertical wire bottom @@ -160,16 +164,16 @@ minetest.register_node("mesecons_extrawires:vertical_bottom_on", {  	sunlight_propagates = true,  	vertical_conductor_state = "on",  	groups = {dig_immediate = 3, not_in_creative_inventory = 1}, -	selection_box = bbox, -	node_box = bbox, +	selection_box = bottom_box, +	node_box = bottom_box,  	mesecons = {conductor = {  		state = mesecon.state.on,  		offstate = "mesecons_extrawires:vertical_bottom_off", -		rules = brules +		rules = bottom_rules,  	}},  	drop = "mesecons_extrawires:vertical_off", -	after_place_node	= vertical_update, -	after_dig_node 		= vertical_update +	after_place_node = vertical_update, +	after_dig_node = vertical_update,  })  minetest.register_node("mesecons_extrawires:vertical_bottom_off", { @@ -180,18 +184,18 @@ minetest.register_node("mesecons_extrawires:vertical_bottom_off", {  	paramtype = "light",  	sunlight_propagates = true,  	groups = {dig_immediate = 3, not_in_creative_inventory = 1}, -	selection_box = bbox, -	node_box = bbox, +	selection_box = bottom_box, +	node_box = bottom_box,  	is_vertical_conductor = true,  	vertical_conductor_state = "off",  	mesecons = {conductor = {  		state = mesecon.state.off,  		onstate = "mesecons_extrawires:vertical_bottom_on", -		rules = brules +		rules = bottom_rules,  	}},  	drop = "mesecons_extrawires:vertical_off", -	after_place_node	= vertical_update, -	after_dig_node 		= vertical_update +	after_place_node = vertical_update, +	after_dig_node = vertical_update,  })  minetest.register_craft({ | 
