summaryrefslogtreecommitdiff
path: root/mesecons/mesecons_extrawires/vertical.lua
diff options
context:
space:
mode:
Diffstat (limited to 'mesecons/mesecons_extrawires/vertical.lua')
-rw-r--r--mesecons/mesecons_extrawires/vertical.lua183
1 files changed, 0 insertions, 183 deletions
diff --git a/mesecons/mesecons_extrawires/vertical.lua b/mesecons/mesecons_extrawires/vertical.lua
deleted file mode 100644
index cac2ae2..0000000
--- a/mesecons/mesecons_extrawires/vertical.lua
+++ /dev/null
@@ -1,183 +0,0 @@
-local vertical_box = {
- type = "fixed",
- fixed = {-1/16, -8/16, -1/16, 1/16, 8/16, 1/16}
-}
-
-local top_box = {
- type = "fixed",
- fixed = {{-8/16, -8/16, -8/16, 8/16, -7/16, 8/16}}
-}
-
-local bottom_box = {
- type = "fixed",
- 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 vertical_rules = {
- {x=0, y=1, z=0},
- {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 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},
- {x=0, y=2, z=0} -- receive power from pressure plate / detector / ... 2 nodes above
-}
-
-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, 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
-
- local basename = "mesecons_extrawires:vertical_"
- if above and below then -- above and below: vertical mesecon
- minetest.add_node(pos, {name = basename .. namestate})
- elseif above and not below then -- above only: bottom
- minetest.add_node(pos, {name = basename .. "bottom_" .. namestate})
- elseif not above and below then -- below only: top
- minetest.add_node(pos, {name = basename .. "top_" .. namestate})
- else -- no vertical wire above, no vertical wire below: use bottom
- minetest.add_node(pos, {name = basename .. "bottom_" .. namestate})
- end
- mesecon.update_autoconnect(pos)
- end
-end
-
-local vertical_update = function (pos, node)
- vertical_updatepos(pos) -- this one
- vertical_updatepos(mesecon.addPosRule(pos, vertical_rules[1])) -- above
- vertical_updatepos(mesecon.addPosRule(pos, vertical_rules[2])) -- below
-end
-
--- Vertical wire
-mesecon.register_node("mesecons_extrawires:vertical", {
- description = "Vertical mesecon",
- drawtype = "nodebox",
- walkable = false,
- paramtype = "light",
- sunlight_propagates = true,
- selection_box = vertical_box,
- node_box = vertical_box,
- is_vertical_conductor = true,
- drop = "mesecons_extrawires:vertical_off",
- after_place_node = vertical_update,
- after_dig_node = vertical_update
-},{
- tiles = {"mesecons_wire_off.png"},
- groups = {dig_immediate=3},
- vertical_conductor_state = "off",
- mesecons = {conductor = {
- state = mesecon.state.off,
- onstate = "mesecons_extrawires:vertical_on",
- rules = vertical_rules,
- }}
-},{
- tiles = {"mesecons_wire_on.png"},
- groups = {dig_immediate=3, not_in_creative_inventory=1},
- vertical_conductor_state = "on",
- mesecons = {conductor = {
- state = mesecon.state.on,
- offstate = "mesecons_extrawires:vertical_off",
- rules = vertical_rules,
- }}
-})
-
--- Vertical wire top
-mesecon.register_node("mesecons_extrawires:vertical_top", {
- description = "Vertical mesecon",
- drawtype = "nodebox",
- walkable = false,
- paramtype = "light",
- sunlight_propagates = true,
- groups = {dig_immediate=3, not_in_creative_inventory=1},
- selection_box = top_box,
- node_box = top_box,
- is_vertical_conductor = true,
- drop = "mesecons_extrawires:vertical_off",
- after_place_node = vertical_update,
- after_dig_node = vertical_update
-},{
- tiles = {"mesecons_wire_off.png"},
- vertical_conductor_state = "off",
- mesecons = {conductor = {
- state = mesecon.state.off,
- onstate = "mesecons_extrawires:vertical_top_on",
- rules = top_rules,
- }}
-},{
- tiles = {"mesecons_wire_on.png"},
- vertical_conductor_state = "on",
- mesecons = {conductor = {
- state = mesecon.state.on,
- offstate = "mesecons_extrawires:vertical_top_off",
- rules = top_rules,
- }}
-})
-
--- Vertical wire bottom
-mesecon.register_node("mesecons_extrawires:vertical_bottom", {
- description = "Vertical mesecon",
- drawtype = "nodebox",
- walkable = false,
- paramtype = "light",
- sunlight_propagates = true,
- groups = {dig_immediate = 3, not_in_creative_inventory = 1},
- selection_box = bottom_box,
- node_box = bottom_box,
- is_vertical_conductor = true,
- drop = "mesecons_extrawires:vertical_off",
- after_place_node = vertical_update,
- after_dig_node = vertical_update
-},{
- tiles = {"mesecons_wire_off.png"},
- vertical_conductor_state = "off",
- mesecons = {conductor = {
- state = mesecon.state.off,
- onstate = "mesecons_extrawires:vertical_bottom_on",
- rules = bottom_rules,
- }}
-},{
- tiles = {"mesecons_wire_on.png"},
- vertical_conductor_state = "on",
- mesecons = {conductor = {
- state = mesecon.state.on,
- offstate = "mesecons_extrawires:vertical_bottom_off",
- rules = bottom_rules,
- }}
-})
-
-minetest.register_craft({
- output = "mesecons_extrawires:vertical_off 3",
- recipe = {
- {"mesecons:wire_00000000_off"},
- {"mesecons:wire_00000000_off"},
- {"mesecons:wire_00000000_off"}
- }
-})
-
-minetest.register_craft({
- output = "mesecons:wire_00000000_off",
- recipe = {{"mesecons_extrawires:vertical_off"}}
-})