Mercurial > wow > worldplan
comparison WorldQuests.lua @ 62:abcdef801db5
- more region hiding fixes
author | Nick@Zahhak |
---|---|
date | Sat, 11 Feb 2017 14:25:57 -0500 |
parents | a133ee697ca2 |
children | 8e130c92698f |
comparison
equal
deleted
inserted
replaced
61:a133ee697ca2 | 62:abcdef801db5 |
---|---|
87 if button.questID and db.QuestsByID[button.questID] then | 87 if button.questID and db.QuestsByID[button.questID] then |
88 db.QuestsByID[button.questID]:SetShown(false) | 88 db.QuestsByID[button.questID]:SetShown(false) |
89 end | 89 end |
90 end | 90 end |
91 | 91 |
92 function Module:OnUpdateQuestBonusObjectives() | 92 local SpellCanTargetQuest = SpellCanTargetQuest |
93 print('|cFFFF4400WorldMap_UpdateQuestBonusObjectives') | 93 function Module:UpdateBlizzButtons() |
94 | |
94 local func = SpellCanTargetQuest() and InternalShowButton or InternalHideButton | 95 local func = SpellCanTargetQuest() and InternalShowButton or InternalHideButton |
95 print(SpellCanTargetQuest()) | |
96 for i = 1, NUM_WORLDMAP_TASK_POIS do | 96 for i = 1, NUM_WORLDMAP_TASK_POIS do |
97 local button = _G['WorldMapFrameTaskPOI'..i] | 97 local button = _G['WorldMapFrameTaskPOI'..i] |
98 if button and button.worldQuest then | 98 if button and button.worldQuest then |
99 func(button, i) | 99 func(button, i) |
100 end | 100 end |
101 end | 101 end |
102 end | 102 end |
103 | 103 |
104 function Module:OnUpdateQuestBonusObjectives() | |
105 print('|cFFFF4400WorldMap_UpdateQuestBonusObjectives') | |
106 self:UpdateBlizzButtons() | |
107 end | |
108 | |
104 function Module:OnClickWorldMapActionButton() | 109 function Module:OnClickWorldMapActionButton() |
105 self.IsTargeting = SpellCanTargetQuest() | 110 self:UpdateBlizzButtons() |
106 self:OnUpdateQuestBonusObjectives() | |
107 end | 111 end |
108 | 112 |
109 local defaults = {} | 113 local defaults = {} |
110 local REWARD_UNKNOWN = 768 | 114 local REWARD_UNKNOWN = 768 |
111 function Module:OnLoad() | 115 function Module:OnLoad() |
128 | 132 |
129 -- WORLD_MAP_UPDATE and PLAYER_ENTERING_WORLD are passed down from a higher level | 133 -- WORLD_MAP_UPDATE and PLAYER_ENTERING_WORLD are passed down from a higher level |
130 self:RegisterEvent('WORLD_QUEST_COMPLETED_BY_SPELL') | 134 self:RegisterEvent('WORLD_QUEST_COMPLETED_BY_SPELL') |
131 self:RegisterEvent('SUPER_TRACKED_QUEST_CHANGED') | 135 self:RegisterEvent('SUPER_TRACKED_QUEST_CHANGED') |
132 self:RegisterEvent('SKILL_LINES_CHANGED') | 136 self:RegisterEvent('SKILL_LINES_CHANGED') |
137 self:RegisterEvent('CURRENT_SPELL_CAST_CHANGED') | |
133 end | 138 end |
134 | 139 |
135 function Module:OnMapInfo(isBrokenIsle, isZoomedOut, mapAreaID) | 140 function Module:OnMapInfo(isBrokenIsle, isZoomedOut, mapAreaID) |
136 print('|cFFFFFF00'..self:GetName()..':OnMapInfo()|r visible =', self:IsVisible()) | 141 print('|cFFFFFF00'..self:GetName()..':OnMapInfo()|r visible =', self:IsVisible()) |
137 if self.isZoomedOut ~= isZoomedOut then | 142 if self.isZoomedOut ~= isZoomedOut then |
158 local questPOI = self:AcquirePin(questID) | 163 local questPOI = self:AcquirePin(questID) |
159 questPOI:GetQuestInfo() | 164 questPOI:GetQuestInfo() |
160 questPOI.isStale = true | 165 questPOI.isStale = true |
161 self.isStale = true | 166 self.isStale = true |
162 else | 167 else |
163 self:Refresh(true) | 168 self:Refresh() |
164 end | 169 end |
165 print('WorldMapFrame', WorldMapFrame:IsVisible(), 'hasUpdates:', self.isStale) | 170 print('WorldMapFrame', WorldMapFrame:IsVisible(), 'hasUpdates:', self.isStale) |
166 elseif event == 'WORLD_QUEST_COMPLETED_BY_SPELL' then | 171 elseif event == 'WORLD_QUEST_COMPLETED_BY_SPELL' then |
167 local questID = ... | 172 local questID = ... |
168 if questID and db.QuestsByID[questID] then | 173 if questID and db.QuestsByID[questID] then |
169 self:ReleasePin(db.QuestsByID[questID]) | 174 self:ReleasePin(db.QuestsByID[questID]) |
170 rprint('|cFFFF4400release|r', questID) | 175 rprint('|cFFFF4400release|r', questID) |
171 end | 176 end |
172 elseif event == 'SKILL_LINES_CHANGED' then | 177 elseif event == 'SKILL_LINES_CHANGED' then |
173 self:Refresh(true) | 178 self:Refresh() |
179 elseif event == 'CURRENT_SPELL_CAST_CHANGED' then | |
180 | |
181 self:Refresh() | |
174 elseif event == 'ARTIFACT_UPDATE' then | 182 elseif event == 'ARTIFACT_UPDATE' then |
175 local ak = C_ArtifactUI.GetArtifactKnowledgeMultiplier() | 183 local ak = C_ArtifactUI.GetArtifactKnowledgeMultiplier() |
176 if ak and (ak ~= self.akLevel) then | 184 if ak and (ak ~= self.akLevel) then |
185 print('push artifact knowledge update', self.akLevel, 'to', ak) | |
177 self.akLevel = ak | 186 self.akLevel = ak |
178 self.ArtifactPowerDirty = true | 187 for index, pin in pairs( db.QuestsByID) do |
179 -- artifact knowledge changed | 188 pin.dataLoaded = nil |
180 self:Refresh(true) | 189 end |
190 self:Refresh() | |
181 end | 191 end |
182 end | 192 end |
183 end | 193 end |
184 | 194 |
185 local totalPins = 0 | 195 local totalPins = 0 |
233 pin.y = info.y or pin.y | 243 pin.y = info.y or pin.y |
234 rprint('|cFFFF4400coords|r', info.x, info.y) | 244 rprint('|cFFFF4400coords|r', info.x, info.y) |
235 end | 245 end |
236 end | 246 end |
237 | 247 |
238 if (not pin.dataLoaded) or self.ArtifactPowerDirty then | 248 if (not pin.dataLoaded) then |
239 pin:GetData() | 249 pin:GetData() |
240 end | 250 end |
241 | 251 |
242 pin:CheckFilterRules() | 252 pin:CheckFilterRules() |
243 pin.isStale = true | 253 pin.isStale = true |
257 print('-', i, zone[i]) | 267 print('-', i, zone[i]) |
258 zone[id] = nil | 268 zone[id] = nil |
259 end | 269 end |
260 db.TasksByID[id] = nil | 270 db.TasksByID[id] = nil |
261 end | 271 end |
262 pin:SetShown(false) | 272 pin:HideFrames() |
263 pin.Overlay:SetShown(false) | |
264 pin.timeLabel:SetShown(false) | |
265 tinsert(db.FreePins, pin) | 273 tinsert(db.FreePins, pin) |
266 | 274 |
267 print('|cFF00FF00-'.. (pin.mapID and GetMapNameByID(pin.mapID) or '???') ..'|r', id, pin.title) | 275 print('|cFF00FF00-'.. (pin.mapID and GetMapNameByID(pin.mapID) or '???') ..'|r', id, pin.title) |
268 end | 276 end |
269 | 277 |
446 | 454 |
447 for index, pin in pairs(db.QuestsByID) do | 455 for index, pin in pairs(db.QuestsByID) do |
448 pin.used = nil | 456 pin.used = nil |
449 end | 457 end |
450 | 458 |
451 self:UpdateAnchors(nil) | 459 if SpellCanTargetQuest() then |
452 | 460 self:UpdateBlizzButtons() |
461 else | |
462 self:UpdateAnchors(nil) | |
463 end | |
453 | 464 |
454 print('|cFFFFFF00'..self:GetName()..':Cleanup()|r') | 465 print('|cFFFFFF00'..self:GetName()..':Cleanup()|r') |
455 rprint('|cFFFFFF00'..self:GetName()..':Cleanup()|r') | 466 rprint('|cFFFFFF00'..self:GetName()..':Cleanup()|r') |
456 --local showQuestPOI = db.Config.EnablePins | 467 --local showQuestPOI = db.Config.EnablePins |
457 for questID, pin in pairs(db.QuestsByID) do | 468 for questID, pin in pairs(db.QuestsByID) do |
464 pin:SetShown(true) | 475 pin:SetShown(true) |
465 else | 476 else |
466 if oV == true then | 477 if oV == true then |
467 print('|cFFFF4400 -|r', questID, pin.title) | 478 print('|cFFFF4400 -|r', questID, pin.title) |
468 end | 479 end |
469 pin:SetShown(false) | 480 pin:HideFrames() |
470 end | 481 end |
471 end | 482 end |
472 | 483 |
473 self.isStale = nil | 484 self.isStale = nil |
474 self.sizesDirty = nil | 485 self.sizesDirty = nil |
475 | |
476 self.ArtifactPowerDirty = nil | |
477 end | 486 end |
478 | 487 |
479 -- update visibility states of all pins | 488 -- update visibility states of all pins |
480 function Module:MarkAllPins(pins) | 489 function Module:MarkAllPins(pins) |
481 print(' |cFFFFFF00'..self:GetName()..':MarkAllPins()|r', pins) | 490 print(' |cFFFFFF00'..self:GetName()..':MarkAllPins()|r', pins) |
537 local mapFileName, textureHeight, textureWidth, isMicroDungeon, microDungeonMapName = GetMapInfo() | 546 local mapFileName, textureHeight, textureWidth, isMicroDungeon, microDungeonMapName = GetMapInfo() |
538 if isMicroDungeon then | 547 if isMicroDungeon then |
539 return | 548 return |
540 end | 549 end |
541 | 550 |
551 | |
542 numPins = 0 | 552 numPins = 0 |
543 local taskInfo = TQ_GetQuestsForPlayerByMapID(self.currentMapID) | 553 local taskInfo = TQ_GetQuestsForPlayerByMapID(self.currentMapID) |
544 if taskInfo then | 554 if taskInfo then |
545 self:UpdateMap(taskInfo, self.currentMapID) | 555 self:UpdateMap(taskInfo, self.currentMapID) |
546 end | 556 end |