Mercurial > wow > worldplan
view Map.lua @ 121:1fcc4fe645dc tip
- Removed legionfall war supplies from the list of reward currencies to display
author | Nenue |
---|---|
date | Fri, 16 Feb 2018 14:27:59 -0500 |
parents | |
children |
line wrap: on
line source
local _, db = ... local print = DEVIAN_WORKSPACE and function(...) _G.print('Map', ...) end or function() end WorldPlanMapMixin = {} local Map = WorldPlanMapMixin local wmf = WorldMapFrame local ArgusPins = {} function Map:OnLoad() tinsert(db.modules, self) --hooksecurefunc("WorldMap_SetupWorldQuestButton", function(taskPOI, ...) -- self:OnSetupWorldQuestButton(taskPOI, ...) --end) --WorldMapFrame:UnregisterAllEvents() hooksecurefunc("WorldMap_QuantizeWorldQuestPOIs", function(...) self:OnWorldMap_QuantizeWorldQuestPOIs(...) end) hooksecurefunc("WorldMapPOIFrame_AnchorPOI", function(taskPOI, ...) self:OnWorldMapPOIFrame_AnchorPOI(taskPOI, ...) end) hooksecurefunc("WorldMapFrame_Update", function() self:OnWorldMapPOIFrame_Update() end) end function Map:OnWorldMapPOIFrame_Update() local map = GetCurrentMapAreaID() _G.print('WQRefresh', '|cFF88FF00WorldMapFrame_Update()|r', map) if map == 1007 then _G.print('WQRefresh', 'is a continent map') self:Update('WorldMapFrame_Update') end end function Map:OnWorldMap_QuantizeWorldQuestPOIs(pois) --_G.print('WQRefresh', '|cFF88FF00WorldMap_QuantizeWorldQuestPOIs()|r') for k, worldQuestPOI in pairs(pois) do --print(worldQuestPOI.questID, worldQuestPOI:GetPoint(1)) WorldMapPOIFrame_AnchorPOI(worldQuestPOI, worldQuestPOI.quantizedX or worldQuestPOI.x, worldQuestPOI.quantizedY or worldQuestPOI.y, WORLD_MAP_POI_FRAME_LEVEL_OFFSETS.WORLD_QUEST); end end function Map:OnWorldMapPOIFrame_AnchorPOI(taskPOI, x, y, level) --_G.print('WQRefresh','|cFF88FF00OnWorldMapPOIFrame_AnchorPOI()|r', taskPOI:GetName()) taskPOI.lastAnchor = time() end function Map:OnSetupWorldQuestButton(taskPOI, ...) _G.print('WQRefresh','SetupWorldQuestButton()', taskPOI.questID) end local usedPOI = {} function Map:Update(source) local existingPOI = db.pins.id print('|cFF00FFFF' .. (source or '?'), '->Refresh()', NUM_WORLDMAP_TASK_POIS) wipe(usedPOI) for index = 1, 100 do local poi = _G["WorldMapFrameTaskPOI"..index]; if poi and poi.worldQuest and poi.questID then print(index, 'used by #', poi.questID) existingPOI[poi.questID] = poi end end local poiIndex = NUM_WORLDMAP_TASK_POIS local quests = db.pins.current for questID, info in pairs(quests) do local msg = 'Q #' .. questID .. ' ' .. (existingPOI[questID] and '(!)' or '-') --print(questID, info.x, info.y) --for k,v in pairs(info) do -- print(questID .. '.' .. tostring(k), '=', v) --end --local taskPOI = existingPOI[questID] --if not taskPOI or ( taskPOI.questID ~= questID) then local taskPOI if existingPOI[questID] then taskPOI = existingPOI[questID] msg = msg .. '\n there is a POI for this quest, re-using ' .. taskPOI:GetName() else msg = msg .. 'no poi found... create one' poiIndex = poiIndex + 1 taskPOI = WorldMap_GetOrCreateTaskPOI(poiIndex); local tagID, tagName, worldQuestType, rarity, isElite, tradeskillLineIndex, displayTimeLeft = GetQuestTagInfo(info.questId); taskPOI.name = tagName local selected = info.questId == GetSuperTrackedQuestID(); local isCriteria = WorldMapFrame.UIElementsFrame.BountyBoard:IsWorldQuestCriteriaForSelectedBounty(info.questId); local isSpellTarget = SpellCanTargetQuest() and IsQuestIDValidSpellTarget(info.questId); local isEffectivelyTracked = WorldMap_IsWorldQuestEffectivelyTracked(info.questId); taskPOI.worldQuest = true; taskPOI.questID = questID taskPOI.Texture:SetDrawLayer("OVERLAY"); WorldMap_SetupWorldQuestButton(taskPOI, worldQuestType, rarity, isElite, tradeskillLineIndex, info.inProgress, selected, isCriteria, isSpellTarget, isEffectivelyTracked); C_TaskQuest.RequestPreloadRewardData(info.questId); end if taskPOI then msg = msg .. "\n taskPOI established/" end --[[ taskPOI = WorldMap_TryCreatingWorldQuestPOI(info, poiIndex) print(WorldMap_IsWorldQuestSuppressed(info.questId), not WorldMap_DoesWorldQuestInfoPassFilters(info)) existingPOI[questID] = taskPOI if not taskPOI then print('|cFFFF4400unable to create for|r', questID) else --print(taskPOI, 'created',poiIndex) end --]] --else --print(taskPOI, 're-used') --end if taskPOI then msg = msg .. '\n POS '..tostring(taskPOI:GetName())..' |cFF00FF00x/y:|r ' .. tostring(info.x) ..' '..tostring(info.y) taskPOI.x = info.x; taskPOI.y = info.y; taskPOI.quantizedX = nil; taskPOI.quantizedY = nil; taskPOI.questID = info.questId; taskPOI.numObjectives = info.numObjectives; taskPOI:Show(); usedPOI[questID] = taskPOI end print(msg) end for questID, poi in pairs(existingPOI) do if not usedPOI[questID] then print('|cFFFF4400remove un-updated:', poi:GetName()) poi:Hide() end end WorldMapFrame.UIElementsFrame.ActionButton:SetHasWorldQuests(#usedPOI > 0); WorldMap_QuantizeWorldQuestPOIs(usedPOI) _G.print('WQRefresh', time()) end