Загрузить файлы в «/»
This commit is contained in:
+111
@@ -0,0 +1,111 @@
|
||||
-- Ade Alts: minimap
|
||||
local AA = AdeAlts
|
||||
|
||||
----------------------------------------------------------------------
|
||||
-- minimap button (pfUI docks it automatically into its addon panel)
|
||||
----------------------------------------------------------------------
|
||||
AA.btn = CreateFrame("Button", "AdeAltsMinimapButton", Minimap)
|
||||
AA.btn:SetWidth(31)
|
||||
AA.btn:SetHeight(31)
|
||||
AA.btn:SetFrameStrata("MEDIUM")
|
||||
AA.btn:SetFrameLevel(8)
|
||||
AA.btn:RegisterForClicks("LeftButtonUp", "RightButtonUp")
|
||||
AA.btn:RegisterForDrag("LeftButton")
|
||||
|
||||
local icon = AA.btn:CreateTexture(nil, "BACKGROUND")
|
||||
icon:SetTexture("Interface\\Icons\\Trade_Alchemy")
|
||||
local border = AA.btn:CreateTexture(nil, "OVERLAY")
|
||||
border:SetTexture("Interface\\Minimap\\MiniMap-TrackingBorder")
|
||||
|
||||
function AA.StyleButton()
|
||||
if pfUI and pfUI.api and pfUI.api.CreateBackdrop then
|
||||
-- pfUI look: flat icon inside a pfUI backdrop, same as other docked buttons
|
||||
if not AA.btn.pcdBackdrop then
|
||||
AA.btn.pcdBackdrop = true
|
||||
pcall(pfUI.api.CreateBackdrop, AA.btn, nil, true)
|
||||
end
|
||||
icon:SetDrawLayer("ARTWORK")
|
||||
icon:ClearAllPoints()
|
||||
icon:SetPoint("TOPLEFT", AA.btn, "TOPLEFT", 3, -3)
|
||||
icon:SetPoint("BOTTOMRIGHT", AA.btn, "BOTTOMRIGHT", -3, 3)
|
||||
icon:SetTexCoord(0.08, 0.92, 0.08, 0.92)
|
||||
border:Hide()
|
||||
AA.btn:SetHighlightTexture("Interface\\Buttons\\ButtonHilight-Square")
|
||||
elseif pfUI then
|
||||
icon:SetDrawLayer("ARTWORK")
|
||||
icon:ClearAllPoints()
|
||||
icon:SetAllPoints(AA.btn)
|
||||
icon:SetTexCoord(0.08, 0.92, 0.08, 0.92)
|
||||
border:Hide()
|
||||
AA.btn:SetHighlightTexture("Interface\\Buttons\\ButtonHilight-Square")
|
||||
else
|
||||
icon:SetDrawLayer("BACKGROUND")
|
||||
icon:ClearAllPoints()
|
||||
icon:SetWidth(20); icon:SetHeight(20)
|
||||
icon:SetPoint("TOPLEFT", AA.btn, "TOPLEFT", 6, -5)
|
||||
icon:SetTexCoord(0, 1, 0, 1)
|
||||
border:ClearAllPoints()
|
||||
border:SetWidth(53); border:SetHeight(53)
|
||||
border:SetPoint("TOPLEFT", AA.btn, "TOPLEFT", 0, 0)
|
||||
border:Show()
|
||||
AA.btn:SetHighlightTexture("Interface\\Minimap\\UI-Minimap-ZoomButton-Highlight")
|
||||
end
|
||||
end
|
||||
AA.StyleButton()
|
||||
|
||||
function AA.PlaceButton()
|
||||
if AA.btn:GetParent() ~= Minimap then return end -- docked by pfUI
|
||||
local angle = (AA.db and AA.db.angle) or 200
|
||||
local r = Minimap:GetWidth() / 2 + 6
|
||||
local rad = math.rad(angle)
|
||||
AA.btn:ClearAllPoints()
|
||||
AA.btn:SetPoint("CENTER", Minimap, "CENTER", math.cos(rad) * r, math.sin(rad) * r)
|
||||
end
|
||||
AA.PlaceButton()
|
||||
|
||||
AA.btn:SetScript("OnDragStart", function()
|
||||
if this:GetParent() ~= Minimap then return end
|
||||
this:SetScript("OnUpdate", function()
|
||||
local mx, my = GetCursorPosition()
|
||||
local sc = Minimap:GetEffectiveScale()
|
||||
local cx, cy = Minimap:GetCenter()
|
||||
AA.db.angle = math.deg(math.atan2(my / sc - cy, mx / sc - cx))
|
||||
AA.PlaceButton()
|
||||
end)
|
||||
end)
|
||||
AA.btn:SetScript("OnDragStop", function() this:SetScript("OnUpdate", nil) end)
|
||||
|
||||
AA.btn:SetScript("OnClick", function()
|
||||
if arg1 == "RightButton" then
|
||||
AA.Send("R")
|
||||
AA.Broadcast()
|
||||
AA.FileSync()
|
||||
AA.Print("synced.")
|
||||
else
|
||||
AA.ToggleManager()
|
||||
end
|
||||
end)
|
||||
|
||||
AA.btn:SetScript("OnEnter", function()
|
||||
GameTooltip:SetOwner(this, "ANCHOR_LEFT")
|
||||
GameTooltip:AddLine("Ade Alts - cooldowns")
|
||||
if AA.db then
|
||||
local list = AA.Entries(true)
|
||||
if table.getn(list) == 0 then
|
||||
GameTooltip:AddLine("|cff808080No cooldowns recorded yet|r")
|
||||
end
|
||||
for _, e in ipairs(list) do
|
||||
GameTooltip:AddDoubleLine(e.l, e.r, 1, 1, 1, 1, 1, 1)
|
||||
end
|
||||
end
|
||||
GameTooltip:AddLine("|cff808080Left: window Right: sync Drag: move|r")
|
||||
GameTooltip:Show()
|
||||
end)
|
||||
AA.btn:SetScript("OnLeave", function() GameTooltip:Hide() end)
|
||||
|
||||
function AA.DockInPfUI()
|
||||
if pfUI and pfUI.addonbuttons and pfUI.addonbuttons.ProcessButtons then
|
||||
pcall(function() pfUI.addonbuttons:ProcessButtons() end)
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user