fix some things

This commit is contained in:
DS-Minetest 2017-03-26 20:25:55 +02:00
parent 24f0837772
commit d0135e4b47

View File

@ -34,6 +34,9 @@
technic.networks = {} technic.networks = {}
technic.cables = {} technic.cables = {}
local mesecons_path = minetest.get_modpath("mesecons")
local digilines_path = minetest.get_modpath("digilines")
local S = technic.getter local S = technic.getter
minetest.register_craft({ minetest.register_craft({
@ -57,6 +60,8 @@ minetest.register_node("technic:switching_station",{
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
meta:set_string("infotext", S("Switching Station")) meta:set_string("infotext", S("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("formspec", "field[channel;Channel;${channel}]")
end, end,
after_dig_node = function(pos) after_dig_node = function(pos)
minetest.forceload_free_block(pos) minetest.forceload_free_block(pos)
@ -70,14 +75,18 @@ minetest.register_node("technic:switching_station",{
receptor = {action = function() end}, receptor = {action = function() end},
effector = { effector = {
action = function(pos, node, channel, msg) action = function(pos, node, channel, msg)
if msg == "GET" or msg == "get" then if msg ~= "GET" and msg ~= "get" then
return
end
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
if channel ~= meta:get_string("channel") then
return
end
digilines.receptor_send(pos, digilines.rules.default, channel, { digilines.receptor_send(pos, digilines.rules.default, channel, {
supply = meta:get_int("supply"), supply = meta:get_int("supply"),
demand = meta:get_int("demand") demand = meta:get_int("demand")
}) })
end end
end
}, },
}, },
}) })
@ -318,14 +327,13 @@ minetest.register_abm({
S("@1. Supply: @2 Demand: @3", S("@1. Supply: @2 Demand: @3",
machine_name, technic.pretty_num(PR_eu_supply), technic.pretty_num(RE_eu_demand))) machine_name, technic.pretty_num(PR_eu_supply), technic.pretty_num(RE_eu_demand)))
-- digiline -- If mesecon signal and power supply or demand changed then
if minetest.get_modpath("mesecons") and -- send them via digilines.
minetest.get_modpath("digilines") and if mesecons_path and digilines_path and mesecon.is_powered(pos) then
mesecon.is_powered(pos) then
if PR_eu_supply ~= meta:get_int("supply") or if PR_eu_supply ~= meta:get_int("supply") or
RE_eu_demand ~= meta:get_int("demand") then RE_eu_demand ~= meta:get_int("demand") then
digilines.receptor_send(pos, digilines.rules.default, local channel = meta:get_string("channel")
"switching_station"..minetest.pos_to_string(pos), { digilines.receptor_send(pos, digilines.rules.default, channel, {
supply = PR_eu_supply, supply = PR_eu_supply,
demand = RE_eu_demand demand = RE_eu_demand
}) })