annotate MapFrame.lua @ 113:03e4a8b93012 v7.3.0-2

7.3 Updates - Added some map frame adjustments to keep the filter bar from obstructing edge of zone clicks KNOWN ISSUES: - Argus quests can only be filtered when viewing Argus maps - Main Argus map in the WorldMapFrame has misaligned pins; this is due to it using a different map texture from what is used in the teleporter map, so all the POI coordinates are based on that map in the client info
author Nenue
date Tue, 05 Sep 2017 03:14:34 -0400
parents caa482329919
children bf4a36378bb9
rev   line source
Nenue@102 1 --
Nenue@108 2 -- WorldPlan
Nenue@108 3 -- Map Frame Customizations
Nenue@102 4 --
Nenue@108 5 local _, db = ...
Nenue@108 6 local print = DEVIAN_WORKSPACE and function(...) print('MapFrame',...) end or nop
Nenue@108 7 local enableConfigLayers = false
Nenue@108 8 local regionLabels = {}
Nenue@102 9
Nenue@102 10 WorldPlanMapFrameMixin = {
Nenue@102 11 defaults = {
Nenue@102 12 anchors = {
Nenue@102 13 point = 'LEFT',
Nenue@102 14 x = 50,
Nenue@102 15 },
Nenue@102 16 size = {
Nenue@102 17 x = 800,
Nenue@102 18 y = 600
Nenue@102 19 }
Nenue@102 20 }
Nenue@102 21
Nenue@102 22 }
Nenue@102 23 local Module = WorldPlanMapFrameMixin
Nenue@102 24
Nenue@102 25 function Module:OnLoad()
Nenue@102 26 WorldPlan:AddHandler(self)
Nenue@108 27 hooksecurefunc("WorldMap_ToggleSizeUp", function()
Nenue@108 28 self:ApplySettings()
Nenue@108 29 end)
Nenue@108 30 hooksecurefunc("WorldMap_ToggleSizeDown", function()
Nenue@108 31 self:ApplySettings()
Nenue@108 32 end)
Nenue@108 33 print('OnLoad()')
Nenue@102 34 end
Nenue@102 35
Nenue@102 36 function Module:Setup()
Nenue@108 37 print('Setup()')
Nenue@102 38 self:ApplySettings()
Nenue@108 39
Nenue@108 40
Nenue@108 41 --if not InCombatLockdown() then
Nenue@108 42 --end
Nenue@102 43 end
Nenue@102 44
Nenue@108 45
Nenue@108 46
Nenue@108 47 db.CLTriggers.map = function(arg2)
Nenue@108 48 WorldPlanMapFrame:ApplySettings()
Nenue@108 49 if enableConfigLayers then
Nenue@108 50 enableConfigLayers = false
Nenue@108 51 db.print('Map Labels off')
Nenue@108 52 else
Nenue@108 53 enableConfigLayers = true
Nenue@108 54 db.print('Map Labels on')
Nenue@108 55 end
Nenue@108 56 for m, label in pairs(regionLabels) do
Nenue@108 57 print(m, label)
Nenue@108 58 label:SetShown(enableConfigLayers)
Nenue@108 59 end
Nenue@108 60 end
Nenue@108 61
Nenue@108 62 local BORDER_COLOR = {0,0,0,1}
Nenue@108 63 local BORDER_INSET = 0
Nenue@108 64 local BORDER_WIDTH = 2
Nenue@108 65 local BORDER_INSET_WIDTH = BORDER_INSET+BORDER_WIDTH
Nenue@108 66
Nenue@108 67 local GlobalRegions = {
Nenue@108 68 [WorldMapFrameLeftBorder] = {
Nenue@108 69 color = BORDER_COLOR,
Nenue@108 70 w = BORDER_WIDTH,
Nenue@108 71 [1] = {'TOPRIGHT', 'TOPLEFT', BORDER_INSET, 0},
Nenue@108 72 [2] = {'BOTTOMRIGHT', 'BOTTOMRIGHT', BORDER_INSET_WIDTH, -BORDER_INSET }
Nenue@108 73 },
Nenue@108 74 [WorldMapFrameRightBorder] = {
Nenue@108 75 color = BORDER_COLOR,
Nenue@108 76 w = BORDER_WIDTH,
Nenue@108 77 [1] = {'TOPLEFT', 'TOPRIGHT', BORDER_INSET,0 },
Nenue@108 78 [2] = {'BOTTOMRIGHT', 'BOTTOMRIGHT', BORDER_INSET_WIDTH, -BORDER_INSET_WIDTH}
Nenue@108 79 },
Nenue@108 80 [WorldMapFrameTopBorder] = {
Nenue@108 81 color = BORDER_COLOR,
Nenue@108 82 h = BORDER_WIDTH,
Nenue@108 83 [1] = {'BOTTOMRIGHT', 'TOPRIGHT', BORDER_INSET_WIDTH, 0},
Nenue@108 84 [2] = {'BOTTOMLEFT', 'TOPLEFT', -(BORDER_INSET_WIDTH), 0}
Nenue@108 85 },
Nenue@108 86 [WorldMapFrameBottomBorder] = {
Nenue@108 87 h = BORDER_WIDTH,
Nenue@108 88 color = BORDER_COLOR,
Nenue@108 89 [1] = {'TOPRIGHT', 'BOTTOMRIGHT', BORDER_INSET_WIDTH, -BORDER_INSET},
Nenue@108 90 [2] = {'TOPLEFT', 'BOTTOMLEFT', -BORDER_INSET_WIDTH, -BORDER_INSET}
Nenue@108 91 },
Nenue@108 92 [WorldMapFrameBg] = {
Nenue@108 93 color = BORDER_COLOR,
Nenue@108 94 [1] = {'TOPLEFT', 'TOPLEFT', 0, 0},
Nenue@108 95 [2] = {'BOTTOMRIGHT', 'BOTTOMRIGHT', 0, 0}
Nenue@108 96 },
Nenue@108 97 [WorldMapFrameNavBar] = {
Nenue@108 98 [1] = {'TOPLEFT', 'TOPLEFT', 3, 0, WorldMapFrameBg},
Nenue@108 99 [2] = {'TOPRIGHT', 'TOPRIGHT', -3, 0, WorldMapFrameBg}
Nenue@108 100 },
Nenue@108 101 [WorldMapTitleButton] = {
Nenue@108 102 [1] = {'TOPLEFT', 'TOPLEFT', 0, 0, WorldMapFrameNavBarOverlay},
Nenue@108 103 [2] = {'BOTTOMRIGHT', 'BOTTOMRIGHT', 0, 0, WorldMapFrameNavBarOverlay},
Nenue@108 104 },
Nenue@109 105 [WorldMapFrameTitleText] = { hidden = true },
Nenue@108 106 [WorldMapFrameBotLeftCorner] = { hidden = true},
Nenue@108 107 [WorldMapFramePortraitFrame] = { hidden = true},
Nenue@108 108 [WorldMapFramePortrait] = { hidden = true, },
Nenue@108 109 [WorldMapFrameTutorialButton] = { hidden = true, },
Nenue@108 110 [WorldMapFrameTopRightCorner] = {hidden = true},
Nenue@108 111 [WorldMapFrameTopLeftCorner] = {hidden = true},
Nenue@108 112 [WorldMapFrameBotLeftCorner] = {hidden = true},
Nenue@108 113 [WorldMapFrameBotRightCorner] = {hidden = true},
Nenue@108 114 [WorldMapFrameTopTileStreaks] = { hidden = true},
Nenue@108 115 [WorldMapFrame.BorderFrame.ButtonFrameEdge] = { hidden = true},
Nenue@108 116 [WW] = {hidden = true}
Nenue@108 117 }
Nenue@108 118
Nenue@108 119
Nenue@108 120
Nenue@102 121 function Module:ApplySettings()
Nenue@108 122 print('ApplySettings()')
Nenue@108 123
Nenue@108 124 local regions = {WorldMapFrame.BorderFrame:GetRegions() }
Nenue@108 125 local r,g,b,a = 1,0,0,1
Nenue@108 126 for name, region in pairs(regions) do
Nenue@108 127 local fs = regionLabels[region]
Nenue@108 128 if not fs then
Nenue@108 129 --print(name, type(region), tostring(region), region:GetName())
Nenue@108 130 fs = self:CreateFontString(nil, 'OVERLAY')
Nenue@108 131 fs:SetFontObject(WorldPlanFont)
Nenue@108 132 regionLabels[region] = fs
Nenue@108 133 fs:SetPoint('TOPLEFT', region, 'TOPLEFT')
Nenue@108 134 fs:SetShown(enableConfigLayers)
Nenue@108 135 fs:SetText(tostring(region:GetName()))
Nenue@108 136 end
Nenue@108 137
Nenue@108 138
Nenue@108 139 if region.SetColorTexture then
Nenue@108 140 region:SetColorTexture(r,g,b,a)
Nenue@108 141 print('===', region.GetName and region:GetName() or tostring(region), string.format("|cFF%2X%2X%2X%f,%f,%f", r*255, g*255, b*255, r,g,b))
Nenue@108 142 if g < 1 then
Nenue@108 143 g = g + 0.25
Nenue@108 144 elseif r > 0 then
Nenue@108 145 r = r - 0.25
Nenue@108 146 elseif b < 1 then
Nenue@108 147 b = b + .25
Nenue@108 148 end
Nenue@108 149 end
Nenue@108 150
Nenue@108 151 end
Nenue@108 152
Nenue@108 153 for region, data in pairs(GlobalRegions) do
Nenue@108 154 print(region, data)
Nenue@108 155 if data.hidden then
Nenue@108 156 region:SetShown(false)
Nenue@108 157 else
Nenue@108 158
Nenue@108 159 if data.w then
Nenue@108 160 print('width =', data.w)
Nenue@108 161 region:SetWidth(data.w)
Nenue@108 162 end
Nenue@108 163 if data.h then
Nenue@108 164 print('height =', data.h)
Nenue@108 165 region:SetHeight(data.h)
Nenue@108 166 end
Nenue@108 167 if data.color then
Nenue@108 168 print('color =', unpack(data.color))
Nenue@108 169 region:SetColorTexture(unpack(data.color))
Nenue@108 170 end
Nenue@108 171
Nenue@108 172 if #data >= 1 then
Nenue@108 173 region:ClearAllPoints()
Nenue@108 174 for i, point in ipairs(data) do
Nenue@108 175 print(i)
Nenue@108 176 if type(point) == 'table' then
Nenue@108 177 print('point +=', unpack(point))
Nenue@108 178 region:SetPoint(point[1], point[5] or region:GetParent(), point[2], point[3], point[4])
Nenue@108 179 end
Nenue@108 180 end
Nenue@108 181 end
Nenue@108 182 end
Nenue@108 183
Nenue@108 184 end
Nenue@102 185
Nenue@102 186 end