Advertisement
lost_RD

tprint [Lua]

Mar 31st, 2015
332
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.44 KB | None | 0 0
  1. M = {}
  2.  
  3. function tprint(t, indent)
  4.   function printShit(k, v, indent)
  5.     --if k == "com" then
  6.       print(string.rep(" ",indent)..k," | ",v)
  7.     --end
  8.   end
  9.   if not indent then indent = 0 end
  10.   if type(t) == "table" then
  11.     for k,v in pairs(t) do
  12.       if type(v)=="table" then
  13.         printShit(k, v, indent)
  14.         tprint(v, indent+1)
  15.       else
  16.         printShit(k, v, indent)
  17.       end
  18.     end
  19.   else
  20.     print(type(t), t)
  21.   end
  22. end
  23.  
  24. function orderedPairs(t)
  25.  
  26.     local function orderedNext(t, state)
  27.  
  28.         local function __genOrderedIndex( t )
  29.             local orderedIndex = {}
  30.             for key in pairs(t) do
  31.                 table.insert( orderedIndex, key )
  32.             end
  33.             table.sort( orderedIndex )
  34.             return orderedIndex
  35.         end
  36.         if state == nil then
  37.             -- the first time, generate the index
  38.             t.__orderedIndex = __genOrderedIndex( t )
  39.             key = t.__orderedIndex[1]
  40.             return key, t[key]
  41.         end
  42.         key = nil
  43.         for i = 1,table.getn(t.__orderedIndex) do
  44.             if t.__orderedIndex[i] == state then
  45.                 key = t.__orderedIndex[i+1]
  46.             end
  47.         end
  48.         if key then
  49.             return key, t[key]
  50.         end
  51.         t.__orderedIndex = nil
  52.         return
  53.     end
  54.     return orderedNext, t, nil
  55. end
  56.  
  57. M.tprint = tprint
  58. M.orderedPairs = orderedPairs
  59.  
  60. print("tprint module loaded")
  61.  
  62. return M
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement