Advertisement
rezecib

BrainSurgery

Jun 11th, 2016
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 0.78 KB | None | 0 0
  1. local function FindNode(root, name)
  2.     for i,ch in ipairs(root.children) do
  3.         if (ch.name == "Parallel" or ch.name == "Sequence") and ch.children[1].name == name or ch.name == name then
  4.             return ch, i
  5.         end
  6.     end
  7. end
  8.  
  9. local function MoveNode(root, move_this, near_this, before)
  10.     before = before == false or true
  11.     local move_node, move_i = FindNode(root, move_this)
  12.     local near_node, near_i = FindNode(root, near_this)
  13.     if move_i < near_i then --because we remove move_node, near_node got shifted downward
  14.         near_i = near_i - 1
  15.     end
  16.     if not before then --we want it after near_node, so bump the index up one
  17.         near_i = near_i + 1
  18.     end
  19.     table.remove(root.children, move_i)
  20.     table.insert(root.children, near_i, move_node)
  21. end
  22.  
  23. return {
  24.     FindNode = FindNode,
  25.     MoveNode = MoveNode,
  26. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement