spec icon option added to Classicon module
This commit is contained in:
parent
be54619576
commit
c05fab9454
@ -1,5 +1,8 @@
|
|||||||
|
local select = select
|
||||||
|
|
||||||
local Gladdy = LibStub("Gladdy")
|
local Gladdy = LibStub("Gladdy")
|
||||||
local CreateFrame = CreateFrame
|
local CreateFrame = CreateFrame
|
||||||
|
local GetSpellInfo = GetSpellInfo
|
||||||
local L = Gladdy.L
|
local L = Gladdy.L
|
||||||
local Classicon = Gladdy:NewModule("Classicon", 80, {
|
local Classicon = Gladdy:NewModule("Classicon", 80, {
|
||||||
classIconPos = "LEFT",
|
classIconPos = "LEFT",
|
||||||
@ -7,21 +10,87 @@ local Classicon = Gladdy:NewModule("Classicon", 80, {
|
|||||||
classIconWidthFactor = 0.9,
|
classIconWidthFactor = 0.9,
|
||||||
classIconBorderStyle = "Interface\\AddOns\\Gladdy\\Images\\Border_rounded_blp",
|
classIconBorderStyle = "Interface\\AddOns\\Gladdy\\Images\\Border_rounded_blp",
|
||||||
classIconBorderColor = { r = 0, g = 0, b = 0, a = 1 },
|
classIconBorderColor = { r = 0, g = 0, b = 0, a = 1 },
|
||||||
|
classIconSpecIcon = false,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
local classIconPath = "Interface\\Addons\\Gladdy\\Images\\Classes\\"
|
||||||
|
local classIcons = {
|
||||||
|
["DRUID"] = classIconPath .. "inv_misc_monsterclaw_04",
|
||||||
|
["HUNTER"] = classIconPath .. "inv_weapon_bow_07",
|
||||||
|
["MAGE"] = classIconPath .. "inv_staff_13",
|
||||||
|
["PALADIN"] = classIconPath .. "inv_hammer_01",
|
||||||
|
["PRIEST"] = classIconPath .. "inv_staff_30",
|
||||||
|
["ROGUE"] = classIconPath .. "inv_throwingknife_04",
|
||||||
|
["SHAMAN"] = classIconPath .. "inv_jewelry_talisman_04",
|
||||||
|
["WARLOCK"] = classIconPath .. "spell_nature_drowsy",
|
||||||
|
["WARRIOR"] = classIconPath .. "inv_sword_27",
|
||||||
|
}
|
||||||
|
|
||||||
|
local specIcons = {
|
||||||
|
--DRUID
|
||||||
|
["DRUID"] = {
|
||||||
|
[L["Balance"]] = select(3, GetSpellInfo(8921)), -- Moonfire
|
||||||
|
[L["Feral"]] = select(3, GetSpellInfo(27545)), -- Cat Form
|
||||||
|
[L["Restoration"]] = select(3, GetSpellInfo(5185)), -- Healing Touch
|
||||||
|
},
|
||||||
|
["HUNTER"] = {
|
||||||
|
[L["Beast Mastery"]] = select(3, GetSpellInfo(1515)), -- Tame Beast
|
||||||
|
[L["Marksmanship"]] = select(3, GetSpellInfo(42243)), -- Volley
|
||||||
|
[L["Survival"]] = select(3, GetSpellInfo(1495)), -- Mongoose Bite
|
||||||
|
},
|
||||||
|
["MAGE"] = {
|
||||||
|
[L["Arcane"]] = select(3, GetSpellInfo(1459)), -- Arcane Intellect
|
||||||
|
[L["Fire"]] = select(3, GetSpellInfo(133)), -- Fireball
|
||||||
|
[L["Frost"]] = select(3, GetSpellInfo(116)), -- Frostbolt
|
||||||
|
},
|
||||||
|
["PALADIN"] = {
|
||||||
|
[L["Holy"]] = select(3, GetSpellInfo(635)), -- Holy Light
|
||||||
|
[L["Retribution"]] = select(3, GetSpellInfo(7294)), -- Retribution Aura
|
||||||
|
[L["Protection"]] = select(3, GetSpellInfo(32828)), -- Protection Aura
|
||||||
|
},
|
||||||
|
["PRIEST"] = {
|
||||||
|
[L["Discipline"]] = select(3, GetSpellInfo(1243)), -- Power Word: Fortitude
|
||||||
|
[L["Shadow"]] = select(3, GetSpellInfo(589)), -- Shadow Word: Pain
|
||||||
|
[L["Holy"]] = select(3, GetSpellInfo(635)), -- Holy Light
|
||||||
|
},
|
||||||
|
["ROGUE"] = {
|
||||||
|
[L["Assassination"]] = select(3, GetSpellInfo(1329)), -- Mutilate (Eviscerate? 2098)
|
||||||
|
[L["Combat"]] = select(3, GetSpellInfo(53)), -- Backstab
|
||||||
|
[L["Subtlety"]] = select(3, GetSpellInfo(1784)), -- Stealth
|
||||||
|
},
|
||||||
|
["SHAMAN"] = {
|
||||||
|
[L["Elemental"]] = select(3, GetSpellInfo(403)), -- Lightning Bolt
|
||||||
|
[L["Enhancement"]] = select(3, GetSpellInfo(324)), -- Lightning Shield
|
||||||
|
[L["Restoration"]] = select(3, GetSpellInfo(331)), -- Healing Wave
|
||||||
|
},
|
||||||
|
["WARLOCK"] = {
|
||||||
|
[L["Affliction"]] = select(3, GetSpellInfo(6789)), -- Affliction
|
||||||
|
[L["Demonology"]] = select(3, GetSpellInfo(5500)), -- Sense Demons
|
||||||
|
[L["Destruction"]] = select(3, GetSpellInfo(5740)), -- Rain of Fire
|
||||||
|
},
|
||||||
|
["WARRIOR"] = {
|
||||||
|
[L["Arms"]] = select(3, GetSpellInfo(12294)), -- Mortal Strike
|
||||||
|
[L["Fury"]] = select(3, GetSpellInfo(12325)), -- Inner Rage
|
||||||
|
[L["Protection"]] = select(3, GetSpellInfo(71)), -- Defensive Stance
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
function Classicon:Initialize()
|
function Classicon:Initialize()
|
||||||
self.frames = {}
|
self.frames = {}
|
||||||
|
|
||||||
self:RegisterMessage("ENEMY_SPOTTED")
|
self:RegisterMessage("ENEMY_SPOTTED")
|
||||||
self:RegisterMessage("UNIT_DEATH")
|
self:RegisterMessage("UNIT_DEATH")
|
||||||
|
self:RegisterMessage("UNIT_SPEC")
|
||||||
end
|
end
|
||||||
|
|
||||||
function Classicon:CreateFrame(unit)
|
function Classicon:CreateFrame(unit)
|
||||||
local classIcon = CreateFrame("Frame", nil, Gladdy.buttons[unit])
|
local classIcon = CreateFrame("Frame", nil, Gladdy.buttons[unit])
|
||||||
|
classIcon:EnableMouse(false)
|
||||||
classIcon:SetFrameStrata("MEDIUM")
|
classIcon:SetFrameStrata("MEDIUM")
|
||||||
classIcon:SetFrameLevel(1)
|
classIcon:SetFrameLevel(1)
|
||||||
classIcon.texture = classIcon:CreateTexture(nil, "BACKGROUND")
|
classIcon.texture = classIcon:CreateTexture(nil, "BACKGROUND")
|
||||||
classIcon.texture:SetAllPoints(classIcon)
|
classIcon.texture:SetAllPoints(classIcon)
|
||||||
|
classIcon.texture:SetMask("Interface\\AddOns\\Gladdy\\Images\\mask")
|
||||||
|
|
||||||
classIcon.texture.overlay = classIcon:CreateTexture(nil, "BORDER")
|
classIcon.texture.overlay = classIcon:CreateTexture(nil, "BORDER")
|
||||||
classIcon.texture.overlay:SetAllPoints(classIcon)
|
classIcon.texture.overlay:SetAllPoints(classIcon)
|
||||||
@ -65,6 +134,25 @@ function Classicon:UpdateFrame(unit)
|
|||||||
classIcon.texture.overlay:SetVertexColor(Gladdy.db.classIconBorderColor.r, Gladdy.db.classIconBorderColor.g, Gladdy.db.classIconBorderColor.b, Gladdy.db.classIconBorderColor.a)
|
classIcon.texture.overlay:SetVertexColor(Gladdy.db.classIconBorderColor.r, Gladdy.db.classIconBorderColor.g, Gladdy.db.classIconBorderColor.b, Gladdy.db.classIconBorderColor.a)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function Classicon:ENEMY_SPOTTED(unit)
|
||||||
|
local classIcon = self.frames[unit]
|
||||||
|
if (not classIcon) then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
classIcon.texture:SetTexture(classIcons[Gladdy.buttons[unit].class])
|
||||||
|
--classIcon.texture:SetTexCoord(unpack(CLASS_BUTTONS[Gladdy.buttons[unit].class]))
|
||||||
|
classIcon.texture:SetAllPoints(classIcon)
|
||||||
|
end
|
||||||
|
|
||||||
|
function Classicon:UNIT_SPEC(unit, spec)
|
||||||
|
local classIcon = self.frames[unit]
|
||||||
|
if (not Gladdy.db.classIconSpecIcon or not classIcon) then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
classIcon.texture:SetTexture(specIcons[Gladdy.buttons[unit].class][spec])
|
||||||
|
end
|
||||||
|
|
||||||
function Classicon:Test(unit)
|
function Classicon:Test(unit)
|
||||||
self:ENEMY_SPOTTED(unit)
|
self:ENEMY_SPOTTED(unit)
|
||||||
end
|
end
|
||||||
@ -85,11 +173,30 @@ function Classicon:GetOptions()
|
|||||||
name = L["Class Icon"],
|
name = L["Class Icon"],
|
||||||
order = 2,
|
order = 2,
|
||||||
},
|
},
|
||||||
|
classIconSpecIcon = {
|
||||||
|
type = "toggle",
|
||||||
|
name = L["Show Spec Icon"],
|
||||||
|
desc = L["Shows Spec Icon once spec is detected"],
|
||||||
|
order = 3,
|
||||||
|
get = function(info) return Gladdy.db.classIconSpecIcon end,
|
||||||
|
set = function(info, value)
|
||||||
|
Gladdy.db.classIconSpecIcon = value
|
||||||
|
if Gladdy.curBracket and Gladdy.curBracket > 0 then
|
||||||
|
for i=1,Gladdy.curBracket do
|
||||||
|
local unit = "arena" .. i
|
||||||
|
if (Gladdy.buttons[unit] and Gladdy.buttons[unit].spec) then
|
||||||
|
self:ENEMY_SPOTTED(unit)
|
||||||
|
self:UNIT_SPEC(unit, Gladdy.buttons[unit].spec)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
},
|
||||||
group = {
|
group = {
|
||||||
type = "group",
|
type = "group",
|
||||||
childGroups = "tree",
|
childGroups = "tree",
|
||||||
name = "Frame",
|
name = "Frame",
|
||||||
order = 3,
|
order = 4,
|
||||||
args = {
|
args = {
|
||||||
size = {
|
size = {
|
||||||
type = "group",
|
type = "group",
|
||||||
@ -165,38 +272,3 @@ function Classicon:GetOptions()
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
local function getClassIcon(class)
|
|
||||||
-- see https://wow.gamepedia.com/Class_icon
|
|
||||||
local classIcon = "Interface\\Addons\\Gladdy\\Images\\Classes\\"
|
|
||||||
if class == "DRUID" then
|
|
||||||
return classIcon .. "inv_misc_monsterclaw_04"
|
|
||||||
elseif class == "HUNTER" then
|
|
||||||
return classIcon .. "inv_weapon_bow_07"
|
|
||||||
elseif class == "MAGE" then
|
|
||||||
return classIcon .. "inv_staff_13"
|
|
||||||
elseif class == "PALADIN" then
|
|
||||||
return classIcon .. "inv_hammer_01"
|
|
||||||
elseif class == "PRIEST" then
|
|
||||||
return classIcon .. "inv_staff_30"
|
|
||||||
elseif class == "ROGUE" then
|
|
||||||
return classIcon .. "inv_throwingknife_04"
|
|
||||||
elseif class == "SHAMAN" then
|
|
||||||
return classIcon .. "inv_jewelry_talisman_04"
|
|
||||||
elseif class == "WARLOCK" then
|
|
||||||
return classIcon .. "spell_nature_drowsy"
|
|
||||||
elseif class == "WARRIOR" then
|
|
||||||
return classIcon .. "inv_sword_27"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function Classicon:ENEMY_SPOTTED(unit)
|
|
||||||
local classIcon = self.frames[unit]
|
|
||||||
if (not classIcon) then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
classIcon.texture:SetTexture(getClassIcon(Gladdy.buttons[unit].class))
|
|
||||||
--classIcon.texture:SetTexCoord(unpack(CLASS_BUTTONS[Gladdy.buttons[unit].class]))
|
|
||||||
classIcon.texture:SetAllPoints(classIcon)
|
|
||||||
end
|
|
Loading…
Reference in New Issue
Block a user