------------------------------------------------------------------------ -- Look In Teh Corner! -- -- Big thanks to haste"s oMinimap on which this is based. -- I mainly added coordinates, changed some positions, -- but as per his copyright thingie, the addon has changed name. -- I would like to thank Lyn for the awesome name. ------------------------------------------------------------------------ ------------------------------------------------------------------------ -- Configuration and lessening the typing strains of the world. ------------------------------------------------------------------------ local font = STANDARD_TEXT_FONT local scale = 1 local backdrop = { bgFile = "Interface\\Buttons\\WHITE8x8", edgeFile = "Interface\\Buttons\\WHITE8x8", tiled = true, edgeSize = 1, insets = { left = -1, right = -1, top = -1, bottom = -1} } local backdropColor = { r = .1, g = .1, b = .1, a = 1 } local borderColor = { r = .6, g = .6, b = .6, a = 1 } local showZoneText = true -- true shows zonetext ------------------------------------------------------------------------ -- Square maps ftw ------------------------------------------------------------------------ function GetMinimapShape() return "SQUARE" end -- Frame creation local LookInTehCorner, events = CreateFrame("Frame", "LookInTehCorner", Minimap), {} local hiddenFrames = { MinimapBorder, MinimapBorderTop, MinimapToggleButton, MinimapZoomIn, MinimapZoomOut, MiniMapTrackingBackground, MiniMapBattlefieldBorder, MiniMapMeetingStoneFrame, MiniMapVoiceChatFrame, MiniMapWorldMapButton, MiniMapMailBorder, BattlegroundShine, MiniMapZoneTextButton, GameTimeFrame } ------------------------------------------------------------------------ -- Util funcs ------------------------------------------------------------------------ function LookInTehCorner:GetLocTextColor() local pvpType = GetZonePVPInfo() if pvpType == "arena" then return 0.84, 0.03, 0.03 elseif pvpType == "friendly" then return 0.05, 0.85, 0.03 elseif pvpType == "contested" then return 0.9, 0.85, 0.05 elseif pvpType == "hostile" then return 0.84, 0.03, 0.03 elseif pvpType == "sanctuary" then return 0.035, 0.58, 0.84 elseif pvpType == "combat" then return 0.84, 0.03, 0.03 else return 0.84, 0.03, 0.03 end end ------------------------------------------------------------------------ -- PLAYER LOGIN func - the main shebang ------------------------------------------------------------------------ function events:PLAYER_LOGIN(...) -- Relocating minimap and allowing it to be moved Minimap:ClearAllPoints() Minimap:SetPoint("TOPRIGHT", UIParent, "TOPRIGHT", -10, -10) Minimap:SetMovable(true) Minimap:SetUserPlaced(true) Minimap:EnableMouse(true) Minimap:RegisterForDrag("LeftButton") Minimap:SetScript("OnDragStart", function(self) self:StartMoving() end) Minimap:SetScript("OnDragStop", function(self) self:StopMovingOrSizing() end) Minimap:SetFrameLevel(2) Minimap:SetScale(scale) Minimap:SetMaskTexture("Interface\\ChatFrame\\ChatFrameBackground") -- Why not use the Event Handler as border too? self:SetParent(Minimap) self:SetPoint('CENTER') self:SetWidth(Minimap:GetWidth()*scale+6) self:SetHeight(Minimap:GetHeight()*scale+6) self:SetFrameLevel(1) -- Giving it a border self:SetBackdrop(backdrop) self:SetBackdropColor(backdropColor.r, backdropColor.g, backdropColor.b, backdropColor.a) self:SetBackdropBorderColor(borderColor.r, borderColor.g, borderColor.b, borderColor.a) -- mousewheel scrolling Minimap:EnableMouseWheel() Minimap:SetScript("OnMouseWheel", function(self, dir) if(dir > 0) then Minimap_ZoomIn() else Minimap_ZoomOut() end end) -- Tracking menu changes MiniMapTrackingIconOverlay:SetAlpha(0) MiniMapTrackingButtonBorder:Hide() MiniMapTracking:Hide() -- MiniMapTrackingIcon:SetTexCoord(0.065, 0.935, 0.065, 0.935) -- MiniMapTracking:SetParent(Minimap) -- MiniMapTracking:ClearAllPoints() -- MiniMapTracking:SetScale(.8) -- MiniMapTracking:SetPoint("TOPLEFT", -2, 2) --[[ PvP Icon MiniMapBattlefieldFrame:SetParent(Minimap) MiniMapBattlefieldFrame:ClearAllPoints() MiniMapBattlefieldFrame:SetPoint("TOPRIGHT", -2, -2)]] -- Mail icon changes MiniMapMailIcon:SetTexture("Interface\\AddOns\\LookInTehCorner\\media\\mail") -- remove this line if you want the default mail icon to show MiniMapMailFrame:ClearAllPoints() MiniMapMailFrame:SetPoint("BOTTOM", Minimap,"BOTTOM", 0, -10) -- Minimap zone text stuff. if (showZoneText == true) then MinimapZoneText:SetDrawLayer"OVERLAY" MinimapZoneText:ClearAllPoints() MinimapZoneText:SetPoint("LEFT", Minimap, 5, 0) MinimapZoneText:SetPoint("RIGHT", Minimap, -5, 0) MinimapZoneText:SetPoint("TOP", Minimap, "TOP", 0, -1) MinimapZoneText:SetFont(font, 10) MinimapZoneText:SetJustifyH("CENTER") MinimapZoneText:SetTextColor(LookInTehCorner:GetLocTextColor()) else MinimapZoneText:Hide() end -- World PvP Frame if (WorldStateCaptureBar) then WorldStateCaptureBar:ClearAllPoints() WorldStateCaptureBar:SetPoint("TOP", UIParent, "TOP", -75, -50) WorldStateCaptureBar.SetPoint = function() end WorldStateCaptureBar.ClearAllPoints = function() end end -- shitty 3.3 flag to move MiniMapInstanceDifficulty:ClearAllPoints() MiniMapInstanceDifficulty:Hide() -- MiniMapInstanceDifficulty:SetParent(Minimap) -- MiniMapInstanceDifficulty:SetPoint("TOPRIGHT", Minimap, "TOPRIGHT", 0, 0) -- MiniMapInstanceDifficulty:SetScale(.7) -- 4.0.6 Guild instance difficulty GuildInstanceDifficulty:ClearAllPoints() GuildInstanceDifficulty:Hide() -- GuildInstanceDifficulty:SetParent(Minimap) -- GuildInstanceDifficulty:SetPoint("TOPLEFT", Minimap, "TOPLEFT", 0, 0) -- GuildInstanceDifficulty:SetScale(.7) -- LFG Eye local function UpdateLFG() MiniMapLFGFrame:ClearAllPoints() MiniMapLFGFrame:Point("BOTTOMRIGHT", Minimap, "BOTTOMRIGHT", 2, 1) MiniMapLFGFrameBorder:Hide() MiniMapLFGFrame:SetParent(Minimap) MiniMapLFGFrame:SetHighlightTexture(nil) LFDSearchStatus:SetClampedToScreen(true) end hooksecurefunc("EyeTemplate_OnUpdate", UpdateLFG) -- Frame hiding for _, frame in pairs(hiddenFrames) do frame:Hide() end hiddenFrames = nil self:UnregisterEvent"ADDON_LOADED" end -- Event handling LookInTehCorner:SetScript("OnEvent", function(self, event, ...) events[event](self, event, ...) -- call one of the functions above end) LookInTehCorner:RegisterEvent"PLAYER_LOGIN" -- LookInTehCorner:RegisterEvent"UPDATE_PENDING_MAIL"