mirror of
https://github.com/joe7575/techpack.git
synced 2024-12-25 23:17:36 +01:00
Distributor filter command added
This commit is contained in:
parent
e372cdccce
commit
a01c14beff
@ -94,6 +94,21 @@ sl_controller.register_action("send_cmnd", {
|
||||
' example: $send_cmnd("1234", "on")'
|
||||
})
|
||||
|
||||
sl_controller.register_action("set_filter", {
|
||||
cmnd = function(self, num, slot, val)
|
||||
num = tostring(num or "")
|
||||
slot = tostring(slot or "red")
|
||||
val = tostring(val or "on")
|
||||
tubelib.send_message(num, self.meta.owner, nil, "filter", {slot=slot, val=val})
|
||||
end,
|
||||
help = " $set_filter(num, slot, val)\n"..
|
||||
' Turn on/off a Distributor filter slot.\n'..
|
||||
" For more help, see:\n"..
|
||||
" https://github.com/joe7575/techpack/wiki/nodes\n"..
|
||||
' example: $set_filter("1234", "red", "off")'
|
||||
})
|
||||
|
||||
|
||||
sl_controller.register_action("display", {
|
||||
cmnd = function(self, num, row, text1, text2, text3)
|
||||
text1 = tostring(text1 or "")
|
||||
|
@ -92,9 +92,9 @@ minetest.register_node("sl_controller:server", {
|
||||
minetest.register_craft({
|
||||
output = "sl_controller:server",
|
||||
recipe = {
|
||||
{"", "", ""},
|
||||
{"default:mese_crystal_fragment", "tubelib:wlanchip", "default:mese_crystal_fragment"},
|
||||
{"", "default:copper_ingot", ""},
|
||||
{"", "dye:black", ""},
|
||||
{"default:mese_crystal", "tubelib:wlanchip", "default:mese_crystal"},
|
||||
{"default:steel_ingot", "default:copper_ingot", "default:steel_ingot"},
|
||||
},
|
||||
})
|
||||
|
||||
|
@ -311,6 +311,24 @@ local function on_receive_fields(pos, formname, fields, player)
|
||||
end
|
||||
end
|
||||
|
||||
-- tubelib command to turn on/off filter channels
|
||||
local function change_filter_settings(pos, slot, val)
|
||||
local slots = {["red"] = 1, ["green"] = 2, ["blue"] = 3, ["yellow"] = 4}
|
||||
local meta = minetest.get_meta(pos)
|
||||
local filter = minetest.deserialize(meta:get_string("filter"))
|
||||
local num = slots[slot] or 1
|
||||
if num >= 1 and num <= 4 then
|
||||
filter[num] = val == "on"
|
||||
end
|
||||
meta:set_string("filter", minetest.serialize(filter))
|
||||
|
||||
filter_settings(pos)
|
||||
|
||||
local running = meta:get_int("running")
|
||||
meta:set_string("formspec", distributor_formspec(tubelib.state(running), filter))
|
||||
return true
|
||||
end
|
||||
|
||||
minetest.register_node("tubelib:distributor", {
|
||||
description = "Tubelib Distributor",
|
||||
tiles = {
|
||||
@ -442,6 +460,8 @@ tubelib.register_node("tubelib:distributor", {"tubelib:distributor_active"}, {
|
||||
local meta = minetest.get_meta(pos)
|
||||
local running = meta:get_int("running")
|
||||
return tubelib.statestring(running)
|
||||
elseif topic == "filter" then
|
||||
return change_filter_settings(pos, payload.slot, payload.val)
|
||||
else
|
||||
return "unsupported"
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user