Skip to content

Commit 90db90a

Browse files
committed
castbar tick data per frame
1 parent bce6b85 commit 90db90a

File tree

1 file changed

+9
-10
lines changed

1 file changed

+9
-10
lines changed

ElvUI/Core/Modules/UnitFrames/Elements/CastBar.lua

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@ local UnitName = UnitName
1616
local UnitReaction = UnitReaction
1717
local UnitSpellHaste = UnitSpellHaste
1818

19-
local ticks = {}
20-
2119
do
2220
local pipMapColor = {4, 1, 2, 3}
2321
function UF:CastBar_UpdatePip(castbar, pip, stage)
@@ -119,6 +117,7 @@ function UF:Construct_Castbar(frame, moverName)
119117
castbar.UpdatePipStep = UF.UpdatePipStep
120118
castbar.PostUpdatePip = UF.PostUpdatePip
121119
castbar.CreatePip = UF.BuildPip
120+
castbar.TicksData = {}
122121

123122
castbar:SetClampedToScreen(true)
124123
castbar:CreateBackdrop(nil, nil, nil, nil, true)
@@ -333,7 +332,7 @@ function UF:Configure_Castbar(frame)
333332
castbar.tickWidth = db.tickWidth
334333
castbar.tickColor = db.tickColor
335334

336-
for _, tick in next, ticks do
335+
for _, tick in next, castbar.TicksData do
337336
tick:SetVertexColor(castbar.tickColor.r, castbar.tickColor.g, castbar.tickColor.b, castbar.tickColor.a)
338337
tick:Width(castbar.tickWidth)
339338
end
@@ -427,26 +426,26 @@ function UF:CustomTimeText(duration)
427426
self.Time:SetWidth(self.Time:GetStringWidth())
428427
end
429428

430-
function UF:HideTicks()
431-
for _, tick in next, ticks do
429+
function UF:HideTicks(frame)
430+
for _, tick in next, frame.TicksData do
432431
tick:Hide()
433432
end
434433
end
435434

436435
function UF:SetCastTicks(frame, numTicks)
437-
UF:HideTicks()
436+
UF:HideTicks(frame)
438437

439438
if numTicks and numTicks <= 0 then return end
440439

441440
local offset = frame:GetWidth() / numTicks
442441

443442
for i = 1, numTicks - 1 do
444-
local tick = ticks[i]
443+
local tick = frame.TicksData[i]
445444
if not tick then
446445
tick = frame:CreateTexture(nil, 'OVERLAY')
447446
tick:SetTexture(E.media.blankTex)
448447
tick:Width(frame.tickWidth)
449-
ticks[i] = tick
448+
frame.TicksData[i] = tick
450449
end
451450

452451
tick:SetVertexColor(frame.tickColor.r, frame.tickColor.g, frame.tickColor.b, frame.tickColor.a)
@@ -576,7 +575,7 @@ function UF:PostCastStart(unit)
576575
UF:SetCastTicks(self, baseTicks)
577576
self.hadTicks = true
578577
else
579-
UF:HideTicks()
578+
UF:HideTicks(self)
580579
end
581580
end
582581

@@ -589,7 +588,7 @@ end
589588

590589
function UF:PostCastStop(unit)
591590
if self.hadTicks and unit == 'player' then
592-
UF:HideTicks()
591+
UF:HideTicks(self)
593592
self.hadTicks = false
594593
self.chainTick = nil -- reset the chain
595594
self.chainTime = nil -- spell cast vars

0 commit comments

Comments
 (0)