Files
florian.berthold 8d89a6d180
release / release (push) Successful in 4s
Import Mapster from upstream@1c451d2 (tag 1.3.9)
upstream: https://github.com/Nevcairiel/Mapster
tag:      1.3.9
commit:   1c451d24d299d44002b1e182f848aa3a3e7faa6b
interface: 30300 (WotLK 3.3.5 — last Mapster version targeting our client)
2026-05-25 13:02:23 +02:00

142 lines
3.3 KiB
Lua

--[[
Copyright (c) 2009, Hendrik "Nevcairiel" Leppkes < h.leppkes@gmail.com >
All rights reserved.
]]
local Mapster = LibStub("AceAddon-3.0"):GetAddon("Mapster")
local L = LibStub("AceLocale-3.0"):GetLocale("Mapster")
local MODNAME = "BattleMap"
local BattleMap = Mapster:NewModule(MODNAME, "AceEvent-3.0")
local FogClear
-- Make sure to get the global before FogClear loads and overwrites it
local GetNumMapOverlays = GetNumMapOverlays
local db
local defaults = {
profile = {
hideTextures = false,
}
}
local optGetter, optSetter
do
local mod = BattleMap
function optGetter(info)
local key = info[#info]
return db[key]
end
function optSetter(info, value)
local key = info[#info]
db[key] = value
mod:Refresh()
end
end
local options
local function getOptions()
if not options then
options = {
type = "group",
name = L["BattleMap"],
arg = MODNAME,
get = optGetter,
set = optSetter,
args = {
intro = {
order = 1,
type = "description",
name = L["The BattleMap module allows you to change the style of the BattlefieldMinimap, removing unnecessary textures or PvP Objectives."],
},
enabled = {
order = 2,
type = "toggle",
name = L["Enable BattleMap"],
get = function() return Mapster:GetModuleEnabled(MODNAME) end,
set = function(info, value) Mapster:SetModuleEnabled(MODNAME, value) end,
},
texturesdesc = {
order = 3,
type = "description",
name = "\n" .. L["Hide the surrounding textures around the BattleMap, only leaving you with the pure map overlays."],
},
hideTextures = {
order = 4,
type = "toggle",
name = L["Hide Textures"],
},
},
}
end
return options
end
function BattleMap:OnInitialize()
self.db = Mapster.db:RegisterNamespace(MODNAME, defaults)
db = self.db.profile
self:SetEnabledState(Mapster:GetModuleEnabled(MODNAME))
Mapster:RegisterModuleOptions(MODNAME, getOptions, L["BattleMap"])
FogClear = Mapster:GetModule("FogClear", true)
end
function BattleMap:OnEnable()
if not IsAddOnLoaded("Blizzard_BattlefieldMinimap") then
self:RegisterEvent("ADDON_LOADED", function(event, addon)
if addon == "Blizzard_BattlefieldMinimap" then
BattleMap:UnregisterEvent("ADDON_LOADED")
BattleMap:SetupMap()
end
end)
else
self:SetupMap()
end
end
function BattleMap:OnDisable()
if BattlefieldMinimap then
BattlefieldMinimapCorner:Show()
BattlefieldMinimapBackground:Show()
BattlefieldMinimapCloseButton:Show()
BattlefieldMinimapTab:Show()
end
self:UpdateTextureVisibility()
end
function BattleMap:SetupMap()
BattlefieldMinimapCorner:Hide()
BattlefieldMinimapBackground:Hide()
BattlefieldMinimapCloseButton:Hide()
BattlefieldMinimapTab:Hide()
self:RegisterEvent("WORLD_MAP_UPDATE", "UpdateTextureVisibility")
self:UpdateTextureVisibility()
end
function BattleMap:Refresh()
db = self.db.profile
if not self:IsEnabled() then return end
self:UpdateTextureVisibility()
end
function BattleMap:UpdateTextureVisibility()
if not BattlefieldMinimap then return end
local hasOverlays
if FogClear and FogClear:IsEnabled() then hasOverlays = FogClear:RealHasOverlays() else hasOverlays = GetNumMapOverlays() > 0 end
if hasOverlays and db.hideTextures and self:IsEnabled() then
for i=1,12 do
_G["BattlefieldMinimap"..i]:Hide()
end
else
for i=1,12 do
_G["BattlefieldMinimap"..i]:Show()
end
end
end