Skip to content

Commit 80f72b2

Browse files
committedFeb 15, 2016
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.
1 parent fe9c687 commit 80f72b2

File tree

1 file changed

+11
-13
lines changed

1 file changed

+11
-13
lines changed
 

Diff for: ‎mesecons_extrawires/vertical.lua

+11-13
Original file line numberDiff line numberDiff line change
@@ -44,24 +44,28 @@ local vertical_updatepos = function (pos)
4444
and minetest.registered_nodes[node.name].is_vertical_conductor then
4545
local node_above = minetest.get_node(vector.add(pos, vertical_rules[1]))
4646
local node_below = minetest.get_node(vector.add(pos, vertical_rules[2]))
47-
local namestate = minetest.registered_nodes[node.name].vertical_conductor_state
4847

4948
local above = minetest.registered_nodes[node_above.name]
5049
and minetest.registered_nodes[node_above.name].is_vertical_conductor
5150
local below = minetest.registered_nodes[node_below.name]
5251
and minetest.registered_nodes[node_below.name].is_vertical_conductor
5352

54-
local basename = "mesecons_extrawires:vertical_"
53+
mesecon.on_dignode(pos, node)
54+
55+
-- Always place offstate conductor and let mesecon.on_placenode take care
56+
local newname = "mesecons_extrawires:vertical_"
5557
if above and below then -- above and below: vertical mesecon
56-
minetest.set_node(pos, {name = basename .. namestate})
58+
newname = newname .. "off"
5759
elseif above and not below then -- above only: bottom
58-
minetest.set_node(pos, {name = basename .. "bottom_" .. namestate})
60+
newname = newname .. "bottom_off"
5961
elseif not above and below then -- below only: top
60-
minetest.set_node(pos, {name = basename .. "top_" .. namestate})
62+
newname = newname .. "top_off"
6163
else -- no vertical wire above, no vertical wire below: use bottom
62-
minetest.set_node(pos, {name = basename .. "bottom_" .. namestate})
64+
newname = newname .. "bottom_off"
6365
end
64-
mesecon.update_autoconnect(pos)
66+
67+
minetest.set_node(pos, {name = newname})
68+
mesecon.on_placenode(pos, {name = newname})
6569
end
6670
end
6771

@@ -87,7 +91,6 @@ mesecon.register_node("mesecons_extrawires:vertical", {
8791
},{
8892
tiles = {"mesecons_wire_off.png"},
8993
groups = {dig_immediate=3},
90-
vertical_conductor_state = "off",
9194
mesecons = {conductor = {
9295
state = mesecon.state.off,
9396
onstate = "mesecons_extrawires:vertical_on",
@@ -96,7 +99,6 @@ mesecon.register_node("mesecons_extrawires:vertical", {
9699
},{
97100
tiles = {"mesecons_wire_on.png"},
98101
groups = {dig_immediate=3, not_in_creative_inventory=1},
99-
vertical_conductor_state = "on",
100102
mesecons = {conductor = {
101103
state = mesecon.state.on,
102104
offstate = "mesecons_extrawires:vertical_off",
@@ -120,15 +122,13 @@ mesecon.register_node("mesecons_extrawires:vertical_top", {
120122
after_dig_node = vertical_update
121123
},{
122124
tiles = {"mesecons_wire_off.png"},
123-
vertical_conductor_state = "off",
124125
mesecons = {conductor = {
125126
state = mesecon.state.off,
126127
onstate = "mesecons_extrawires:vertical_top_on",
127128
rules = top_rules,
128129
}}
129130
},{
130131
tiles = {"mesecons_wire_on.png"},
131-
vertical_conductor_state = "on",
132132
mesecons = {conductor = {
133133
state = mesecon.state.on,
134134
offstate = "mesecons_extrawires:vertical_top_off",
@@ -152,15 +152,13 @@ mesecon.register_node("mesecons_extrawires:vertical_bottom", {
152152
after_dig_node = vertical_update
153153
},{
154154
tiles = {"mesecons_wire_off.png"},
155-
vertical_conductor_state = "off",
156155
mesecons = {conductor = {
157156
state = mesecon.state.off,
158157
onstate = "mesecons_extrawires:vertical_bottom_on",
159158
rules = bottom_rules,
160159
}}
161160
},{
162161
tiles = {"mesecons_wire_on.png"},
163-
vertical_conductor_state = "on",
164162
mesecons = {conductor = {
165163
state = mesecon.state.on,
166164
offstate = "mesecons_extrawires:vertical_bottom_off",

0 commit comments

Comments
 (0)