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 |