Mercurial > wow > worldplan
comparison WorldQuests.lua @ 74:2ba11b25aa7f
flight map data handler adjustments
| author | Nenue |
|---|---|
| date | Sat, 08 Apr 2017 17:07:58 -0400 |
| parents | 25f7dbc20a72 |
| children | 78d78dc77822 |
comparison
equal
deleted
inserted
replaced
| 73:25f7dbc20a72 | 74:2ba11b25aa7f |
|---|---|
| 227 self:RefreshIfChanged(event) | 227 self:RefreshIfChanged(event) |
| 228 elseif event == 'WORLD_QUEST_COMPLETED_BY_SPELL' then | 228 elseif event == 'WORLD_QUEST_COMPLETED_BY_SPELL' then |
| 229 local questID = ... | 229 local questID = ... |
| 230 self:UpdateBounties(event) | 230 self:UpdateBounties(event) |
| 231 if questID and db.QuestsByID[questID] then | 231 if questID and db.QuestsByID[questID] then |
| 232 self:ReleasePin(db.QuestsByID[questID]) | 232 db.QuestsByID[questID].complete = true |
| 233 rprint('|cFFFF4400release|r', questID) | |
| 234 end | 233 end |
| 235 self:Refresh(event) | 234 self:Refresh(event) |
| 236 elseif event == 'SKILL_LINES_CHANGED' or event == 'CURRENT_SPELL_CAST_CHANGED' then | 235 elseif event == 'SKILL_LINES_CHANGED' or event == 'CURRENT_SPELL_CAST_CHANGED' then |
| 237 self:Refresh(event) | 236 self:Refresh(event) |
| 238 elseif event == 'ARTIFACT_UPDATE' then | 237 elseif event == 'ARTIFACT_UPDATE' then |
| 359 pin.floor = info.floor | 358 pin.floor = info.floor |
| 360 pin.numObjectives = info.numObjectives or 0 | 359 pin.numObjectives = info.numObjectives or 0 |
| 361 if info.x and info.y then | 360 if info.x and info.y then |
| 362 pin.x = info.x or pin.x | 361 pin.x = info.x or pin.x |
| 363 pin.y = info.y or pin.y | 362 pin.y = info.y or pin.y |
| 364 rprint('|cFFFF4400coords|r', info.x, info.y) | 363 --rprint('|cFFFF4400coords|r', info.x, info.y) |
| 365 end | 364 end |
| 366 end | 365 end |
| 367 | 366 |
| 368 if (not pin.dataLoaded) then | 367 if (not pin.dataLoaded) then |
| 369 local dataLoaded = pin:GetData() | 368 local dataLoaded = pin:GetData() |
| 511 end | 510 end |
| 512 | 511 |
| 513 | 512 |
| 514 if self:IsVisible() then | 513 if self:IsVisible() then |
| 515 print('|cFF00FFFFRefreshIfChanged()|r', refreshReason) | 514 print('|cFF00FFFFRefreshIfChanged()|r', refreshReason) |
| 516 self:Refresh() | 515 self:Refresh('WORLDMAP_QUEUED') |
| 517 else | 516 else |
| 518 rprint('|cFF00FFFFRefreshIfChanged()|r flagging for later refresh', refreshReason) | 517 rprint('|cFF00FFFFRefreshIfChanged()|r flagging for later refresh', refreshReason) |
| 519 self.isStale = true | 518 self.isStale = true |
| 520 end | 519 end |
| 521 end | 520 end |
| 535 local pin = self:AcquirePin(info) | 534 local pin = self:AcquirePin(info) |
| 536 if not pin then | 535 if not pin then |
| 537 return | 536 return |
| 538 end | 537 end |
| 539 | 538 |
| 539 | |
| 540 local doUpdate = pin:GetCriteriaState() or pin.isStale | |
| 540 --print(' |- ', pin.questID, pin.title) | 541 --print(' |- ', pin.questID, pin.title) |
| 541 rprint('|cFF00FF00update|r', pin.questID, pin.title) | 542 rprint('|cFF00FF00update|r', pin.questID, pin.title) |
| 543 | |
| 544 print(doUpdate) | |
| 545 | |
| 542 if x and y then | 546 if x and y then |
| 543 local scaleFactor = SCALE_FACTORS[(pin.dataLoaded and not pin.filtered) and scaleConstant or 1] | 547 local scaleFactor = SCALE_FACTORS[(pin.dataLoaded and not pin.filtered) and scaleConstant or 1] |
| 544 pin:SetFrameLevel(PinBaseIndex+pin:GetID()) | 548 pin:SetFrameLevel(PinBaseIndex+pin:GetID()) |
| 545 pin.owningFrame = WorldMapFrame | 549 pin.owningFrame = WorldMapFrame |
| 546 pin:SetAnchor(WorldMapPOIFrame, x, y, self.hostWidth, self.hostHeight, scaleFactor) | 550 pin:SetAnchor(WorldMapPOIFrame, x, y, self.hostWidth, self.hostHeight, scaleFactor) |
| 551 doUpdate = true | |
| 547 --tinsert(self.UsedPositions, pin) | 552 --tinsert(self.UsedPositions, pin) |
| 548 end | 553 end |
| 549 | 554 |
| 550 local isCriteria, isBounty | 555 if doUpdate then |
| 551 if pin.factionID then | 556 print(' changed', pin.title, pin.isCriteria, pin.isBounty, pin.scaleFactor) |
| 552 if db.BountiesByFactionID[pin.factionID] then | |
| 553 isCriteria = true | |
| 554 end | |
| 555 if selectedBountyQuestID then | |
| 556 isBounty = IsQuestCriteriaForBounty(pin.questID, selectedBountyQuestID) and true or nil | |
| 557 end | |
| 558 end | |
| 559 | |
| 560 local isSpellTarget | |
| 561 if canTargetQuests then | |
| 562 isSpellTarget = IsQuestIDValidSpellTarget(pin.questID) | |
| 563 end | |
| 564 | |
| 565 if (pin.isBounty ~= isBounty) or (pin.isCriteria ~= isCriteria) or (pin.isSpellTarget ~= isSpellTarget) then | |
| 566 pin.isSpellTarget = isSpellTarget | |
| 567 pin.isBounty = isBounty | |
| 568 pin.isCriteria = isCriteria | |
| 569 if pin:IsVisible() then | 557 if pin:IsVisible() then |
| 570 --print(' changed', pin.title) | |
| 571 --numUpdated = numUpdated + 1 | 558 --numUpdated = numUpdated + 1 |
| 572 pin:Refresh('BOUNTY_UPDATE') | 559 pin:Refresh('WORLDMAP_REFRESH') |
| 573 else | 560 else |
| 574 --numHidden = numHidden + 1 | 561 --numHidden = numHidden + 1 |
| 575 pin.isStale = true | 562 pin.isStale = true |
| 576 end | 563 end |
| 577 end | |
| 578 | |
| 579 if self:IsVisible() and (pin.isStale) then | |
| 580 pin:Refresh() | |
| 581 end | 564 end |
| 582 | 565 |
| 583 if mapID then | 566 if mapID then |
| 584 if not db.QuestsByZone[mapID] then | 567 if not db.QuestsByZone[mapID] then |
| 585 db.QuestsByZone[mapID] = {} | 568 db.QuestsByZone[mapID] = {} |
| 598 | 581 |
| 599 -- Used to refresh the visible quest markers | 582 -- Used to refresh the visible quest markers |
| 600 function Module:UpdateAnchors () | 583 function Module:UpdateAnchors () |
| 601 wipe(self.UsedPositions) | 584 wipe(self.UsedPositions) |
| 602 print(' |cFF00FF00'..self:GetName()..':UpdateAnchors()') | 585 print(' |cFF00FF00'..self:GetName()..':UpdateAnchors()') |
| 603 self.hostWidth, self.hostHeight = WorldMapPOIFrame:GetSize() | 586 local hostWidth, hostHeight = WorldMapPOIFrame:GetSize() |
| 604 self.nudgeThrescholdX = 16/self.hostWidth | 587 |
| 605 self.nudgeThrescholdY = 16/self.hostHeight | 588 if (hostWidth ~= self.hostWidth) or (hostHeight ~= self.hostHeight) then |
| 589 self.hostWidth, self.hostHeight = hostWidth, hostHeight | |
| 590 layoutDirty = true | |
| 591 end | |
| 592 | |
| 606 | 593 |
| 607 rprint('|cFF00FF00'..self:GetName()..':UpdateAnchors()') | 594 rprint('|cFF00FF00'..self:GetName()..':UpdateAnchors()') |
| 608 local mapFileName, textureHeight, textureWidth, isMicroDungeon, microDungeonMapName = GetMapInfo() | 595 local mapFileName, textureHeight, textureWidth, isMicroDungeon, microDungeonMapName = GetMapInfo() |
| 609 if isMicroDungeon then | 596 if isMicroDungeon then |
| 610 return | 597 return |
