annotate ObjectiveTracker/Events.lua @ 37:e84d645c8ab8

- revised the tracker update function to build its complete data list up front and use the values as points of comparison for determining possible out of place blocks, which will be iterated over afterward to remove what wasn't re-used - also entailed revising the exact role of global event handlers and function hooks, limiting their directions of communication so one doesn't end up calling the other multiple or inifinity times - schema handling polish
author Nenue
date Mon, 18 Apr 2016 07:56:23 -0400
parents 9856ebc63fa4
children 1f8f9cc3d956
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: 3/30/2016 1:23 AM
Nenue@28 6 local B = select(2,...).frame
Nenue@28 7 local T = B:RegisterModule("ObjectiveTracker", _G.VeneerObjectiveWrapper, 'BuffFrame')
Nenue@28 8 local print = B.print('Objectives')
Nenue@28 9
Nenue@34 10 local _G = _G
Nenue@34 11 local OBJECTIVE_TRACKER_UPDATE_MODULE_ACHIEVEMENT = OBJECTIVE_TRACKER_UPDATE_MODULE_ACHIEVEMENT
Nenue@34 12 local OBJECTIVE_TRACKER_UPDATE_MODULE_QUEST_ADDED = OBJECTIVE_TRACKER_UPDATE_MODULE_QUEST_ADDED
Nenue@34 13 local OBJECTIVE_TRACKER_UPDATE_MODULE_QUEST = OBJECTIVE_TRACKER_UPDATE_MODULE_QUEST
Nenue@34 14 local OBJECTIVE_TRACKER_UPDATE_MODULE_AUTO_QUEST_POPUP = OBJECTIVE_TRACKER_UPDATE_MODULE_AUTO_QUEST_POPUP
Nenue@34 15 local GetQuestID, GetQuestLogIndexByID, AddQuestWatch, SetSuperTrackedQuestID = GetQuestID, GetQuestLogIndexByID, AddQuestWatch, SetSuperTrackedQuestID
Nenue@34 16 local QuestPOIUpdateIcons = QuestPOIUpdateIcons
Nenue@28 17 -------------------------------------------------------------------
Nenue@34 18 --- Deal with blizzard API calls that affect the tracker/log contents
Nenue@34 19 --- mainly just hiding blocks until they can be picked up by the next update event
Nenue@28 20 -------------------------------------------------------------------
Nenue@28 21 T.AddQuestWatch = function(questID)
Nenue@34 22 if not B.Conf.VeneerObjectiveWrapper.enabled then return end
Nenue@34 23 return OBJECTIVE_TRACKER_UPDATE_MODULE_QUEST
Nenue@28 24 end
Nenue@28 25
Nenue@28 26 local Quest = T.Quest
Nenue@28 27 T.RemoveQuestWatch = function(questIndex, ...)
Nenue@28 28 print('|cFFFF8800RemoveQuestWatch', questIndex, ...)
Nenue@37 29
Nenue@37 30 --return OBJECTIVE_TRACKER_UPDATE_MODULE_QUEST
Nenue@28 31 end
Nenue@28 32
Nenue@28 33 T.AddTrackedAchievement = function(cheevID)
Nenue@28 34 T.CleanWidgets()
Nenue@37 35 --return OBJECTIVE_TRACKER_UPDATE_MODULE_ACHIEVEMENT
Nenue@28 36 end
Nenue@28 37
Nenue@28 38
Nenue@28 39 T.RemoveTrackedAchievement = function(cheevID)
Nenue@28 40 T.CleanWidgets()
Nenue@37 41 --return OBJECTIVE_TRACKER_UPDATE_MODULE_ACHIEVEMENT
Nenue@28 42 end
Nenue@28 43
Nenue@28 44 T.AcceptQuest = function()
Nenue@28 45 end
Nenue@28 46
Nenue@28 47 T.AbandonQuest = function()
Nenue@28 48 QuestPOIUpdateIcons()
Nenue@34 49 return OBJECTIVE_TRACKER_UPDATE_MODULE_QUEST
Nenue@28 50 end
Nenue@34 51 T.CompleteQuest = function()
Nenue@34 52 local questID = GetQuestID()
Nenue@34 53 if T.Quest.Info[questID] then
Nenue@34 54 local q = T.Quest.Info[questID]
Nenue@34 55 if q.logIndex then
Nenue@34 56 local block = T.Quest.LogBlock[q.logIndex]
Nenue@37 57 if block then
Nenue@34 58 block:Hide()
Nenue@34 59 end
Nenue@34 60 end
Nenue@34 61 end
Nenue@34 62
Nenue@28 63 QuestPOIUpdateIcons()
Nenue@34 64 return OBJECTIVE_TRACKER_UPDATE_MODULE_QUEST
Nenue@28 65 end
Nenue@28 66 T.AddAutoQuestPopUp = function(...)
Nenue@34 67 return OBJECTIVE_TRACKER_UPDATE_MODULE_AUTO_QUEST_POPUP
Nenue@28 68 end
Nenue@34 69 T.RemoveAutoQuestPopUp = function(questID)
Nenue@34 70 return OBJECTIVE_TRACKER_UPDATE_MODULE_AUTO_QUEST_POPUP
Nenue@34 71
Nenue@28 72 end
Nenue@28 73
Nenue@28 74
Nenue@28 75
Nenue@28 76 T.SetSuperTrackedQuestID = function(questID)
Nenue@28 77 --T:Update()
Nenue@28 78 end