generated from Exiles/coa-template
8d89a6d180
release / release (push) Successful in 4s
upstream: https://github.com/Nevcairiel/Mapster tag: 1.3.9 commit: 1c451d24d299d44002b1e182f848aa3a3e7faa6b interface: 30300 (WotLK 3.3.5 — last Mapster version targeting our client)
142 lines
3.3 KiB
Lua
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
|