aboutsummaryrefslogtreecommitdiff
path: root/advtrains_luaautomation
diff options
context:
space:
mode:
authorMaverick2797 <git.maverick2797@gmail.com>2024-08-30 17:25:01 +0800
committerorwell <orwell@bleipb.de>2024-09-02 22:25:05 +0200
commit852e2f4219c4e7a9bebf7b27bb1c026f98719f97 (patch)
treedfab3ab77527853c19c8f28f2ae45b89dd7b82e3 /advtrains_luaautomation
parent55108ae38e467e190abd6f9bf087a9a73f953a08 (diff)
downloadadvtrains-852e2f4219c4e7a9bebf7b27bb1c026f98719f97.tar.gz
advtrains-852e2f4219c4e7a9bebf7b27bb1c026f98719f97.tar.bz2
advtrains-852e2f4219c4e7a9bebf7b27bb1c026f98719f97.zip
LuaATC add trainparts(train_id)
Returns a copy of the trainparts table to allow tracking individual wagon ids Also fixed a couple of file permissions from previous commits
Diffstat (limited to 'advtrains_luaautomation')
-rw-r--r--advtrains_luaautomation/README.md3
-rw-r--r--advtrains_luaautomation/environment.lua6
-rw-r--r--[-rwxr-xr-x]advtrains_luaautomation/operation_panel.lua0
3 files changed, 9 insertions, 0 deletions
diff --git a/advtrains_luaautomation/README.md b/advtrains_luaautomation/README.md
index 0bf56bb..f98f7a0 100644
--- a/advtrains_luaautomation/README.md
+++ b/advtrains_luaautomation/README.md
@@ -93,6 +93,9 @@ Removes any pending interrupts of this node.
Make this active component send a digiline message on the specified channel.
Not available in init code.
+ - `trainparts(train_id)`
+ returns a table with the ids of the cars the train is composed of, or false if `train_id` is invalid. `train_id` can be replaced with `atc_id` when used in LuaATC Rails.
+
- `atc_send_to_train(<train_id>, <atc_command>)`
Sends the specified ATC command to the train specified by its train id. This happens regardless of where the train is in the world, and can be used to remote-control trains. Returns true on success. If the train ID does not exist, returns false and does nothing. See [atc_command.txt](../atc_command.txt) for the ATC command syntax.
diff --git a/advtrains_luaautomation/environment.lua b/advtrains_luaautomation/environment.lua
index ee7628d..b54d45c 100644
--- a/advtrains_luaautomation/environment.lua
+++ b/advtrains_luaautomation/environment.lua
@@ -153,6 +153,12 @@ local static_env = {
local pos=atlatc.pcnaming.resolve_pos(parpos, "interrupt_pos")
atlatc.interrupt.add(0, pos, {type="ext_int", ext_int=true, message=imesg})
end,
+ train_parts = function(train_id)
+ if not train_id then return false end
+ local train = advtrains.trains[train_id]
+ if not train then return false end
+ return table.copy(train.trainparts or {})
+ end,
-- sends an atc command to train regardless of where it is in the world
atc_send_to_train = function(train_id, command)
assertt(command, "string")
diff --git a/advtrains_luaautomation/operation_panel.lua b/advtrains_luaautomation/operation_panel.lua
index c118ff3..c118ff3 100755..100644
--- a/advtrains_luaautomation/operation_panel.lua
+++ b/advtrains_luaautomation/operation_panel.lua