View difference between Paste ID: 0kH5vQe7 and stjmiVnp
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