Nenue@1
|
1 --- ${PACKAGE_NAME}
|
Nenue@1
|
2 -- @file-author@
|
Nenue@1
|
3 -- @project-revision@ @project-hash@
|
Nenue@1
|
4 -- @file-revision@ @file-hash@
|
Nenue@1
|
5 -- Created: 3/30/2016 1:23 AM
|
Nenue@1
|
6 local B = select(2,...).frame
|
Nenue@1
|
7 local mod = B:RegisterModule("ObjectiveTracker", _G.VeneerObjectiveWrapper, 'BuffFrame')
|
Nenue@1
|
8 local print = B.print('ObjectiveEvent')
|
Nenue@1
|
9
|
Nenue@6
|
10 local isHooked
|
Nenue@6
|
11 local SmallEvents = {
|
Nenue@6
|
12 QUEST_ACCEPTED = 'OnQuestAccepted',
|
Nenue@6
|
13 QUEST_REMOVED = 'OnQuestRemoved'
|
Nenue@6
|
14 }
|
Nenue@6
|
15
|
Nenue@6
|
16 local HandlerEvents = {
|
Nenue@6
|
17 QUEST_ACCEPTED = mod.Quest,
|
Nenue@6
|
18 QUEST_REMOVED = mod.Quest,
|
Nenue@6
|
19 QUEST_WATCH_LIST_CHANGED = mod.Quest,
|
Nenue@6
|
20 SUPER_TRACKED_QUEST_CHANGED = mod.Quest,
|
Nenue@6
|
21 QUEST_LOG_UPDATE = mod.Quest,
|
Nenue@6
|
22 TRACKED_ACHIEVEMENT_LIST_CHANGED = mod.Cheevs,
|
Nenue@6
|
23 TRACKED_ACHIEVEMENT_UPDATE = mod.Cheevs
|
Nenue@6
|
24 }
|
Nenue@6
|
25
|
Nenue@6
|
26 local BlizzHooks = {
|
Nenue@6
|
27 ['AddQuestWatch'] = 'AddQuestWatch',
|
Nenue@6
|
28 ['RemoveQuestWatch'] = 'RemoveQuestWatch',
|
Nenue@6
|
29 ['AbandonQuest'] = 'AbandonQuest',
|
Nenue@6
|
30 ['AcknowledgeAutoAcceptQuest'] = 'AcknowledgeAutoAcceptQuest',
|
Nenue@6
|
31 ['AddAutoQuestPopUp'] = 'AddAutoQuestPopUp'
|
Nenue@6
|
32 }
|
Nenue@6
|
33
|
Nenue@6
|
34 mod.SetEvents = function()
|
Nenue@6
|
35
|
Nenue@6
|
36 for event, _ in pairs(SmallEvents) do
|
Nenue@6
|
37 mod:RegisterEvent(event)
|
Nenue@6
|
38 end
|
Nenue@6
|
39
|
Nenue@6
|
40 for event, _ in pairs(HandlerEvents) do
|
Nenue@6
|
41 mod:RegisterEvent(event)
|
Nenue@6
|
42 end
|
Nenue@6
|
43 mod:SetScript('OnEvent', mod.OnEvent)
|
Nenue@6
|
44
|
Nenue@6
|
45
|
Nenue@6
|
46 if not isHooked then
|
Nenue@6
|
47 VeneerData.CallLog = {}
|
Nenue@6
|
48 isHooked = true
|
Nenue@6
|
49 for blizzFunc, veneerFunc in pairs(BlizzHooks) do
|
Nenue@6
|
50 if mod[veneerFunc] then
|
Nenue@6
|
51 hooksecurefunc(blizzFunc, mod[veneerFunc])
|
Nenue@6
|
52 else
|
Nenue@6
|
53 hooksecurefunc(blizzFunc, function(...)
|
Nenue@6
|
54 print('catching', blizzFunc, ...)
|
Nenue@6
|
55 tinsert(VeneerData.CallLog, {blizzFunc, ...})
|
Nenue@6
|
56 end)
|
Nenue@6
|
57 end
|
Nenue@6
|
58 end
|
Nenue@6
|
59
|
Nenue@6
|
60 end
|
Nenue@6
|
61 end
|
Nenue@6
|
62
|
Nenue@6
|
63 function mod:OnEvent (event, ...)
|
Nenue@6
|
64 local isHandled
|
Nenue@6
|
65 if SmallEvents[event] then
|
Nenue@6
|
66 print('|cFF00FF00'..SmallEvents[event]..'(' ..event..'|r', ...)
|
Nenue@6
|
67 mod[SmallEvents[event]](event, ...)
|
Nenue@6
|
68 isHandled = true
|
Nenue@6
|
69 end
|
Nenue@6
|
70 if HandlerEvents[event] then
|
Nenue@6
|
71 print('|cFF0088FF'..event..'|r wrapper update')
|
Nenue@6
|
72 mod.UpdateWrapper()
|
Nenue@6
|
73 isHandled = true
|
Nenue@6
|
74 end
|
Nenue@6
|
75 if not isHandled then
|
Nenue@6
|
76 print('|cFFFF4400'..event..'|r', ...)
|
Nenue@6
|
77 end
|
Nenue@6
|
78 end
|
Nenue@6
|
79
|
Nenue@1
|
80 --------------------------------------------------------------------
|
Nenue@6
|
81 --- Events that are handled by Blizzard_ObjectiveTracker
|
Nenue@1
|
82 --------------------------------------------------------------------
|
Nenue@1
|
83 print(mod:GetName())
|
Nenue@1
|
84 mod.OnQuestAccepted = function(_, questLogIndex, questID)
|
Nenue@1
|
85 AddQuestWatch(questLogIndex)
|
Nenue@1
|
86 SetSuperTrackedQuestID(questID)
|
Nenue@1
|
87 end
|
Nenue@1
|
88
|
Nenue@1
|
89 mod.OnQuestComplete = function(_, questLogIndex, questID)
|
Nenue@1
|
90 QuestPOIUpdateIcons()
|
Nenue@1
|
91 end
|
Nenue@1
|
92
|
Nenue@1
|
93 mod.OnQuestFinished = function(_, questLogIndex, questID)
|
Nenue@1
|
94 mod.TrackClosest()
|
Nenue@1
|
95 RemoveQuestWatch(questLogIndex)
|
Nenue@1
|
96 end
|
Nenue@1
|
97
|
Nenue@6
|
98
|
Nenue@2
|
99 mod.OnQuestRemoved = function(_, questLogIndex, questID)
|
Nenue@6
|
100
|
Nenue@6
|
101 mod.UpdateWrapper()
|
Nenue@6
|
102
|
Nenue@2
|
103 end
|
Nenue@2
|
104
|
Nenue@1
|
105 mod.OnQuestFromLocation = function(event) end
|
Nenue@1
|
106
|
Nenue@6
|
107 -------------------------------------------------------------------
|
Nenue@6
|
108 --- Function hooks for BlizzUI compatibility
|
Nenue@6
|
109 -------------------------------------------------------------------
|
Nenue@6
|
110 mod.AddQuestWatch = function(questID)
|
Nenue@6
|
111 mod.UpdateWrapper()
|
Nenue@1
|
112 end
|
Nenue@6
|
113
|
Nenue@6
|
114 mod.RemoveQuestWatch = function(questIndex)
|
Nenue@6
|
115 mod.UpdateWrapper()
|
Nenue@6
|
116 end
|
Nenue@6
|
117
|
Nenue@6
|
118 mod.AcceptQuest = function()
|
Nenue@6
|
119 end
|
Nenue@6
|
120
|
Nenue@6
|
121 mod.AbandonQuest = function()
|
Nenue@6
|
122 end
|
Nenue@6
|
123
|
Nenue@6
|
124 mod.TurnInQuest = function()
|
Nenue@6
|
125 end |