SHOW:
|
|
- or go back to the newest paste.
1 | if config.modules.minimap.enable ~= 1 then | |
2 | function GetMinimapShape() return 'ROUND' end | |
3 | return end | |
4 | ||
5 | local configMain = config | |
6 | local config = config.modules.minimap | |
7 | ||
8 | SetDimensions(Minimap, 120, 120, 1, 1) | |
9 | CreateBackdrop(Minimap) | |
10 | Minimap:EnableMouse(true) | |
11 | Minimap:SetMaskTexture(media.flat) | |
12 | ||
13 | function fixTooltip(self) | |
14 | if self ~= MiniMapMailFrame then | |
15 | GameTooltip:SetOwner(self, 'ANCHOR_NONE') | |
16 | end | |
17 | GameTooltip:ClearAllPoints() | |
18 | GameTooltip:SetPoint('TOPLEFT', Minimap, 'TOPRIGHT', 2, 0) | |
19 | end | |
20 | function dropdownOnClick(self) | |
21 | GameTooltip:Hide() | |
22 | DropDownList1:ClearAllPoints() | |
23 | DropDownList1:SetPoint('TOPLEFT', Minimap, 'TOPRIGHT', 2, 0) | |
24 | end | |
25 | MiniMapBattlefieldFrame:HookScript('OnClick', dropdownOnClick) | |
26 | ||
27 | Minimap:SetPoint(unpack(config.spawn)) | |
28 | ---------------------------------- | |
29 | -- Hide Shit | |
30 | ---------------------------------- | |
31 | for _, hide in next,{MinimapBorder, MinimapBorderTop, MinimapZoomIn, MinimapZoomOut, MiniMapVoiceChatFrame, | |
32 | GameTimeFrame, MinimapZoneTextButton, MiniMapTracking, MiniMapMailBorder, MiniMapBattlefieldBorder, MiniMapWorldMapButton, MiniMapLFGFrameBorder. | |
33 | MinimapBackdrop,MinimapCluster,GameTimeFrame} do | |
34 | hide:Hide() | |
35 | end | |
36 | ||
37 | WorldStateAlwaysUpFrame:SetPoint('TOP', Minimap, 'BOTTOM', 0, 10) | |
38 | ||
39 | for i = 1, TicketStatusFrameButton:GetNumRegions() do | |
40 | select(i, TicketStatusFrameButton:GetRegions()):Hide() | |
41 | end | |
42 | CreateBackdrop(TicketStatusFrameButton) | |
43 | TicketStatusFrame:ClearAllPoints() | |
44 | TicketStatusFrame:SetPoint('TOPRIGHT', Minimap, 'TOPRIGHT', 4, 0) | |
45 | ||
46 | ||
47 | for i = 1, GhostFrame:GetNumRegions() do | |
48 | select(i, GhostFrame:GetRegions()):Hide() | |
49 | end | |
50 | CreateBackdrop(GhostFrame) | |
51 | GhostFrame:ClearAllPoints() | |
52 | GhostFrame:SetPoint('BOTTOMLEFT', Minimap, 'TOPLEFT', 0, -4) | |
53 | ||
54 | MinimapNorthTag:SetAlpha(0) | |
55 | ||
56 | MiniMapMailFrame:ClearAllPoints() | |
57 | MiniMapMailFrame:SetPoint("TOPRIGHT", Minimap, 3, 4) | |
58 | ||
59 | MiniMapMailIcon:SetTexture('Interface\\Minimap\\TRACKING\\Mailbox') | |
60 | MiniMapMailIcon:SetAllPoints(MiniMapMailFrame) | |
61 | MiniMapMailIcon:SetRotation(rad(-36)) | |
62 | MiniMapMailBorder:Hide() | |
63 | ||
64 | MiniMapMailFrame:ClearAllPoints() | |
65 | MiniMapMailFrame:SetHeight(24) | |
66 | MiniMapMailFrame:SetWidth(24) | |
67 | MiniMapMailFrame:SetPoint(unpack(config.mailposition)) | |
68 | MiniMapMailFrame:HookScript('OnEnter', fixTooltip) | |
69 | ||
70 | MiniMapBattlefieldFrame:ClearAllPoints() | |
71 | MiniMapBattlefieldFrame:SetPoint("BOTTOMLEFT", Minimap, "BOTTOMLEFT", 2, 0) | |
72 | MiniMapBattlefieldFrame:HookScript('OnEnter', fixTooltip) | |
73 | MiniMapBattlefieldBorder:Hide() | |
74 | ||
75 | GuildInstanceDifficulty:ClearAllPoints() | |
76 | GuildInstanceDifficulty:SetScale(.5) | |
77 | GuildInstanceDifficulty:SetPoint("BOTTOMRIGHT", Minimap, "BOTTOMRIGHT", -2,2) | |
78 | GuildInstanceDifficulty:SetFrameStrata("HIGH") | |
79 | ||
80 | MiniMapInstanceDifficulty:ClearAllPoints() | |
81 | MiniMapInstanceDifficulty:SetParent(Minimap) | |
82 | MiniMapInstanceDifficulty:SetPoint("TOPLEFT", Minimap, "TOPLEFT", 0, 0) | |
83 | ||
84 | MiniMapLFGFrame:ClearAllPoints() | |
85 | MiniMapLFGFrame:SetParent(Minimap) | |
86 | MiniMapLFGFrame:SetPoint("BOTTOMLEFT", Minimap, "BOTTOMLEFT", 2, 1) | |
87 | MiniMapLFGFrameBorder:Hide() | |
88 | ||
89 | MiniMapLFGFrame:HookScript('OnEnter', function(self) | |
90 | if GetLFGMode() == 'queued' then | |
91 | LFGSearchStatus:Hide() | |
92 | -- true, _, 2, 6, 16, _, 6, 17, 1, 3, "Belagerung des Wyrmruhtempels", 147, -1, 22, 646, 646, 15019.273 | |
93 | local data, _, tank, healer, dps, _, _, _, _, _, instance, _, tankWait, healerWait, damageWait, myWait, queuedTime = GetLFGQueueStats() | |
94 | --data, _, tank, healer, dps, _, instance, _, tankWait, healerWait, damageWait = GetLFGQueueStats() | |
95 | ||
96 | GameTooltip:SetOwner(self, 'ANCHOR_NONE') | |
97 | GameTooltip:ClearLines() | |
98 | ||
99 | if data then | |
100 | GameTooltip:AddLine('In queue for:') | |
101 | GameTooltip:AddLine(instance, 1, 1, 1) | |
102 | GameTooltip:AddLine(' ') | |
103 | ||
104 | local totalWait = tankWait + healerWait + damageWait | |
105 | local dpsNumber = dps > 1 and ' ('..dps..')' or '' | |
106 | ||
107 | GameTooltip:AddDoubleLine('Tanking Class', formatTime(tankWait), tank, 1, 0, configMain.API.colorGradient[(1 - (tankWait/totalWait))]) | |
108 | GameTooltip:AddDoubleLine('Healing Class', formatTime(healerWait), healer, 1, 0, configMain.API.colorGradient[(1 - (healerWait/totalWait))]) | |
109 | GameTooltip:AddDoubleLine('Damage Class'..dpsNumber, formatTime(damageWait), dps, 1, 0, configMain.API.colorGradient[(1 - (damageWait/totalWait))]) | |
110 | else | |
111 | GameTooltip:AddLine('Acquiring LFG Queue Statistics') | |
112 | GameTooltip:AddLine('One Moment Please') | |
113 | end | |
114 | GameTooltip:Show() | |
115 | end | |
116 | GameTooltip:ClearAllPoints() | |
117 | GameTooltip:SetPoint('TOPLEFT', Minimap, 'TOPRIGHT', 2, 0) | |
118 | end) | |
119 | MiniMapLFGFrame:HookScript('OnClick', dropdownOnClick) | |
120 | ||
121 | Minimap:EnableMouseWheel(true) | |
122 | Minimap:SetScript('OnMouseWheel', function(self, delta) | |
123 | if delta > 0 then | |
124 | MinimapZoomIn:Click() | |
125 | elseif delta < 0 then | |
126 | MinimapZoomOut:Click() | |
127 | end | |
128 | end) | |
129 | ||
130 | Minimap:SetScript('OnMouseUp', function (self, button) | |
131 | if button == 'RightButton' then | |
132 | ToggleDropDownMenu(1, nil, MiniMapTrackingDropDown, Minimap, (Minimap:GetWidth()+2), (Minimap:GetHeight())) | |
133 | GameTooltip:Hide() | |
134 | else | |
135 | Minimap_OnClick(self) | |
136 | end | |
137 | end) | |
138 | ||
139 | Minimap:SetScript('OnEnter', function(self) | |
140 | if InCombatLockdown() then return end | |
141 | collectgarbage('collect') | |
142 | UpdateAddOnMemoryUsage() | |
143 | ||
144 | local memory = {} | |
145 | local total = 0 | |
146 | ||
147 | for i = 1, GetNumAddOns() do | |
148 | if IsAddOnLoaded(i) then | |
149 | local mem = GetAddOnMemoryUsage(i) | |
150 | tinsert (memory, {select(2, GetAddOnInfo(i)), mem}) | |
151 | total = total + mem | |
152 | end | |
153 | end | |
154 | ||
155 | table.sort(memory, function(a, b) | |
156 | return a[2] > b[2] | |
157 | end) | |
158 | ||
159 | fixTooltip(self) | |
160 | GameTooltip:AddDoubleLine('Total Usage', formatMemory(total), 1, 1, 1, 1, 1, 1) | |
161 | GameTooltip:AddLine(' ') | |
162 | for i = 1, #memory do | |
163 | GameTooltip:AddDoubleLine(memory[i][1], formatMemory(memory[i][2]), 1, 1, 1, colorGradient(1 - memory[i][2]/total)) | |
164 | end | |
165 | GameTooltip:Show() | |
166 | end) | |
167 | Minimap:SetScript('OnLeave', function() GameTooltip:Hide() end) | |
168 | ||
169 | local function makeit(frame, txt, posx, posy) | |
170 | frame:SetHeight(20) | |
171 | frame:SetWidth(40) | |
172 | frame:SetPoint("LEFT", Minimap, "TOPRIGHT", posx, posy) | |
173 | frame:SetParent(Minimap) | |
174 | txt:SetPoint("LEFT", frame, "LEFT", 0,0) | |
175 | txt:SetFont(media.font, 11, "OUTLINE") | |
176 | end | |
177 | ||
178 | local Loc = CreateFrame("Frame", "Location", UIParent) | |
179 | local LocText = Loc:CreateFontString(nil) | |
180 | makeit(Loc, LocText, 6, -10) | |
181 | ||
182 | local SubLoc = CreateFrame("Frame", "Sub Location", UIParent) | |
183 | local SubText = SubLoc:CreateFontString(nil) | |
184 | makeit(SubLoc, SubText, 6, -90) | |
185 | ||
186 | local Lag = CreateFrame("Frame", "Lag", UIParent) | |
187 | local LagText = Lag:CreateFontString(nil) | |
188 | makeit(Lag, LagText, 6, -30) | |
189 | ||
190 | local FPS = CreateFrame("Frame", "FPS", UIParent) | |
191 | FPS:EnableMouse(true) | |
192 | local FPSText = FPS:CreateFontString(nil) | |
193 | makeit(FPS, FPSText, 6, -50) | |
194 | ||
195 | LoadAddOn('Blizzard_TimeManager') | |
196 | TimeManagerClockTicker:ClearAllPoints() | |
197 | TimeManagerClockTicker:SetPoint(unpack(config.clockposition)) | |
198 | TimeManagerClockTicker:SetFont(media.font, 10) | |
199 | TimeManagerClockTicker: SetJustifyH('RIGHT') | |
200 | ||
201 | TimeManagerClockButton:ClearAllPoints() | |
202 | TimeManagerClockButton:SetPoint("TOPLEFT", TimeManagerClockTicker, -3, 3) | |
203 | TimeManagerClockButton:SetPoint("BOTTOMRIGHT", TimeManagerClockTicker, 3, -3) | |
204 | select(1, TimeManagerClockButton:GetRegions()):Hide() | |
205 | TimeManagerClockButton:HookScript('OnEnter', fixTooltip) | |
206 | ||
207 | local colorlag = function(number) | |
208 | if number <= 100 then | |
209 | return '|cff00ff00' | |
210 | elseif number <= 200 then | |
211 | return '|cffffff00' | |
212 | else | |
213 | return '|cffff0000' | |
214 | end | |
215 | end | |
216 | local colorfps = function(number) | |
217 | if number >= 30 then | |
218 | return '|cff00ff00' | |
219 | elseif number < 30 then | |
220 | return '|cffffff00' | |
221 | elseif number < 15 then | |
222 | return '|cffff0000' | |
223 | end | |
224 | end | |
225 | ||
226 | local interval = 0 | |
227 | FPS:SetScript('OnUpdate', function(self, elapsed) | |
228 | interval = interval - elapsed | |
229 | hour, minute = GetGameTime() | |
230 | if interval <= 0 then | |
231 | FPSText:SetText(string.format('%s%d|r fps', colorfps(GetFramerate()), GetFramerate())) | |
232 | LagText:SetText(string.format('%s%d|r ms', colorlag(select(3,GetNetStats())), select(3,GetNetStats()))) | |
233 | LocText:SetText(GetZoneText()) | |
234 | SubText:SetText(GetSubZoneText()) | |
235 | interval = .5 | |
236 | end | |
237 | end) | |
238 | ||
239 | local FormatMemoryNumber = function(number) | |
240 | if number > 1000 then | |
241 | return string.format('%.2f mb', number / 1000) | |
242 | else | |
243 | return string.format('%.1f kb', number) | |
244 | end | |
245 | end | |
246 | ||
247 | function GetMinimapShape() return 'SQUARE' end |