annotate ui/EnchantTab.lua @ 17:e77e01abce98

Warlords of Draenor pre-patch
author Adam tegen <adam.tegen@gmail.com>
date Mon, 13 Oct 2014 21:28:32 -0500
parents ece9167c0d1c
children
rev   line source
adam@0 1 local _, AskMrRobot = ...
yellowfive@11 2 local L = AskMrRobot.L;
adam@0 3 -- initialize the EnchantTab class
adam@0 4 AskMrRobot.EnchantTab = AskMrRobot.inheritsFrom(AskMrRobot.Frame)
adam@0 5
adam@0 6 function AskMrRobot.EnchantTab:new(parent)
adam@0 7
adam@0 8 local tab = AskMrRobot.Frame:new(nil, parent)
adam@0 9 setmetatable(tab, { __index = AskMrRobot.EnchantTab })
adam@0 10 tab:SetPoint("TOPLEFT")
adam@0 11 tab:SetPoint("BOTTOMRIGHT")
adam@0 12 tab:Hide()
adam@0 13
adam@0 14
adam@0 15 local text = tab:CreateFontString("AmrEnchantsText1", "ARTWORK", "GameFontNormalLarge")
adam@0 16 text:SetPoint("TOPLEFT", 0, -5)
yellowfive@11 17 text:SetText(L.AMR_ENCHANTTAB_ENCHANTS)
adam@0 18
adam@0 19 tab.stamp = AskMrRobot.RobotStamp:new(nil, tab)
adam@0 20 tab.stamp:Hide()
yellowfive@11 21 tab.stamp.smallText:SetText(L.AMR_ENCHANTTAB_100_OPTIMAL)
adam@0 22 tab.stamp:SetPoint("TOPLEFT", text, "BOTTOMLEFT", 2, -15)
adam@0 23 tab.stamp:SetPoint("RIGHT", tab, "RIGHT", -20, 0)
adam@0 24
adam@0 25 tab.slotHeader = tab:CreateFontString("AmrBadEnchantSlotHeader", "ARTWORK", "GameFontNormal")
adam@0 26 tab.slotHeader:SetPoint("TOPLEFT", "AmrEnchantsText1", "BOTTOMLEFT", 0, -20)
yellowfive@11 27 tab.slotHeader:SetText(L.AMR_ENCHANTTAB_SLOT)
adam@0 28 tab.slotHeader:SetWidth(90)
adam@0 29 tab.slotHeader:SetJustifyH("LEFT")
adam@0 30
adam@0 31 tab.currentHeader = tab:CreateFontString("AmrBadEnchantCurrentHeader", "ARTWORK", "GameFontNormal")
yellowfive@11 32 tab.currentHeader:SetText(L.AMR_ENCHANTTAB_CURRENT)
adam@0 33 tab.currentHeader:SetPoint("TOPLEFT", "AmrBadEnchantSlotHeader", "TOPLEFT", 100, 0)
adam@0 34 tab.currentHeader:SetWidth(120)
adam@0 35 tab.currentHeader:SetJustifyH("LEFT")
adam@0 36
adam@0 37 tab.optimizedHeader = tab:CreateFontString("AmrBadEnchantOptimizedHeader", "ARTWORK", "GameFontNormal")
adam@0 38 tab.optimizedHeader:SetPoint("TOPLEFT", "AmrBadEnchantCurrentHeader", "TOPLEFT", 140, 0)
adam@0 39 tab.optimizedHeader:SetPoint("RIGHT", -30, 0)
yellowfive@11 40 tab.optimizedHeader:SetText(L.AMR_ENCHANTTAB_OPTIMIZED)
adam@0 41 tab.optimizedHeader:SetJustifyH("LEFT")
adam@0 42
adam@0 43 tab.badEnchantSlots = {}
adam@0 44 tab.badEnchantCurrent = {}
adam@0 45 tab.badEnchantOptimized = {}
adam@0 46
adam@17 47 for i = 1, #AskMrRobot.slotIds do
adam@0 48 local itemText = tab:CreateFontString(nil, "ARTWORK", "GameFontWhite")
adam@0 49 itemText:SetPoint("TOPLEFT", "AmrBadEnchantSlotHeader", "TOPLEFT", 0, -26 * i)
adam@0 50 itemText:SetPoint("BOTTOMRIGHT", "AmrBadEnchantSlotHeader", "BOTTOMRIGHT", 0, -26 * i)
adam@0 51 itemText:SetJustifyH("LEFT")
yellowfive@11 52 itemText:SetText(L.AMR_ENCHANTTAB_TESTSLOT)
adam@0 53 tinsert(tab.badEnchantSlots, itemText)
adam@0 54
adam@0 55 itemText = AskMrRobot.EnchantLinkText:new(nil, tab)
adam@0 56 itemText:SetPoint("TOPLEFT", "AmrBadEnchantCurrentHeader", "TOPLEFT", 0, -26 * i)
adam@0 57 itemText:SetPoint("BOTTOMRIGHT", "AmrBadEnchantCurrentHeader", "BOTTOMRIGHT", 0, -26 * i)
adam@0 58 tinsert(tab.badEnchantCurrent, itemText)
adam@0 59
adam@0 60 itemText = AskMrRobot.EnchantLinkIconAndText:new(nil, tab)
adam@0 61 itemText:SetPoint("TOPLEFT", "AmrBadEnchantOptimizedHeader", "TOPLEFT", 0, -26 * i)
adam@0 62 itemText:SetPoint("BOTTOMRIGHT", "AmrBadEnchantOptimizedHeader", "BOTTOMRIGHT", 0, -26 * i)
adam@0 63 tinsert(tab.badEnchantOptimized, itemText)
adam@0 64 end
adam@0 65
adam@0 66 return tab
adam@0 67 end
adam@0 68
adam@17 69 function AskMrRobot.EnchantTab:Update()
adam@0 70
adam@0 71 local i = 1
adam@0 72
adam@0 73 -- for all the bad items
adam@17 74 if AskMrRobot.ComparisonResult.enchants then
adam@17 75 for iSlot = 1, #AskMrRobot.slotIds do
adam@17 76 local slotId = AskMrRobot.slotIds[iSlot]
adam@17 77 local badEnchant = AskMrRobot.ComparisonResult.enchants[slotId]
adam@17 78 if badEnchant ~= nil then
adam@17 79 self.badEnchantSlots[i]:SetText(AskMrRobot.slotDisplayText[slotId])
adam@17 80 self.badEnchantSlots[i]:Show()
adam@0 81
adam@17 82 self.badEnchantCurrent[i]:SetEnchantId(badEnchant.current)
adam@0 83
adam@17 84 self.badEnchantOptimized[i]:SetEnchantId(badEnchant.optimized)
adam@17 85 i = i + 1
adam@17 86 end
adam@17 87 end
adam@17 88
adam@0 89 end
adam@0 90
adam@0 91 -- hide / show the headers
adam@0 92 if i == 1 then
adam@0 93 self.optimizedHeader:Hide()
adam@0 94 self.currentHeader:Hide()
adam@0 95 self.slotHeader:Hide()
adam@0 96 self.stamp:Show()
adam@0 97 else
adam@0 98 self.optimizedHeader:Show()
adam@0 99 self.currentHeader:Show()
adam@0 100 self.slotHeader:Show()
adam@0 101 self.stamp:Hide()
adam@0 102 end
adam@0 103
adam@0 104 -- hide the remaining slots
adam@0 105 while i <= #self.badEnchantSlots do
adam@0 106 self.badEnchantSlots[i]:Hide()
adam@0 107 self.badEnchantCurrent[i]:SetEnchantId(nil)
adam@0 108 self.badEnchantOptimized[i]:SetEnchantId(nil)
adam@0 109 i = i + 1
adam@0 110 end
adam@0 111 end