1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
local _;
VUHDO_LibSharedMedia = LibStub("LibSharedMedia-3.0");
VUHDO_LibDataBroker = LibStub("LibDataBroker-1.1", true);
VUHDO_LibButtonFacade = nil;
VUHDO_LibCompress = LibStub:GetLibrary("LibCompress");
VUHDO_LibCompressEncode = VUHDO_LibCompress:GetAddonEncodeTable();
VUHDO_LibBase64 = LibStub:GetLibrary("LibBase64-1.0");
VUHDO_LibSharedMedia:Register("font", "Arial Black", "Interface\\AddOns\\VuhDo\\Fonts\\ariblk.ttf");
VUHDO_LibSharedMedia:Register("font", "Emblem", "Interface\\AddOns\\VuhDo\\Fonts\\Emblem.ttf");
VUHDO_LibSharedMedia:Register("font", "Vixar", "Interface\\AddOns\\VuhDo\\Fonts\\vixar.ttf");
local function VUHDO_registerLsmBar(...)
for tCnt = 1, select('#', ...) do
VUHDO_LibSharedMedia:Register("statusbar", "VuhDo - " .. select(tCnt, ...), "Interface\\AddOns\\VuhDo\\Images\\bar" .. tCnt .. ".tga");
end
end
VUHDO_registerLsmBar("Rhombs", "Twirls", "Pipe, dark", "Concave, dark", "Pipe, light", "Flat", "Concave, light",
"Convex", "Textile", "Mirrorfinish", "Diagonals", "Zebra", "Marble", "Modern Art", "Polished Wood", "Plain",
"Minimalist", "Aluminium", "Gradient");
VUHDO_LibSharedMedia:Register("statusbar", "VuhDo - Bar Highlighter", "Interface\\AddOns\\VuhDo\\Images\\highlight.tga");
VUHDO_LibSharedMedia:Register("statusbar", "VuhDo - Plain White", "Interface\\AddOns\\VuhDo\\Images\\plain_white.tga");
VUHDO_LibSharedMedia:Register("statusbar", "LiteStepLite", "Interface\\AddOns\\VuhDo\\Images\\LiteStepLite.tga");
VUHDO_LibSharedMedia:Register("statusbar", "Tukui", "Interface\\AddOns\\VuhDo\\Images\\tukuibar.tga");
VUHDO_LibSharedMedia:Register("sound", "Tribal Bass Drum", "Sound\\Doodad\\BellTollTribal.wav");
VUHDO_LibSharedMedia:Register("sound", "Thorns", "Sound\\Spells\\Thorns.wav ");
VUHDO_LibSharedMedia:Register("sound", "Elf Bell Toll", "Sound\\Doodad\\BellTollNightElf.wav");
VUHDO_LibSharedMedia:Register("border", "Plain White", "Interface\\AddOns\\VuhDo\\Images\\white_square_16_16");
LoadAddOn("FuBarPlugin-3.0");
--
function VUHDO_initAddonMessages()
if not IsAddonMessagePrefixRegistered("CTRA") then RegisterAddonMessagePrefix("CTRA"); end
if not IsAddonMessagePrefixRegistered(VUHDO_COMMS_PREFIX) then RegisterAddonMessagePrefix(VUHDO_COMMS_PREFIX); end
end
--
local tHasShownError = false;
function VUHDO_parseAddonMessage(aPrefix, aMessage, aUnitName)
if VUHDO_COMMS_PREFIX == aPrefix then
if VUHDO_parseVuhDoMessage then
VUHDO_parseVuhDoMessage(aUnitName, aMessage);
elseif not tHasShownError then
VUHDO_Msg("VuhDo Options module not loaded: You cannot receive data from other players.", 1, 0.4, 0.4);
tHasShownError = true;
end
elseif "CTRA" == aPrefix then
if strfind(aMessage, "#") then
local tFragments = VUHDO_splitString(aMessage, "#");
for _, tCommand in pairs(tFragments) do
VUHDO_parseCtraMessage(aUnitName, tCommand);
end
else
VUHDO_parseCtraMessage(aUnitName, aMessage);
end
end
end
--
function VUHDO_initFuBar()
-- libDataBroker
if VUHDO_LibDataBroker then
VUHDO_LibDataBroker:NewDataObject("VuhDo", {
type = "launcher",
icon = "Interface\\AddOns\\VuhDo\\Images\\VuhDo",
OnClick = function(aClickedFrame, aButton)
if aButton == "RightButton" then
ToggleDropDownMenu(1, nil, VuhDoMinimapDropDown, aClickedFrame:GetName(), 0, -5);
else
VUHDO_slashCmd("opt");
end
end,
OnTooltipShow = function(aTooltip)
aTooltip:AddLine("VuhDo")
aTooltip:AddLine(VUHDO_I18N_BROKER_TOOLTIP_1)
aTooltip:AddLine(VUHDO_I18N_BROKER_TOOLTIP_2)
end,
})
end
-- Native FuBar
if LibStub:GetLibrary("LibFuBarPlugin-3.0", true)
and IsAddOnLoaded("FuBar")
and not IsAddOnLoaded("FuBar2Broker")
and not IsAddOnLoaded("Broker2FuBar") then
local tLibFuBarPlugin = LibStub:GetLibrary("LibFuBarPlugin-3.0");
LibStub("AceAddon-3.0"):EmbedLibrary(VuhDo, "LibFuBarPlugin-3.0");
VuhDo:SetFuBarOption("tooltipType", "GameTooltip");
VuhDo:SetFuBarOption("hasNoColor", true);
VuhDo:SetFuBarOption("cannotDetachTooltip", true);
VuhDo:SetFuBarOption("hideWithoutStandby", true);
VuhDo:SetFuBarOption("iconPath", "Interface\\AddOns\\VuhDo\\Images\\VuhDo");
VuhDo:SetFuBarOption("hasIcon", true);
VuhDo:SetFuBarOption("defaultPosition", "RIGHT");
VuhDo:SetFuBarOption("tooltipHiddenWhenEmpty", true);
VuhDo:SetFuBarOption("configType", "None");
VuhDo.title = "VuhDo";
VuhDo.name = "VuhDo";
tLibFuBarPlugin:OnEmbedInitialize(VuhDo, VuhDo);
function VuhDo:OnUpdateFuBarTooltip()
GameTooltip:AddLine("VuhDo");
GameTooltip:AddLine(VUHDO_I18N_BROKER_TOOLTIP_1);
GameTooltip:AddLine(VUHDO_I18N_BROKER_TOOLTIP_2);
end
VuhDo:Show();
function VuhDo:OnFuBarClick(aButton)
if "LeftButton" == aButton then
VUHDO_slashCmd("opt");
elseif "RightButton" == aButton then
ToggleDropDownMenu(1, nil, VuhDoMinimapDropDown, VuhDo:GetFrame():GetName(), 0, -5);
end
end
end
end
--
function VUHDO_initSharedMedia()
-- fonts
for tIndex, tValue in ipairs(VUHDO_LibSharedMedia:List("font")) do
VUHDO_FONTS[tIndex] = { VUHDO_LibSharedMedia:Fetch("font", tValue), tValue };
end
-- status bars
for tIndex, tValue in ipairs(VUHDO_LibSharedMedia:List("statusbar")) do
VUHDO_STATUS_BARS[tIndex] = { tValue, tValue };
end
-- sounds
for tIndex, tValue in ipairs(VUHDO_LibSharedMedia:List("sound")) do
VUHDO_SOUNDS[tIndex] = { VUHDO_LibSharedMedia:Fetch("sound", tValue), tValue };
end
tinsert(VUHDO_SOUNDS, 1, { nil, "-- " .. VUHDO_I18N_OFF .. " --" } );
-- borders
for tIndex, tValue in ipairs(VUHDO_LibSharedMedia:List("border")) do
VUHDO_BORDERS[tIndex] = { VUHDO_LibSharedMedia:Fetch("border", tValue) or "", tValue };
end
end
--
function VUHDO_initCliqueSupport()
if not VUHDO_CONFIG["IS_CLIQUE_COMPAT_MODE"] then return; end
if not IsAddOnLoaded("Clique") then
VUHDO_Msg("WARNING: Clique compatibility mode is enabled but clique doesn't seem to be loaded!", 1, 0.4, 0.4);
end
ClickCastFrames = ClickCastFrames or {};
local tBtnName;
local tIcon;
for tPanelNum = 1, 10 do -- VUHDO_MAX_PANELS
for tButtonNum = 1, 51 do -- VUHDO_MAX_BUTTONS_PANEL
tBtnName = format("Vd%dH%d", tPanelNum, tButtonNum);
if _G[tBtnName] then
ClickCastFrames[_G[tBtnName]] = true;
ClickCastFrames[_G[tBtnName .. "Tg"]] = true;
ClickCastFrames[_G[tBtnName .. "Tot"]] = true;
for tIconNum = 40, 44 do
tIcon = _G[format("%sBgBarIcBarHlBarIc%d", tBtnName, tIconNum)];
if tIcon then ClickCastFrames[tIcon] = true; end
end
end
end
end
end
--
function VUHDO_initButtonFacade(anInstance)
VUHDO_LibButtonFacade = VUHDO_CONFIG["IS_USE_BUTTON_FACADE"] and LibStub("Masque", true) or nil;
if VUHDO_LibButtonFacade then
VUHDO_LibButtonFacade:Group("VuhDo", VUHDO_I18N_BUFF_WATCH);
VUHDO_LibButtonFacade:Group("VuhDo", VUHDO_I18N_HOTS);
end
end