From 93250ca3a2a6fd5bf8704b2f8075be874fd815c2 Mon Sep 17 00:00:00 2001 From: orwell96 Date: Wed, 31 May 2017 15:55:45 +0200 Subject: [PATCH] Fix still broken ndb restoring, and make sid() honor nil values --- advtrains.zip | Bin 4996801 -> 4996806 bytes advtrains/advtrains/init.lua | 2 +- advtrains/advtrains/nodedb.lua | 24 ++++++++++++++---------- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/advtrains.zip b/advtrains.zip index cba0602d8f521be7d9ea137613a0f569a64bd26b..435877d2b6f17eb5129b56dde120abf322b66c45 100644 GIT binary patch delta 8795 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 delta 8841 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 F^nc_i7xn-E diff --git a/advtrains/advtrains/init.lua b/advtrains/advtrains/init.lua index 926619c..7793a42 100644 --- a/advtrains/advtrains/init.lua +++ b/advtrains/advtrains/init.lua @@ -90,7 +90,7 @@ atwarn=function(t, ...) minetest.log("warning", "[advtrains]"..text) minetest.chat_send_all("[advtrains] -!- "..text) end -sid=function(id) return string.sub(id, -6) end +sid=function(id) if id then return string.sub(id, -6) end end if minetest.settings:get_bool("advtrains_enable_debugging") then atprint=function(t, ...) diff --git a/advtrains/advtrains/nodedb.lua b/advtrains/advtrains/nodedb.lua index 4dc451a..3986633 100644 --- a/advtrains/advtrains/nodedb.lua +++ b/advtrains/advtrains/nodedb.lua @@ -107,14 +107,7 @@ function ndb.get_node_or_nil(pos) return node else --maybe we have the node in the database... - local cid=ndbget(pos.x, pos.y, pos.z) - if cid then - local nodeid = ndb_nodeids[u14b(cid)] - if nodeid then - --atprint("ndb.get_node_or_nil",pos,"found node",nodeid,"cid",cid,"par2",l2b(cid)) - return {name=nodeid, param2 = l2b(cid)} - end - end + return ndb.get_node_raw(pos) end atprint("ndb.get_node_or_nil",pos,"not found") end @@ -125,6 +118,17 @@ function ndb.get_node(pos) end return n end +function ndb.get_node_raw(pos) + local cid=ndbget(pos.x, pos.y, pos.z) + if cid then + local nodeid = ndb_nodeids[u14b(cid)] + if nodeid then + return {name=nodeid, param2 = l2b(cid)} + end + end + return nil +end + function ndb.swap_node(pos, node) minetest.swap_node(pos, node) @@ -248,7 +252,7 @@ ndb.restore_all = function() local node=minetest.get_node_or_nil(pos) if node then local ori_ndef=minetest.registered_nodes[node.name] - local ndbnode=ndb.get_node(pos) + local ndbnode=ndb.get_node_raw(pos) if ori_ndef and ori_ndef.groups.save_in_nodedb then --check if this node has been worldedited, and don't replace then if (ndbnode.name~=node.name or ndbnode.param2~=node.param2) then minetest.swap_node(pos, ndbnode) @@ -283,7 +287,7 @@ advtrains.ndb=ndb local ptime=0 -minetest.register_chatcommand("at_restore_ndb", +minetest.register_chatcommand("at_sync_ndb", { params = "", -- Short parameter description description = "Write node db back to map and find ghost nodes", -- Full description