annotate Config.lua @ 18:c530327b423c Release

Updated for 5.4 Added new zone to the Bloodhound2 Database (Timeless Isle). Fixed Bug 7: Fadeleaf absent from Feralas Database. Updated zone data to fix issues on the PTR with certain zones not placing rubies properly. Updated Herb and Ore Databases.
author only1yzerman
date Tue, 10 Sep 2013 02:34:11 -0400
parents 61b30721d4cf
children
rev   line source
only1yzerman@0 1 -------- YOU'RE ON YOUR OWN HERE, THIS IS A FRIKKIN MESS - Osmium
only1yzerman@0 2 -------- Challenge Accepted - Whyzerman
only1yzerman@0 3
only1yzerman@0 4 local element;
only1yzerman@0 5 local frame;
only1yzerman@0 6
only1yzerman@0 7 Settings = {};
only1yzerman@0 8 Settings.MultiZoneMode = 0;
only1yzerman@0 9 Settings.HerbFilter = {};
only1yzerman@0 10 Settings.OreFilter = {};
only1yzerman@8 11 Settings.MiscFilter = {};
only1yzerman@0 12 Settings.ZoneFilter = {{}, {}, {}, {}, {}};
only1yzerman@0 13 Settings.InspectionRadius = 60;
only1yzerman@8 14
only1yzerman@0 15 local function Title(text)
only1yzerman@0 16 local str = frame:CreateFontString(nil, "ARTWORK", "GameFontNormalLarge");
only1yzerman@0 17 str:SetPoint("TOPLEFT", element, "TOPLEFT", 16, -16);
only1yzerman@0 18 str:SetJustifyH("LEFT");
only1yzerman@0 19 str:SetJustifyV("TOP");
only1yzerman@0 20 str:SetText(text);
only1yzerman@0 21 element = str;
only1yzerman@0 22 end
only1yzerman@0 23
only1yzerman@0 24 local function Column2(offset)
only1yzerman@0 25 local str = frame:CreateFontString(nil, "ARTWORK", "GameFontNormalLarge");
only1yzerman@0 26 str:SetPoint("TOPLEFT", element, "TOPRIGHT", -offset, -16);
only1yzerman@0 27 str:SetText(" ");
only1yzerman@0 28 element = str;
only1yzerman@0 29 end
only1yzerman@0 30
only1yzerman@0 31 local function Heading(text)
only1yzerman@0 32 local str = frame:CreateFontString(nil, "OVERLAY", "GameFontHighlight");
only1yzerman@0 33 str:SetPoint("TOPLEFT", element, "BOTTOMLEFT", 0, -8);
only1yzerman@0 34 str:SetText(text);
only1yzerman@0 35 element = str;
only1yzerman@0 36 end
only1yzerman@0 37
only1yzerman@0 38 local ddCount = 0;
only1yzerman@0 39
only1yzerman@0 40 local function DropDown(settings, key, width, init)
only1yzerman@0 41 ddCount = ddCount + 1;
only1yzerman@0 42 local dd = CreateFrame("Frame", "dropDown"..ddCount, frame, "UIDropDownMenuTemplate");
only1yzerman@0 43 dd:EnableMouse(true);
only1yzerman@0 44 dd:SetPoint("TOPLEFT", element, "BOTTOMLEFT", 0, -8);
only1yzerman@0 45 dd.State = {};
only1yzerman@0 46 UIDropDownMenu_Initialize(dd, init);
only1yzerman@0 47 UIDropDownMenu_SetWidth(dd, width);
only1yzerman@0 48 UIDropDownMenu_JustifyText(dd, "LEFT");
only1yzerman@0 49 UIDropDownMenu_SetSelectedValue(dd, settings[key]);
only1yzerman@0 50 element = dd;
only1yzerman@0 51 end
only1yzerman@0 52
only1yzerman@0 53 function AddButton(settings, key, menu, label, value)
only1yzerman@0 54 local info = UIDropDownMenu_CreateInfo();
only1yzerman@0 55 info.text = label;
only1yzerman@0 56 info.value = value;
only1yzerman@0 57 info.owner = menu;
only1yzerman@0 58 info.func = function()
only1yzerman@0 59 UIDropDownMenu_SetSelectedValue(menu, value);
only1yzerman@0 60 settings[key] = value;
only1yzerman@0 61 Bloodhound2.UpdateMinimap();
only1yzerman@0 62 end;
only1yzerman@0 63 UIDropDownMenu_AddButton(info);
only1yzerman@0 64 end
only1yzerman@0 65
only1yzerman@0 66 local cbCount = 0;
only1yzerman@0 67
only1yzerman@0 68 function CheckBox(label, value, relative, anchor, dx, dy, state)
only1yzerman@0 69 cbCount = cbCount + 1;
only1yzerman@0 70 local cb = CreateFrame("CheckButton", "checkBox"..cbCount, frame, "UICheckButtonTemplate");
only1yzerman@0 71 cb:SetWidth(16);
only1yzerman@0 72 cb:SetHeight(16);
only1yzerman@0 73 cb:SetPoint("TOPLEFT", relative, anchor, dx, dy);
only1yzerman@0 74 local text = getglobal(cb:GetName() .. "Text");
only1yzerman@0 75 text:SetText(label);
only1yzerman@0 76 cb:SetChecked(not state[value]);
only1yzerman@0 77 cb:SetScript("OnClick", function(self)
only1yzerman@0 78 if (self:GetChecked()) then
only1yzerman@0 79 state[value] = nil;
only1yzerman@0 80 else
only1yzerman@0 81 state[value] = 1;
only1yzerman@0 82 end
only1yzerman@0 83 Bloodhound2.UpdateMinimap();
only1yzerman@0 84 end);
only1yzerman@0 85 element = cb;
only1yzerman@0 86 return text:GetWidth();
only1yzerman@0 87 end
only1yzerman@0 88
only1yzerman@0 89 function ContinentName()
only1yzerman@0 90 return select(GetCurrentMapContinent(), GetMapContinents());
only1yzerman@0 91 end
only1yzerman@0 92
only1yzerman@0 93 function CheckBoxes(table, state)
only1yzerman@0 94 local relative;
only1yzerman@0 95 local bottom;
only1yzerman@0 96 local height = 1;
only1yzerman@0 97 local maxWidth = 0;
only1yzerman@0 98 local i = 0;
only1yzerman@0 99 local checkboxes = {};
only1yzerman@0 100
only1yzerman@0 101 for k, v in pairs(table) do
only1yzerman@0 102 height = height + 1;
only1yzerman@0 103 end
only1yzerman@0 104
only1yzerman@0 105 height = floor(height / 2);
only1yzerman@0 106 if height > 19 then height = 19; end;
only1yzerman@0 107
only1yzerman@0 108 for k, v in pairs(table) do
only1yzerman@0 109 i = i + 1;
only1yzerman@0 110 if (i > 1) and (mod(i, height) == 1) then
only1yzerman@0 111 width = CheckBox(v, k, relative, "TOPRIGHT", maxWidth + 6, 0, state);
only1yzerman@0 112 relative = element;
only1yzerman@0 113 maxWidth = width;
only1yzerman@0 114 else
only1yzerman@0 115 width = CheckBox(v, k, element, "BOTTOMLEFT", 0, 0, state);
only1yzerman@0 116 if (i == 1) then relative = element; end;
only1yzerman@0 117 maxWidth = max(width, maxWidth);
only1yzerman@0 118 end
only1yzerman@0 119 if (i == height) then bottom = element; end;
only1yzerman@0 120 checkboxes[k] = element;
only1yzerman@0 121 end
only1yzerman@0 122
only1yzerman@0 123 local button = CreateFrame("Button", nil, frame, "UIPanelButtonTemplate");
only1yzerman@0 124 button:SetText(L["All"]);
only1yzerman@0 125 local allWidth = button:GetTextWidth() + 30;
only1yzerman@0 126 button:SetWidth(allWidth);
only1yzerman@0 127 button:SetHeight(22);
only1yzerman@0 128 button:SetPoint("TOPLEFT", bottom, "TOPLEFT", 0, -20);
only1yzerman@0 129 button:SetScript("OnClick",
only1yzerman@0 130 function(self, button, down)
only1yzerman@0 131 for k, v in pairs(table) do
only1yzerman@0 132 checkboxes[k]:SetChecked(true);
only1yzerman@0 133 state[k] = nil;
only1yzerman@0 134 end
only1yzerman@0 135 end
only1yzerman@0 136 );
only1yzerman@0 137
only1yzerman@0 138 element = button;
only1yzerman@0 139
only1yzerman@0 140 local button = CreateFrame("Button", nil, frame, "UIPanelButtonTemplate");
only1yzerman@0 141 button:SetText(L["None"]);
only1yzerman@0 142 button:SetWidth(button:GetTextWidth() + 30);
only1yzerman@0 143 button:SetHeight(22);
only1yzerman@0 144 button:SetPoint("TOPLEFT", bottom, "TOPLEFT", allWidth + 20, -20);
only1yzerman@0 145 button:SetScript("OnClick",
only1yzerman@0 146 function(self, button, down)
only1yzerman@0 147 for k, v in pairs(table) do
only1yzerman@0 148 checkboxes[k]:SetChecked(false);
only1yzerman@0 149 state[k] = 1;
only1yzerman@0 150 end
only1yzerman@0 151 end
only1yzerman@0 152 );
only1yzerman@0 153 end
only1yzerman@0 154
only1yzerman@0 155 function AddZones(...)
only1yzerman@0 156 local table = {};
only1yzerman@0 157
only1yzerman@0 158 for i=1,select("#", ...),1 do
only1yzerman@0 159 table[i] = select(i, ...);
only1yzerman@0 160 end
only1yzerman@0 161
only1yzerman@0 162 if not Settings.ZoneFilter then
only1yzerman@0 163 Settings.ZoneFilter = {{},{},{},{},{}};
only1yzerman@0 164 end
only1yzerman@0 165
only1yzerman@0 166 local c = GetCurrentMapContinent()
only1yzerman@0 167
only1yzerman@0 168 if not Settings.ZoneFilter[c] then
only1yzerman@0 169 Settings.ZoneFilter[c] = {}
only1yzerman@0 170 end
only1yzerman@0 171
only1yzerman@0 172 CheckBoxes(table, Settings.ZoneFilter[c]);
only1yzerman@0 173 end
only1yzerman@0 174
only1yzerman@0 175 function AddHerbs()
only1yzerman@0 176 local table = {};
only1yzerman@0 177
only1yzerman@0 178 for h, v in pairs(Bloodhound2.ContinentHerbs) do
only1yzerman@0 179 local name = L[h];
only1yzerman@0 180 if not name then name="Herb "..h; end;
only1yzerman@0 181 table[h] = name;
only1yzerman@0 182 end
only1yzerman@0 183
only1yzerman@0 184 if not Settings.HerbFilter then
only1yzerman@0 185 Settings.HerbFilter = {};
only1yzerman@0 186 end
only1yzerman@0 187
only1yzerman@0 188 CheckBoxes(table, Settings.HerbFilter);
only1yzerman@0 189 end
only1yzerman@0 190
only1yzerman@0 191 function AddOre()
only1yzerman@0 192 local table = {};
only1yzerman@0 193
only1yzerman@0 194 for h, v in pairs(Bloodhound2.ContinentOre) do
only1yzerman@0 195 local name = L[h];
only1yzerman@0 196 if not name then name="Ore "..h; end;
only1yzerman@0 197 table[h] = name;
only1yzerman@0 198 end
only1yzerman@0 199
only1yzerman@0 200 if not Settings.OreFilter then
only1yzerman@0 201 Settings.OreFilter = {};
only1yzerman@0 202 end
only1yzerman@0 203
only1yzerman@0 204 CheckBoxes(table, Settings.OreFilter);
only1yzerman@0 205 end
only1yzerman@0 206
only1yzerman@8 207 function AddMisc()
only1yzerman@8 208 local table = {};
only1yzerman@8 209
only1yzerman@11 210 for h, v in pairs(Bloodhound2.ContinentNode) do
only1yzerman@8 211 local name = L[h];
only1yzerman@8 212 if not name then name="Misc "..h; end;
only1yzerman@8 213 table[h] = name;
only1yzerman@8 214 end
only1yzerman@8 215
only1yzerman@8 216 if not Settings.MiscFilter then
only1yzerman@8 217 Settings.MiscFilter = {};
only1yzerman@8 218 end
only1yzerman@8 219
only1yzerman@8 220 CheckBoxes(table, Settings.MiscFilter);
only1yzerman@8 221 end
only1yzerman@8 222
only1yzerman@0 223 local function CopyTable(table)
only1yzerman@0 224 local copy = {};
only1yzerman@0 225 for k,v in pairs(table) do
only1yzerman@0 226 if (type(v) == "table") then
only1yzerman@0 227 copy[k] = CopyTable(v);
only1yzerman@0 228 else
only1yzerman@0 229 copy[k] = v;
only1yzerman@0 230 end
only1yzerman@0 231 end
only1yzerman@0 232 return copy;
only1yzerman@0 233 end
only1yzerman@0 234
only1yzerman@0 235 local configFrame;
only1yzerman@0 236 local BackupSettings;
only1yzerman@0 237
only1yzerman@0 238 local function RefreshConfigFrame()
only1yzerman@0 239 if (configFrame) then
only1yzerman@0 240 configFrame:Hide();
only1yzerman@0 241 end
only1yzerman@0 242
only1yzerman@0 243 BackupSettings = CopyTable(Settings);
only1yzerman@0 244
only1yzerman@0 245 configFrame = CreateFrame("Frame", nil, Bloodhound2.panel);
only1yzerman@0 246 configFrame:SetAllPoints(Bloodhound2.panel);
only1yzerman@0 247 frame = configFrame;
only1yzerman@0 248 element = frame;
only1yzerman@0 249 Title(L["Bloodhound2 Options"]);
only1yzerman@0 250 Heading(L["Multi-Zone"]);
only1yzerman@0 251 DropDown(Settings, "MultiZoneMode", 120, function(menu)
only1yzerman@0 252 AddButton(Settings, "MultiZoneMode", menu, L["While flying"], 0);
only1yzerman@0 253 AddButton(Settings, "MultiZoneMode", menu, L["Always"], 1);
only1yzerman@0 254 AddButton(Settings, "MultiZoneMode", menu, L["Never"], 2);
only1yzerman@0 255 end);
only1yzerman@0 256 Heading(L["Zones"].." ("..ContinentName()..")");
only1yzerman@0 257 AddZones(GetMapZones(GetCurrentMapContinent()));
only1yzerman@0 258 element = frame;
only1yzerman@0 259 Column2(150);
only1yzerman@0 260 Heading(L["Inspection radius"]);
only1yzerman@0 261 DropDown(Settings, "InspectionRadius", 70, function(menu)
only1yzerman@0 262 AddButton(Settings, "InspectionRadius", menu, 30, 30);
only1yzerman@0 263 AddButton(Settings, "InspectionRadius", menu, 35, 35);
only1yzerman@0 264 AddButton(Settings, "InspectionRadius", menu, 40, 40);
only1yzerman@0 265 AddButton(Settings, "InspectionRadius", menu, 45, 45);
only1yzerman@0 266 AddButton(Settings, "InspectionRadius", menu, 50, 50);
only1yzerman@0 267 AddButton(Settings, "InspectionRadius", menu, 60, 60);
only1yzerman@0 268 AddButton(Settings, "InspectionRadius", menu, 70, 70);
only1yzerman@0 269 AddButton(Settings, "InspectionRadius", menu, 80, 80);
only1yzerman@0 270 AddButton(Settings, "InspectionRadius", menu, 90, 90);
only1yzerman@0 271 AddButton(Settings, "InspectionRadius", menu, 100, 100);
only1yzerman@0 272 AddButton(Settings, "InspectionRadius", menu, 120, 120);
only1yzerman@0 273 end);
only1yzerman@0 274 end
only1yzerman@0 275
only1yzerman@0 276 local herbFrame;
only1yzerman@0 277
only1yzerman@0 278 local function RefreshHerbs()
only1yzerman@0 279 if (herbFrame) then herbFrame:Hide(); end;
only1yzerman@0 280 herbFrame = CreateFrame("Frame", nil, Bloodhound2.herbPanel);
only1yzerman@0 281 herbFrame:SetAllPoints(Bloodhound2.herbPanel);
only1yzerman@0 282 frame = herbFrame;
only1yzerman@0 283 element = frame;
only1yzerman@0 284 Title(L["Bloodhound2 Options"]);
only1yzerman@0 285 Heading(L["Herbs"].." ("..ContinentName()..")");
only1yzerman@0 286 AddHerbs();
only1yzerman@0 287 end
only1yzerman@0 288
only1yzerman@0 289 local oreFrame;
only1yzerman@0 290
only1yzerman@0 291 local function RefreshOre()
only1yzerman@0 292 if (oreFrame) then oreFrame:Hide(); end;
only1yzerman@0 293 oreFrame= CreateFrame("Frame", nil, Bloodhound2.orePanel);
only1yzerman@0 294 oreFrame:SetAllPoints(Bloodhound2.orePanel);
only1yzerman@0 295 frame = oreFrame;
only1yzerman@0 296 element = frame;
only1yzerman@0 297 Title(L["Bloodhound2 Options"]);
only1yzerman@0 298 Heading(L["Minerals"].." ("..ContinentName()..")");
only1yzerman@0 299 AddOre();
only1yzerman@0 300 end
only1yzerman@0 301
only1yzerman@8 302 local miscFrame;
only1yzerman@8 303
only1yzerman@8 304 local function RefreshMisc()
only1yzerman@8 305 if (miscFrame) then miscFrame:Hide(); end;
only1yzerman@8 306 miscFrame= CreateFrame("Frame", nil, Bloodhound2.miscPanel);
only1yzerman@8 307 miscFrame:SetAllPoints(Bloodhound2.miscPanel);
only1yzerman@8 308 frame = miscFrame;
only1yzerman@8 309 element = frame;
only1yzerman@8 310 Title(L["Bloodhound2 Options"]);
only1yzerman@8 311 Heading(L["Misc"].." ("..ContinentName()..")");
only1yzerman@8 312 AddMisc();
only1yzerman@8 313 end
only1yzerman@8 314
only1yzerman@0 315 local function RestoreHerbDefaults()
only1yzerman@0 316 Settings.HerbFilter = {};
only1yzerman@0 317 end
only1yzerman@0 318
only1yzerman@0 319 local function RestoreOreDefaults()
only1yzerman@0 320 Settings.OreFilter = {};
only1yzerman@0 321 end
only1yzerman@0 322
only1yzerman@8 323 local function RestoreMiscDefaults()
only1yzerman@8 324 Settings.MiscFilter = {};
only1yzerman@8 325 end
only1yzerman@8 326
only1yzerman@0 327 local function RestoreZoneDefaults()
only1yzerman@0 328 Settings.MultiZoneMode = 0;
only1yzerman@0 329 Settings.InspectionRadius = 60;
only1yzerman@0 330 Settings.ZoneFilter[GetCurrentMapContinent()] = {};
only1yzerman@0 331 end
only1yzerman@0 332
only1yzerman@0 333 Bloodhound2.panel = CreateFrame("FRAME", "Bloodhound2", Bloodhound2.Frame);
only1yzerman@0 334 Bloodhound2.panel.name = L["Bloodhound2"];
only1yzerman@0 335 Bloodhound2.panel.default = RestoreZoneDefaults;
only1yzerman@0 336 Bloodhound2.panel.okay = function() end;
only1yzerman@0 337 Bloodhound2.panel.cancel = function() Settings = BackupSettings; Bloodhound2.UpdateMinimap(); end;
only1yzerman@0 338 Bloodhound2.panel.refresh = RefreshConfigFrame;
only1yzerman@0 339 InterfaceOptions_AddCategory(Bloodhound2.panel);
only1yzerman@0 340
only1yzerman@0 341 Bloodhound2.herbPanel = CreateFrame("FRAME", "Bloodhound2_Herbs", Bloodhound2.Frame);
only1yzerman@0 342 Bloodhound2.herbPanel.name = L["Herbs"];
only1yzerman@0 343 Bloodhound2.herbPanel.parent = "Bloodhound2";
only1yzerman@0 344 Bloodhound2.herbPanel.default = RestoreHerbDefaults;
only1yzerman@0 345 Bloodhound2.herbPanel.okay = function() end;
only1yzerman@0 346 Bloodhound2.herbPanel.cancel = function() end;
only1yzerman@0 347 Bloodhound2.herbPanel.refresh = RefreshHerbs;
only1yzerman@0 348 InterfaceOptions_AddCategory(Bloodhound2.herbPanel);
only1yzerman@0 349
only1yzerman@0 350 Bloodhound2.orePanel = CreateFrame("FRAME", "Bloodhound2_Ore", Bloodhound2.Frame);
only1yzerman@0 351 Bloodhound2.orePanel.name = L["Minerals"];
only1yzerman@0 352 Bloodhound2.orePanel.parent = "Bloodhound2";
only1yzerman@0 353 Bloodhound2.orePanel.default = RestoreOreDefaults;
only1yzerman@0 354 Bloodhound2.orePanel.okay = function() end;
only1yzerman@0 355 Bloodhound2.orePanel.cancel = function() end;
only1yzerman@0 356 Bloodhound2.orePanel.refresh = RefreshOre;
only1yzerman@0 357 InterfaceOptions_AddCategory(Bloodhound2.orePanel);
only1yzerman@0 358
only1yzerman@8 359 Bloodhound2.miscPanel = CreateFrame("FRAME", "Bloodhound2_Misc", Bloodhound2.Frame);
only1yzerman@8 360 Bloodhound2.miscPanel.name = L["Misc"];
only1yzerman@8 361 Bloodhound2.miscPanel.parent = "Bloodhound2";
only1yzerman@8 362 Bloodhound2.miscPanel.default = RestoreMiscDefaults;
only1yzerman@8 363 Bloodhound2.miscPanel.okay = function() end;
only1yzerman@8 364 Bloodhound2.miscPanel.cancel = function() end;
only1yzerman@8 365 Bloodhound2.miscPanel.refresh = RefreshMisc;
only1yzerman@8 366 InterfaceOptions_AddCategory(Bloodhound2.miscPanel);