Preserve class color table when applying blue shaman
This commit is contained in:
+32
-19
@@ -1,6 +1,5 @@
|
||||
local _G = ShaguTweaks.GetGlobalEnv()
|
||||
local T = ShaguTweaks.T
|
||||
local GetExpansion = ShaguTweaks.GetExpansion
|
||||
|
||||
local module = ShaguTweaks:register({
|
||||
title = T["Blue Shaman Class Colors"],
|
||||
@@ -10,6 +9,9 @@ local module = ShaguTweaks:register({
|
||||
enabled = true,
|
||||
})
|
||||
|
||||
local BLUE_SHAMAN = { r = 0.14, g = 0.35, b = 1.0, colorStr = "ff2459ff" }
|
||||
local UNKNOWN_CLASS_COLOR = { r = 0.6, g = 0.6, b = 0.6, colorStr = "ff999999" }
|
||||
|
||||
local function ChatTweaksOwnsClassColors()
|
||||
local configured = ShaguTweaks_config and ShaguTweaks_config[T["Chat Tweaks"]]
|
||||
if configured ~= nil then return configured == 1 end
|
||||
@@ -21,25 +23,36 @@ local function ChatTweaksOwnsClassColors()
|
||||
end
|
||||
|
||||
module.enable = function(self)
|
||||
-- The current enhanced Chat Tweaks module already carries this exact color
|
||||
-- table. Avoid applying it twice while keeping Blue Shaman independent when
|
||||
-- Chat Tweaks is disabled.
|
||||
-- The current enhanced Chat Tweaks module already applies the same shaman
|
||||
-- color. Avoid touching the global table twice while keeping this module
|
||||
-- independent when Chat Tweaks is disabled.
|
||||
if ChatTweaksOwnsClassColors() then return end
|
||||
|
||||
-- update table to get unknown colors and blue shamans for vanilla
|
||||
RAID_CLASS_COLORS = {
|
||||
["WARRIOR"] = { r = 0.78, g = 0.61, b = 0.43, colorStr = "ffc79c6e" },
|
||||
["MAGE"] = { r = 0.41, g = 0.8, b = 0.94, colorStr = "ff69ccf0" },
|
||||
["ROGUE"] = { r = 1, g = 0.96, b = 0.41, colorStr = "fffff569" },
|
||||
["DRUID"] = { r = 1, g = 0.49, b = 0.04, colorStr = "ffff7d0a" },
|
||||
["HUNTER"] = { r = 0.67, g = 0.83, b = 0.45, colorStr = "ffabd473" },
|
||||
["SHAMAN"] = { r = 0.14, g = 0.35, b = 1.0, colorStr = "ff2459ff" },
|
||||
["PRIEST"] = { r = 1, g = 1, b = 1, colorStr = "ffffffff" },
|
||||
["WARLOCK"] = { r = 0.58, g = 0.51, b = 0.79, colorStr = "ff9482c9" },
|
||||
["PALADIN"] = { r = 0.96, g = 0.55, b = 0.73, colorStr = "fff58cba" },
|
||||
}
|
||||
-- Keep Blizzard/Turtle's RAID_CLASS_COLORS table (and any references held by
|
||||
-- other addons) intact. Only change the SHAMAN entry instead of replacing
|
||||
-- the complete table just to alter one class color.
|
||||
RAID_CLASS_COLORS = RAID_CLASS_COLORS or {}
|
||||
local shaman = RAID_CLASS_COLORS["SHAMAN"]
|
||||
if shaman then
|
||||
shaman.r = BLUE_SHAMAN.r
|
||||
shaman.g = BLUE_SHAMAN.g
|
||||
shaman.b = BLUE_SHAMAN.b
|
||||
shaman.colorStr = BLUE_SHAMAN.colorStr
|
||||
else
|
||||
RAID_CLASS_COLORS["SHAMAN"] = {
|
||||
r = BLUE_SHAMAN.r,
|
||||
g = BLUE_SHAMAN.g,
|
||||
b = BLUE_SHAMAN.b,
|
||||
colorStr = BLUE_SHAMAN.colorStr,
|
||||
}
|
||||
end
|
||||
|
||||
RAID_CLASS_COLORS = setmetatable(RAID_CLASS_COLORS, { __index = function(tab,key)
|
||||
return { r = 0.6, g = 0.6, b = 0.6, colorStr = "ff999999" }
|
||||
end})
|
||||
-- Preserve any metatable installed by Turtle or another addon. The original
|
||||
-- module supplied a gray fallback for unknown class keys, so retain that
|
||||
-- behavior only when no owner already provides one.
|
||||
if not getmetatable(RAID_CLASS_COLORS) then
|
||||
setmetatable(RAID_CLASS_COLORS, { __index = function()
|
||||
return UNKNOWN_CLASS_COLOR
|
||||
end })
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user