From d9cc1d5aa18a6267e74b00ba432cf5738eb685e5 Mon Sep 17 00:00:00 2001 From: Uberi Date: Wed, 18 Dec 2013 15:14:03 -0500 Subject: [PATCH] Vertical wire update. --- mesecons_extrawires/vertical.lua | 136 ++++++++++++++++--------------- 1 file 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({