comparison Modules/BuffFrame.lua @ 74:cd6e78091b04

- clear points from anything that is xml
author Nenue
date Tue, 23 Aug 2016 19:50:10 -0400
parents 95ed343c3a42
children d9d16e67725c
comparison
equal deleted inserted replaced
73:95ed343c3a42 74:cd6e78091b04
73 if not (_G[name..'Veneer']) then 73 if not (_G[name..'Veneer']) then
74 print('|cFF88FF00Creating', name,'Veneer') 74 print('|cFF88FF00Creating', name,'Veneer')
75 local veneer = vn.GetVeneer(frame, 'VeneerBuffTemplate') 75 local veneer = vn.GetVeneer(frame, 'VeneerBuffTemplate')
76 local id = frame:GetID() 76 local id = frame:GetID()
77 77
78 local position = tonumber(name:match("%d"))
79 if position == 1 then
80 veneer:Show()
81 end
82 78
83 veneer.progress:SetPoint('BOTTOMLEFT', veneer, 'BOTTOMLEFT', 0, -6) 79 veneer.progress:SetPoint('BOTTOMLEFT', veneer, 'BOTTOMLEFT', 0, -6)
84 veneer.progress:SetPoint('TOPRIGHT', veneer, 'BOTTOMRIGHT', 0, -1) 80 veneer.progress:SetPoint('TOPRIGHT', veneer, 'BOTTOMRIGHT', 0, -1)
85 veneer.progress:SetHeight(BUFF_PROGRESS_SIZE + (BUFF_PROGRESS_INSET * 2)) 81 veneer.progress:SetHeight(BUFF_PROGRESS_SIZE + (BUFF_PROGRESS_INSET * 2))
86 82
87 veneer.progress.fg:SetColorTexture(0,1,0,1) 83 veneer.progress.fg:SetColorTexture(0,1,0,1)
88 veneer.progress.fg:SetPoint('BOTTOMLEFT', BUFF_PROGRESS_INSET,BUFF_PROGRESS_INSET) 84 veneer.progress.fg:SetPoint('BOTTOMLEFT', BUFF_PROGRESS_INSET,BUFF_PROGRESS_INSET)
89 veneer.progress.fg:SetPoint('TOP', 0, -BUFF_PROGRESS_INSET) 85 veneer.progress.fg:SetPoint('TOP', 0, -BUFF_PROGRESS_INSET)
90 86
91 veneer.duration:SetFontObject(VeneerNumberFont) 87 veneer.duration:SetFontObject(VeneerNumberFont)
92 veneer.duration:SetPoint('TOP', veneer, 'BOTTOM', 0, -2) 88 veneer.duration:ClearAllPoints()
89 veneer.duration:SetPoint('BOTTOM', veneer, 'BOTTOM', 0, 2)
93 90
94 veneer.count:SetFontObject(VeneerNumberFont) 91 veneer.count:SetFontObject(VeneerNumberFont)
95 veneer.count:SetPoint('BOTTOMRIGHT', frame, 'BOTTOMRIGHT', -3, 3) 92 veneer.count:ClearAllPoints()
93 veneer.count:SetPoint('TOPRIGHT', veneer, 'TOPRIGHT', -3, -3)
96 94
97 veneer.underlay:SetParent(UIParent) 95 veneer.underlay:SetParent(UIParent)
98 veneer.underlay:SetFrameStrata('BACKGROUND') 96 veneer.underlay:SetFrameStrata('BACKGROUND')
99 veneer.border:SetColorTexture(0,0,0,1) 97 veneer.border:SetColorTexture(0,0,0,0)
100 veneer.border:SetPoint('TOPLEFT', veneer, 'TOPLEFT', -BORDER_SIZE_L, BORDER_SIZE_U) 98 veneer.border:SetPoint('TOPLEFT', veneer, 'TOPLEFT', -BORDER_SIZE_L, BORDER_SIZE_U)
101 veneer.border:SetPoint('BOTTOMRIGHT', veneer, 'BOTTOMRIGHT', BORDER_SIZE_R, -BORDER_SIZE_D) 99 veneer.border:SetPoint('BOTTOMRIGHT', veneer, 'BOTTOMRIGHT', BORDER_SIZE_R, -BORDER_SIZE_D)
102 veneer.border:Show() 100 veneer.border:Show()
103 101
104 102
159 end) 157 end)
160 end 158 end
161 if count then 159 if count then
162 count:ClearAllPoints() 160 count:ClearAllPoints()
163 hooksecurefunc(count, 'SetText', function(self, text) 161 hooksecurefunc(count, 'SetText', function(self, text)
162 print(self:GetName(), 'SetText', text)
163 local n = veneer.count:GetNumPoints()
164 for i = 1, n do
165 print(i, veneer.count:GetPoint(n))
166 end
167 veneer.count.isUpdating = true
164 self:Hide() 168 self:Hide()
169 veneer.count:Show()
165 veneer.count:SetText(text) 170 veneer.count:SetText(text)
166 end) 171 veneer.count.isUpdating = false
167 hooksecurefunc(count, 'Hide', function(self, text) 172 end)
173 hooksecurefunc(count, 'Hide', function(self)
174 if veneer.count.isUpdating then
175 print('|cFFFF4400blocked Hide hook|r')
176 return
177 end
178
179 print(self:GetName(), 'Hide')
168 veneer.count:Hide() 180 veneer.count:Hide()
169 end) 181 end)
170 hooksecurefunc(count, 'Show', function(self, text) 182 hooksecurefunc(count, 'Show', function(self)
183 print(self:GetName(), 'Show')
171 veneer.count:Show() 184 veneer.count:Show()
172 end) 185 end)
173 end 186 end
174 187
175 188
182 veneer.underlay:Hide() 195 veneer.underlay:Hide()
183 end) 196 end)
184 197
185 hooksecurefunc(frame, 'Show', function(self) 198 hooksecurefunc(frame, 'Show', function(self)
186 veneer:Show() 199 veneer:Show()
187 veneer.count:Show()
188 veneer.border:Show()
189 local isVisible = self:IsVisible() 200 local isVisible = self:IsVisible()
190 if isVisible ~= visibility[self] then 201 if isVisible ~= visibility[self] then
191 print('|cFFFFFF00SHOW|r', self:GetName()) 202 print('|cFFFFFF00SHOW|r', self:GetName())
192 visibility[self] = isVisible 203 visibility[self] = isVisible
193 end 204 end
205 veneer.underlay:Show()
194 end) 206 end)
195 207
196 anchors[frame] = veneer 208 anchors[frame] = veneer
197 end 209 end
198 210
209 end 221 end
210 222
211 if frame.filter == 'HARMFUL' then 223 if frame.filter == 'HARMFUL' then
212 224
213 veneer.border:Show() 225 veneer.border:Show()
226 else
227 veneer.border:Hide()
214 end 228 end
215 229
216 230
217 if expires and duration then 231 if expires and duration then
218 if duration ~= 0 then 232 if duration ~= 0 then
316 if BuffButton1 then 330 if BuffButton1 then
317 TempEnchant1:SetPoint('TOPRIGHT', BuffButton1, 'TOPRIGHT', BuffButton1:GetWidth()+4, 0) 331 TempEnchant1:SetPoint('TOPRIGHT', BuffButton1, 'TOPRIGHT', BuffButton1:GetWidth()+4, 0)
318 end 332 end
319 333
320 local lastBuff, topBuff 334 local lastBuff, topBuff
335 local numBuffs = 0
321 for i = 1, BUFF_ACTUAL_DISPLAY do 336 for i = 1, BUFF_ACTUAL_DISPLAY do
322 local buff = _G['BuffButton'..i] 337 local buff = _G['BuffButton'..i]
323 if buff then 338 if buff then
324 if mod(i,12) == 1 then 339 numBuffs = numBuffs + 1
325 if i == 1 then 340 buff:ClearAllPoints()
341 if mod(numBuffs,12) == 1 then
342 if numBuffs == 1 then
326 buff:SetPoint('TOPRIGHT', UIParent, 'TOPRIGHT', -120, -6) 343 buff:SetPoint('TOPRIGHT', UIParent, 'TOPRIGHT', -120, -6)
344 plugin.currentTop = buff:GetTop()
327 else 345 else
328 buff:SetPoint('TOPRIGHT', topBuff, 'BOTTOMRIGHT', 0, -BUFF_BUTTON_SPACING_V) 346 buff:SetPoint('TOPRIGHT', topBuff, 'BOTTOMRIGHT', 0, -BUFF_BUTTON_SPACING_V)
329 end 347 end
330 topBuff = buff 348 topBuff = buff
331 else 349 else
333 end 351 end
334 lastBuff = buff 352 lastBuff = buff
335 end 353 end
336 end 354 end
337 355
356 numBuffs = 0
338 for i = 1, DEBUFF_ACTUAL_DISPLAY do 357 for i = 1, DEBUFF_ACTUAL_DISPLAY do
339 local debuff = _G['DebuffButton'..i] 358 local debuff = _G['DebuffButton'..i]
340 if debuff then 359 if debuff then
341 if i == 1 then 360 numBuffs = numBuffs + 1
361 if numBuffs == 1 then
342 if topBuff then 362 if topBuff then
343 debuff:SetPoint('TOPRIGHT', topBuff, 'BOTTOMRIGHT', 0, -BUFF_BUTTON_SPACING_V) 363 debuff:SetPoint('TOPRIGHT', topBuff, 'BOTTOMRIGHT', 0, -BUFF_BUTTON_SPACING_V)
344 else 364 else
345 debuff:SetPoint('TOPRIGHT', UIParent, 'TOPRIGHT', -120, -6) 365 debuff:SetPoint('TOPRIGHT', UIParent, 'TOPRIGHT', -120, -6)
346 end 366 end
347 topBuff = debuff 367 topBuff = debuff
348 elseif mod(i, 12) == 1 then 368 elseif mod(numBuffs, 12) == 1 then
349 debuff:SetPoint('TOPRIGHT', topBuff, 'BOTTOMRIGHT', 0, -BUFF_BUTTON_SPACING_V) 369 debuff:SetPoint('TOPRIGHT', topBuff, 'BOTTOMRIGHT', 0, -BUFF_BUTTON_SPACING_V)
350 topBuff = debuff 370 topBuff = debuff
351 else 371 else
352 debuff:SetPoint('TOPRIGHT', lastBuff, 'TOPLEFT', -BUFF_BUTTON_SPACING_H, 0) 372 debuff:SetPoint('TOPRIGHT', lastBuff, 'TOPLEFT', -BUFF_BUTTON_SPACING_H, 0)
353 end 373 end
354 lastBuff = debuff 374 lastBuff = debuff
355 end 375 end
356 end 376 end
357 377
378 if lastBuff then
379 plugin.currentBottom = lastBuff:GetBottom()
380 end
358 end 381 end
359 382
360 local AuraButton_UpdateDuration = function(frame, timeLeft) 383 local AuraButton_UpdateDuration = function(frame, timeLeft)
361 local veneer = GetVeneer(frame) 384 local veneer = GetVeneer(frame)
362 local hours = floor(timeLeft/3600) 385 local hours = floor(timeLeft/3600)
369 timeString = format('%d:%02d', minutes, seconds) 392 timeString = format('%d:%02d', minutes, seconds)
370 else 393 else
371 timeString = format('%d', seconds) 394 timeString = format('%d', seconds)
372 end 395 end
373 396
397 if timeLeft < 10 then
398 if not veneer.duration.getHuge then
399 veneer.duration.getHuge = true
400 veneer.duration:SetFontObject(VeneerNumberFontLarge)
401 veneer.duration:SetTextColor(1,0,0,1)
402 end
403 else
404 if veneer.duration.getHuge then
405 veneer.duration.getHuge = nil
406 veneer.duration:SetFontObject(VeneerNumberFont)
407 veneer.duration:SetTextColor(1,1,1,1)
408 end
409
410 end
411
374 412
375 veneer.duration:SetText(timeString) 413 veneer.duration:SetText(timeString)
376 veneer.duration:SetVertexColor(1,1,1)
377 end 414 end
378 415
379 416
380 -- Obtains the first instance of Tenchant use 417 -- Obtains the first instance of Tenchant use
381 418