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.
This commit is contained in:
Vanessa Ezekowitz 2017-07-03 17:37:00 -04:00
parent 9d5bd90b57
commit a84b5f3b28

View File

@ -2,6 +2,7 @@
technic.networks = {} technic.networks = {}
technic.cables = {} technic.cables = {}
technic.redundant_warn = {}
local mesecons_path = minetest.get_modpath("mesecons") local mesecons_path = minetest.get_modpath("mesecons")
local digilines_path = minetest.get_modpath("digilines") local digilines_path = minetest.get_modpath("digilines")
@ -44,11 +45,15 @@ minetest.register_node("technic:switching_station",{
meta:set_string("active", 1) meta:set_string("active", 1)
meta:set_string("channel", "switching_station"..minetest.pos_to_string(pos)) meta:set_string("channel", "switching_station"..minetest.pos_to_string(pos))
meta:set_string("formspec", "field[channel;Channel;${channel}]") meta:set_string("formspec", "field[channel;Channel;${channel}]")
local poshash = minetest.hash_node_position(pos)
technic.redundant_warn.poshash = nil
end, end,
after_dig_node = function(pos) after_dig_node = function(pos)
minetest.forceload_free_block(pos) minetest.forceload_free_block(pos)
pos.y = pos.y - 1 pos.y = pos.y - 1
minetest.forceload_free_block(pos) minetest.forceload_free_block(pos)
local poshash = minetest.hash_node_position(pos)
technic.redundant_warn.poshash = nil
end, end,
on_receive_fields = function(pos, formname, fields, sender) on_receive_fields = function(pos, formname, fields, sender)
if not fields.channel then if not fields.channel then
@ -234,6 +239,13 @@ minetest.register_abm({
minetest.forceload_free_block(pos) minetest.forceload_free_block(pos)
minetest.forceload_free_block(pos1) minetest.forceload_free_block(pos1)
meta:set_string("infotext",S("%s Already Present"):format(machine_name)) 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 return
end end