Mercurial > wow > buffalo2
comparison ObjectiveTracker/Block.lua @ 46:aa693607b813
Block
- use Animation:IsPlaying() to determine whether a block should be ignored during cleanup; fixes abandoned quest ghosts
author | Nenue |
---|---|
date | Tue, 26 Apr 2016 15:05:38 -0400 |
parents | dd1ae565f559 |
children |
comparison
equal
deleted
inserted
replaced
45:dd1ae565f559 | 46:aa693607b813 |
---|---|
139 self.InfoBlock[index] = block | 139 self.InfoBlock[index] = block |
140 block.posIndex = tMove(free, used, block) | 140 block.posIndex = tMove(free, used, block) |
141 print(' |cFF00FF00('..source..')|r |cFF0088FF'..self.name..'|r.|cFF00FFBBusedBlocks['..block.posIndex..'] =|r', block:GetName()) | 141 print(' |cFF00FF00('..source..')|r |cFF0088FF'..self.name..'|r.|cFF00FFBBusedBlocks['..block.posIndex..'] =|r', block:GetName()) |
142 end | 142 end |
143 | 143 |
144 block.blockFadeOut:SetScript('OnFinished', blockFadeOut_OnFinished) | 144 block.blockFadeOut:SetScript('OnFinished', blockFadeOut_OnFinished) |
145 block:SetScript('OnHide', function(self) | 145 block:SetScript('OnHide', function(self) |
146 fprint(self:GetName(), '|cFF00FF00HIDE|r', debugstack(1,3,1)) | 146 fprint(self:GetName(), '|cFF00FF00HIDE|r', debugstack(1,3,1)) |
147 if(self.DebugTab:IsShown()) then | 147 if(self.DebugTab:IsShown()) then |
148 self.DebugTab:Hide() | 148 self.DebugTab:Hide() |
149 end | 149 end |
150 self.blockFadeOut:SetScript('OnFinished', blockFadeOut_OnFinished) | 150 self.blockFadeOut:SetScript('OnFinished', blockFadeOut_OnFinished) |
151 self.isAnimating = nil | 151 end) |
152 end) | |
153 print(' used/free: |cFFFFFF00' .. #self.usedBlocks .. '|r/|cFF00FFFF'..#self.freeBlocks ..'|r') | 152 print(' used/free: |cFFFFFF00' .. #self.usedBlocks .. '|r/|cFF00FFFF'..#self.freeBlocks ..'|r') |
154 return block | 153 return block |
155 end | 154 end |
156 | 155 |
157 --- begins a blockFadeOut animation and fires FreeBlock when that's done | 156 --- begins a blockFadeOut animation and fires FreeBlock when that's done |
158 function Default:ClearBlock (block) | 157 function Default:ClearBlock (block) |
159 -- double ensure multiple finish scripts from firing | 158 if block.blockFadeOut:IsPlaying() then return end |
160 if block.isAnimating then | 159 |
161 return | |
162 end | |
163 block.isAnimating = true | |
164 block.blockFadeOut:SetScript('OnFinished', nil) | 160 block.blockFadeOut:SetScript('OnFinished', nil) |
165 block.blockFadeOut:SetScript('OnFinished', function(anim) | 161 block.blockFadeOut:SetScript('OnFinished', function(anim) |
166 --@debug@ | 162 --@debug@ |
167 fprint(anim:GetName(), '|cFFFFFF00FINISHED|r', debugstack())--@end-debug@ | 163 fprint(anim:GetName(), '|cFFFFFF00FINISHED|r', debugstack())--@end-debug@ |
168 anim:SetScript('OnFinished', blockFadeOut_OnFinished) | 164 anim:SetScript('OnFinished', blockFadeOut_OnFinished) |
169 self:FreeBlock(block) | 165 self:FreeBlock(block) |
170 block.isAnimating = nil | |
171 end) | 166 end) |
172 block.blockFadeOut:Play() | 167 block.blockFadeOut:Play() |
173 end | 168 end |
174 | 169 |
175 --- fired by OnFinished scripts; does the actual table swapping | 170 --- fired by OnFinished scripts; does the actual table swapping |