summaryrefslogtreecommitdiff
path: root/advtrains_line_automation/init.lua
diff options
context:
space:
mode:
authorGabriel Pérez-Cerezo <gabriel@gpcf.eu>2020-10-10 23:28:42 +0200
committerGabriel Pérez-Cerezo <gabriel@gpcf.eu>2020-10-10 23:28:42 +0200
commit5aad0930d1ddd63d9021d833a9379b4a01bd8414 (patch)
tree8fac88986a2cd4f00ed6b1855dd1dafa08c09662 /advtrains_line_automation/init.lua
downloadforks-modpack-5aad0930d1ddd63d9021d833a9379b4a01bd8414.tar.gz
forks-modpack-5aad0930d1ddd63d9021d833a9379b4a01bd8414.tar.bz2
forks-modpack-5aad0930d1ddd63d9021d833a9379b4a01bd8414.zip
Squashed 'advtrains/' content from commit 3256c27
git-subtree-dir: advtrains git-subtree-split: 3256c2778d626548541bcdfabf3026f781a2287c
Diffstat (limited to 'advtrains_line_automation/init.lua')
-rw-r--r--advtrains_line_automation/init.lua47
1 files changed, 47 insertions, 0 deletions
diff --git a/advtrains_line_automation/init.lua b/advtrains_line_automation/init.lua
new file mode 100644
index 0000000..7b758bc
--- /dev/null
+++ b/advtrains_line_automation/init.lua
@@ -0,0 +1,47 @@
+-- Advtrains line automation system
+
+advtrains.lines = {
+ -- [station code] = {name=..., owner=...}
+ stations = {},
+
+ --[[ [new pos hash] = {
+ stn = <station code>,
+ track = <platform identifier>,
+ doors = <door side L,R,C>
+ wait = <least wait time>
+ reverse = <boolean>
+ signal = <position of signal that is the "exit signal" for this platform>
+ }]]
+ stops = {},
+}
+
+
+local modpath = minetest.get_modpath(minetest.get_current_modname()) .. DIR_DELIM
+
+dofile(modpath.."railwaytime.lua")
+dofile(modpath.."scheduler.lua")
+dofile(modpath.."stoprail.lua")
+
+
+function advtrains.lines.load(data)
+ if data then
+ advtrains.lines.stations = data.stations or {}
+ advtrains.lines.stops = data.stops or {}
+ advtrains.lines.rwt.set_time(data.rwt_time)
+ advtrains.lines.sched.load(data.scheduler_queue)
+ end
+end
+
+function advtrains.lines.save()
+ return {
+ stations = advtrains.lines.stations,
+ stops = advtrains.lines.stops,
+ rwt_time = advtrains.lines.rwt.get_time(),
+ scheduler_queue = advtrains.lines.sched.save()
+ }
+end
+
+function advtrains.lines.step(dtime)
+ advtrains.lines.rwt.step(dtime)
+ advtrains.lines.sched.run()
+end