The switching station and supply converter only semantically connect to
cables in particular directions. Make them visually connect only in
the matching directions. This is done by special-casing in the cable
update logic. If more irregular items arise in the future, or the
existing items start to need facedir logic, this should be generalised
into something like the connect_sides system for pneumatic tubes.
switching station is not voltage-specific: the same item will manage
a network of any tier. However, also unlike most electrical items,
it is picky about the direction in which it is connected to the cable:
-the cable must be directly below the switching station. Due to a bug,
-the switching station will visually appear to connect to cables on other
-sides, but those connections don't do anything.
+the cable must be directly below the switching station.
Hovering over a network's switching station will show the aggregate energy
supply and demand, which is useful for troubleshooting. Electrical energy
function technic.cables_should_connect(pos1, pos2, tier)
local name = minetest.get_node(pos2).name
- if technic.is_tier_cable(name, tier) then
+ if name == "technic:switching_station" then
+ return pos2.y == pos1.y + 1 and "machine" or false
+ elseif name == "technic:supply_converter" then
+ return math.abs(pos2.y - pos1.y) == 1 and "machine" or false
+ elseif technic.is_tier_cable(name, tier) then
return "cable"
elseif technic.machines[tier][name] then
return "machine"