annotate ObjectiveTracker/AutoQuestPopupData.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
rev   line source
Nenue@28 1 --- ${PACKAGE_NAME}
Nenue@28 2 -- @file-author@
Nenue@28 3 -- @project-revision@ @project-hash@
Nenue@28 4 -- @file-revision@ @file-hash@
Nenue@28 5 -- Created: 4/13/2016 7:49 PM
Nenue@28 6 local B = select(2,...).frame
Nenue@28 7 local T = B:RegisterModule("ObjectiveTracker", _G.VeneerObjectiveWrapper, 'BuffFrame')
Nenue@29 8 local print = B.print('Info')
Nenue@29 9 local lprint = B.print('Line')
Nenue@29 10 local AutoQuest, Quest = T.AutoQuest, T.Quest
Nenue@28 11 local ShowQuestOffer, ShowQuestComplete, RemoveAutoQuestPopUp = ShowQuestOffer, ShowQuestComplete, RemoveAutoQuestPopUp
Nenue@29 12 local GetNumAutoQuestPopUps, GetAutoQuestPopUp, GetQuestLogIndexByID, GetQuestLogTitle = GetNumAutoQuestPopUps, GetAutoQuestPopUp, GetQuestLogIndexByID, GetQuestLogTitle
Nenue@29 13 --- Data retrieval
Nenue@29 14 function AutoQuest:GetNumWatched ()
Nenue@45 15 local numWatched = GetNumAutoQuestPopUps()
Nenue@45 16 local numAll = numWatched
Nenue@28 17
Nenue@45 18 self.print('GetNumWatched', numWatched, 'popups detected')
Nenue@45 19 for i = 1, numWatched do
Nenue@45 20 self:GetInfo(i)
Nenue@45 21 end
Nenue@45 22
Nenue@45 23 for i, block in ipairs(self.usedBlocks) do
Nenue@45 24 if not GetAutoQuestPopUp(block.info.id) then
Nenue@45 25 self:FreeBlock(block)
Nenue@45 26 end
Nenue@45 27 end
Nenue@45 28
Nenue@45 29 self.numWatched = numWatched
Nenue@45 30 self.WatchList = self.Info
Nenue@45 31 return numWatched
Nenue@29 32 end
Nenue@45 33 AutoQuest.GetInfo = function(self, index)
Nenue@29 34
Nenue@29 35
Nenue@45 36 local questID, type = GetAutoQuestPopUp(index)
Nenue@29 37 local questLogIndex = GetQuestLogIndexByID(questID)
Nenue@29 38 local title, level, suggestedGroup, isHeader, isCollapsed, isComplete, frequency, questID, startEvent, displayQuestID, isOnMap, hasLocalPOI, isTask, isStory = GetQuestLogTitle(questLogIndex)
Nenue@29 39
Nenue@45 40 self.Info[index] = self.Info[index] or {}
Nenue@45 41 local popup = self.Info[index]
Nenue@30 42 popup.questID = questID
Nenue@45 43 popup.id = index
Nenue@29 44 popup.title = title
Nenue@29 45 popup.description = type
Nenue@29 46 popup.popupType = type
Nenue@34 47 popup.logIndex = questLogIndex
Nenue@29 48
Nenue@29 49 self.Info[questID] = popup
Nenue@45 50 self.WatchInfo[index] = popup
Nenue@29 51
Nenue@29 52
Nenue@29 53 return self.Info[questID]
Nenue@29 54 end
Nenue@29 55
Nenue@28 56 AutoQuest.UpdateObjectives = function(handler, block)
Nenue@28 57 local print = lprint
Nenue@28 58 if block.info.type == 'OFFER' then
Nenue@29 59 block.status:SetText(T.strings.CLICK_TO_ACCEPT)
Nenue@28 60 end
Nenue@28 61 end
Nenue@28 62
Nenue@31 63 AutoQuest.Select = function(handler, block)
Nenue@28 64
Nenue@31 65 if block.info.popupType == 'OFFER' then
Nenue@34 66 ShowQuestOffer(block.info.logIndex)
Nenue@28 67 else
Nenue@34 68 ShowQuestComplete(block.info.logIndex)
Nenue@28 69 end
Nenue@31 70 RemoveAutoQuestPopUp(block.info.questID)
Nenue@28 71 end
Nenue@28 72
Nenue@28 73 AutoQuest.Link = T.Quest.Link