aboutsummaryrefslogtreecommitdiff
path: root/advtrains/advtrains/atc.lua
diff options
context:
space:
mode:
authororwell96 <mono96.mml@gmail.com>2017-01-16 20:07:04 +0100
committerorwell96 <mono96.mml@gmail.com>2017-01-16 20:09:37 +0100
commitb649ea5fe4c9a7bc9b2b318fec97e5abe470fa9b (patch)
treeab0716378e69ab48a0cb92429ca6a12d3ae31ada /advtrains/advtrains/atc.lua
parentdc8b47a066ff8b3251ad09d4b490647e3f057d10 (diff)
downloadadvtrains-b649ea5fe4c9a7bc9b2b318fec97e5abe470fa9b.tar.gz
advtrains-b649ea5fe4c9a7bc9b2b318fec97e5abe470fa9b.tar.bz2
advtrains-b649ea5fe4c9a7bc9b2b318fec97e5abe470fa9b.zip
replace trackdb by nodedb
- trackdb is kept for large rail networks to still work but not saved anymore - saving node name and param2 instead of track connections, so also signals can be saved. - small serialization format - fast access times, almost no redundancy
Diffstat (limited to 'advtrains/advtrains/atc.lua')
-rw-r--r--advtrains/advtrains/atc.lua15
1 files changed, 10 insertions, 5 deletions
diff --git a/advtrains/advtrains/atc.lua b/advtrains/advtrains/atc.lua
index e015d47..ece7075 100644
--- a/advtrains/advtrains/atc.lua
+++ b/advtrains/advtrains/atc.lua
@@ -3,7 +3,13 @@
local atc={}
-- ATC persistence table. advtrains.atc is created by init.lua when it loads the save file.
-atc.controllers = advtrains.atc.controllers
+atc.controllers = {}
+function atc.load_data(data)
+ atc.controllers = data and data.controllers or {}
+end
+function atc.save_data()
+ return atc.controllers
+end
--contents: {command="...", arrowconn=0-15 where arrow points}
--call from advtrains.detector subprogram
@@ -52,8 +58,8 @@ end
--nodes
local idxtrans={static=1, mesecon=2, digiline=3}
-local apn_func=function(pos)
- advtrains.reset_trackdb_position(pos)
+local apn_func=function(pos, node)
+ advtrains.ndb.update(pos, node)
local meta=minetest.get_meta(pos)
if meta then
meta:set_string("infotext", "ATC controller, unconfigured.")
@@ -72,10 +78,9 @@ advtrains.register_tracks("default", {
get_additional_definiton = function(def, preset, suffix, rotation)
return {
after_place_node=apn_func,
- on_place_rail=apn_func,
after_dig_node=function(pos)
advtrains.invalidate_all_paths()
- advtrains.reset_trackdb_position(pos)
+ advtrains.ndb.clear(pos)
local pts=minetest.pos_to_string(pos)
atc.controllers[pts]=nil
end,