vanilla-wow-addons – Blame information for rev 1
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | office | 1 | simpleMinimap_Coords = simpleMinimap:NewModule("coords") |
2 | local L = AceLibrary("AceLocale-2.1"):GetInstance("simpleMinimap_Coords", true) |
||
3 | -- |
||
4 | function simpleMinimap_Coords:OnInitialize() |
||
5 | self.db = simpleMinimap:AcquireDBNamespace("coords") |
||
6 | self.positions = { |
||
7 | { "BOTTOM", "BOTTOM" }, |
||
8 | { "TOP", "BOTTOM" }, |
||
9 | { "TOP", "TOP" }, |
||
10 | { "BOTTOM", "TOP" }, |
||
11 | { "TOPLEFT", "TOPLEFT" }, |
||
12 | { "BOTTOMLEFT", "BOTTOMLEFT" }, |
||
13 | { "TOPRIGHT", "TOPRIGHT" }, |
||
14 | { "BOTTOMRIGHT", "BOTTOMRIGHT" } |
||
15 | } |
||
16 | |||
17 | self.defaults = { enabled=true, position=6, backdrop=true, border=true, scale=0.9, alpha=0.8, fontR=0.8, fontG=0.8, fontB=0.6, time=1 } |
||
18 | self.options = { |
||
19 | type="group", name=L.coords, desc=L.coords_desc, |
||
20 | args={ |
||
21 | title={ |
||
22 | type="header", order=1, name="simpleMinimap |cFFFFFFCC"..L.coords |
||
23 | }, |
||
24 | spacer1={ |
||
25 | type="header", order=2 |
||
26 | }, |
||
27 | enabled={ |
||
28 | type="toggle", order=3, name=L.enabled, desc=L.enabled_desc, |
||
29 | get=function() return(self.db.profile.enabled) end, |
||
30 | set=function(x) self.db.profile.enabled=x simpleMinimap:ToggleModuleActive(self,x) end |
||
31 | }, |
||
32 | spacer2={ |
||
33 | type="header", order=4, name="---" |
||
34 | }, |
||
35 | alpha={ |
||
36 | type="range", order=10, name=L.alpha, desc=L.alpha_desc, |
||
37 | min=0, max=1, step=0.05, isPercent=true, |
||
38 | get=function() return(self.db.profile.alpha) end, |
||
39 | set=function(x) self.db.profile.alpha=x self:UpdateScreen() end |
||
40 | }, |
||
41 | backdrop={ |
||
42 | type="toggle", order=11, name=L.backdrop, desc=L.backdrop_desc, |
||
43 | get=function() return(self.db.profile.backdrop) end, |
||
44 | set=function(x) self.db.profile.backdrop=x self:UpdateScreen() end |
||
45 | }, |
||
46 | border={ |
||
47 | type="toggle", order=12, name=L.border, desc=L.border_desc, |
||
48 | get=function() return(self.db.profile.border) end, |
||
49 | set=function(x) self.db.profile.border=x self:UpdateScreen() end |
||
50 | }, |
||
51 | fontColor={ |
||
52 | type="color", order=13, name=L.fontColor, desc=L.fontColor_desc, |
||
53 | get = function() return self.db.profile.fontR, self.db.profile.fontG, self.db.profile.fontB end, |
||
54 | set = function(r, g, b) self.db.profile.fontR=r self.db.profile.fontG=g self.db.profile.fontB=b self:UpdateScreen() end |
||
55 | }, |
||
56 | position = { |
||
57 | type="group", order=14, name=L.position, desc=L.position_desc, |
||
58 | args = { |
||
59 | ["1"]={ |
||
60 | type="toggle", order=1, name=L.position1, desc=L.position1_desc, |
||
61 | get=function() return(self.db.profile.position==1) end, |
||
62 | set=function() self.db.profile.position=1 self:UpdateScreen() end |
||
63 | }, |
||
64 | ["2"]={ |
||
65 | type="toggle", order=2, name=L.position2, desc=L.position2_desc, |
||
66 | get=function() return(self.db.profile.position==2) end, |
||
67 | set=function() self.db.profile.position=2 self:UpdateScreen() end |
||
68 | }, |
||
69 | ["3"]={ |
||
70 | type="toggle", order=3, name=L.position3, desc=L.position3_desc, |
||
71 | get=function() return(self.db.profile.position==3) end, |
||
72 | set=function() self.db.profile.position=3 self:UpdateScreen() end |
||
73 | }, |
||
74 | ["4"]={ |
||
75 | type="toggle", order=4, name=L.position4, desc=L.position4_desc, |
||
76 | get=function() return(self.db.profile.position==4) end, |
||
77 | set=function() self.db.profile.position=4 self:UpdateScreen() end |
||
78 | }, |
||
79 | ["5"]={ |
||
80 | type="toggle", order=5, name=L.position5, desc=L.position5_desc, |
||
81 | get=function() return(self.db.profile.position==5) end, |
||
82 | set=function() self.db.profile.position=5 self:UpdateScreen() end |
||
83 | }, |
||
84 | ["6"]={ |
||
85 | type="toggle", order=6, name=L.position6, desc=L.position6_desc, |
||
86 | get=function() return(self.db.profile.position==6) end, |
||
87 | set=function() self.db.profile.position=6 self:UpdateScreen() end |
||
88 | }, |
||
89 | ["7"]={ |
||
90 | type="toggle", order=7, name = L.position7, desc = L.position7_desc, |
||
91 | get=function() return(self.db.profile.position==7) end, |
||
92 | set=function() self.db.profile.position=7 self:UpdateScreen() end |
||
93 | }, |
||
94 | ["8"]={ |
||
95 | type="toggle", order=8, name=L.position8, desc=L.position8_desc, |
||
96 | get=function() return(self.db.profile.position==8) end, |
||
97 | set=function() self.db.profile.position=8 self:UpdateScreen() end |
||
98 | } |
||
99 | } |
||
100 | }, |
||
101 | scale={ |
||
102 | type="range", order=15, name=L.scale, desc=L.scale_desc, |
||
103 | min=0.5, max=2, step=0.05, |
||
104 | get=function() return(self.db.profile.scale) end, |
||
105 | set=function(x) self.db.profile.scale=x self:UpdateScreen() end |
||
106 | }, |
||
107 | time={ |
||
108 | type="range", order=16, name=L.time, desc=L.time_desc, |
||
109 | min=0, max=5, step=1, |
||
110 | get=function() return(self.db.profile.time) end, |
||
111 | set=function(x) self.db.profile.time=x self:UpdateEvent() end |
||
112 | }, |
||
113 | } |
||
114 | } |
||
115 | simpleMinimap.options.args.modules.args.coords = self.options |
||
116 | simpleMinimap:RegisterDefaults("coords", "profile", self.defaults) |
||
117 | smmCoordsFrameText:SetText("00, 00") |
||
118 | smmCoordsFrame:SetWidth(smmCoordsFrameText:GetWidth() + 16) |
||
119 | smmCoordsFrame:SetHeight(smmCoordsFrameText:GetHeight() + 12) |
||
120 | end |
||
121 | -- |
||
122 | function simpleMinimap_Coords:OnEnable() |
||
123 | if(self.db.profile.enabled) then |
||
124 | self:RegisterEvent("ZONE_CHANGED_NEW_AREA") |
||
125 | self:UpdateEvent() |
||
126 | self:UpdateScreen() |
||
127 | else |
||
128 | simpleMinimap:ToggleModuleActive(self, false) |
||
129 | end |
||
130 | end |
||
131 | -- |
||
132 | function simpleMinimap_Coords:OnDisable() |
||
133 | self:CancelAllScheduledEvents() |
||
134 | smmCoordsFrame:SetScript("OnUpdate", nil) |
||
135 | self:UpdateScreen() |
||
136 | end |
||
137 | -- |
||
138 | function simpleMinimap_Coords:UpdateScreen() |
||
139 | if(simpleMinimap:IsModuleActive(self)) then |
||
140 | smmCoordsFrame:Show() |
||
141 | smmCoordsFrame:ClearAllPoints() |
||
142 | smmCoordsFrame:SetPoint(self.positions[self.db.profile.position][1], "Minimap", self.positions[self.db.profile.position][2]) |
||
143 | smmCoordsFrame:SetAlpha(self.db.profile.alpha) |
||
144 | smmCoordsFrame:SetScale(self.db.profile.scale) |
||
145 | smmCoordsFrameText:SetTextColor(self.db.profile.fontR, self.db.profile.fontG, self.db.profile.fontB) |
||
146 | if(self.db.profile.backdrop) then |
||
147 | smmCoordsFrame:SetBackdropColor(TOOLTIP_DEFAULT_BACKGROUND_COLOR.r, TOOLTIP_DEFAULT_BACKGROUND_COLOR.g, TOOLTIP_DEFAULT_BACKGROUND_COLOR.b, 1) |
||
148 | else |
||
149 | smmCoordsFrame:SetBackdropColor(TOOLTIP_DEFAULT_BACKGROUND_COLOR.r, TOOLTIP_DEFAULT_BACKGROUND_COLOR.g, TOOLTIP_DEFAULT_BACKGROUND_COLOR.b, 0) |
||
150 | end |
||
151 | if(self.db.profile.border) then |
||
152 | smmCoordsFrame:SetBackdropBorderColor(TOOLTIP_DEFAULT_COLOR.r, TOOLTIP_DEFAULT_COLOR.g, TOOLTIP_DEFAULT_COLOR.b, 1) |
||
153 | else |
||
154 | smmCoordsFrame:SetBackdropBorderColor(TOOLTIP_DEFAULT_COLOR.r, TOOLTIP_DEFAULT_COLOR.g, TOOLTIP_DEFAULT_COLOR.b, 0) |
||
155 | end |
||
156 | else |
||
157 | smmCoordsFrame:Hide() |
||
158 | end |
||
159 | end |
||
160 | -- |
||
161 | function simpleMinimap_Coords:UpdateEvent() |
||
162 | if(self.db.profile.time > 0) then |
||
163 | smmCoordsFrame:SetScript("OnUpdate", nil) |
||
164 | self:ScheduleRepeatingEvent("smmCoordsUpdate", function() |
||
165 | local x, y = GetPlayerMapPosition("player") |
||
166 | smmCoordsFrameText:SetText(math.floor(x * 100)..", "..math.floor(y * 100)) |
||
167 | end, self.db.profile.time, self) |
||
168 | else |
||
169 | self:CancelAllScheduledEvents() |
||
170 | smmCoordsFrame:SetScript("OnUpdate", function() |
||
171 | local x, y = GetPlayerMapPosition("player") |
||
172 | smmCoordsFrameText:SetText(math.floor(x * 100)..", "..math.floor(y * 100)) |
||
173 | end) |
||
174 | end |
||
175 | end |
||
176 | -- |
||
177 | function simpleMinimap_Coords:ZONE_CHANGED_NEW_AREA() |
||
178 | SetMapToCurrentZone() |
||
179 | end |