Vanessa Ezekowitz
2017-07-03 a84b5f3b28789318738dfa52ee1264c8d31eecb4
print warning to console if redundant switching station is found
and where it is

only prints the warning once per redundant station, per minetest
session. if there are multiple redundant stations on a network, digging
one should cause the warning to appear for the next one technic finds,
if it doesn't show them all right away.
1 files modified
12 ■■■■■ changed files
technic/machines/switching_station.lua 12 ●●●●● patch | view | raw | blame | history
technic/machines/switching_station.lua
@@ -2,6 +2,7 @@
technic.networks = {}
technic.cables = {}
technic.redundant_warn = {}
local mesecons_path = minetest.get_modpath("mesecons")
local digilines_path = minetest.get_modpath("digilines")
@@ -44,11 +45,15 @@
        meta:set_string("active", 1)
        meta:set_string("channel", "switching_station"..minetest.pos_to_string(pos))
        meta:set_string("formspec", "field[channel;Channel;${channel}]")
        local poshash = minetest.hash_node_position(pos)
        technic.redundant_warn.poshash = nil
    end,
    after_dig_node = function(pos)
        minetest.forceload_free_block(pos)
        pos.y = pos.y - 1
        minetest.forceload_free_block(pos)
        local poshash = minetest.hash_node_position(pos)
        technic.redundant_warn.poshash = nil
    end,
    on_receive_fields = function(pos, formname, fields, sender)
        if not fields.channel then
@@ -234,6 +239,13 @@
            minetest.forceload_free_block(pos)
            minetest.forceload_free_block(pos1)
            meta:set_string("infotext",S("%s Already Present"):format(machine_name))
            local poshash = minetest.hash_node_position(pos)
            if not technic.redundant_warn.poshash then
                technic.redundant_warn.poshash = true
                print("[TECHNIC] Warning: redundant switching station found near "..minetest.pos_to_string(pos))
            end
            return
        end