D2Minimap = true D2MinimapSettings = { ["Frames"] = { ["Minimap"] = { ["Shown"] = true, ["MaskSquare"] = false, ["Alpha"] = .1, }, ["MinimapZoneTextButton"] = { ["Alpha"] = .3, }, ["MinimapBorderTop"] = { ["Alpha"] = 1, }, ["TimeManagerClockButton"] = { ["Alpha"] = .3, }, ["MiniMapWorldMapButton"] = { ["Alpha"] = .8, }, ["MiniMapTracking"] = { ["Alpha"] = .2, }, ["MiniMapMailFrame"] = { ["Alpha"] = .5, }, ["GarrisonLandingPageMinimapButton"] = { ["Alpha"] = .2, }, }, } function D2Minimap_load() for frame, ftable in pairs(D2MinimapSettings["Frames"]) do pcall(function() _G[frame]:SetAlpha(ftable["Alpha"]) p = ftable["Point"] _G[frame]:SetPoint(p.point, p.relativeTo, p.relativePoint, p.xOfs, p.yOfs) end) end end function D2Minimap_save() for frame, ftable in pairs(D2MinimapSettings["Frames"]) do if not frame == "" then pcall(function() ftable["Alpha"] = _G[frame]:GetAlpha() p = {} p.point, p.relativeTo, p.relativePoint, p.xOfs, p.yOfs = _G[frame]:GetPoint() ftable["Point"] = p end) end end end local function D2Minimap_init(self, event, addon, ...) if (event == "PLAYER_ENTERING_WORLD") then Minimap:ClearAllPoints() Minimap:SetParent(UIParent) Minimap:SetAlpha(D2MinimapSettings["Frames"]["Minimap"]["Alpha"]) Minimap:SetFrameStrata("BACKGROUND") Minimap:SetPoint("CENTER", UIParent, "CENTER", 0, 0); Minimap:SetHeight(1200) Minimap:SetWidth(1200) Minimap:SetScale(1.5) Minimap:SetScript("OnMouseDown", nil) -- Remove Player-Arrow Minimap:SetPlayerTexture("") -- Square the Map if D2MinimapSettings["Frames"]["Minimap"]["MaskSquare"] then Minimap:SetMaskTexture("Interface\\Buttons\\WHITE8X8") end Minimap:EnableMouse(false) Minimap:SetZoom(5) SetCVar("rotateMinimap", true) -- MinimapZoneTextButton and MinimapBorderTop MinimapZoneTextButton:SetParent(UIParent) MinimapZoneTextButton:SetPoint("TOP", UIParent, "TOP", 0, 0) MinimapZoneTextButton:SetAlpha(D2MinimapSettings["Frames"]["MinimapZoneTextButton"]["Alpha"]) MinimapBorderTop:SetParent(MinimapZoneTextButton) MinimapBorderTop:ClearAllPoints() MinimapBorderTop:SetPoint("TOP", MinimapZoneTextButton, "CENTER", 0, 15) -- TimeManagerClockButton TimeManagerClockButton:SetParent(UIParent) TimeManagerClockButton:SetPoint("TOP", MinimapZoneTextButton, "BOTTOM", 0, 3); TimeManagerClockButton:SetAlpha(D2MinimapSettings["Frames"]["TimeManagerClockButton"]["Alpha"]) TimeManagerClockButton:SetMovable(true) TimeManagerClockButton:EnableMouse(true) TimeManagerClockButton:RegisterForDrag("LeftButton") TimeManagerClockButton:SetScript("OnDragStart", TimeManagerClockButton.StartMoving) TimeManagerClockButton:SetScript("OnDragStop", TimeManagerClockButton.StopMovingOrSizing) -- MiniMapWorldMapButton MiniMapWorldMapButton:SetParent(MinimapZoneTextButton) MiniMapWorldMapButton:ClearAllPoints() MiniMapWorldMapButton:SetPoint("TOP", MinimapZoneTextButton, "RIGHT", 28, 15) MiniMapWorldMapButton:SetAlpha(D2MinimapSettings["Frames"]["MiniMapWorldMapButton"]["Alpha"]) -- MiniMapTracking MiniMapTracking:SetParent(UIParent) MiniMapTracking:SetPoint("TOPLEFT", UIParent, "TOPLEFT", 0, 0); MiniMapTracking:SetAlpha(D2MinimapSettings["Frames"]["MiniMapTracking"]["Alpha"]) MiniMapTracking:SetMovable(true) MiniMapTracking:RegisterForDrag("RightButton") MiniMapTracking:SetScript("OnDragStart", MiniMapTracking.StartMoving) MiniMapTracking:SetScript("OnDragStop", MiniMapTracking.StopMovingOrSizing) -- MiniMapMailFrame MiniMapMailFrame:SetParent(UIParent) MiniMapMailFrame:ClearAllPoints() MiniMapMailFrame:SetPoint("BOTTOMRIGHT", UIParent, "BOTTOMRIGHT", -50, 50); MiniMapMailFrame:SetAlpha(D2MinimapSettings["Frames"]["MiniMapMailFrame"]["Alpha"]) MiniMapMailFrame:SetFrameStrata("BACKGROUND") MiniMapMailFrame:SetMovable(true) MiniMapMailFrame:EnableMouse(true) MiniMapMailFrame:RegisterForDrag("LeftButton") MiniMapMailFrame:SetScript("OnDragStart", MiniMapMailFrame.StartMoving) MiniMapMailFrame:SetScript("OnDragStop", MiniMapMailFrame.StopMovingOrSizing) -- GarrisonLandingPageMinimapButton GarrisonLandingPageMinimapButton:SetParent(UIParent) GarrisonLandingPageMinimapButton:ClearAllPoints() GarrisonLandingPageMinimapButton:SetPoint("BOTTOMRIGHT", UIParent, "BOTTOMRIGHT", 0, 0); GarrisonLandingPageMinimapButton:SetAlpha(D2MinimapSettings["Frames"]["GarrisonLandingPageMinimapButton"]["Alpha"]) GarrisonLandingPageMinimapButton:SetFrameStrata("BACKGROUND") GarrisonLandingPageMinimapButton:SetMovable(true) GarrisonLandingPageMinimapButton:EnableMouse(true) GarrisonLandingPageMinimapButton:RegisterForDrag("LeftButton") GarrisonLandingPageMinimapButton:SetScript("OnDragStart", GarrisonLandingPageMinimapButton.StartMoving) GarrisonLandingPageMinimapButton:SetScript("OnDragStop", GarrisonLandingPageMinimapButton.StopMovingOrSizing) MinimapBorder:Hide() MinimapZoomIn:Hide() MinimapZoomOut:Hide() -- MinimapCluster:Hide() if not D2MinimapSettings["Frames"]["Minimap"]["Shown"] then Minimap:Hide() end end if (event == "ADDON_LOADED") then D2Minimap_load() end if (event == "PLAYER_LOGOUT") then D2Minimap_save() end end local D2MinimapFrame = CreateFrame("Frame", "D2MinimapFrame", UIParent, "SecureHandlerStateTemplate") D2MinimapFrame:SetScript("OnEvent", D2Minimap_init) D2MinimapFrame:RegisterEvent("ADDON_LOADED") D2MinimapFrame:RegisterEvent("PLAYER_ENTERING_WORLD") D2MinimapFrame:RegisterEvent("PLAYER_LOGIN") D2MinimapFrame:RegisterEvent("PLAYER_LOGOUT") -- Ingame Configuration configui = {} configui = CreateFrame( "Frame", "D2Minimap", UIParent ) configui.name = "D2Minimap" configui.okay = nil configui.cancel = nil configui.default = nil InterfaceOptions_AddCategory(configui)