Advertisement
Guest User

Untitled

a guest
Jun 26th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.79 KB | None | 0 0
  1. function deepcopy(object)
  2. local lookup_table = {}
  3. local function _copy(object)
  4. if type(object) ~= "table" then
  5. return object
  6. elseif lookup_table[object] then
  7. return lookup_table[object]
  8. end
  9. local new_table = {}
  10. lookup_table[object] = new_table
  11. for index, value in pairs(object) do
  12. new_table[_copy(index)] = _copy(value)
  13. end
  14. return setmetatable(new_table, getmetatable(object))
  15. end
  16. return _copy(object)
  17. end
  18.  
  19. frame = CreateFrame("FRAME");
  20. function frame:OnLoad(event, ...)
  21. if event == "ADDON_LOADED" then
  22. self:UnregisterEvent("ADDON_LOADED");
  23. AutoLootOptions_LoadOptions();
  24. AutoLootOptions_Init();
  25. end
  26. end
  27. frame:SetScript("OnEvent", frame.OnLoad);
  28.  
  29. function AutoLootOptions_Start(panel)
  30. panel.name = "AutoLoot";
  31. panel.okay = function()
  32. AutoLoot = deepcopy(AutoLoot_Clone);
  33. AutoLootOptions_Init();
  34. end
  35. panel.cancel = function()
  36. AutoLoot_Clone = deepcopy(AutoLoot);
  37. AutoLootOptions_Init();
  38. end
  39. InterfaceOptions_AddCategory(panel);
  40. frame:RegisterEvent("ADDON_LOADED");
  41. end
  42.  
  43. function AutoLootOptions_LoadOptions()
  44. if AutoLoot == nil then
  45. AutoLoot = {};
  46. AutoLoot.Active = true;
  47. AutoLoot.LootItems = false;
  48. AutoLoot.LootUncommon = false;
  49. AutoLoot.LootRare = false;
  50. AutoLoot.LootEpic = false;
  51. AutoLoot.LootGroup = false;
  52. AutoLoot.AutoDE = false;
  53. AutoLoot.DEUncommon = false;
  54. AutoLoot.DERare = false;
  55. AutoLoot.DEEpic = false;
  56. AutoLoot.RollGreed = false;
  57. AutoLoot.Hunteritem = false;
  58. AutoLoot.Hunterclass = false;
  59. AutoLoot.LootWord = "Lootword";
  60. end
  61. AutoLoot_Clone = {};
  62. AutoLoot_Clone = deepcopy(AutoLoot);
  63. end
  64.  
  65. function AutoLootOptions_Init()
  66. AutoLootOptionsFrameActiveButton:SetChecked(AutoLoot.Active);
  67. AutoLootOptionsFrameLootItemsButton:SetChecked(AutoLoot.LootItems);
  68. AutoLootOptionsFrameLootUncommonButton:SetChecked(AutoLoot.LootUncommon);
  69. AutoLootOptionsFrameLootRareButton:SetChecked(AutoLoot.LootRare);
  70. AutoLootOptionsFrameLootEpicButton:SetChecked(AutoLoot.LootEpic);
  71. AutoLootOptionsFrameLootGroupButton:SetChecked(AutoLoot.LootGroup);
  72. AutoLootOptionsFrameAutoDEButton:SetChecked(AutoLoot.AutoDE);
  73. AutoLootOptionsFrameDEUncommonButton:SetChecked(AutoLoot.DEUncommon);
  74. AutoLootOptionsFrameDERareButton:SetChecked(AutoLoot.DERare);
  75. AutoLootOptionsFrameDEEpicButton:SetChecked(AutoLoot.DEEpic);
  76. AutoLootOptionsFrameRollGreedButton:SetChecked(AutoLoot.RollGreed);
  77. AutoLootOptionsFrameHunteritemButton:SetChecked(AutoLoot.Hunteritem);
  78. AutoLootOptionsFrameHunterclassButton:SetChecked(AutoLoot.Hunterclass);
  79. AutoLootOptionsFrameLootWord:SetText(AutoLoot.LootWord);
  80. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement