comparison ui/EnchantTab.lua @ 0:ec731d2fe6ba

Version 1.2.12.0
author Adam tegen <adam.tegen@gmail.com>
date Tue, 20 May 2014 21:43:23 -0500
parents
children ece9167c0d1c
comparison
equal deleted inserted replaced
-1:000000000000 0:ec731d2fe6ba
1 local _, AskMrRobot = ...
2
3 -- initialize the EnchantTab class
4 AskMrRobot.EnchantTab = AskMrRobot.inheritsFrom(AskMrRobot.Frame)
5
6 function AskMrRobot.EnchantTab:new(parent)
7
8 local tab = AskMrRobot.Frame:new(nil, parent)
9 setmetatable(tab, { __index = AskMrRobot.EnchantTab })
10 tab:SetPoint("TOPLEFT")
11 tab:SetPoint("BOTTOMRIGHT")
12 tab:Hide()
13
14
15 local text = tab:CreateFontString("AmrEnchantsText1", "ARTWORK", "GameFontNormalLarge")
16 text:SetPoint("TOPLEFT", 0, -5)
17 text:SetText("Enchants")
18
19 tab.stamp = AskMrRobot.RobotStamp:new(nil, tab)
20 tab.stamp:Hide()
21 tab.stamp.smallText:SetText("Your enchants are 100% optimal!")
22 tab.stamp:SetPoint("TOPLEFT", text, "BOTTOMLEFT", 2, -15)
23 tab.stamp:SetPoint("RIGHT", tab, "RIGHT", -20, 0)
24
25 tab.slotHeader = tab:CreateFontString("AmrBadEnchantSlotHeader", "ARTWORK", "GameFontNormal")
26 tab.slotHeader:SetPoint("TOPLEFT", "AmrEnchantsText1", "BOTTOMLEFT", 0, -20)
27 tab.slotHeader:SetText("Slot")
28 tab.slotHeader:SetWidth(90)
29 tab.slotHeader:SetJustifyH("LEFT")
30
31 tab.currentHeader = tab:CreateFontString("AmrBadEnchantCurrentHeader", "ARTWORK", "GameFontNormal")
32 tab.currentHeader:SetText("Current")
33 tab.currentHeader:SetPoint("TOPLEFT", "AmrBadEnchantSlotHeader", "TOPLEFT", 100, 0)
34 tab.currentHeader:SetWidth(120)
35 tab.currentHeader:SetJustifyH("LEFT")
36
37 tab.optimizedHeader = tab:CreateFontString("AmrBadEnchantOptimizedHeader", "ARTWORK", "GameFontNormal")
38 tab.optimizedHeader:SetPoint("TOPLEFT", "AmrBadEnchantCurrentHeader", "TOPLEFT", 140, 0)
39 tab.optimizedHeader:SetPoint("RIGHT", -30, 0)
40 tab.optimizedHeader:SetText("Optimized")
41 tab.optimizedHeader:SetJustifyH("LEFT")
42
43 tab.badEnchantSlots = {}
44 tab.badEnchantCurrent = {}
45 tab.badEnchantOptimized = {}
46
47 for i = 1, #AskMrRobot.slotNames do
48 local itemText = tab:CreateFontString(nil, "ARTWORK", "GameFontWhite")
49 itemText:SetPoint("TOPLEFT", "AmrBadEnchantSlotHeader", "TOPLEFT", 0, -26 * i)
50 itemText:SetPoint("BOTTOMRIGHT", "AmrBadEnchantSlotHeader", "BOTTOMRIGHT", 0, -26 * i)
51 itemText:SetJustifyH("LEFT")
52 itemText:SetText("TestSlot")
53 tinsert(tab.badEnchantSlots, itemText)
54
55 itemText = AskMrRobot.EnchantLinkText:new(nil, tab)
56 itemText:SetPoint("TOPLEFT", "AmrBadEnchantCurrentHeader", "TOPLEFT", 0, -26 * i)
57 itemText:SetPoint("BOTTOMRIGHT", "AmrBadEnchantCurrentHeader", "BOTTOMRIGHT", 0, -26 * i)
58 tinsert(tab.badEnchantCurrent, itemText)
59
60 itemText = AskMrRobot.EnchantLinkIconAndText:new(nil, tab)
61 itemText:SetPoint("TOPLEFT", "AmrBadEnchantOptimizedHeader", "TOPLEFT", 0, -26 * i)
62 itemText:SetPoint("BOTTOMRIGHT", "AmrBadEnchantOptimizedHeader", "BOTTOMRIGHT", 0, -26 * i)
63 tinsert(tab.badEnchantOptimized, itemText)
64 end
65
66 return tab
67 end
68
69 function AskMrRobot.EnchantTab:showBadEnchants()
70
71 local badEnchants = AskMrRobot.itemDiffs.enchants
72
73 local i = 1
74
75 -- for all the bad items
76 for slotNum, badEnchant in AskMrRobot.sortSlots(badEnchants) do
77 self.badEnchantSlots[i]:SetText(_G[strupper(AskMrRobot.slotNames[slotNum])])
78 self.badEnchantSlots[i]:Show()
79
80 self.badEnchantCurrent[i]:SetEnchantId(badEnchant.current)
81
82 self.badEnchantOptimized[i]:SetEnchantId(badEnchant.optimized)
83 i = i + 1
84 end
85
86 -- hide / show the headers
87 if i == 1 then
88 self.optimizedHeader:Hide()
89 self.currentHeader:Hide()
90 self.slotHeader:Hide()
91 self.stamp:Show()
92 else
93 self.optimizedHeader:Show()
94 self.currentHeader:Show()
95 self.slotHeader:Show()
96 self.stamp:Hide()
97 end
98
99 -- hide the remaining slots
100 while i <= #self.badEnchantSlots do
101 self.badEnchantSlots[i]:Hide()
102 self.badEnchantCurrent[i]:SetEnchantId(nil)
103 self.badEnchantOptimized[i]:SetEnchantId(nil)
104 i = i + 1
105 end
106 end