Various small fixes

- Also do atomic operations on nodedb
- no longer require Worldedit for at_sync_ndb
- "overrun LZB 0 restriction" should now show where it happened.
This commit is contained in:
Gabriel Pérez-Cerezo 2019-07-16 17:26:53 +02:00
parent 7a6740eb8c
commit daba00b6a2
2 changed files with 5 additions and 3 deletions

View File

@ -81,7 +81,8 @@ end
--save --save
function ndb.save_data() function ndb.save_data()
local file, err = io.open(path, "wb") local tmppath = path.."~"
local file, err = io.open(tmppath, "wb")
if not file then if not file then
atwarn("Couldn't save the node database: ", err or "Unknown Error") atwarn("Couldn't save the node database: ", err or "Unknown Error")
else else
@ -97,6 +98,7 @@ function ndb.save_data()
end end
file:close() file:close()
end end
os.rename(tmppath, path)
return {nodeids = ndb_nodeids} return {nodeids = ndb_nodeids}
end end
@ -288,7 +290,7 @@ minetest.register_chatcommand("at_sync_ndb",
{ {
params = "", -- Short parameter description params = "", -- Short parameter description
description = "Write node db back to map and find ghost nodes", -- Full description description = "Write node db back to map and find ghost nodes", -- Full description
privs = {train_operator=true, worldedit=true}, -- Require the "privs" privilege to run privs = {train_operator=true},
func = function(name, param) func = function(name, param)
return advtrains.pcall(function() return advtrains.pcall(function()
if not minetest.check_player_privs(name, {server=true}) and os.time() < ptime+30 then if not minetest.check_player_privs(name, {server=true}) and os.time() < ptime+30 then

View File

@ -17,7 +17,7 @@ local il = advtrains.interlocking
local function get_over_function(speed, shunt) local function get_over_function(speed, shunt)
return function(pos, id, train, index, speed, lzbdata) return function(pos, id, train, index, speed, lzbdata)
if speed == 0 and minetest.settings:get_bool("at_il_force_lzb_halt") then if speed == 0 and minetest.settings:get_bool("at_il_force_lzb_halt") then
atwarn(id,"overrun LZB 0 restriction (red signal) ",ent.pos) atwarn(id,"overrun LZB 0 restriction (red signal) ",pos)
-- Set train 1 index backward. Hope this does not lead to bugs... -- Set train 1 index backward. Hope this does not lead to bugs...
train.index = index - 0.5 train.index = index - 0.5
train.velocity = 0 train.velocity = 0