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()