summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeija <norrepli@gmail.com>2016-02-15 22:52:56 +0100
committerJeija <norrepli@gmail.com>2016-02-15 22:52:56 +0100
commit80f72b26218b2a647dbcb4e413efccfcb6e74347 (patch)
tree9bc1072e2293ed49de39e903b23a297beb354fdc
parentfe9c6871de5db8add9ef196a088b975ed51a4eba (diff)
downloadmesecons-80f72b26218b2a647dbcb4e413efccfcb6e74347.tar
mesecons-80f72b26218b2a647dbcb4e413efccfcb6e74347.tar.gz
mesecons-80f72b26218b2a647dbcb4e413efccfcb6e74347.tar.bz2
mesecons-80f72b26218b2a647dbcb4e413efccfcb6e74347.tar.xz
mesecons-80f72b26218b2a647dbcb4e413efccfcb6e74347.zip
Fix vertical wires not updating power when adding to / removing from a vertical line
Call mesecon.on_dignode / mesecon.on_placenode to take care of that.
-rw-r--r--mesecons_extrawires/vertical.lua24
1 files changed, 11 insertions, 13 deletions
diff --git a/mesecons_extrawires/vertical.lua b/mesecons_extrawires/vertical.lua
index 91d8e6b..f3232d8 100644
--- a/mesecons_extrawires/vertical.lua
+++ b/mesecons_extrawires/vertical.lua
@@ -44,24 +44,28 @@ local vertical_updatepos = function (pos)
and minetest.registered_nodes[node.name].is_vertical_conductor then
local node_above = minetest.get_node(vector.add(pos, vertical_rules[1]))
local node_below = minetest.get_node(vector.add(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_"
+ mesecon.on_dignode(pos, node)
+
+ -- Always place offstate conductor and let mesecon.on_placenode take care
+ local newname = "mesecons_extrawires:vertical_"
if above and below then -- above and below: vertical mesecon
- minetest.set_node(pos, {name = basename .. namestate})
+ newname = newname .. "off"
elseif above and not below then -- above only: bottom
- minetest.set_node(pos, {name = basename .. "bottom_" .. namestate})
+ newname = newname .. "bottom_off"
elseif not above and below then -- below only: top
- minetest.set_node(pos, {name = basename .. "top_" .. namestate})
+ newname = newname .. "top_off"
else -- no vertical wire above, no vertical wire below: use bottom
- minetest.set_node(pos, {name = basename .. "bottom_" .. namestate})
+ newname = newname .. "bottom_off"
end
- mesecon.update_autoconnect(pos)
+
+ minetest.set_node(pos, {name = newname})
+ mesecon.on_placenode(pos, {name = newname})
end
end
@@ -87,7 +91,6 @@ mesecon.register_node("mesecons_extrawires:vertical", {
},{
tiles = {"mesecons_wire_off.png"},
groups = {dig_immediate=3},
- vertical_conductor_state = "off",
mesecons = {conductor = {
state = mesecon.state.off,
onstate = "mesecons_extrawires:vertical_on",
@@ -96,7 +99,6 @@ mesecon.register_node("mesecons_extrawires:vertical", {
},{
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",
@@ -120,7 +122,6 @@ mesecon.register_node("mesecons_extrawires:vertical_top", {
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",
@@ -128,7 +129,6 @@ mesecon.register_node("mesecons_extrawires:vertical_top", {
}}
},{
tiles = {"mesecons_wire_on.png"},
- vertical_conductor_state = "on",
mesecons = {conductor = {
state = mesecon.state.on,
offstate = "mesecons_extrawires:vertical_top_off",
@@ -152,7 +152,6 @@ mesecon.register_node("mesecons_extrawires:vertical_bottom", {
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",
@@ -160,7 +159,6 @@ mesecon.register_node("mesecons_extrawires:vertical_bottom", {
}}
},{
tiles = {"mesecons_wire_on.png"},
- vertical_conductor_state = "on",
mesecons = {conductor = {
state = mesecon.state.on,
offstate = "mesecons_extrawires:vertical_bottom_off",