Advertisement
MudockYatho

elysian crasher

Oct 30th, 2019
460
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.20 KB | None | 0 0
  1. local NodeLookup = {}
  2. local function insert(t,i,v)
  3.     for n = #t,i,-1 do
  4.         local v = t[n]
  5.         v.Index = n+1
  6.         t[n+1] = v
  7.     end
  8.     v.Index = i
  9.     t[i] = v
  10. end
  11. local function remove(t,i)
  12.     local v = t[i]
  13.     for n = i+1,#t do
  14.         local v = t[n]
  15.         v.Index = n-1
  16.         t[n-1] = v
  17.     end
  18.     t[#t] = nil
  19.     v.Index = 0
  20.     return v
  21. end
  22. local function depth(o)
  23.     local d = -1
  24.     while o do
  25.         o = o.Parent
  26.         d = d + 1
  27.     end
  28.     return d
  29. end
  30. local function check(object)
  31.     return object.AncestryChanged
  32. end
  33. local function addObject(object,noupdate)
  34.     if script then
  35.         local s = pcall(check,object)
  36.         if not s then
  37.             return
  38.         end
  39.     end
  40.     local parentNode = NodeLookup[object.Parent]
  41.     if not parentNode then
  42.         return
  43.     end
  44.     local objectNode = {
  45.         Object = object;
  46.         Parent = parentNode;
  47.         Index = 0;
  48.         Expanded = false;
  49.         Selected = false;
  50.         Depth = depth(object)}
  51.     NodeLookup[object] = objectNode
  52.     insert(parentNode,#parentNode+1,objectNode)
  53. end
  54. NodeLookup[workspace.Parent]={
  55.     Object=workspace.Parent,
  56.     Parent=nil,
  57.     Index=0,
  58.     Expanded=true}
  59. local r
  60. function r(o)
  61.     local s,children = pcall(o.GetChildren,o)
  62.     if s then
  63.         for i = 1,#children do
  64.             addObject(children[i],true)
  65.             r(children[i])
  66.         end
  67.     end
  68. end
  69. r(game)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement