vanilla-wow-addons – Rev 1
?pathlinks?
assert(BigWigs, "BigWigs not found!")
------------------------------
-- Are you local? --
------------------------------
local L = AceLibrary("AceLocale-2.0"):new("BigWigsRaidIcon")
local lastplayer = nil
----------------------------
-- Localization --
----------------------------
L:RegisterTranslations("enUS", function() return {
["Raid Icons"] = true,
["raidicon"] = true,
["place"] = true,
["icon"] = true,
["Place"] = true,
["Place Raid Icons"] = true,
["Toggle placing of Raid Icons on players."] = true,
["Icon"] = true,
["Set Icon"] = true,
["Set which icon to place on players."] = true,
["Options for Raid Icons."] = true,
["star"] = true,
["circle"] = true,
["diamond"] = true,
["triangle"] = true,
["moon"] = true,
["square"] = true,
["cross"] = true,
["skull"] = true,
} end )
L:RegisterTranslations("koKR", function() return {
["Raid Icons"] = "공격대 아이콘",
["Place"] = "지정",
["Place Raid Icons"] = "공격대 아이콘 지정",
["Toggle placing of Raid Icons on players."] = "플레이어에 공격대 아이콘 지정 토글",
["Icon"] = "아이콘",
["Set Icon"] = "아이콘 설정",
["Set which icon to place on players."] = "플레이어에 아이콘 지정을 위한 설정",
["Options for Raid Icons."] = "공격대 아이콘에 대한 설정",
["star"] = "별",
["circle"] = "원",
["diamond"] = "다이아몬드",
["triangle"] = "세모",
["moon"] = "달",
["square"] = "네모",
["cross"] = "가위표",
["skull"] = "해골",
} end )
L:RegisterTranslations("zhCN", function() return {
["Raid Icons"] = "团队图标",
["Place"] = "标记",
["Place Raid Icons"] = "标记团队图标",
["Toggle placing of Raid Icons on players."] = "切换是否在玩家身上标记团队图标",
["Icon"] = "图标",
["Set Icon"] = "设置图标",
["Set which icon to place on players."] = "设置玩家身上标记的图标。",
["Options for Raid Icons."] = "团队图标设置",
["star"] = "星星",
["circle"] = "圆圈",
["diamond"] = "钻石",
["triangle"] = "三角",
["moon"] = "月亮",
["square"] = "方形",
["cross"] = "十字",
["skull"] = "骷髅",
} end )
L:RegisterTranslations("deDE", function() return {
["Raid Icons"] = "Schlachtzug Symbole",
-- ["raidicon"] = true,
-- ["place"] = true,
-- ["icon"] = true,
["Place"] = "Platzierung",
["Place Raid Icons"] = "Platziere Schlachtzug Symbole",
["Toggle placing of Raid Icons on players."] = "W\195\164hle, ob Schlachtzug Symbole auf Spieler gesetzt werden.",
["Icon"] = "Symbol",
["Set Icon"] = "Symbol",
["Set which icon to place on players."] = "W\195\164hle, welches Symbol auf Spieler gesetzt wird.",
["Options for Raid Icons."] = "Optionen f\195\188r Schlachtzug Symbole.",
["star"] = "Stern",
["circle"] = "Kreis",
["diamond"] = "Diamant",
["triangle"] = "Dreieck",
["moon"] = "Mond",
["square"] = "Quadrat",
["cross"] = "Kreuz",
["skull"] = "Totenkopf",
} end )
----------------------------------
-- Module Declaration --
----------------------------------
BigWigsRaidIcon = BigWigs:NewModule(L["Raid Icons"])
BigWigsRaidIcon.defaultDB = {
place = true,
icon = L["skull"],
}
BigWigsRaidIcon.icontonumber = {
[L["star"]] = 1,
[L["circle"]] = 2,
[L["diamond"]] = 3,
[L["triangle"]] = 4,
[L["moon"]] = 5,
[L["square"]] = 6,
[L["cross"]] = 7,
[L["skull"]] = 8,
}
BigWigsRaidIcon.consoleCmd = L["raidicon"]
BigWigsRaidIcon.consoleOptions = {
type = "group",
name = L["Raid Icons"],
desc = L["Options for Raid Icons."],
args = {
[L["place"]] = {
type = "toggle",
name = L["Place Raid Icons"],
desc = L["Toggle placing of Raid Icons on players."],
get = function() return BigWigsRaidIcon.db.profile.place end,
set = function(v) BigWigsRaidIcon.db.profile.place = v end,
},
[L["icon"]] = {
type = "text",
name = L["Set Icon"],
desc = L["Set which icon to place on players."],
get = function() return BigWigsRaidIcon.db.profile.icon end,
set = function(v) BigWigsRaidIcon.db.profile.icon = v end,
validate = {L["star"], L["circle"], L["diamond"], L["triangle"], L["moon"], L["square"], L["cross"], L["skull"] },
},
}
}
------------------------------
-- Initialization --
------------------------------
function BigWigsRaidIcon:OnEnable()
self:RegisterEvent("BigWigs_SetRaidIcon")
self:RegisterEvent("BigWigs_RemoveRaidIcon")
end
function BigWigsRaidIcon:BigWigs_SetRaidIcon(player)
if not self.db.profile.place or not player then return end
local icon = self.db.profile.icon
if not self.icontonumber[icon] then
icon = L["skull"]
end
icon = self.icontonumber[icon]
for i=1,GetNumRaidMembers() do
if UnitName("raid"..i) == player then
if not GetRaidTargetIndex("raid"..i) then
SetRaidTargetIcon("raid"..i, icon)
lastplayer = player
end
end
end
end
function BigWigsRaidIcon:BigWigs_RemoveRaidIcon()
if not self.db.profile.place or not lastplayer then return end
for i=1,GetNumRaidMembers() do
if UnitName("raid"..i) == lastplayer then
SetRaidTargetIcon("raid"..i, 0)
end
end
lastplayer = nil
end