vanilla-wow-addons – Rev 1
?pathlinks?
MetaMapBLTData = {};
MetaMapBLT_ClassSet = "";
MetaMapBLT_ClassName = "";
local function MetaMapBLT_FixText(text)
--Armour class
text = gsub(text, "#a1#", ATLASLOOT_CLOTH);
text = gsub(text, "#a2#", ATLASLOOT_LEATHER);
text = gsub(text, "#a3#", ATLASLOOT_MAIL);
text = gsub(text, "#a4#", ATLASLOOT_PLATE);
--Body slot
text = gsub(text, "#s1#", ATLASLOOT_HEAD);
text = gsub(text, "#s2#", ATLASLOOT_NECK);
text = gsub(text, "#s3#", ATLASLOOT_SHOULDER);
text = gsub(text, "#s4#", ATLASLOOT_BACK);
text = gsub(text, "#s5#", ATLASLOOT_CHEST);
text = gsub(text, "#s6#", ATLASLOOT_SHIRT);
text = gsub(text, "#s7#", ATLASLOOT_TABARD);
text = gsub(text, "#s8#", ATLASLOOT_WRIST);
text = gsub(text, "#s9#", ATLASLOOT_HANDS);
text = gsub(text, "#s10#", ATLASLOOT_WAIST);
text = gsub(text, "#s11#", ATLASLOOT_LEGS);
text = gsub(text, "#s12#", ATLASLOOT_FEET);
text = gsub(text, "#s13#", ATLASLOOT_RING);
text = gsub(text, "#s14#", ATLASLOOT_TRINKET);
text = gsub(text, "#s15#", ATLASLOOT_OFF_HAND);
text = gsub(text, "#s16#", ATLASLOOT_RELIC);
--Weapon Weilding
text = gsub(text, "#h1#", ATLASLOOT_ONE_HAND);
text = gsub(text, "#h2#", ATLASLOOT_TWO_HAND);
text = gsub(text, "#h3#", ATLASLOOT_MAIN_HAND);
text = gsub(text, "#h4#", ATLASLOOT_OFFHAND);
--Weapon type
text = gsub(text, "#w1#", ATLASLOOT_AXE);
text = gsub(text, "#w2#", ATLASLOOT_BOW);
text = gsub(text, "#w3#", ATLASLOOT_CROSSBOW);
text = gsub(text, "#w4#", ATLASLOOT_DAGGER);
text = gsub(text, "#w5#", ATLASLOOT_GUN);
text = gsub(text, "#w6#", ATLASLOOT_MACE);
text = gsub(text, "#w7#", ATLASLOOT_POLEARM);
text = gsub(text, "#w8#", ATLASLOOT_SHIELD);
text = gsub(text, "#w9#", ATLASLOOT_STAFF);
text = gsub(text, "#w10#", ATLASLOOT_SWORD);
text = gsub(text, "#w11#", ATLASLOOT_THROWN);
text = gsub(text, "#w12#", ATLASLOOT_WAND);
text = gsub(text, "#w13#", ATLASLOOT_FIST);
-- Misc. Equipment
text = gsub(text, "#e1#", ATLASLOOT_POTION);
text = gsub(text, "#e2#", ATLASLOOT_FOOD);
text = gsub(text, "#e3#", ATLASLOOT_DRINK);
text = gsub(text, "#e4#", ATLASLOOT_BANDAGE);
text = gsub(text, "#e5#", ATLASLOOT_ARROW);
text = gsub(text, "#e6#", ATLASLOOT_BULLET);
text = gsub(text, "#e7#", ATLASLOOT_MOUNT);
text = gsub(text, "#e8#", ATLASLOOT_AMMO);
text = gsub(text, "#e9#", ATLASLOOT_QUIVER);
text = gsub(text, "#e10#", ATLASLOOT_BAG);
text = gsub(text, "#e11#", ATLASLOOT_ENCHANT);
text = gsub(text, "#e12#", ATLASLOOT_TRADE_GOODS);
text = gsub(text, "#e13#", ATLASLOOT_SCOPE);
text = gsub(text, "#e14#", ATLASLOOT_KEY);
text = gsub(text, "#e15#", ATLASLOOT_PET);
text = gsub(text, "#e16#", ATLASLOOT_IDOL);
text = gsub(text, "#e17#", ATLASLOOT_TOTEM);
text = gsub(text, "#e18#", ATLASLOOT_LIBRAM);
text = gsub(text, "#e19#", ATLASLOOT_DARKMOON);
text = gsub(text, "#e20#", ATLASLOOT_BOOK);
text = gsub(text, "#e21#", ATLASLOOT_BANNER);
-- Classes
text = gsub(text, "#c1#", ATLASLOOT_DRUID);
text = gsub(text, "#c2#", ATLASLOOT_HUNTER);
text = gsub(text, "#c3#", ATLASLOOT_MAGE);
text = gsub(text, "#c4#", ATLASLOOT_PALADIN);
text = gsub(text, "#c5#", ATLASLOOT_PRIEST);
text = gsub(text, "#c6#", ATLASLOOT_ROGUE);
text = gsub(text, "#c7#", ATLASLOOT_SHAMAN);
text = gsub(text, "#c8#", ATLASLOOT_WARLOCK);
text = gsub(text, "#c9#", ATLASLOOT_WARRIOR);
--Professions
text = gsub(text, "#p1#", ATLASLOOT_ALCHEMY);
text = gsub(text, "#p2#", ATLASLOOT_BLACKSMITHING);
text = gsub(text, "#p3#", ATLASLOOT_COOKING);
text = gsub(text, "#p4#", ATLASLOOT_ENCHANTING);
text = gsub(text, "#p5#", ATLASLOOT_ENGINEERING);
text = gsub(text, "#p6#", ATLASLOOT_FIRST_AID);
text = gsub(text, "#p7#", ATLASLOOT_LEATHERWORKING);
text = gsub(text, "#p8#", ATLASLOOT_TAILORING);
text = gsub(text, "#p9#", ATLASLOOT_DRAGONSCALE);
text = gsub(text, "#p10#", ATLASLOOT_TRIBAL);
text = gsub(text, "#p11#", ATLASLOOT_ELEMENTAL);
--Reputation
text = gsub(text, "#r1#", ATLASLOOT_NEUTRAL);
text = gsub(text, "#r2#", ATLASLOOT_FRIENDLY);
text = gsub(text, "#r3#", ATLASLOOT_HONORED);
text = gsub(text, "#r4#", ATLASLOOT_REVERED);
text = gsub(text, "#r5#", ATLASLOOT_EXALTED);
--Battleground Factions
text = gsub(text, "#b1#", ATLASLOOT_BG_STORMPIKE);
text = gsub(text, "#b2#", ATLASLOOT_BG_FROSTWOLF);
text = gsub(text, "#b3#", ATLASLOOT_BG_SENTINELS);
text = gsub(text, "#b4#", ATLASLOOT_BG_OUTRIDERS);
text = gsub(text, "#b5#", ATLASLOOT_BG_ARATHOR);
text = gsub(text, "#b6#", ATLASLOOT_BG_DEFILERS);
-- Misc phrases and mod specific stuff
text = gsub(text, "#m1#", ATLASLOOT_CLASSES);
text = gsub(text, "#m2#", ATLASLOOT_QUEST1);
text = gsub(text, "#m3#", ATLASLOOT_QUEST2);
text = gsub(text, "#m4#", ATLASLOOT_QUEST3);
text = gsub(text, "#m5#", ATLASLOOT_SHARED);
text = gsub(text, "#m6#", ATLASLOOT_HORDE);
text = gsub(text, "#m7#", ATLASLOOT_ALLIANCE);
text = gsub(text, "#m8#", ATLASLOOT_UNIQUE);
text = gsub(text, "#m9#", ATLASLOOT_RIGHTSIDE);
text = gsub(text, "#m10#", ATLASLOOT_LEFTSIDE);
text = gsub(text, "#m11#", ATLASLOOT_FELCOREBAG);
text = gsub(text, "#m12#", ATLASLOOT_ONYBAG);
text = gsub(text, "#m13#", ATLASLOOT_WCBAG);
text = gsub(text, "#m14#", ATLASLOOT_FULLSKILL);
text = gsub(text, "#m15#", ATLASLOOT_295);
text = gsub(text, "#m16#", ATLASLOOT_275);
text = gsub(text, "#m17#", ATLASLOOT_265);
text = gsub(text, "#m18#", ATLASLOOT_290);
text = gsub(text, "#m19#", ATLASLOOT_SET);
text = gsub(text, "#m20#", ATLASLOOT_285);
text = gsub(text, "#m21#", ATLASLOOT_16SLOT);
text = gsub(text, "#x1#", ATLASLOOT_COBRAHN);
text = gsub(text, "#x2#", ATLASLOOT_ANACONDRA);
text = gsub(text, "#x3#", ATLASLOOT_SERPENTIS);
text = gsub(text, "#x4#", ATLASLOOT_FANGDRUID);
text = gsub(text, "#x5#", ATLASLOOT_PYTHAS);
text = gsub(text, "#x6#", ATLASLOOT_VANCLEEF);
text = gsub(text, "#x7#", ATLASLOOT_GREENSKIN);
text = gsub(text, "#x8#", ATLASLOOT_DEFIASMINER);
text = gsub(text, "#x9#", ATLASLOOT_DEFIASOVERSEER);
text = gsub(text, "#x10#", ATLASLOOT_Primal_Hakkari_Kossack);
text = gsub(text, "#x11#", ATLASLOOT_Primal_Hakkari_Shawl);
text = gsub(text, "#x12#", ATLASLOOT_Primal_Hakkari_Bindings);
text = gsub(text, "#x13#", ATLASLOOT_Primal_Hakkari_Sash);
text = gsub(text, "#x14#", ATLASLOOT_Primal_Hakkari_Stanchion);
text = gsub(text, "#x15#", ATLASLOOT_Primal_Hakkari_Aegis);
text = gsub(text, "#x16#", ATLASLOOT_Primal_Hakkari_Girdle);
text = gsub(text, "#x17#", ATLASLOOT_Primal_Hakkari_Armsplint);
text = gsub(text, "#x18#", ATLASLOOT_Primal_Hakkari_Tabard);
text = gsub(text, "#x19#", ATLASLOOT_Qiraji_Ornate_Hilt);
text = gsub(text, "#x20#", ATLASLOOT_Qiraji_Martial_Drape);
text = gsub(text, "#x21#", ATLASLOOT_Qiraji_Magisterial_Ring);
text = gsub(text, "#x22#", ATLASLOOT_Qiraji_Ceremonial_Ring);
text = gsub(text, "#x23#", ATLASLOOT_Qiraji_Regal_Drape);
text = gsub(text, "#x24#", ATLASLOOT_Qiraji_Spiked_Hilt);
text = gsub(text, "#x25#", ATLASLOOT_Qiraji_Bindings_of_Dominance);
text = gsub(text, "#x26#", ATLASLOOT_Veknilashs_Circlet);
text = gsub(text, "#x27#", ATLASLOOT_Ouros_Intact_Hide);
text = gsub(text, "#x28#", ATLASLOOT_Husk_of_the_Old_God);
text = gsub(text, "#x29#", ATLASLOOT_Qiraji_Bindings_of_Command);
text = gsub(text, "#x30#", ATLASLOOT_Veklors_Diadem);
text = gsub(text, "#x31#", ATLASLOOT_Skin_of_the_Great_Sandworm);
text = gsub(text, "#x32#", ATLASLOOT_Carapace_of_the_Old_God);
text = gsub(text, "#x33#", ATLASLOOT_SCARLETDEFENDER);
text = gsub(text, "#x34#", ATLASLOOT_SCARLETTRASH);
text = gsub(text, "#x35#", ATLASLOOT_SCARLETCHAMPION);
text = gsub(text, "#x36#", ATLASLOOT_SCARLETCENTURION);
text = gsub(text, "#x37#", ATLASLOOT_SCARLETHEROD);
text = gsub(text, "#x38#", ATLASLOOT_SCARLETPROTECTOR);
--Text colouring
text = gsub(text, "=q0=", "|cff9d9d9d");
text = gsub(text, "=q1=", "|cffFFFFFF");
text = gsub(text, "=q2=", "|cff1eff00");
text = gsub(text, "=q3=", "|cff0070dd");
text = gsub(text, "=q4=", "|cff9F3FFF");
text = gsub(text, "=q5=", "|cffFF8400");
text = gsub(text, "=q6=", "|cffFF0000");
text = gsub(text, "=ds=", "|cffFFd200");
return text;
end
function MetaMapBLT_OnSelect(lootID, name)
if(lootID == nil) then return; end
local info;
if(lootID and lootID ~= "") then
MetaMapBLT_ToggleDR(1);
local itemName, itemLink, itemQuality, itemLevel, itemType, itemSubType, itemCount, itemEquipLoc, itemTexture, itemColor;
local iconFrame, nameFrame, extraFrame;
local text, extra;
if(string.find(lootID, "CLASS_SET")) then
MetaMapBLT_SetMenu(lootID, name);
info = METAMAPBLT_CLASS_SELECT;
lootID = nil;
end
for i = 1, 30, 1 do
if(MetaMapBLTData[lootID] ~= nil and MetaMapBLTData[lootID][i] ~= nil and MetaMapBLTData[lootID][i][3] ~= "") then
itemName, itemLink, itemQuality, itemLevel, itemType, itemSubType, itemCount, itemEquipLoc, itemTexture = GetItemInfo(MetaMapBLTData[lootID][i][1]);
if(GetItemInfo(MetaMapBLTData[lootID][i][1])) then
_, _, _, itemColor = GetItemQualityColor(itemQuality);
text = itemColor..itemName;
else
text = MetaMapBLTData[lootID][i][3];
text = MetaMapBLT_FixText(text);
end
extra = MetaMapBLTData[lootID][i][4];
extra = MetaMapBLT_FixText(extra)
if(not GetItemInfo(MetaMapBLTData[lootID][i][1]) and (MetaMapBLTData[lootID][i][1] ~= 0)) then
extra = extra.." |cffff0000(no iteminfo)";
end
getglobal("MetaMapBLTItem_"..i.."_Icon"):SetTexture("Interface\\Icons\\"..MetaMapBLTData[lootID][i][2]);
getglobal("MetaMapBLTItem_"..i.."_Extra"):SetText(extra);
getglobal("MetaMapBLTItem_"..i.."_Name"):SetText(text);
getglobal("MetaMapBLTItem_"..i).itemID = MetaMapBLTData[lootID][i][1];
getglobal("MetaMapBLTItem_"..i).storeID = MetaMapBLTData[lootID][i][1];
getglobal("MetaMapBLTItem_"..i).droprate = MetaMapBLTData[lootID][i][5];
getglobal("MetaMapBLTItem_"..i).i = 1;
getglobal("MetaMapBLTItem_"..i):Show();
MetaMapContainer_InfoText:Hide();
else
getglobal("MetaMapBLTItem_"..i):Hide();
end
if(MetaMapBLTData[lootID] == nil and info == nil) then
info = METAMAPBLT_NO_DATA;
end
end
else
for i = 1, 30, 1 do
getglobal("MetaMapBLTItem_"..i):Hide();
end
info = METAMAPBLT_NO_INFO;
end
MetaMapContainer_ShowFrame(MetaMapBLT_SubFrame, name, METAMAPBLT_HINT, info);
end
function MetaMapBLTItem_OnEnter()
if(this.itemID ~= nil) then
if(IsAddOnLoaded("LootLink") and GetItemInfo(this.itemID) == nil) then
GameTooltip:SetOwner(this, "ANCHOR_RIGHT", -200, 0);
LootLink_SetTooltip(GameTooltip, strsub(getglobal("MetaMapBLTItem_"..this:GetID().."_Name"):GetText(), 11), 1);
if( this.droprate ~= nil) then
GameTooltip:AddLine("Drop Rate: "..this.droprate, 1, 1, 0);
end
GameTooltip:Show();
elseif(IsAddOnLoaded("ItemSync")) then
ISync:ButtonEnter();
if( this.droprate ~= nil) then
GameTooltip:AddLine("Drop Rate: "..this.droprate, 1, 1, 0);
GameTooltip:Show();
end
elseif(this.itemID ~= nil and GetItemInfo(this.itemID) ~= nil) then
GameTooltip:SetOwner(this, "ANCHOR_RIGHT", -200, 0);
GameTooltip:SetHyperlink("item:"..this.itemID..":0:0:0");
if( this.droprate ~= nil) then
GameTooltip:AddLine("Drop Rate: "..this.droprate, 1, 1, 0);
end
GameTooltip:Show();
end
end
end
function MetaMapBLTItem_OnClick()
local iteminfo = GetItemInfo(this.itemID);
local color = strsub(getglobal("MetaMapBLTItem_"..this:GetID().."_Name"):GetText(), 1, 10);
local name = strsub(getglobal("MetaMapBLTItem_"..this:GetID().."_Name"):GetText(), 11);
if(ChatFrameEditBox:IsVisible() and IsShiftKeyDown() and iteminfo) then
ChatFrameEditBox:Insert(color.."|Hitem:"..this.itemID..":0:0:0|h["..name.."]|h|r");
elseif(IsControlKeyDown() and iteminfo) then
DressUpItemLink(this.itemID);
DressUpFrame:Show();
DressUpItemLink(this.itemID);
elseif(IsAddOnLoaded("ItemSync")) then
ISync:AddTooltipInfo(GameTooltip, "item:"..this.itemID..":0:0:0", 1);
end
end
function MetaMapBLT_SetMenu(lootID, name)
MetaMapBLT_ClassSet = string.gsub(lootID, "CLASS_SET", "")
MetaMapBLT_ClassName = name;
MetaMapContainer_ShowFrame(MetaMapBLT_SubFrame, name, METAMAPBLT_HINT, info);
MetaMapBLT_ClassMenu:Show();
end
function MetaMapBLT_MenuOnClick()
local className = MetaMapBLT_ClassSet..getglobal(this:GetName().."ClassName"):GetText();
local header = MetaMapBLT_ClassName.." - "..this:GetText();
MetaMapBLT_OnSelect(className, header);
end
function MetaMapBLT_ToggleDR(mode)
if(mode == 1) then
DressUpFrame:SetMovable(true);
DressUpFrame:SetFrameStrata("FULLSCREEN");
DressUpFrame:SetScript("OnMouseDown", X_Frame:GetScript("OnMouseDown"));
DressUpFrame:SetScript("OnMouseUp", X_Frame:GetScript("OnMouseUp"));
else
DressUpFrame:SetMovable(false);
DressUpFrame:SetFrameStrata("HIGH");
DressUpFrame:SetScript("OnMouseDown", nil);
DressUpFrame:SetScript("OnMouseUp", nil);
end
end
function MetaMapBLTItem_OnLeave()
GameTooltip:Hide();
end
function MetaMapBLT_SetClassColors()
local color;
color = RAID_CLASS_COLORS["DRUID"];
MetaMapBLT_DruidButton:SetTextColor(color.r, color.g, color.b);
color = RAID_CLASS_COLORS["HUNTER"];
MetaMapBLT_HunterButton:SetTextColor(color.r, color.g, color.b);
color = RAID_CLASS_COLORS["MAGE"];
MetaMapBLT_MageButton:SetTextColor(color.r, color.g, color.b);
color = RAID_CLASS_COLORS["PALADIN"];
MetaMapBLT_PaladinButton:SetTextColor(color.r, color.g, color.b);
color = RAID_CLASS_COLORS["PRIEST"];
MetaMapBLT_PriestButton:SetTextColor(color.r, color.g, color.b);
color = RAID_CLASS_COLORS["ROGUE"];
MetaMapBLT_RogueButton:SetTextColor(color.r, color.g, color.b);
color = RAID_CLASS_COLORS["SHAMAN"];
MetaMapBLT_ShamanButton:SetTextColor(color.r, color.g, color.b);
color = RAID_CLASS_COLORS["WARLOCK"];
MetaMapBLT_WarlockButton:SetTextColor(color.r, color.g, color.b);
color = RAID_CLASS_COLORS["WARRIOR"];
MetaMapBLT_WarriorButton:SetTextColor(color.r, color.g, color.b);
end