diff options
author | orwell96 <mono96.mml@gmail.com> | 2017-01-16 20:07:04 +0100 |
---|---|---|
committer | orwell96 <mono96.mml@gmail.com> | 2017-01-16 20:09:37 +0100 |
commit | b649ea5fe4c9a7bc9b2b318fec97e5abe470fa9b (patch) | |
tree | ab0716378e69ab48a0cb92429ca6a12d3ae31ada /advtrains/advtrains/atc.lua | |
parent | dc8b47a066ff8b3251ad09d4b490647e3f057d10 (diff) | |
download | advtrains-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.lua | 15 |
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, |