comparison ui/GemTab.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
comparison
equal deleted inserted replaced
16:9793e8b683d2 17:e77e01abce98
23 AskMrRobot.GemTab = AskMrRobot.inheritsFrom(AskMrRobot.Frame) 23 AskMrRobot.GemTab = AskMrRobot.inheritsFrom(AskMrRobot.Frame)
24 24
25 local MAX_SLOTS = 4 25 local MAX_SLOTS = 4
26 26
27 -- GemTab contructor 27 -- GemTab contructor
28 function AskMrRobot.GemTab:new(name, parent) 28 function AskMrRobot.GemTab:new(parent)
29 -- create a new frame (if one isn't supplied) 29 -- create a new frame (if one isn't supplied)
30 local tab = AskMrRobot.Frame:new(name, parent) 30 local tab = AskMrRobot.Frame:new(nil, parent)
31 tab:SetPoint("TOPLEFT") 31 tab:SetPoint("TOPLEFT")
32 tab:SetPoint("BOTTOMRIGHT") 32 tab:SetPoint("BOTTOMRIGHT")
33 -- use the GemTab class 33 -- use the GemTab class
34 setmetatable(tab, { __index = AskMrRobot.GemTab }) 34 setmetatable(tab, { __index = AskMrRobot.GemTab })
35 tab:Hide() 35 tab:Hide()
124 self.count = 0 124 self.count = 0
125 125
126 local i = 1 126 local i = 1
127 local badGemTotal = 0 127 local badGemTotal = 0
128 128
129 if AskMrRobot.itemDiffs.gems then 129 if AskMrRobot.ComparisonResult.gems then
130 for slotNum, badGems in AskMrRobot.sortSlots(AskMrRobot.itemDiffs.gems) do 130 for iSlot = 1, #AskMrRobot.slotIds do
131 self.count = self.count + 1 131 local slotId = AskMrRobot.slotIds[iSlot]
132 if i <= MAX_SLOTS then 132 local badGems = AskMrRobot.ComparisonResult.gems[slotId]
133 self.jewelPanels[i]:Show() 133 if badGems ~= nil then
134 self.count = self.count + 1
135 if i <= MAX_SLOTS then
136 self.jewelPanels[i]:Show()
137 end
138 for g = 1, #badGems.optimized do
139 if not AskMrRobot.AreGemsCompatible(badGems.optimized[g], badGems.current[g]) then
140 badGemTotal = badGemTotal + 1
141 end
142 end
143 i = i + 1
134 end 144 end
135 for k, v in pairs(badGems.badGems) do
136 badGemTotal = badGemTotal + 1
137 end
138 i = i + 1
139 end 145 end
140 end 146 end
141 147
142 self.gemsTextToOptimize:SetFormattedText(L.AMR_GEMTAB_TO_OPTIMIZE, badGemTotal) 148 self.gemsTextToOptimize:SetFormattedText(L.AMR_GEMTAB_TO_OPTIMIZE, badGemTotal)
143 149
153 else 159 else
154 self.gemSlotHeader:Show() 160 self.gemSlotHeader:Show()
155 self.gemCurrentHeader:Show() 161 self.gemCurrentHeader:Show()
156 self.gemOptimizedHeader:Show() 162 self.gemOptimizedHeader:Show()
157 self.gemsTextToOptimize:Show() 163 self.gemsTextToOptimize:Show()
158 self.button:Show() 164 --self.button:Show()
159 self.usePerfectButton:Show() 165 --self.usePerfectButton:Show()
160 self.stamp:Hide() 166 self.stamp:Hide()
161 end 167 end
162 168
163 for i = self.count + 1, MAX_SLOTS do 169 for i = self.count + 1, MAX_SLOTS do
164 self.jewelPanels[i]:Hide() 170 self.jewelPanels[i]:Hide()
177 local self = scrollframe.parent 183 local self = scrollframe.parent
178 FauxScrollFrame_Update(self.fauxScroll, self.count, #self.jewelPanels, self.jewelPanels[1]:GetHeight()) 184 FauxScrollFrame_Update(self.fauxScroll, self.count, #self.jewelPanels, self.jewelPanels[1]:GetHeight())
179 local offset = FauxScrollFrame_GetOffset(scrollframe) 185 local offset = FauxScrollFrame_GetOffset(scrollframe)
180 186
181 local i = 1 187 local i = 1
182 for slotNum, badGems in AskMrRobot.sortSlots(AskMrRobot.itemDiffs.gems) do 188 if AskMrRobot.ComparisonResult.gems then
183 if offset > 0 then 189 for iSlot = 1, #AskMrRobot.slotIds do
184 offset = offset - 1 190 local slotId = AskMrRobot.slotIds[iSlot]
185 else 191 local badGems = AskMrRobot.ComparisonResult.gems[slotId]
186 192 if badGems ~= nil then
187 if i > MAX_SLOTS then 193 if offset > 0 then
188 break 194 offset = offset - 1
195 else
196
197 if i > MAX_SLOTS then
198 break
199 end
200
201 self.jewelPanels[i]:SetItemLink(AskMrRobot.slotDisplayText[slotId], AmrDb.Equipped[AmrDb.ActiveSpec][slotId])
202 self.jewelPanels[i]:SetOptimizedGems(badGems.optimized, badGems.current)
203 i = i + 1
204 end
189 end 205 end
190
191 self.jewelPanels[i]:SetItemLink(_G[strupper(AskMrRobot.slotNames[slotNum])], badGems.current.link )
192 self.jewelPanels[i]:SetOptimizedGems(badGems.optimized, badGems.badGems)
193 i = i + 1
194 end 206 end
195 end 207 end
196 end 208 end