annotate Modules/PaperDoll.lua @ 128:799ec6dce9c3

- use BagBrother for inventory items, fixes bank stuff not being counted
author Nenue
date Thu, 19 Oct 2017 10:39:04 -0400
parents ddfe19d70a34
children 15a7f27b11e6
rev   line source
Nenue@62 1 -- Veneer
Nenue@62 2 -- PaperDoll.lua
Nenue@62 3 -- Created: 8/16/2016 8:18 AM
Nenue@62 4 -- %file-revision%
Nenue@80 5 -- Displays the item level and modifications of character sheet equipment, including artifact power
Nenue@93 6 local print = DEVIAN_WORKSPACE and function(...) print('PaperDoll', ...) end or nop
Nenue@96 7 local artifactSlot
Nenue@93 8 local slot_overlays = {}
Nenue@93 9 VeneerPaperDollMixin = {
Nenue@93 10 anchorFrame = 'CharacterFrame',
Nenue@93 11 anchorPoint = 'TOPLEFT',
Nenue@93 12 KnownRelics = {},
Nenue@93 13 }
Nenue@93 14
Nenue@93 15 local relic_slot_paths = {
Nenue@93 16 Arcane = {"Relic-Arcane-Slot", [[Interface\Artifacts\Artifacts.BLP]], 72, 72, 0.849609375, 0.919921875, 0.1181640625, 0.1884765625, false, false},
Nenue@93 17 Blood = {"Relic-Blood-Slot", [[Interface\Artifacts\Artifacts.BLP]], 72, 72, 0.921875, 0.9921875, 0.1181640625, 0.1884765625, false, false},
Nenue@93 18 Fel = {"Relic-Fel-Slot", [[Interface\Artifacts\Artifacts.BLP]], 72, 72, 0.59765625, 0.66796875, 0.572265625, 0.642578125, false, false},
Nenue@93 19 Fire = {"Relic-Fire-Slot", [[Interface\Artifacts\Artifacts.BLP]], 72, 72, 0.669921875, 0.740234375, 0.572265625, 0.642578125, false, false},
Nenue@93 20 Frost = {"Relic-Frost-Slot", [[Interface\Artifacts\Artifacts.BLP]], 72, 72, 0.7421875, 0.8125, 0.572265625, 0.642578125, false, false},
Nenue@93 21 Holy = {"Relic-Holy-Slot", [[Interface\Artifacts\Artifacts.BLP]], 72, 72, 0.814453125, 0.884765625, 0.572265625, 0.642578125, false, false},
Nenue@93 22 Iron = {"Relic-Iron-Slot", [[Interface\Artifacts\Artifacts.BLP]], 72, 72, 0.88671875, 0.95703125, 0.572265625, 0.642578125, false, false},
Nenue@93 23 Life = {"Relic-Life-Slot", [[Interface\Artifacts\Artifacts.BLP]], 72, 72, 0.59765625, 0.66796875, 0.64453125, 0.71484375, false, false},
Nenue@93 24 Shadow = {"Relic-Shadow-Slot", [[Interface\Artifacts\Artifacts.BLP]], 72, 72, 0.59765625, 0.66796875, 0.716796875, 0.787109375, false, false},
Nenue@93 25 Water = {"Relic-Water-Slot", [[Interface\Artifacts\Artifacts.BLP]], 72, 72, 0.59765625, 0.66796875, 0.7890625, 0.859375, false, false},
Nenue@93 26 Wind = {"Relic-Wind-Slot", [[Interface\Artifacts\Artifacts.BLP]], 72, 72, 0.59765625, 0.66796875, 0.861328125, 0.931640625, false, false},
Nenue@93 27 }
Nenue@93 28
Nenue@93 29 local slots_left = {'TOPLEFT', 'TOPRIGHT', 1, 0, 'TOPLEFT', 'BOTTOMLEFT', 0, -1}
Nenue@93 30 local slots_right = {'TOPRIGHT', 'TOPLEFT', -1, 0, 'TOPRIGHT', 'BOTTOMRIGHT', 0, -1}
Nenue@93 31 local slots_bottomleft = {'BOTTOMRIGHT', 'TOPRIGHT', 0, 1, 'BOTTOMRIGHT', 'TOPRIGHT', 0, 1 }
Nenue@93 32 local slots_bottomright = {'BOTTOMLEFT', 'TOPLEFT', 0, -1, 'BOTTOMLEFT', 'TOPLEFT', 0, 1}
Nenue@62 33
Nenue@64 34 local slot_anchors = {
Nenue@93 35 [1] = slots_left,
Nenue@93 36 [2] = slots_left,
Nenue@93 37 [3] = slots_left,
Nenue@93 38 [15] = slots_left,
Nenue@93 39 [5] = slots_left,
Nenue@93 40 [9] = slots_left,
Nenue@62 41
Nenue@93 42 [10] = slots_right,
Nenue@93 43 [6] = slots_right,
Nenue@93 44 [7] = slots_right,
Nenue@93 45 [8] = slots_right,
Nenue@93 46 [11] = slots_right,
Nenue@93 47 [12] = slots_right,
Nenue@93 48 [13] = slots_right,
Nenue@93 49 [14] = slots_right,
Nenue@64 50
Nenue@93 51 [16] = slots_bottomleft,
Nenue@93 52 [17] = slots_bottomright,
Nenue@64 53 }
Nenue@64 54
Nenue@64 55
Nenue@93 56 function VeneerPaperDollMixin:OnLoad()
Nenue@93 57 hooksecurefunc("PaperDollItemSlotButton_Update", function(...)
Nenue@93 58 self:GetSlotButton(PaperDollItemsFrame, ...)
Nenue@93 59 end)
Nenue@64 60
Nenue@93 61 hooksecurefunc("PaperDollFrame_UpdateStats", function(...)
Nenue@93 62 self:GetStats(PaperDollItemsFrame, ...)
Nenue@93 63 end)
Nenue@64 64
Nenue@93 65 self:RegisterEvent('INSPECT_READY')
Nenue@102 66 Veneer:AddHandler(self)
Nenue@80 67 end
Nenue@80 68
Nenue@93 69 function VeneerPaperDollMixin:SetupInspectFrame()
Nenue@93 70 hooksecurefunc("InspectPaperDollItemSlotButton_Update", function(...)
Nenue@93 71 self:GetSlotButton(InspectFrame, ...)
Nenue@93 72 end)
Nenue@93 73 self:RegisterEvent('INSPECT_READY')
Nenue@93 74 end
Nenue@93 75 function VeneerPaperDollMixin:SetupArtifactUI()
Nenue@80 76 end
Nenue@80 77
Nenue@93 78 function VeneerPaperDollMixin:Setup()
Nenue@93 79 VeneerData.PaperDoll = VeneerData.PaperDoll or {}
Nenue@93 80 VeneerData.PaperDoll.KnownRelics = VeneerData.PaperDoll.KnownRelics or {}
Nenue@93 81 self.KnownRelics = VeneerData.PaperDoll.KnownRelics
Nenue@80 82
Nenue@93 83 self:RegisterEvent('UNIT_INVENTORY_CHANGED')
Nenue@93 84 self:RegisterEvent('PLAYER_EQUIPMENT_CHANGED')
Nenue@93 85 self:RegisterEvent('PLAYER_SPECIALIZATION_CHANGED')
Nenue@116 86 self:RegisterEvent('ARTIFACT_RELIC_INFO_RECEIVED')
Nenue@96 87 self:RegisterEvent('ARTIFACT_UPDATE')
Nenue@80 88
Nenue@93 89 self:MarkForUpdate()
Nenue@62 90 end
Nenue@62 91
Nenue@93 92 function VeneerPaperDollMixin:MarkForUpdate()
Nenue@93 93 for frame, overlays in pairs(slot_overlays) do
Nenue@93 94 for slot, overlay in pairs(overlays) do
Nenue@93 95 if overlay:IsVisible() then
Nenue@93 96 overlay:Update()
Nenue@93 97 else
Nenue@93 98 overlay.isDirty = true
Nenue@93 99 end
Nenue@64 100 end
Nenue@64 101 end
Nenue@64 102 end
Nenue@64 103
Nenue@93 104 function VeneerPaperDollMixin:GetStats()
Nenue@93 105 end
Nenue@93 106 function VeneerPaperDollMixin:GetSlotButton(panel, frame)
Nenue@93 107 print('|cFF00FF88'..self:GetName()..':GetSlotButton()', frame:GetName(), frame:GetID())
Nenue@93 108 local slot = frame:GetID()
Nenue@93 109 local unit = panel.unit or 'player'
Nenue@93 110 if slot_anchors[slot] then
Nenue@93 111 slot_overlays[panel] = slot_overlays[panel] or {}
Nenue@93 112 local overlay = slot_overlays[panel][slot]
Nenue@93 113 if not overlay then
Nenue@96 114 print('creating slot overlay', slot)
Nenue@93 115 overlay = CreateFrame('Frame', 'VeneerPaperDollSlot' .. unit .. slot, frame, 'VeneerPaperDollSlotInfoTemplate')
Nenue@93 116 overlay:SetID(slot)
Nenue@93 117 slot_overlays[panel][slot] = overlay
Nenue@93 118 overlay.checkRelic = frame.checkRelic
Nenue@71 119
Nenue@93 120 local anchorPoint, relativePoint, dX, dY, statPoint, statRelative, statdX, statdY = unpack(slot_anchors[slot])
Nenue@93 121 local offset = 7
Nenue@93 122 overlay:SetPoint(anchorPoint, frame, relativePoint, dX * offset, dY * offset)
Nenue@93 123 overlay:SetSize(frame:GetWidth()*3, frame:GetHeight())
Nenue@93 124
Nenue@93 125 local relativeFrame = overlay
Nenue@93 126 for i, region in ipairs(overlay.StatsLeft) do
Nenue@93 127 region:ClearAllPoints()
Nenue@93 128 print(statPoint, relativeFrame, (i == 1) and statPoint or statRelative)
Nenue@93 129 region:SetPoint(statPoint, relativeFrame, (i == 1) and statPoint or statRelative, 0, 0)
Nenue@93 130 relativeFrame = region
Nenue@93 131 end
Nenue@93 132 if slot == 16 then
Nenue@93 133 overlay.Sockets:ClearAllPoints()
Nenue@93 134 overlay.Sockets:SetPoint('BOTTOM', CharacterFrameInsetBg, 'BOTTOM', 0, frame:GetHeight() + 14)
Nenue@93 135 overlay.ItemLevel:SetFontObject(VeneerNumberFontLarge)
Nenue@93 136 overlay.ItemLevel:ClearAllPoints()
Nenue@93 137 overlay.ItemLevel:SetPoint('BOTTOM', overlay.Sockets, 'TOP', 0, 4)
Nenue@96 138 if unit == 'player' then
Nenue@96 139 artifactSlot = overlay
Nenue@96 140 end
Nenue@96 141
Nenue@93 142 end
Nenue@93 143
Nenue@93 144 print(overlay.Sockets:GetPoint(1))
Nenue@93 145 overlay.anchors = slot_anchors[slot]
Nenue@93 146 end
Nenue@93 147
Nenue@93 148 overlay.unit = unit
Nenue@93 149 overlay.checkRelic = (unit == 'player' and slot == 16)
Nenue@93 150
Nenue@93 151
Nenue@93 152 if frame.hasItem then
Nenue@93 153 overlay.isDirty = true
Nenue@93 154 overlay:Show()
Nenue@93 155 else
Nenue@93 156 overlay:Hide()
Nenue@93 157 end
Nenue@64 158 end
Nenue@64 159 end
Nenue@64 160
Nenue@80 161
Nenue@64 162
Nenue@93 163 function VeneerPaperDollMixin:OnEvent(event, arg)
Nenue@93 164 print(event, arg)
Nenue@93 165 if event == 'ADDON_LOADED' then
Nenue@93 166 if arg == 'Blizzard_InspectUI' then
Nenue@93 167 self:SetupInspectFrame()
Nenue@93 168 end
Nenue@93 169 if arg == 'Blizzard_ArtifactUI' then
Nenue@93 170 self:SetupArtifactUI()
Nenue@93 171 self:MarkForUpdate()
Nenue@93 172 end
Nenue@93 173 elseif event == 'ARTIFACT_UPDATE' then
Nenue@96 174 if artifactSlot then
Nenue@116 175 artifactSlot:Update(true)
Nenue@116 176 end
Nenue@116 177 elseif event == 'ARTIFACT_RELIC_INFO_RECEIVED' then
Nenue@116 178 if artifactSlot then
Nenue@96 179 artifactSlot:Update(true)
Nenue@96 180 end
Nenue@93 181 else
Nenue@93 182 if (event == 'PLAYER_SPECIALIZATION_CHANGED' or event == 'UNIT_INVENTORY_CHANGED') then
Nenue@93 183 if arg ~= 'player' then
Nenue@93 184 return
Nenue@93 185 end
Nenue@65 186 end
Nenue@93 187 self:MarkForUpdate()
Nenue@65 188 end
Nenue@80 189 end
Nenue@66 190
Nenue@64 191
Nenue@93 192 VeneerPaperDollSlotMixin = {}
Nenue@66 193
Nenue@93 194 function VeneerPaperDollSlotMixin:OnLoad()
Nenue@93 195 self.SocketText = {}
Nenue@93 196 self.SocketType = {}
Nenue@93 197 self.SocketLink = {}
Nenue@93 198 end
Nenue@93 199 function VeneerPaperDollSlotMixin:OnShow()
Nenue@93 200 if self.isDirty then
Nenue@93 201 self:Update()
Nenue@93 202 end
Nenue@93 203 end
Nenue@93 204 function VeneerPaperDollSlotMixin:OnUpdate()
Nenue@93 205 if self.isDirty then
Nenue@93 206 --print('|cFF00FF00pushing update for', self:GetID())
Nenue@93 207 self:Update()
Nenue@93 208 end
Nenue@80 209
Nenue@93 210 if self.checkRelic then
Nenue@93 211 self.tooltipLink = nil
Nenue@93 212 for i = 1, 3 do
Nenue@93 213 if self.SocketLink[i] and self.Sockets.SocketIcon[i]:IsMouseOver() then
Nenue@93 214 self.tooltipLink = self.SocketLink[i]
Nenue@93 215 end
Nenue@93 216 end
Nenue@93 217
Nenue@93 218 if self.tooltipLink then
Nenue@93 219 if not GameTooltip:IsOwned(self) then
Nenue@93 220 GameTooltip:SetOwner(self, 'ANCHOR_CURSOR')
Nenue@93 221 GameTooltip:SetHyperlink(self.tooltipLink)
Nenue@93 222
Nenue@93 223 GameTooltip:Show()
Nenue@93 224 end
Nenue@93 225 else
Nenue@93 226 if GameTooltip:IsOwned(self) then
Nenue@93 227 GameTooltip:Hide()
Nenue@93 228 end
Nenue@93 229 end
Nenue@93 230 end
Nenue@93 231 end
Nenue@93 232
Nenue@93 233 function VeneerPaperDollSlotMixin:UpdateRelicInfo()
Nenue@93 234
Nenue@93 235
Nenue@93 236 local itemID = GetInventoryItemID(self.unit, 16)
Nenue@93 237 if not itemID then
Nenue@93 238 return
Nenue@93 239 end
Nenue@93 240 print('|cFF00FFFFRelic Sweep:', itemID)
Nenue@93 241
Nenue@93 242
Nenue@93 243 local guid = UnitGUID(self.unit or 'player')
Nenue@93 244 local relicCache = VeneerPaperDoll.KnownRelics[guid] and VeneerPaperDoll.KnownRelics[guid][itemID]
Nenue@93 245 if VeneerPaperDoll.KnownRelics[guid] then
Nenue@93 246 for k, v in pairs(VeneerPaperDoll.KnownRelics[guid]) do
Nenue@93 247 if tonumber(k) and tonumber(k) < 72 then
Nenue@93 248 VeneerPaperDoll.KnownRelics[guid][k] = nil
Nenue@93 249 end
Nenue@93 250 end
Nenue@93 251 end
Nenue@93 252
Nenue@93 253
Nenue@93 254 if not relicCache then
Nenue@93 255 relicCache = {}
Nenue@93 256 VeneerPaperDoll.KnownRelics[guid] = VeneerPaperDoll.KnownRelics[guid] or {}
Nenue@93 257 VeneerPaperDoll.KnownRelics[guid][itemID] = relicCache
Nenue@93 258 end
Nenue@93 259
Nenue@93 260 local numRelics = C_ArtifactUI.GetNumRelicSlots()
Nenue@93 261 local isEquipped = C_ArtifactUI.IsViewedArtifactEquipped()
Nenue@93 262 local tooltip = VeneerPaperDollTooltip
Nenue@93 263 tooltip:SetOwner(self, 'ANCHOR_NONE')
Nenue@93 264 self.hasRelicSlots = true
Nenue@93 265 if numRelics and isEquipped then
Nenue@93 266 print('Relic Query:', itemID, numRelics)
Nenue@93 267 for i = 1, numRelics do
Nenue@116 268 local relicName, relicIcon, relicType, relicLink = C_ArtifactUI.GetRelicInfo(i);
Nenue@93 269 local relicType = C_ArtifactUI.GetRelicSlotType(i);
Nenue@105 270 print(relicType)
Nenue@105 271 if relicType then
Nenue@105 272 if relicLink then
Nenue@93 273 tooltip:SetHyperlink(relicLink)
Nenue@105 274 print(tooltip:NumLines())
Nenue@93 275
Nenue@105 276 local line1 = _G['VeneerPaperDollTooltipTextLeft2']
Nenue@105 277 local line2 = _G['VeneerPaperDollTooltipTextLeft3']
Nenue@105 278 local text1 = line1 and line1:GetText()
Nenue@105 279 local text2 = line2 and line2:GetText()
Nenue@105 280 if text1 or text2 then
Nenue@105 281 self.SocketText[i] = text1:match('Item Level (%d+)') or text2:match('Item Level (%d+)')
Nenue@105 282 end
Nenue@93 283 end
Nenue@93 284
Nenue@105 285 self.SocketInfo[i] = relicIcon or 0
Nenue@93 286 self.SocketType[i] = relicType
Nenue@93 287 self.SocketLink[i] = relicLink
Nenue@93 288 print('storing', i, self.SocketInfo[i], self.SocketText[i], self.SocketType[i], self.SocketLink[i])
Nenue@93 289 else
Nenue@93 290
Nenue@105 291
Nenue@93 292 self.SocketInfo[i] = "Interface\\CharacterFrame\\TempPortraitAlphaMask"
Nenue@105 293 self.SocketType[i] = nil
Nenue@93 294 self.SocketLink[i] = nil
Nenue@93 295 end
Nenue@93 296
Nenue@93 297 relicCache[i] = {self.SocketInfo[i], self.SocketText[i], self.SocketType[i], self.SocketLink[i]}
Nenue@93 298 end
Nenue@105 299 else
Nenue@93 300
Nenue@105 301 for i = 1, 3 do
Nenue@105 302 if relicCache[i] then
Nenue@105 303 local relicIcon, relicText, relicType, relicLink = unpack(relicCache[i])
Nenue@93 304
Nenue@105 305 print('loading', i, relicIcon, relicText, relicType, relicLink)
Nenue@105 306 self.SocketInfo[i] = relicIcon
Nenue@105 307 self.SocketText[i] = relicText
Nenue@105 308 self.SocketType[i] = relicType
Nenue@105 309 self.SocketLink[i] = relicLink
Nenue@105 310 end
Nenue@93 311 end
Nenue@93 312 end
Nenue@93 313 end
Nenue@93 314
Nenue@96 315 function VeneerPaperDollSlotMixin:Update(forced)
Nenue@93 316 local id = self:GetID()
Nenue@93 317
Nenue@93 318 self.SocketInfo = self.SocketInfo or {}
Nenue@93 319 table.wipe(self.SocketInfo)
Nenue@93 320 self.ItemLevel:SetText(nil)
Nenue@93 321
Nenue@93 322 local tooltip = VeneerPaperDollTooltip
Nenue@93 323 tooltip:SetOwner(self, 'ANCHOR_NONE')
Nenue@96 324 if forced then
Nenue@96 325 print('refresh', self.unit, id)
Nenue@96 326 end
Nenue@96 327
Nenue@93 328 tooltip:SetInventoryItem(self.unit or 'player', id)
Nenue@93 329 tooltip:Show()
Nenue@93 330
Nenue@93 331 local numLines = tooltip:NumLines()
Nenue@93 332 local numTextures = 0
Nenue@93 333 local itemLevel
Nenue@93 334 local itemLevelLine
Nenue@96 335 --print('|cFFFFFF00Sockets scan:', numLines)
Nenue@93 336 for i = 1, numLines do
Nenue@93 337 local line = _G['VeneerPaperDollTooltipTextLeft'..i]
Nenue@93 338 local text = line and line:GetText()
Nenue@93 339 if text then
Nenue@93 340 itemLevel = text:match('Item Level (%d+)')
Nenue@93 341 if itemLevel then
Nenue@93 342 self.ItemLevel:SetText(itemLevel)
Nenue@93 343 break
Nenue@93 344 end
Nenue@93 345 end
Nenue@93 346
Nenue@93 347 local texture = _G['VeneerPaperDollTooltipTexture'..i]
Nenue@93 348 if texture and texture:IsShown() then
Nenue@93 349 numTextures = numTextures + 1
Nenue@96 350 --print('picked up socket', numTextures, texture:GetTexture())
Nenue@93 351 self.SocketInfo[numTextures] = texture:GetTexture()
Nenue@93 352 end
Nenue@93 353 end
Nenue@93 354 if self.checkRelic then
Nenue@93 355 self:UpdateRelicInfo()
Nenue@93 356 end
Nenue@93 357
Nenue@93 358
Nenue@93 359 local relativeIcon
Nenue@93 360 local socketsWidth = 0
Nenue@93 361 local socketsHeight = 24
Nenue@93 362 for index, icon in ipairs(self.Sockets.SocketIcon) do
Nenue@93 363 if self.SocketInfo[index] then
Nenue@116 364 print('|cFF0088FFsocketInfo|r', index, self.SocketType[index], self.SocketInfo[index])
Nenue@93 365 icon:ClearAllPoints()
Nenue@93 366
Nenue@93 367 icon:SetTexture(self.SocketInfo[index])
Nenue@93 368 icon:SetSize(16, 16)
Nenue@93 369 icon:Show()
Nenue@93 370 if index == 1 then
Nenue@93 371 icon:SetPoint('LEFT', self.Sockets, 'LEFT', 0, 0)
Nenue@93 372 socketsWidth = socketsWidth + icon:GetWidth()
Nenue@93 373 socketsHeight = icon:GetHeight()
Nenue@93 374 else
Nenue@93 375 if id == 16 then
Nenue@93 376 icon:SetPoint('LEFT', relativeIcon, 'RIGHT', 14, 0)
Nenue@93 377 socketsWidth = socketsWidth + 14
Nenue@93 378 else
Nenue@93 379 icon:SetPoint('LEFT', relativeIcon, 'RIGHT', 2, 0)
Nenue@93 380 socketsWidth = socketsWidth + 2
Nenue@93 381 end
Nenue@93 382 socketsWidth = socketsWidth + icon:GetWidth()
Nenue@93 383 end
Nenue@96 384 print( '|cFFFF4400', icon:GetPoint(1))
Nenue@93 385
Nenue@93 386 local label = self.Sockets.SocketLabel[index]
Nenue@93 387 label:ClearAllPoints()
Nenue@93 388 label:SetPoint('BOTTOM', icon, 'TOP',0, 2)
Nenue@93 389 label:SetFontObject(VeneerNumberFont)
Nenue@93 390 label:SetText(self.SocketText[index])
Nenue@93 391
Nenue@105 392 if self.checkRelic and self.SocketType[index] then
Nenue@105 393 print(self.SocketType[index])
Nenue@116 394 self.Sockets.SocketBg = self.Sockets.SocketBg or {}
Nenue@116 395 self.Sockets.SocketBg[index] = self.Sockets.SocketBg[index] or self.Sockets:CreateTexture(nil, 'OVERLAY')
Nenue@116 396
Nenue@116 397
Nenue@116 398 local relicBG = self.Sockets.SocketBg[index]
Nenue@93 399 local relicAtlasName = ("Relic-%s-Slot"):format(self.SocketType[index]);
Nenue@116 400 relicBG:SetMask(nil)
Nenue@116 401 relicBG:SetAtlas(relicAtlasName)
Nenue@116 402 relicBG:SetPoint('TOPRIGHT', icon, 'TOPRIGHT', 10, 10)
Nenue@116 403 relicBG:SetPoint('BOTTOMLEFT', icon, 'BOTTOMLEFT', -10,-10)
Nenue@96 404 --print('', self.SocketType[index], relicAtlasName)
Nenue@105 405 if self.SocketInfo[index] == 0 then
Nenue@105 406 icon:SetAtlas("Relic-SlotBG")
Nenue@116 407 else
Nenue@116 408 icon:SetMask(nil);
Nenue@116 409 icon:SetTexCoord(0, 1, 0, 1); -- Masks may overwrite our tex coords (even ones set by an atlas), force it back to using the full item icon texture
Nenue@116 410 icon:SetMask("Interface\\CharacterFrame\\TempPortraitAlphaMask");
Nenue@116 411 icon:SetTexture(self.SocketInfo[index])
Nenue@116 412
Nenue@105 413 end
Nenue@93 414
Nenue@93 415 socketsHeight = self.Sockets.SocketBg[index]:GetHeight()
Nenue@96 416 print(socketsWidth, socketsHeight)
Nenue@93 417 end
Nenue@93 418
Nenue@93 419
Nenue@93 420 relativeIcon = icon
Nenue@93 421 else
Nenue@93 422 if self.checkRelic and self.Sockets.SocketBg and self.Sockets.SocketBg[index] then
Nenue@93 423 self.Sockets.SocketBg[index]:SetTexture(nil)
Nenue@93 424 self.Sockets.SocketLabel[index]:SetText(nil)
Nenue@93 425 end
Nenue@93 426
Nenue@93 427 icon:Hide()
Nenue@93 428 end
Nenue@93 429
Nenue@93 430
Nenue@93 431 end
Nenue@93 432 self.Sockets:SetWidth(socketsWidth)
Nenue@93 433 self.Sockets:SetHeight(socketsHeight)
Nenue@93 434
Nenue@93 435
Nenue@93 436
Nenue@93 437
Nenue@93 438
Nenue@93 439 self.isDirty = nil
Nenue@93 440 end