vanilla-wow-addons – Blame information for rev 1
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | office | 1 | -- Global variables |
2 | CLASSICONS_VERSION = "1.0.2"; |
||
3 | |||
4 | function ClassIcons_OnLoad() |
||
5 | |||
6 | -- Set up slash commands |
||
7 | SlashCmdList["CLASSICONS"] = ClassIcons_CmdHandler; |
||
8 | SLASH_CLASSICONS1 = "/classicons"; |
||
9 | SLASH_CLASSICONS2 = "/ci"; |
||
10 | |||
11 | -- Register for events |
||
12 | this:RegisterEvent("VARIABLES_LOADED"); |
||
13 | this:RegisterEvent("PLAYER_ENTERING_WORLD"); |
||
14 | this:RegisterEvent("PLAYER_TARGET_CHANGED"); |
||
15 | this:RegisterEvent("PARTY_MEMBERS_CHANGED"); |
||
16 | this:RegisterEvent("PARTY_MEMBER_ENABLE"); |
||
17 | |||
18 | end |
||
19 | |||
20 | function ClassIcons_CmdHandler(msg) |
||
21 | |||
22 | if ( msg == "on" ) then |
||
23 | CLASSICONS_CONFIG.Active = true; |
||
24 | DEFAULT_CHAT_FRAME:AddMessage("[ClassIcons] Activated."); |
||
25 | |||
26 | ClassIcons_OnEvent["PLAYER_ENTERING_WORLD"](); |
||
27 | ClassIcons_OnEvent["PLAYER_TARGET_CHANGED"](); |
||
28 | ClassIcons_OnEvent["PARTY_MEMBERS_CHANGED"](); |
||
29 | |||
30 | return; |
||
31 | end |
||
32 | |||
33 | if ( msg == "off" ) then |
||
34 | CLASSICONS_CONFIG.Active = false; |
||
35 | DEFAULT_CHAT_FRAME:AddMessage("[ClassIcons] Deactivated."); |
||
36 | |||
37 | ClassIcons_OnEvent["PLAYER_ENTERING_WORLD"](); |
||
38 | ClassIcons_OnEvent["PLAYER_TARGET_CHANGED"](); |
||
39 | ClassIcons_OnEvent["PARTY_MEMBERS_CHANGED"](); |
||
40 | |||
41 | return; |
||
42 | end |
||
43 | |||
44 | DEFAULT_CHAT_FRAME:AddMessage("[ClassIcons] Use on/off to control icon visibility."); |
||
45 | |||
46 | end |
||
47 | |||
48 | function ClassIcons_UpdateIcon(frame, unit) |
||
49 | |||
50 | if ( not frame ) or ( not unit ) then |
||
51 | return; |
||
52 | end |
||
53 | |||
54 | local icon = getglobal(frame.."ClassIcon"); |
||
55 | local texture = getglobal(frame.."ClassIconTexture"); |
||
56 | |||
57 | if ( not icon ) or ( not texture ) then |
||
58 | return; |
||
59 | end |
||
60 | |||
61 | if ( CLASSICONS_CONFIG.Active == false ) then |
||
62 | if ( icon:IsVisible() ) then icon:Hide(); end |
||
63 | return; |
||
64 | end |
||
65 | |||
66 | local localizedClass, englishClass = UnitClass(unit); |
||
67 | |||
68 | if ( not englishClass ) then |
||
69 | return; |
||
70 | end |
||
71 | |||
72 | if ( not icon:IsVisible() ) then |
||
73 | icon:Show(); |
||
74 | end |
||
75 | |||
76 | texture:SetTexture("Interface\\AddOns\\ClassIcons\\Icons\\"..englishClass); |
||
77 | |||
78 | end |
||
79 | |||
80 | function ClassIcons_OnEvent(event) |
||
81 | |||
82 | if ( event == "VARIABLES_LOADED" ) then |
||
83 | |||
84 | if ( CLASSICONS_CONFIG == nil ) then |
||
85 | CLASSICONS_CONFIG = { }; |
||
86 | end |
||
87 | |||
88 | if ( CLASSICONS_CONFIG.Active == nil ) then |
||
89 | CLASSICONS_CONFIG.Active = true; |
||
90 | end |
||
91 | |||
92 | elseif ( event == "PLAYER_ENTERING_WORLD" ) then |
||
93 | |||
94 | ClassIcons_UpdateIcon("PlayerFrame", "player"); |
||
95 | |||
96 | elseif ( event == "PLAYER_TARGET_CHANGED" ) then |
||
97 | |||
98 | ClassIcons_UpdateIcon("TargetFrame", "target"); |
||
99 | |||
100 | elseif ( event == "PARTY_MEMBERS_CHANGED" ) or |
||
101 | ( event == "PARTY_MEMBER_ENABLE" ) then |
||
102 | |||
103 | for i = 1, 4 do |
||
104 | |||
105 | ClassIcons_UpdateIcon("PartyMemberFrame"..i, "party"..i); |
||
106 | |||
107 | end |
||
108 | |||
109 | end |
||
110 | |||
111 | end |
||
112 | |||
113 | function ClassIcons_Icon_OnLoad() |
||
114 | this:SetFrameLevel(this:GetFrameLevel()+2); |
||
115 | end |
||
116 |