diff --git a/icta_controller/commands.lua b/icta_controller/commands.lua index d5b5522..74354c6 100644 --- a/icta_controller/commands.lua +++ b/icta_controller/commands.lua @@ -456,7 +456,7 @@ techage.icta_register_condition("signaltower", { }) techage.icta_register_action("signaltower", { - title = "send Signal Tower command", + title = "TA4 Signal Tower", formspec = { { type = "numbers", @@ -487,6 +487,45 @@ techage.icta_register_action("signaltower", { end, }) +techage.icta_register_action("signallamp", { + title = "TA4 Signal Lamp", + formspec = { + { + type = "numbers", + name = "number", + label = "Signal Tower number", + default = "", + }, + { + type = "textlist", + name = "payload", + label = "lamp number", + choices = "1,2,3,4", + default = "1", + }, + { + type = "textlist", + name = "value", + label = "lamp color", + choices = "off,green,amber,red", + default = "red", + }, + { + type = "label", + name = "lbl", + label = "Turn on/off a Signal Tower lamp.", + }, + }, + button = function(data, environ) + return 'tower('..techage.fmt_number(data.number)..","..data.payload..","..data.value..')' + end, + code = function(data, environ) + return function(env, output, idx) + techage.send_multi(environ.number, data.number, data.value, tonumber(data.payload)) + end + end, +}) + techage.icta_register_action("switch", { title = "turn block on/off", formspec = { @@ -657,6 +696,98 @@ techage.icta_register_action("door", { end, }) +techage.icta_register_action("move", { + title = "TA4 Move Controller", + formspec = { + { + type = "number", + name = "number", + label = "block number", + default = "", + }, + { + type = "textlist", + name = "cmnd", + label = "command", + choices = "a2b,b2a,move", + default = "a2b", + }, + }, + button = function(data, environ) -- default button label + return 'move('..techage.fmt_number(data.number)..","..data.cmnd..')' + end, + code = function(data, environ) + return function(env, output, idx) + return techage.send_single(environ.number, data.number, data.cmnd) + end + end, +}) + +techage.icta_register_action("turn", { + title = "TA4 Turn Controller", + formspec = { + { + type = "number", + name = "number", + label = "block number", + default = "", + }, + { + type = "textlist", + name = "cmnd", + label = "command", + choices = "left,right,uturn", + default = "left", + }, + }, + button = function(data, environ) -- default button label + return 'move('..techage.fmt_number(data.number)..","..data.cmnd..')' + end, + code = function(data, environ) + return function(env, output, idx) + return techage.send_single(environ.number, data.number, data.cmnd) + end + end, +}) + +techage.icta_register_action("goto", { + title = "TA4 Sequencer", + formspec = { + { + type = "number", + name = "number", + label = "block number", + default = "", + }, + { + type = "textlist", + name = "cmnd", + label = "command", + choices = "goto,stop", + default = "left", + }, + { + type = "number", + name = "slot", + label = "time slot", + default = "1", + }, + { + type = "label", + name = "lbl", + label = "The 'stop' command needs no time slot.", + }, + }, + button = function(data, environ) -- default button label + return data.cmnd..'('..techage.fmt_number(data.number)..","..data.slot..')' + end, + code = function(data, environ) + return function(env, output, idx) + return techage.send_single(environ.number, data.number, data.cmnd, tonumber(data.slot or "1") or 1) + end + end, +}) + function techage.icta_player_detect(own_num, number, name) local state = techage.send_single(own_num, number, "name", nil) if state ~= "" then