Mercurial > wow > buffalo2
comparison ObjectiveTracker/ObjectiveTracker.lua @ 38:1f8f9cc3d956
- module integration brought up to speed with current frame management structure
author | Nenue |
---|---|
date | Thu, 21 Apr 2016 11:36:41 -0400 |
parents | e84d645c8ab8 |
children | 92534dc793f2 |
comparison
equal
deleted
inserted
replaced
37:e84d645c8ab8 | 38:1f8f9cc3d956 |
---|---|
138 T.AutoQuest = { | 138 T.AutoQuest = { |
139 name = "AutoQuest", | 139 name = "AutoQuest", |
140 displayName = "Notice", | 140 displayName = "Notice", |
141 updateReasonModule = OBJECTIVE_TRACKER_UPDATE_MODULE_QUEST, | 141 updateReasonModule = OBJECTIVE_TRACKER_UPDATE_MODULE_QUEST, |
142 updateReasonEvents = OBJECTIVE_TRACKER_UPDATE_QUEST + OBJECTIVE_TRACKER_UPDATE_QUEST_ADDED, | 142 updateReasonEvents = OBJECTIVE_TRACKER_UPDATE_QUEST + OBJECTIVE_TRACKER_UPDATE_QUEST_ADDED, |
143 internalColor = '00FFFF', | |
143 LogInfo = {}, | 144 LogInfo = {}, |
144 QuestBlock = {}, | 145 QuestBlock = {}, |
145 } | 146 } |
146 T.Quest = { | 147 T.Quest = { |
147 name = "Quest", | 148 name = "Quest", |
148 displayName = "Quests", | 149 displayName = "Quests", |
149 updateReasonModule = OBJECTIVE_TRACKER_UPDATE_MODULE_QUEST, | 150 updateReasonModule = OBJECTIVE_TRACKER_UPDATE_MODULE_QUEST, |
150 updateReasonEvents = OBJECTIVE_TRACKER_UPDATE_QUEST + OBJECTIVE_TRACKER_UPDATE_QUEST_ADDED, | 151 updateReasonEvents = OBJECTIVE_TRACKER_UPDATE_QUEST + OBJECTIVE_TRACKER_UPDATE_QUEST_ADDED, |
152 internalColor = '0088FF', | |
151 itemButtons = {}, | 153 itemButtons = {}, |
152 freeButtons = {}, | 154 freeButtons = {}, |
153 LogInfo = {}, | 155 LogInfo = {}, |
154 QuestBlock = {}, | 156 QuestBlock = {}, |
155 } | 157 } |
158 displayName = "Achievements", | 160 displayName = "Achievements", |
159 schema = 'achievement', | 161 schema = 'achievement', |
160 updateReasonModule = OBJECTIVE_TRACKER_UPDATE_MODULE_ACHIEVEMENT, | 162 updateReasonModule = OBJECTIVE_TRACKER_UPDATE_MODULE_ACHIEVEMENT, |
161 updateReasonEvents = OBJECTIVE_TRACKER_UPDATE_ACHIEVEMENT + | 163 updateReasonEvents = OBJECTIVE_TRACKER_UPDATE_ACHIEVEMENT + |
162 OBJECTIVE_TRACKER_UPDATE_ACHIEVEMENT_ADDED, | 164 OBJECTIVE_TRACKER_UPDATE_ACHIEVEMENT_ADDED, |
165 internalColor = '00FF88', | |
163 } | 166 } |
164 T.Bonus = { | 167 T.Bonus = { |
165 name = "Bonus", | 168 name = "Bonus", |
166 displayName = "Bonus Objectives", | 169 displayName = "Bonus Objectives", |
167 updateReasonModule = OBJECTIVE_TRACKER_UPDATE_MODULE_BONUS_OBJECTIVE, | 170 updateReasonModule = OBJECTIVE_TRACKER_UPDATE_MODULE_BONUS_OBJECTIVE, |
168 updateReasonEvents = OBJECTIVE_TRACKER_UPDATE_QUEST + OBJECTIVE_TRACKER_UPDATE_TASK_ADDED, | 171 updateReasonEvents = OBJECTIVE_TRACKER_UPDATE_QUEST + OBJECTIVE_TRACKER_UPDATE_TASK_ADDED, |
172 internalColor = '00FF00', | |
169 QuestBlock = {}, | 173 QuestBlock = {}, |
170 } | 174 } |
171 | 175 |
172 T.Scenario = { | 176 T.Scenario = { |
173 name = 'Scenario', | 177 name = 'Scenario', |
174 displayName = 'Scenario Objectives', | 178 displayName = 'Scenario Objectives', |
175 updateReasonModule = OBJECTIVE_TRACKER_UPDATE_MODULE_SCENARIO, | 179 updateReasonModule = OBJECTIVE_TRACKER_UPDATE_MODULE_SCENARIO, |
176 updateReasonEvents = OBJECTIVE_TRACKER_UPDATE_SCENARIO_NEW_STAGE + OBJECTIVE_TRACKER_UPDATE_SCENARIO_BONUS_DELAYED | 180 updateReasonEvents = OBJECTIVE_TRACKER_UPDATE_SCENARIO_NEW_STAGE + OBJECTIVE_TRACKER_UPDATE_SCENARIO_BONUS_DELAYED, |
177 } | 181 internalColor = '88FF00', |
178 | 182 } |
183 local lastLabel | |
184 local Tracker_debug = function(handler, channel) | |
185 local func = B.print(channel) | |
186 local color = handler.internalColor | |
187 return function(label, ...) | |
188 if lastLabel == label then | |
189 label = label:gsub('%a', ' ').. ' ' | |
190 else | |
191 lastLabel = label | |
192 label = '|cFF'..color..label..':|r' | |
193 end | |
194 func(label, ...) | |
195 end | |
196 end | |
179 local Tracker_string = function (self) | 197 local Tracker_string = function (self) |
180 return self.name | 198 return self.name |
181 end | 199 end |
182 local Tracker_call = function (self, reason) | 200 local Tracker_call = function (self, reason) |
183 self:Update(reason) | 201 self:Update(reason) |
235 T.orderedTrackers[index] = frame | 253 T.orderedTrackers[index] = frame |
236 T.namedTrackers[name] = frame | 254 T.namedTrackers[name] = frame |
237 T.indexedTrackers[handler] = frame | 255 T.indexedTrackers[handler] = frame |
238 print('|cFFFF0088' .. trackerName .. '|r created for |cFF00FFFF' .. handler.displayName .. '|r module') | 256 print('|cFFFF0088' .. trackerName .. '|r created for |cFF00FFFF' .. handler.displayName .. '|r module') |
239 | 257 |
258 handler.print = Tracker_debug(handler, 'Tracker') | |
259 handler.lprint = Tracker_debug(handler, 'Line') | |
260 handler.bprint = Tracker_debug(handler, 'Block') | |
261 | |
240 T.orderedHandlers[index] = handler | 262 T.orderedHandlers[index] = handler |
241 return true | 263 return true |
242 end | 264 end |
243 | 265 |
244 local Event = {} | 266 local Event = {} |
246 return OBJECTIVE_TRACKER_UPDATE_MODULE_QUEST + OBJECTIVE_TRACKER_UPDATE_MODULE_BONUS_OBJECTIVE | 268 return OBJECTIVE_TRACKER_UPDATE_MODULE_QUEST + OBJECTIVE_TRACKER_UPDATE_MODULE_BONUS_OBJECTIVE |
247 end | 269 end |
248 local GetNumQuestWatches, AddQuestWatch, SetSuperTrackedQuestID = GetNumQuestWatches, AddQuestWatch, SetSuperTrackedQuestID | 270 local GetNumQuestWatches, AddQuestWatch, SetSuperTrackedQuestID = GetNumQuestWatches, AddQuestWatch, SetSuperTrackedQuestID |
249 Event.QUEST_ACCEPTED = function(questLogIndex, questID, added) | 271 Event.QUEST_ACCEPTED = function(questLogIndex, questID, added) |
250 if ( IsQuestTask(questID) ) then | 272 if ( IsQuestTask(questID) ) then |
251 return OBJECTIVE_TRACKER_UPDATE_TASK_ADDED, questID | 273 return OBJECTIVE_TRACKER_UPDATE_QUEST_ADDED + OBJECTIVE_TRACKER_UPDATE_TASK_ADDED, questID, added |
252 else | 274 else |
253 | 275 return OBJECTIVE_TRACKER_UPDATE_QUEST_ADDED, questID, added |
254 AddQuestWatch(questID) | 276 end |
255 --return OBJECTIVE_TRACKER_UPDATE_QUEST_ADDED, questID, added | 277 AddQuestWatch(questID) |
256 end | |
257 end | 278 end |
258 | 279 |
259 Event.QUEST_REMOVED = function(questLogIndex, questID) | 280 Event.QUEST_REMOVED = function(questLogIndex, questID) |
260 return OBJECTIVE_TRACKER_UPDATE_QUEST, questID, false | 281 return OBJECTIVE_TRACKER_UPDATE_QUEST, questID, false |
261 end | 282 end |
265 if ( not IsQuestTask(questID) ) then | 286 if ( not IsQuestTask(questID) ) then |
266 return OBJECTIVE_TRACKER_UPDATE_QUEST_ADDED, questID, added | 287 return OBJECTIVE_TRACKER_UPDATE_QUEST_ADDED, questID, added |
267 end | 288 end |
268 elseif questID then | 289 elseif questID then |
269 return OBJECTIVE_TRACKER_UPDATE_QUEST_ADDED, questID, added | 290 return OBJECTIVE_TRACKER_UPDATE_QUEST_ADDED, questID, added |
291 else | |
292 return OBJECTIVE_TRACKER_UPDATE_MODULE_QUEST | |
270 end | 293 end |
271 end | 294 end |
272 | 295 |
273 Event.QUEST_POI_UPDATE = function() | 296 Event.QUEST_POI_UPDATE = function() |
274 QuestPOIUpdateIcons(); | 297 QuestPOIUpdateIcons(); |
364 T.watchMoneyReasons = T.watchMoneyReasons + reason; | 387 T.watchMoneyReasons = T.watchMoneyReasons + reason; |
365 end | 388 end |
366 else | 389 else |
367 if band(T.watchMoneyReasons, reason) > 0 then | 390 if band(T.watchMoneyReasons, reason) > 0 then |
368 T.watchMoneyReasons = T.watchMoneyReasons - reason; | 391 T.watchMoneyReasons = T.watchMoneyReasons - reason; |
369 end | |
370 end | |
371 end | |
372 T.animateReasons = 0 | |
373 T.SetAnimate = function(reason) | |
374 print('comparing', T.animateReasons, reason) | |
375 if animate then | |
376 if band(T.animateReasons, reason) == 0 then | |
377 T.animateReasons = T.animateReasons + reason | |
378 end | |
379 else | |
380 if band(T.animateReasons, reason) > 0 then | |
381 T.animateReasons = T.animateReasons - reason | |
382 end | 392 end |
383 end | 393 end |
384 end | 394 end |
385 | 395 |
386 local iprint = B.print('Info') | 396 local iprint = B.print('Info') |
461 end | 471 end |
462 end | 472 end |
463 | 473 |
464 function T:OnEvent (event, ...) | 474 function T:OnEvent (event, ...) |
465 local isHandled | 475 local isHandled |
466 tprint('OnEvent(|cFF00FF00'.. event ..'|r):', ...) | |
467 local reason, arg1, arg2, arg3 | 476 local reason, arg1, arg2, arg3 |
468 if Event[event] then | 477 if Event[event] then |
469 if type(Event[event]) == 'function' then | 478 if type(Event[event]) == 'function' then |
470 Play([[Interface\Addons\SharedMedia_MyMedia\sound\Info.ogg]]) | 479 Play([[Interface\Addons\SharedMedia_MyMedia\sound\Info.ogg]]) |
471 reason, arg1, arg2, arg3 = Event[event](...) | 480 reason, arg1, arg2, arg3 = Event[event](...) |
476 else | 485 else |
477 print('no event handler set for', event) | 486 print('no event handler set for', event) |
478 Play([[Interface\Addons\SharedMedia_MyMedia\sound\IM.ogg]]) | 487 Play([[Interface\Addons\SharedMedia_MyMedia\sound\IM.ogg]]) |
479 end | 488 end |
480 if reason then | 489 if reason then |
481 print('update reason:', reason, 'args:', arg1, arg2, arg3) | 490 tprint('OnEvent(|cFF00FF00'.. event ..'|r):', ...) |
482 T:Update(reason, arg1, arg2, arg3) | 491 T:Update(reason, arg1, arg2, arg3) |
483 else | 492 else |
484 print('no reason value returned') | 493 tprint('OnEvent(|cFFFF4400'.. event ..'|r):', ...) |
494 tprint('no detected reason') | |
485 Play([[Interface\Addons\SharedMedia_MyMedia\sound\Quack.ogg]]) | 495 Play([[Interface\Addons\SharedMedia_MyMedia\sound\Quack.ogg]]) |
486 end | 496 end |
497 local args = (reason or '0') | |
498 if arg1 then args = args .. ', ' .. tostring(arg1) end | |
499 if arg2 then args = args .. ', ' .. tostring(arg2) end | |
500 if arg3 then args = args .. ', ' .. tostring(arg3) end | |
501 tprint('OnEvent(|cFF00FF00'.. event ..'|r):', ..., '|cFFFFFF00=> Update (|r', args,'|cFFFFFF00)|r') | |
487 | 502 |
488 end | 503 end |
489 | 504 |
490 | 505 |
491 function T:OnInitialize() | 506 function T:OnInitialize() |
542 self:SetScript('OnEvent', T.OnEvent) | 557 self:SetScript('OnEvent', T.OnEvent) |
543 | 558 |
544 Scroller:Show() | 559 Scroller:Show() |
545 | 560 |
546 local from, target, to, x, y = Wrapper:GetPoint(1) | 561 local from, target, to, x, y = Wrapper:GetPoint(1) |
547 print(from, target:GetName(), to, x,y) | 562 print(from, target, to, x,y) |
548 | 563 |
549 | 564 |
565 T.UpdateSchema('tracker', 'default') | |
550 -- run once to prime the data structure | 566 -- run once to prime the data structure |
551 T.UpdateActionButtons() | 567 T.UpdateActionButtons() |
552 end | 568 end |
553 | 569 |
554 function T:OnDisable() | 570 function T:OnDisable() |