diff options
| author | 1F616EMO <root@1f616emo.xyz> | 2026-06-12 00:07:50 +0800 |
|---|---|---|
| committer | orwell <orwell@bleipb.de> | 2026-07-08 21:33:40 +0200 |
| commit | e5c5ae1af136fc73b7c7c9b653c314235122957d (patch) | |
| tree | 3705ea717b899353029f097d29fea7b7d8939ef6 /advtrains_luaautomation | |
| parent | 1b3b4eb8a76cb059ff1f6bbaa7858f4c12d6b48a (diff) | |
Add get_active_route and list_routes to LuaATC
get_active_route returns the name of the route currently set on the
signal. Useful for rendering signalling control panels.
list_routes returns an array of valid route names. Useful for
implementing remote controls of signals.
Diffstat (limited to 'advtrains_luaautomation')
| -rw-r--r-- | advtrains_luaautomation/environment.lua | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/advtrains_luaautomation/environment.lua b/advtrains_luaautomation/environment.lua index 4d4ac47..93614ef 100644 --- a/advtrains_luaautomation/environment.lua +++ b/advtrains_luaautomation/environment.lua @@ -230,6 +230,18 @@ if advtrains.interlocking then local pos, sigd, tcbs, routeid, route = gen_checks(signal, "", true) return advtrains.interlocking.route.update_route(sigd, tcbs, nil, true) end + static_env.get_active_route = function(signal) + local pos, sigd, tcbs = gen_checks(signal, "", true) + return tcbs.routeset and tcbs.routes[tcbs.routeset] and tcbs.routes[tcbs.routeset].name or nil + end + static_env.list_routes = function(signal) + local pos, sigd, tcbs = gen_checks(signal, "", true) + local routes = {} + for _, route in ipairs(tcbs.routes) do + routes[#routes+1] = route.name + end + return routes + end static_env.get_aspect = function(signal) local pos = atlatc.pcnaming.resolve_pos(signal) return advtrains.interlocking.signal.get_aspect_info(pos) |
