vanilla-wow-addons – Blame information for rev 1
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | office | 1 | --[[ |
2 | Clean Minimap |
||
3 | By joev (joev@jarhedz.com) |
||
4 | |||
5 | This mod provides total control over your minimap including moving it where you want, |
||
6 | hiding the Titlebar (and [X] button), the + and - zoom buttons and the Daytime/Clock button on the |
||
7 | Minimap and adding the three other compass points. |
||
8 | |||
9 | Westpointer functionality (Compass coordinates) is from "EastWest" by Silwyn |
||
10 | |||
11 | $Id: CleanMinimap.lua 75 2005-08-30 06:30:20Z joev $ |
||
12 | --]] |
||
13 | |||
14 | local CMM_VERSION = "2.7"; |
||
15 | |||
16 | local CMM_INFO = CMMSTRINGS.appName.." ".. |
||
17 | CMM_VERSION.." ".. |
||
18 | CMMSTRINGS.by.." ".. |
||
19 | CMMSTRINGS.author.name; |
||
20 | |||
21 | local CMM_DEBUG = 0; |
||
22 | |||
23 | BINDING_HEADER_CLEANMINIMAP = CMMSTRINGS.bindings.title; |
||
24 | BINDING_NAME_CLEANMINIMAPTOGGLE = CMMSTRINGS.bindings.toggleOnOff; |
||
25 | BINDING_NAME_CLEANMINIMAPOPTIONS = CMMSTRINGS.bindings.toggleOptions; |
||
26 | BINDING_NAME_CLEANMINIMAPINCREASEOPACITY = CMMSTRINGS.bindings.increaseOpacity; |
||
27 | BINDING_NAME_CLEANMINIMAPDECREASEOPACITY = CMMSTRINGS.bindings.decreaseOpacity; |
||
28 | BINDING_NAME_CLEANMINIMAPTOGGLESIZE = CMMSTRINGS.bindings.toggleSize; |
||
29 | |||
30 | |||
31 | local DEFAULT_SIZE= 192; |
||
32 | |||
33 | local RED = "|cffff0000"; |
||
34 | local GREEN = "|cff00ff00"; |
||
35 | local BLUE = "|cff0000ff"; |
||
36 | local MAGENTA = "|cffff00ff"; |
||
37 | local YELLOW = "|cffffff00"; |
||
38 | local CYAN = "|cff00ffff"; |
||
39 | local WHITE = "|cffffffff"; |
||
40 | |||
41 | -- Print Debug info |
||
42 | local function Print_Debug(s) |
||
43 | if (CMM_DEBUG == 1) then |
||
44 | DEFAULT_CHAT_FRAME:AddMessage(s, 1, 1, 0) |
||
45 | end |
||
46 | end |
||
47 | |||
48 | -- Print to chat |
||
49 | local function Print_Chat(s) |
||
50 | DEFAULT_CHAT_FRAME:AddMessage(s) |
||
51 | end |
||
52 | |||
53 | function Print_Chat_Table(t) |
||
54 | for key,value in t do |
||
55 | Print_Chat(value) |
||
56 | end |
||
57 | end |
||
58 | |||
59 | |||
60 | -- SavedVariables |
||
61 | CleanMinimapConfig = {}; |
||
62 | CleanMinimapConfig.perCharSettings=true; |
||
63 | |||
64 | -- Global for unitname |
||
65 | CleanMinimap_player = nil; |
||
66 | |||
67 | |||
68 | -- Set up namespace. |
||
69 | local CleanMinimap = {}; |
||
70 | |||
71 | CleanMinimap.player = nil; |
||
72 | CleanMinimap.variablesLoaded = false; |
||
73 | CleanMinimap.configLoaded = false; |
||
74 | CleanMinimap.reset = false; |
||
75 | CleanMinimap.sizing = false; |
||
76 | CleanMinimap.state = 2; |
||
77 | CleanMinimap.iconsPosition = {}; |
||
78 | CleanMinimap.iconsPosition["MinimapZoomIn"] = 209; |
||
79 | CleanMinimap.iconsPosition["MinimapZoomOut"] = 235; |
||
80 | CleanMinimap.iconsPosition["MiniMapMailFrame"] = 168; |
||
81 | CleanMinimap.iconsPosition["MiniMapTrackingFrame"] = 37; |
||
82 | CleanMinimap.iconsPosition["MiniMapBattlefieldFrame"] = 302; |
||
83 | CleanMinimap.iconsPosition["MiniMapMeetingStoneFrame"] = 189; |
||
84 | |||
85 | local CleanMinimap_OriginalOnClick; |
||
86 | |||
87 | -- Show slash command usage |
||
88 | function CleanMinimap.ShowUsage() |
||
89 | Print_Chat(CMM_INFO); |
||
90 | Print_Chat_Table(CMMSTRINGS.usage); |
||
91 | end |
||
92 | |||
93 | function CleanMinimap.ShowAuthor() |
||
94 | Print_Chat(CMMSTRINGS.appName.." v"..CMM_VERSION.." - "..CMMSTRINGS.authorInfo); |
||
95 | Print_Chat(CMMSTRINGS.author.name.." ("..CMMSTRINGS.author.email..")"); |
||
96 | Print_Chat(CMMSTRINGS.playsAs); |
||
97 | Print_Chat_Table(CMMSTRINGS.author.aliases); |
||
98 | end |
||
99 | |||
100 | function CleanMinimap.ShowCredits() |
||
101 | Print_Chat(CMMSTRINGS.appName.." v"..CMM_VERSION.." - "..CMMSTRINGS.creditsInfo.."\n\n"); |
||
102 | |||
103 | for key,value in CMMSTRINGS.credits do |
||
104 | Print_Chat(CYAN..value.task); |
||
105 | if (value.alias == "") then |
||
106 | Print_Chat(YELLOW..value.name.."\n\n"); |
||
107 | else |
||
108 | Print_Chat(YELLOW..value.name..CMMSTRINGS.aka..value.alias.."\n\n"); |
||
109 | end |
||
110 | end |
||
111 | end |
||
112 | |||
113 | |||
114 | -- Setup config information |
||
115 | function CleanMinimap.ConfigInit() |
||
116 | if (not CleanMinimap.configLoaded) then |
||
117 | if (not CleanMinimapConfig[CleanMinimap.player]) then |
||
118 | CleanMinimapConfig[CleanMinimap.player] = {}; |
||
119 | CleanMinimapConfig[CleanMinimap.player].on = true; |
||
120 | CleanMinimapConfig[CleanMinimap.player].alpha = 1.0; |
||
121 | CleanMinimapConfig[CleanMinimap.player].left = nil; |
||
122 | CleanMinimapConfig[CleanMinimap.player].bottom = nil; |
||
123 | CleanMinimapConfig[CleanMinimap.player].scale = nil; |
||
124 | CleanMinimapConfig[CleanMinimap.player].origtop = nil; |
||
125 | CleanMinimapConfig[CleanMinimap.player].origright = nil; |
||
126 | CleanMinimapConfig[CleanMinimap.player].origleft = nil; |
||
127 | CleanMinimapConfig[CleanMinimap.player].origbottom = nil; |
||
128 | CleanMinimapConfig[CleanMinimap.player].origscale = nil; |
||
129 | CleanMinimapConfig[CleanMinimap.player].clock = false; |
||
130 | CleanMinimapConfig[CleanMinimap.player].title = false; |
||
131 | CleanMinimapConfig[CleanMinimap.player].zoom = false; |
||
132 | CleanMinimapConfig[CleanMinimap.player].nsew = false; |
||
133 | CleanMinimapConfig[CleanMinimap.player].showButton = true; |
||
134 | CleanMinimapConfig[CleanMinimap.player].buttonPos = 90; |
||
135 | CleanMinimapConfig[CleanMinimap.player].smallScale = 0.50; |
||
136 | CleanMinimapConfig[CleanMinimap.player].largeScale = 2.0; |
||
137 | CleanMinimapConfig[CleanMinimap.player].modifierKey = "SHIFT"; |
||
138 | CleanMinimapConfig[CleanMinimap.player].iconsPosition = {}; |
||
139 | CleanMinimapConfig[CleanMinimap.player].iconsPosition["MinimapZoomIn"] = CleanMinimap.iconsPosition["MinimapZoomIn"]; |
||
140 | CleanMinimapConfig[CleanMinimap.player].iconsPosition["MinimapZoomOut"] = CleanMinimap.iconsPosition["MinimapZoomOut"]; |
||
141 | CleanMinimapConfig[CleanMinimap.player].iconsPosition["MiniMapMailFrame"] = CleanMinimap.iconsPosition["MiniMapMailFrame"]; |
||
142 | CleanMinimapConfig[CleanMinimap.player].iconsPosition["MiniMapTrackingFrame"] = CleanMinimap.iconsPosition["MiniMapTrackingFrame"]; |
||
143 | CleanMinimapConfig[CleanMinimap.player].iconsPosition["MiniMapBattlefieldFrame"] = CleanMinimap.iconsPosition["MiniMapBattlefieldFrame"]; |
||
144 | CleanMinimapConfig[CleanMinimap.player].iconsPosition["MiniMapMeetingStoneFrame"] = CleanMinimap.iconsPosition["MiniMapMeetingStoneFrame"]; |
||
145 | CleanMinimapConfig[CleanMinimap.player].version = tonumber(CMM_VERSION); |
||
146 | else |
||
147 | if (not CleanMinimapConfig[CleanMinimap.player].version) then |
||
148 | CleanMinimapConfig[CleanMinimap.player].version = 1; |
||
149 | end |
||
150 | if (CleanMinimapConfig[CleanMinimap.player].version < tonumber(CMM_VERSION)) then |
||
151 | -- From here on, we only need to add new things per version here. |
||
152 | CleanMinimapConfig[CleanMinimap.player].version = tonumber(CMM_VERSION); |
||
153 | end |
||
154 | end |
||
155 | CleanMinimap.configLoaded = true; |
||
156 | Print_Debug("Finished Config Loading"); |
||
157 | |||
158 | CleanMinimap.SetOn(CleanMinimapConfig[CleanMinimap.player].on); |
||
159 | end |
||
160 | end |
||
161 | |||
162 | function CleanMinimap.Setup() |
||
163 | if (CleanMinimap.player ~= nil and CleanMinimap.IsOn() and not CleanMinimap.reset) then |
||
164 | Print_Debug("Setting CMM start position"); |
||
165 | CleanMinimap.SetClock(CleanMinimapConfig[CleanMinimap.player].clock,CleanMinimapConfig[CleanMinimap.player].alpha); |
||
166 | CleanMinimap.SetTitle(CleanMinimapConfig[CleanMinimap.player].title,CleanMinimapConfig[CleanMinimap.player].alpha); |
||
167 | CleanMinimap.SetZoom(CleanMinimapConfig[CleanMinimap.player].zoom); |
||
168 | CleanMinimap.SetNsew(CleanMinimapConfig[CleanMinimap.player].nsew); |
||
169 | CleanMinimap.SetPosition(CleanMinimapConfig[CleanMinimap.player].top,CleanMinimapConfig[CleanMinimap.player].right); |
||
170 | CleanMinimap.SetMapScale(CleanMinimapConfig[CleanMinimap.player].scale); |
||
171 | if (CleanMinimapConfig[CleanMinimap.player].showButton) then |
||
172 | CleanMinimapButton_UpdatePosition(); |
||
173 | else |
||
174 | CleanMinimapButtonFrame:Hide(); |
||
175 | end |
||
176 | CleanMinimap.InitIconPositions(true); |
||
177 | else |
||
178 | Print_Debug("Setting CMM default position"); |
||
179 | CleanMinimap.SetClock(true,1.0); |
||
180 | CleanMinimap.SetTitle(true,1.0); |
||
181 | CleanMinimap.SetZoom(true); |
||
182 | CleanMinimap.SetNsew(false); |
||
183 | CleanMinimap.SetPosition(CleanMinimapConfig[CleanMinimap.player].origtop,CleanMinimapConfig[CleanMinimap.player].origright); |
||
184 | CleanMinimap.SetMapScale(CleanMinimapConfig[CleanMinimap.player].origscale); |
||
185 | CleanMinimap.InitIconPositions(false); |
||
186 | end |
||
187 | end |
||
188 | |||
189 | function CleanMinimap.InitIconPositions(manage) |
||
190 | if (manage) then |
||
191 | CleanMinimap.UpdateIconPosition("MinimapZoomIn",CleanMinimapConfig[CleanMinimap.player].iconsPosition["MinimapZoomIn"]); |
||
192 | CleanMinimap.UpdateIconPosition("MinimapZoomOut",CleanMinimapConfig[CleanMinimap.player].iconsPosition["MinimapZoomOut"]); |
||
193 | CleanMinimap.UpdateIconPosition("MiniMapMailFrame",CleanMinimapConfig[CleanMinimap.player].iconsPosition["MiniMapMailFrame"]); |
||
194 | CleanMinimap.UpdateIconPosition("MiniMapTrackingFrame",CleanMinimapConfig[CleanMinimap.player].iconsPosition["MiniMapTrackingFrame"]); |
||
195 | CleanMinimap.UpdateIconPosition("MiniMapBattlefieldFrame",CleanMinimapConfig[CleanMinimap.player].iconsPosition["MiniMapBattlefieldFrame"]); |
||
196 | CleanMinimap.UpdateIconPosition("MiniMapMeetingStoneFrame",CleanMinimapConfig[CleanMinimap.player].iconsPosition["MiniMapMeetingStoneFrame"]); |
||
197 | else |
||
198 | CleanMinimap.UpdateIconPosition("MinimapZoomIn",CleanMinimap.iconsPosition["MinimapZoomIn"]); |
||
199 | CleanMinimap.UpdateIconPosition("MinimapZoomOut",CleanMinimap.iconsPosition["MinimapZoomOut"]); |
||
200 | CleanMinimap.UpdateIconPosition("MiniMapMailFrame",CleanMinimap.iconsPosition["MiniMapMailFrame"]); |
||
201 | CleanMinimap.UpdateIconPosition("MiniMapTrackingFrame",CleanMinimap.iconsPosition["MiniMapTrackingFrame"]); |
||
202 | CleanMinimap.UpdateIconPosition("MiniMapBattlefieldFrame",CleanMinimap.iconsPosition["MiniMapBattlefieldFrame"]); |
||
203 | CleanMinimap.UpdateIconPosition("MiniMapMeetingStoneFrame",CleanMinimap.iconsPosition["MiniMapMeetingStoneFrame"]); |
||
204 | end |
||
205 | end |
||
206 | |||
207 | |||
208 | function CleanMinimap.UpdateIconPosition(frameName, position) |
||
209 | getglobal(frameName):ClearAllPoints(); |
||
210 | getglobal(frameName):SetPoint( |
||
211 | "TOPLEFT", |
||
212 | "Minimap", |
||
213 | "TOPLEFT", |
||
214 | 52 - (80 * cos(position)), |
||
215 | (80 * sin(position)) - 52 |
||
216 | ); |
||
217 | end |
||
218 | |||
219 | function CleanMinimap.doZoomIn() |
||
220 | if (Minimap:GetZoom() == 5) then |
||
221 | Minimap:SetZoom(5); |
||
222 | else |
||
223 | Minimap:SetZoom(Minimap:GetZoom() + 1); |
||
224 | end |
||
225 | end |
||
226 | |||
227 | function CleanMinimap.doZoomOut() |
||
228 | if (Minimap:GetZoom() == 0) then |
||
229 | Minimap:SetZoom(0); |
||
230 | else |
||
231 | Minimap:SetZoom(Minimap:GetZoom() - 1); |
||
232 | end |
||
233 | end |
||
234 | |||
235 | function CleanMinimap.doZoomAlphaIn() |
||
236 | CleanMinimap.SetAlpha((CleanMinimapConfig[CleanMinimap.player].alpha*100) - 5); |
||
237 | end |
||
238 | |||
239 | function CleanMinimap.doZoomAlphaOut() |
||
240 | CleanMinimap.SetAlpha((CleanMinimapConfig[CleanMinimap.player].alpha*100) + 5); |
||
241 | end |
||
242 | |||
243 | function CleanMinimap.IsOn() |
||
244 | if (CleanMinimap.reset) then |
||
245 | return true; -- Always return true on a reset. |
||
246 | elseif (MinimapCluster:IsVisible()) then |
||
247 | if (CleanMinimap.player) then |
||
248 | return CleanMinimapConfig[CleanMinimap.player].on; |
||
249 | else |
||
250 | return false; |
||
251 | end |
||
252 | else |
||
253 | return false; |
||
254 | end |
||
255 | end |
||
256 | |||
257 | function CleanMinimap.SetOn(val) |
||
258 | CleanMinimapConfig[CleanMinimap.player].on = val; |
||
259 | if (not val) then |
||
260 | CleanMinimap.reset = true; |
||
261 | end; |
||
262 | CleanMinimap.Setup(); |
||
263 | CleanMinimap.reset = false; |
||
264 | end |
||
265 | |||
266 | function CleanMinimap.SetPosition(top,right) |
||
267 | if (CleanMinimap.IsOn()) then |
||
268 | if (not CleanMinimap.reset) then |
||
269 | CleanMinimapConfig[CleanMinimap.player].top = top; |
||
270 | CleanMinimapConfig[CleanMinimap.player].right= right; |
||
271 | end |
||
272 | if (top ~= nil and right ~= nil) then |
||
273 | Print_Debug("Setting top="..CleanMinimapConfig[CleanMinimap.player].top..",right="..CleanMinimapConfig[CleanMinimap.player].right); |
||
274 | MinimapCluster:ClearAllPoints(); |
||
275 | MinimapCluster:SetPoint("TOPRIGHT", "UIParent", "TOPRIGHT",right,top); |
||
276 | end |
||
277 | end |
||
278 | end |
||
279 | |||
280 | function CleanMinimap.SetMapScale(scale) |
||
281 | if (CleanMinimap.IsOn()) then |
||
282 | if (not CleanMinimap.reset) then |
||
283 | CleanMinimapConfig[CleanMinimap.player].scale = scale; |
||
284 | end |
||
285 | |||
286 | if (scale ~= nil) then |
||
287 | Print_Debug("Setting scale to: "..scale); |
||
288 | MinimapCluster:SetScale(scale); |
||
289 | end |
||
290 | end |
||
291 | end |
||
292 | |||
293 | function CleanMinimap.SetScale(scale) |
||
294 | -- sets the scale without saving it |
||
295 | if (CleanMinimap.IsOn()) then |
||
296 | if (scale ~= nil) then |
||
297 | Print_Debug("Setting scale to: "..scale); |
||
298 | MinimapCluster:SetScale(scale*CleanMinimapConfig[CleanMinimap.player].scale); |
||
299 | Minimap:SetScale(scale*CleanMinimapConfig[CleanMinimap.player].scale); |
||
300 | end |
||
301 | end |
||
302 | end |
||
303 | |||
304 | function CleanMinimap.SetClock(val,alpha) |
||
305 | if (CleanMinimap.IsOn()) then |
||
306 | if (alpha == nil) then |
||
307 | alpha = CleanMinimapConfig[CleanMinimap.player].alpha; |
||
308 | end |
||
309 | if (not CleanMinimap.reset) then |
||
310 | CleanMinimapConfig[CleanMinimap.player].clock = val; |
||
311 | end; |
||
312 | if (val) then |
||
313 | GameTimeFrame:Show(); |
||
314 | -- This needs alpha to be set because it's anchored to the cluster, not the minimap itself. |
||
315 | GameTimeFrame:SetAlpha(alpha); |
||
316 | else |
||
317 | GameTimeFrame:Hide(); |
||
318 | end |
||
319 | end |
||
320 | end |
||
321 | |||
322 | function CleanMinimap.ToggleClock() |
||
323 | if (CleanMinimapConfig[CleanMinimap.player].clock) then |
||
324 | CleanMinimap.SetClock(false,nil); |
||
325 | else |
||
326 | CleanMinimap.SetClock(true,nil); |
||
327 | end |
||
328 | |||
329 | end |
||
330 | |||
331 | function CleanMinimap.SetTitle(val,alpha) |
||
332 | if (CleanMinimap.IsOn()) then |
||
333 | if (alpha == nil) then |
||
334 | alpha = CleanMinimapConfig[CleanMinimap.player].alpha; |
||
335 | end |
||
336 | if (not CleanMinimap.reset) then |
||
337 | CleanMinimapConfig[CleanMinimap.player].title = val; |
||
338 | end |
||
339 | if (val) then |
||
340 | MinimapCluster:SetAlpha(alpha); |
||
341 | MinimapToggleButton:Enable(); |
||
342 | MinimapZoneTextButton:Enable(); |
||
343 | GameTimeFrame:SetAlpha(alpha); |
||
344 | Minimap:SetAlpha(alpha); |
||
345 | else |
||
346 | MinimapCluster:SetAlpha(0.0); |
||
347 | MinimapToggleButton:Disable(); |
||
348 | MinimapZoneTextButton:Disable(); |
||
349 | GameTimeFrame:SetAlpha(alpha); |
||
350 | Minimap:SetAlpha(alpha); |
||
351 | end |
||
352 | end |
||
353 | end |
||
354 | |||
355 | function CleanMinimap.ToggleTitle() |
||
356 | if (CleanMinimapConfig[CleanMinimap.player].title) then |
||
357 | CleanMinimap.SetTitle(false,nil); |
||
358 | else |
||
359 | CleanMinimap.SetTitle(true,nil); |
||
360 | end |
||
361 | end |
||
362 | |||
363 | function CleanMinimap.SetZoom(val) |
||
364 | if (CleanMinimap.IsOn()) then |
||
365 | if (not CleanMinimap.reset) then |
||
366 | CleanMinimapConfig[CleanMinimap.player].zoom = val; |
||
367 | end |
||
368 | if (val) then |
||
369 | MinimapZoomIn:Show(); |
||
370 | MinimapZoomOut:Show(); |
||
371 | else |
||
372 | MinimapZoomIn:Hide(); |
||
373 | MinimapZoomOut:Hide(); |
||
374 | end |
||
375 | end |
||
376 | end |
||
377 | |||
378 | function CleanMinimap.ToggleZoom() |
||
379 | if (CleanMinimapConfig[CleanMinimap.player].zoom) then |
||
380 | CleanMinimap.SetZoom(false); |
||
381 | else |
||
382 | CleanMinimap.SetZoom(true); |
||
383 | end |
||
384 | end |
||
385 | |||
386 | function CleanMinimap.SetNsew(val) |
||
387 | if (CleanMinimap.IsOn()) then |
||
388 | if (not CleanMinimap.reset) then |
||
389 | CleanMinimapConfig[CleanMinimap.player].nsew = val |
||
390 | end |
||
391 | if (val) then |
||
392 | WestPointer:Show(); |
||
393 | else |
||
394 | WestPointer:Hide(); |
||
395 | end |
||
396 | end |
||
397 | end |
||
398 | |||
399 | function CleanMinimap.ToggleNsew() |
||
400 | if (CleanMinimapConfig[CleanMinimap.player].nsew) then |
||
401 | CleanMinimap.SetNsew(false); |
||
402 | else |
||
403 | CleanMinimap.SetNsew(true); |
||
404 | end |
||
405 | end |
||
406 | |||
407 | function CleanMinimap.SetAlpha(val, silent) |
||
408 | if (CleanMinimap.IsOn()) then |
||
409 | if (val ~= nil) then |
||
410 | if (val < 1) then |
||
411 | val = 1; |
||
412 | end |
||
413 | if (val > 100) then |
||
414 | val = 100; |
||
415 | end |
||
416 | CleanMinimapConfig[CleanMinimap.player].alpha = val/100; |
||
417 | Minimap:SetAlpha(val/100); |
||
418 | --CleanMinimap.Setup(); |
||
419 | end |
||
420 | end |
||
421 | end |
||
422 | |||
423 | function CleanMinimap.SetLargeSize(val, silent) |
||
424 | if (CleanMinimap.IsOn()) then |
||
425 | if (val ~= nil) then |
||
426 | if (val < 100) then |
||
427 | val = 100; |
||
428 | end |
||
429 | if (val > 300) then |
||
430 | val = 300; |
||
431 | end |
||
432 | CleanMinimapConfig[CleanMinimap.player].largeScale = val/100; |
||
433 | end |
||
434 | end |
||
435 | end |
||
436 | |||
437 | function CleanMinimap.SetSmallSize(val, silent) |
||
438 | if (CleanMinimap.IsOn()) then |
||
439 | if (val ~= nil) then |
||
440 | if (val < 50) then |
||
441 | val = 50; |
||
442 | end |
||
443 | if (val > 100) then |
||
444 | val = 100; |
||
445 | end |
||
446 | CleanMinimapConfig[CleanMinimap.player].smallScale = val/100; |
||
447 | end |
||
448 | end |
||
449 | end |
||
450 | |||
451 | function CleanMinimap.ResetAll() |
||
452 | Print_Debug("Resetting"); |
||
453 | Print_Debug(CleanMinimap.player); |
||
454 | Print_Debug(CleanMinimapConfig[CleanMinimap.player].origscale); |
||
455 | CleanMinimap.SetMapScale(CleanMinimapConfig[CleanMinimap.player].origscale); |
||
456 | CleanMinimap.SetPosition(CleanMinimapConfig[CleanMinimap.player].origtop, CleanMinimapConfig[CleanMinimap.player].origright); |
||
457 | end |
||
458 | |||
459 | function CleanMinimap.ModifierKeyIsDown() |
||
460 | local retval = false; |
||
461 | if ((IsShiftKeyDown() and CleanMinimapConfig[CleanMinimap.player].modifierKey == "SHIFT") or |
||
462 | (IsControlKeyDown() and CleanMinimapConfig[CleanMinimap.player].modifierKey == "CTRL") or |
||
463 | (IsAltKeyDown() and CleanMinimapConfig[CleanMinimap.player].modifierKey == "ALT")) then |
||
464 | retval = true; |
||
465 | end |
||
466 | return retval; |
||
467 | end |
||
468 | |||
469 | --[[ Event handlers |
||
470 | These functions are global and are called by the UI |
||
471 | --]] |
||
472 | |||
473 | function CleanMinimap_OnLoad() |
||
474 | |||
475 | this:RegisterEvent("VARIABLES_LOADED"); |
||
476 | this:RegisterEvent("PLAYER_ENTERING_WORLD"); |
||
477 | |||
478 | -- Slash Commands |
||
479 | SlashCmdList["CMM"] = CleanMinimap_Slash; |
||
480 | SLASH_CMM1 = "/cleanminimap"; |
||
481 | SLASH_CMM2 = "/cmm"; |
||
482 | |||
483 | end |
||
484 | |||
485 | |||
486 | function CleanMinimap_OnEvent() |
||
487 | if (event == "VARIABLES_LOADED") then |
||
488 | -- Hook the Minimap_OnClick function |
||
489 | CleanMinimap_OriginalOnClick = Minimap_OnClick; |
||
490 | Minimap_OnClick = CleanMinimap_OnClick; |
||
491 | |||
492 | -- Init Config |
||
493 | CleanMinimap.variablesLoaded = true; |
||
494 | Print_Debug("Variables Loaded"); |
||
495 | if (CleanMinimap.player) then |
||
496 | CleanMinimap.ConfigInit(); |
||
497 | end |
||
498 | -- Add myAddOns support |
||
499 | if myAddOnsList then |
||
500 | myAddOnsList.CleanMinimap = {name = "Clean Minimap", description = CMMSTRINGS.myAddonsDescription, version = CMM_VERSION, category = MYADDONS_CATEGORY_MAP, frame = "CleanMinimap", optionsframe = "CleanMinimapOptionsFrame"}; |
||
501 | end |
||
502 | if ButtonHole then |
||
503 | ButtonHole.application.RegisterMod({id="CLEANMINIMAP", name="Clean Minimap", tooltip=CMMSTRINGS.myAddonsDescription, buttonFrame="CleanMinimapButtonFrame", updateFunction="CleanMinimapButton_UpdatePosition"}); |
||
504 | end |
||
505 | elseif( event == "PLAYER_ENTERING_WORLD" and not CleanMinimap.player) then |
||
506 | local name = UnitName("player"); |
||
507 | if (CleanMinimapConfig.perCharSettings == nil) then |
||
508 | CleanMinimapConfig.perCharSettings = false; |
||
509 | end |
||
510 | if (CleanMinimapConfig.perCharSettings) then |
||
511 | Print_Debug("Setting name to default"); |
||
512 | name = "default"; |
||
513 | end |
||
514 | if( name and name ~= UNKNOWNOBJECT ) then |
||
515 | CleanMinimap.player = name; |
||
516 | CleanMinimap_player = name; |
||
517 | Print_Debug("Unit Name: player = "..CleanMinimap.player); |
||
518 | if (CleanMinimap.variablesLoaded) then |
||
519 | CleanMinimap.ConfigInit(); |
||
520 | end |
||
521 | end |
||
522 | end |
||
523 | end |
||
524 | |||
525 | function CleanMinimap_OnMouseWheel(value) |
||
526 | if (CleanMinimap.IsOn()) then |
||
527 | if (IsShiftKeyDown()) then |
||
528 | if ( value > 0 ) then CleanMinimap.doZoomAlphaIn() |
||
529 | elseif ( value < 0 ) then CleanMinimap.doZoomAlphaOut() |
||
530 | end |
||
531 | else |
||
532 | if ( value > 0 ) then CleanMinimap.doZoomIn() |
||
533 | elseif ( value < 0 ) then CleanMinimap.doZoomOut() |
||
534 | end |
||
535 | end |
||
536 | end |
||
537 | end |
||
538 | |||
539 | function CleanMinimap_StartMoving() |
||
540 | if (CleanMinimap.IsOn()) then |
||
541 | if (CleanMinimapConfig[CleanMinimap.player].origright == nil) then |
||
542 | -- This is the first move therefore record where we started from. |
||
543 | local right = MinimapCluster:GetRight() - UIParent:GetRight(); |
||
544 | local top = MinimapCluster:GetTop() - UIParent:GetTop(); |
||
545 | if (right > 0 ) then |
||
546 | right = 0; |
||
547 | end |
||
548 | if (top > 0 ) then |
||
549 | top = 0; |
||
550 | end |
||
551 | |||
552 | CleanMinimapConfig[CleanMinimap.player].origright = right; |
||
553 | |||
554 | CleanMinimapConfig[CleanMinimap.player].origtop = top; |
||
555 | CleanMinimapConfig[CleanMinimap.player].origscale = MinimapCluster:GetScale(); |
||
556 | |||
557 | end |
||
558 | MinimapCluster:SetMovable(true); |
||
559 | MinimapCluster:SetResizable(true); |
||
560 | CleanMinimapMover_Attach(CleanMinimapMoverFrame,MinimapCluster); |
||
561 | end |
||
562 | end |
||
563 | |||
564 | function CleanMinimap_StopMoving() |
||
565 | if (CleanMinimap.IsOn()) then |
||
566 | MinimapCluster:SetMovable(false); |
||
567 | MinimapCluster:SetResizable(false); |
||
568 | local right = MinimapCluster:GetRight() - UIParent:GetRight(); |
||
569 | local top = MinimapCluster:GetTop() - UIParent:GetTop(); |
||
570 | Print_Debug("top ="..top..", right="..right); |
||
571 | if (right > 0 ) then |
||
572 | right = 0; |
||
573 | end |
||
574 | if (top > 0 ) then |
||
575 | top = 0; |
||
576 | end |
||
577 | |||
578 | CleanMinimap.SetPosition(top,right); |
||
579 | CleanMinimap.SetMapScale(MinimapCluster:GetScale()); |
||
580 | end |
||
581 | end |
||
582 | |||
583 | function CleanMinimap_OnClick(button) |
||
584 | if (CleanMinimap.ModifierKeyIsDown()) then |
||
585 | CleanMinimap_StartMoving(); |
||
586 | else |
||
587 | CleanMinimap_OriginalOnClick(button); |
||
588 | end |
||
589 | end |
||
590 | ---------------------------------------------------------------------------------------------------------------------------------- |
||
591 | --[[ External functions |
||
592 | These functions are global and can be called by other mods |
||
593 | --]] |
||
594 | |||
595 | function CleanMinimap_GetAlpha() |
||
596 | if (CleanMinimap.IsOn()) then |
||
597 | return CleanMinimapConfig[CleanMinimap.player].alpha; |
||
598 | else |
||
599 | return MinimapCluster:GetAlpha(); |
||
600 | end |
||
601 | end |
||
602 | |||
603 | function CleanMinimap_GetClock() |
||
604 | if (CleanMinimap.IsOn()) then |
||
605 | return CleanMinimapConfig[CleanMinimap.player].clock; |
||
606 | else |
||
607 | return GameTimeFrame:IsVisible(); |
||
608 | end |
||
609 | end |
||
610 | |||
611 | function CleanMinimap_GetZoom() |
||
612 | if (CleanMinimap.IsOn()) then |
||
613 | return CleanMinimapConfig[CleanMinimap.player].zoom; |
||
614 | else |
||
615 | return MinimapZoomIn:IsVisible(); |
||
616 | end |
||
617 | end |
||
618 | |||
619 | function CleanMinimap_GetTitle() |
||
620 | if (CleanMinimap.IsOn()) then |
||
621 | return CleanMinimapConfig[CleanMinimap.player].title; |
||
622 | else |
||
623 | return MinimapCluster:IsVisible(); |
||
624 | end |
||
625 | end |
||
626 | |||
627 | function CleanMinimap_GetNsew() |
||
628 | if (CleanMinimap.IsOn()) then |
||
629 | return CleanMinimapConfig[CleanMinimap.player].nsew; |
||
630 | else |
||
631 | return WestPointer:IsVisible(); |
||
632 | end |
||
633 | end |
||
634 | |||
635 | function CleanMinimap_IsOn() |
||
636 | return CleanMinimap.IsOn(); |
||
637 | end |
||
638 | |||
639 | function CleanMinimap_Toggle() |
||
640 | if (CleanMinimap.IsOn()) then |
||
641 | CleanMinimap.SetOn(false); |
||
642 | else |
||
643 | CleanMinimap.SetOn(true); |
||
644 | end |
||
645 | end |
||
646 | |||
647 | function CleanMinimap_ToggleClock() |
||
648 | CleanMinimap.ToggleClock(); |
||
649 | end |
||
650 | |||
651 | function CleanMinimap_ToggleZoom() |
||
652 | CleanMinimap.ToggleZoom(); |
||
653 | end |
||
654 | function CleanMinimap_ToggleNsew() |
||
655 | CleanMinimap.ToggleNsew(); |
||
656 | end |
||
657 | function CleanMinimap_ToggleTitle() |
||
658 | CleanMinimap.ToggleTitle(); |
||
659 | end |
||
660 | |||
661 | -- Handle slash commands |
||
662 | function CleanMinimap_Slash(msg) |
||
663 | if msg == nil or msg == "" then |
||
664 | msg = "help"; |
||
665 | end |
||
666 | msg = strlower(msg); |
||
667 | local args = {n=0} |
||
668 | local function helper(word) table.insert(args, word) end |
||
669 | string.gsub(msg, "[_\.%w]+", helper); |
||
670 | if args[1] == 'on' then |
||
671 | CleanMinimap.SetOn(true); |
||
672 | elseif args[1] == 'off' then |
||
673 | CleanMinimap.SetOn(false); |
||
674 | elseif args[1] == 'reset' then |
||
675 | CleanMinimap.ResetAll(); |
||
676 | elseif args[1] == 'author' then |
||
677 | CleanMinimap.ShowAuthor(); |
||
678 | elseif args[1] == 'credits' then |
||
679 | CleanMinimap.ShowCredits(); |
||
680 | elseif args[1] == 'config' then |
||
681 | CleanMinimapOptions_Toggle(); |
||
682 | else |
||
683 | CleanMinimap.ShowUsage(); |
||
684 | end |
||
685 | end |
||
686 | |||
687 | function CleanMinimap_IncreaseOpacity() |
||
688 | CleanMinimap.SetAlpha(CleanMinimapConfig[CleanMinimap.player].alpha*100 + 10) |
||
689 | end |
||
690 | |||
691 | function CleanMinimap_DecreaseOpacity() |
||
692 | CleanMinimap.SetAlpha(CleanMinimapConfig[CleanMinimap.player].alpha*100 - 10) |
||
693 | end |
||
694 | |||
695 | function CleanMinimap_SilentSetAlpha(val) |
||
696 | if (val ~= nil) then |
||
697 | CleanMinimap.SetAlpha(val,true); |
||
698 | end |
||
699 | end |
||
700 | function CleanMinimap_SilentSetLargeSize(val) |
||
701 | if (val ~= nil) then |
||
702 | CleanMinimap.SetLargeSize(val,true); |
||
703 | end |
||
704 | end |
||
705 | function CleanMinimap_SilentSetSmallSize(val) |
||
706 | if (val ~= nil) then |
||
707 | CleanMinimap.SetSmallSize(val,true); |
||
708 | end |
||
709 | end |
||
710 | |||
711 | function CleanMinimap_ToggleSize() |
||
712 | |||
713 | CleanMinimap.state = CleanMinimap.state + 1; |
||
714 | if (CleanMinimap.state > 3) then |
||
715 | CleanMinimap.state = 1; |
||
716 | end |
||
717 | Print_Debug("Map state = "..CleanMinimap.state); |
||
718 | |||
719 | if (CleanMinimap.state == 1) then |
||
720 | CleanMinimap.SetScale(CleanMinimapConfig[CleanMinimap.player].smallScale); |
||
721 | elseif (CleanMinimap.state == 3) then |
||
722 | CleanMinimap.SetScale(CleanMinimapConfig[CleanMinimap.player].largeScale); |
||
723 | else |
||
724 | Print_Debug("Map state set to default"); |
||
725 | CleanMinimap.SetScale(1); |
||
726 | end |
||
727 | -- reset position |
||
728 | CleanMinimap.SetPosition(CleanMinimapConfig[CleanMinimap.player].top,CleanMinimapConfig[CleanMinimap.player].right); |
||
729 | end |
||
730 | |||
731 | function CleanMinimap_SetModifier(keyname) |
||
732 | CleanMinimapConfig[CleanMinimap.player].modifierKey = keyname; |
||
733 | end |
||
734 | |||
735 | function CleanMinimap_SetOneConfig(toggle) |
||
736 | if (toggle) then |
||
737 | CleanMinimapConfig.perCharSettings = true; |
||
738 | CleanMinimap.player = "default"; |
||
739 | CleanMinimap_player = "default"; |
||
740 | else |
||
741 | CleanMinimapConfig.perCharSettings = false; |
||
742 | CleanMinimap.player = UnitName("player"); |
||
743 | CleanMinimap_player = UnitName("player"); |
||
744 | end |
||
745 | CleanMinimap.configLoaded = false; |
||
746 | CleanMinimap.ConfigInit(); |
||
747 | if (CleanMinimapOptionsFrame:IsVisible()) then |
||
748 | CleanMinimapOptions_Refresh(); |
||
749 | end |
||
750 | if (CleanMinimapButtonFrame:IsVisible()) then |
||
751 | CleanMinimapButton_UpdatePosition(); |
||
752 | end |
||
753 | end |
||
754 | |||
755 | function CleanMinimap_SetIconPosition(frameName, position) |
||
756 | CleanMinimapConfig[CleanMinimap.player].iconsPosition[frameName] = position; |
||
757 | CleanMinimap.UpdateIconPosition(frameName, position); |
||
758 | end |