diff options
author | orwell96 <orwell@bleipb.de> | 2018-10-29 19:21:28 +0100 |
---|---|---|
committer | orwell96 <orwell@bleipb.de> | 2018-10-29 19:32:43 +0100 |
commit | 60b725499289c810eaf045ed22a1100402a0b8c9 (patch) | |
tree | fff03d1c10d2ed912fee3777350da7b20a492a50 | |
parent | 0ae0b6a768ebb33d3835875e3a3b5dc30379c92b (diff) | |
download | advtrains-60b725499289c810eaf045ed22a1100402a0b8c9.tar.gz advtrains-60b725499289c810eaf045ed22a1100402a0b8c9.tar.bz2 advtrains-60b725499289c810eaf045ed22a1100402a0b8c9.zip |
atdump() to treat certain values special
-rw-r--r-- | advtrains/init.lua | 58 |
1 files changed, 36 insertions, 22 deletions
diff --git a/advtrains/init.lua b/advtrains/init.lua index fc7e423..3d420e6 100644 --- a/advtrains/init.lua +++ b/advtrains/init.lua @@ -58,6 +58,41 @@ end advtrains.modpath = minetest.get_modpath("advtrains") +--Advtrains dump (special treatment of pos and sigd) +function atdump(t, intend) + local str + if type(t)=="table" then + if t.x and t.y and t.z then + str=minetest.pos_to_string(t) + elseif t.p and t.s then -- interlocking sigd + str="S["..minetest.pos_to_string(t.p).."/"..t.s.."]" + else + str="{" + local intd = (intend or "") .. " " + for k,v in pairs(t) do + if type(k)~="string" or not string.match(k, "^path[_]?") then + -- do not print anything path-related + str = str .. "\n" .. intd .. atdump(k, intd) .. " = " ..atdump(v, intd) + end + end + str = str .. "\n" .. (intend or "") .. "}" + end + elseif type(t)=="boolean" then + if t then + str="true" + else + str="false" + end + elseif type(t)=="function" then + str="<function>" + elseif type(t)=="userdata" then + str="<userdata>" + else + str=""..t + end + return str +end + function advtrains.print_concat_table(a) local str="" local stra="" @@ -69,28 +104,7 @@ function advtrains.print_concat_table(a) else str=str..stra stra="" - if type(t)=="table" then - if t.x and t.y and t.z then - str=str..minetest.pos_to_string(t) - elseif t.p and t.s then -- interlocking sigd - str=str.."("..minetest.pos_to_string(t.p).."/"..t.s..")" - else - str=str..dump(t) - end - elseif type(t)=="boolean" then - if t then - str=str.."true" - else - str=str.."false" - end - elseif type(t)=="function" then - str=str.."<function>" - elseif type(t)=="userdata" then - str=str.."<userdata>" - else - str=str..t - end - str=str.." " + str=str..atdump(t).." " end end return str |