From efd12e317d82ac0a6af3602e02cf20ada8bd0faf Mon Sep 17 00:00:00 2001 From: Ackis Date: Wed, 22 Oct 2008 18:30:11 +0000 Subject: [PATCH] Missed a tooltip coord thing. --- ARLFrame.lua | 875 +++++++++++++++++++++++++++++++++------------------------- 1 file changed, 499 insertions(+), 376 deletions(-) diff --git a/ARLFrame.lua b/ARLFrame.lua index a6a0ac2..bda6588 100644 --- a/ARLFrame.lua +++ b/ARLFrame.lua @@ -114,10 +114,23 @@ function addon:CloseWindow() end +-- Description: Provides the total number of recipes for a specific profession minus the filtered ones +-- Expected result: An integer which will be used for the progress bar is provided +-- Input: Total recipes, total filtered, total found, and total from other professions +-- Output: Total recipeswithout the filtered ones for a given profession + +local function GetFilteredRecipes(total, filtered, found, other) + + return (total - filtered) + found - other + +end + -- Under various conditions, I'm going to have to redisplay my recipe list -- This could happen because a filter changes, a new profession is chosen, or -- a new search occurred. Use this function to do all the dirty work + function ReDisplay() + addon:UpdateFilters(recipeDB, allSpecTable, playerData) sortedRecipeIndex = addon:SortMissingRecipes(recipeDB) if (not addon.db.profile.ignoreexclusionlist) then @@ -135,7 +148,7 @@ function ReDisplay() pbMax = playerData.totalRecipes -- We're removing filtered recipes from the final count else - pbMax = (playerData.totalRecipes - playerData.filteredRecipes) + playerData.foundRecipes - playerData.otherRecipes + pbMax = GetFilteredRecipes(playerData.totalRecipes, playerData.filteredRecipes, playerData.foundRecipes, playerData.otherRecipes) end ARL_ProgressBar:SetMinMaxValues(pbMin, pbMax) @@ -148,6 +161,7 @@ function ReDisplay() -- And update our scrollframe RecipeList_Update() + end -- Create the scan button and add it to Skillet if applicable @@ -155,31 +169,42 @@ function addon:CreateScanButton() -- Create the scan button if (not addon.ScanButton) then + addon.ScanButton = CreateFrame("Button","addon.ScanButton",UIParent,"UIPanelButtonTemplate") + end -- Add to Skillet interface if (Skillet and Skillet:IsActive()) then + addon.ScanButton:SetParent(SkilletFrame) addon.ScanButton:Show() Skillet:AddButtonToTradeskillWindow(addon.ScanButton) addon.ScanButton:SetWidth(80) + end -- Set some of the common button properties addon.ScanButton:SetHeight(20) addon.ScanButton:RegisterForClicks("LeftButtonUp") - addon.ScanButton:SetScript("OnClick", function() - addon:ToggleFrame() - end) - addon.ScanButton:SetScript("OnEnter", function(this) - GameTooltip_SetDefaultAnchor(GameTooltip, this) - GameTooltip:SetText(L["SCAN_RECIPES_DESC"]) - GameTooltip:Show() - end) - addon.ScanButton:SetScript("OnLeave", function() - GameTooltip:Hide() - end) + addon.ScanButton:SetScript("OnClick", + function() + addon:ToggleFrame() + end + ) + + addon.ScanButton:SetScript("OnEnter", + function(this) + GameTooltip_SetDefaultAnchor(GameTooltip, this) + GameTooltip:SetText(L["SCAN_RECIPES_DESC"]) + GameTooltip:Show() + end + ) + addon.ScanButton:SetScript("OnLeave", + function() + GameTooltip:Hide() + end + ) addon.ScanButton:SetText(L["Scan Recipes"]) addon.ScanButton:Enable() @@ -191,17 +216,21 @@ function addon:ShowScanButton() -- Add to ATSW if (ATSWFrame) then + addon.ScanButton:SetParent(ATSWFrame) addon.ScanButton:ClearAllPoints() addon.ScanButton:SetPoint("RIGHT", ATSWOptionsButton, "LEFT", 0, 0) addon.ScanButton:SetHeight(ATSWOptionsButton:GetHeight()) addon.ScanButton:SetWidth(80) - else + -- Anchor to trade window + else + addon.ScanButton:SetParent(TradeSkillFrame) addon.ScanButton:ClearAllPoints() addon.ScanButton:SetPoint("RIGHT",TradeSkillFrameCloseButton,"LEFT",10,0) addon.ScanButton:SetWidth(addon.ScanButton:GetTextWidth() + 10) + end addon.ScanButton:SetFrameStrata("DIALOG") @@ -210,21 +239,25 @@ function addon:ShowScanButton() end function addon:TooltipDisplay(this, textLabel) + this:SetScript("OnEnter", - function (this) - GameTooltip_SetDefaultAnchor(GameTooltip, this) - GameTooltip:SetText(textLabel, HIGHLIGHT_FONT_COLOR.r, HIGHLIGHT_FONT_COLOR.g, HIGHLIGHT_FONT_COLOR.b) - GameTooltip:Show() - end - ) + function (this) + GameTooltip_SetDefaultAnchor(GameTooltip, this) + GameTooltip:SetText(textLabel, HIGHLIGHT_FONT_COLOR.r, HIGHLIGHT_FONT_COLOR.g, HIGHLIGHT_FONT_COLOR.b) + GameTooltip:Show() + end + ) + this:SetScript("OnLeave", - function(this) - GameTooltip:Hide() - end - ) + function(this) + GameTooltip:Hide() + end + ) + end -function addon.numFilters () +function addon.numFilters() + -- IMPORTANT: If the number of filters we're maintaining changes, you'll need to change the FilterValueMap -- at the end (of CreateFrame), as well as the following index value: local MaxFilters = 84 @@ -244,9 +277,11 @@ function addon.numFilters () end end return active, total + end function addon.resetTitle() + -- reset the frame title line local myTitle = "" local addonversion = GetAddOnMetadata("AckisRecipeList", "Version") @@ -259,6 +294,7 @@ function addon.resetTitle() end -- addon.Frame.HeadingText:SetText(addon:White(myTitle)) addon.Frame.HeadingText:SetText(addon:Normal(myTitle)) + end function addon.filterSwitch(val) @@ -737,11 +773,17 @@ end -- Allows the scan button to close the scan window function addon:ToggleFrame() + if (addon.Frame and addon.Frame:IsVisible()) then + addon.Frame:Hide() + else + addon:AckisRecipeList_Command() + end + end -- Set the texture on the switcher button. @@ -771,8 +813,10 @@ end -- converting from hex to rgb (Thanks Maldivia) function toRGB(hex) + local r, g, b = hex:match("(..)(..)(..)") return (tonumber(r,16) / 256) , (tonumber(g,16) / 256) , (tonumber(b,16) / 256) + end -- I want to do a bit more comprehensive tooltip processing. Things like changing font sizes, @@ -890,443 +934,522 @@ function SetRecipeButtonTooltip (bIndex) local clr1, clr2 = "", "" pButton:SetScript("OnEnter", - function (pButton) - arlTooltip:ClearLines() - arlTooltip:SetOwner(pButton, "ANCHOR_RIGHT") - gttAdd(0, 1, 0, 0, recipeDB[rIndex]["Name"], addon:hexcolor("HIGH")) - - -- check if the recipe is excluded - if (exclude[rIndex] == true) then - clr1 = addon:hexcolor("RED") - gttAdd(0, -1, 1, 0, L["RECIPE_EXCLUDED"], clr1) - end + function (pButton) + arlTooltip:ClearLines() + arlTooltip:SetOwner(pButton, "ANCHOR_RIGHT") + gttAdd(0, 1, 0, 0, recipeDB[rIndex]["Name"], addon:hexcolor("HIGH")) + + -- check if the recipe is excluded + if (exclude[rIndex] == true) then + clr1 = addon:hexcolor("RED") + gttAdd(0, -1, 1, 0, L["RECIPE_EXCLUDED"], clr1) + end - -- Add in skill level requirement, colored correctly - clr1 = addon:hexcolor("NORMAL") + -- Add in skill level requirement, colored correctly + clr1 = addon:hexcolor("NORMAL") - local recipeSkill = recipeDB[rIndex]["Level"] - local playerSkill = playerData.playerProfessionLevel + local recipeSkill = recipeDB[rIndex]["Level"] + local playerSkill = playerData.playerProfessionLevel - if (recipeSkill > playerSkill) then - clr2 = addon:hexcolor("RED") - elseif ((playerSkill - recipeSkill) < 20) then - clr2 = addon:hexcolor("ORANGE") - elseif ((playerSkill - recipeSkill) < 30) then - clr2 = addon:hexcolor("YELLOW") - elseif ((playerSkill - recipeSkill) < 40) then - clr2 = addon:hexcolor("GREEN") - else - clr2 = addon:hexcolor("MIDGREY") - end + if (recipeSkill > playerSkill) then + clr2 = addon:hexcolor("RED") + elseif ((playerSkill - recipeSkill) < 20) then + clr2 = addon:hexcolor("ORANGE") + elseif ((playerSkill - recipeSkill) < 30) then + clr2 = addon:hexcolor("YELLOW") + elseif ((playerSkill - recipeSkill) < 40) then + clr2 = addon:hexcolor("GREEN") + else + clr2 = addon:hexcolor("MIDGREY") + end - gttAdd(0, -1, 0, 0, L["Required Skill"] .. " :", clr1, recipeDB[rIndex]["Level"], clr2) - -- spacer - gttAdd(0, 0, 0, 0, ".", addon:hexcolor("BLACK")) - -- obtain info - gttAdd(0, -1, 0, 0, L["Obtained From"] .. " : ", addon:hexcolor("NORMAL")) + gttAdd(0, -1, 0, 0, L["Required Skill"] .. " :", clr1, recipeDB[rIndex]["Level"], clr2) + -- spacer + gttAdd(0, 0, 0, 0, ".", addon:hexcolor("BLACK")) + -- obtain info + gttAdd(0, -1, 0, 0, L["Obtained From"] .. " : ", addon:hexcolor("NORMAL")) - -- loop through acquire methods, display each - for k, v in pairs(recipeDB[rIndex]["Acquire"]) do + -- loop through acquire methods, display each + for k, v in pairs(recipeDB[rIndex]["Acquire"]) do - -- Trainer - if (v["Type"] == 1) then + -- Trainer + if (v["Type"] == 1) then - -- Trainer: TrainerName - -- TrainerZone TrainerCoords - local trnr = trainerDB[v["ID"]] - local cStr = "" + -- Trainer: TrainerName + -- TrainerZone TrainerCoords + local trnr = trainerDB[v["ID"]] + local cStr = "" - if (trnr["Coordx"] ~= "0") and (trnr["Coordy"] ~= "0") then + if (trnr["Coordx"] ~= "0") and (trnr["Coordy"] ~= "0") then - cStr = "(" .. trnr["Coordx"] .. ", " .. trnr["Coordy"] .. ")" + cStr = "(" .. trnr["Coordx"] .. ", " .. trnr["Coordy"] .. ")" - end + end - clr1 = addon:hexcolor("TRAINER") + clr1 = addon:hexcolor("TRAINER") - if (trnr["Faction"] == BFAC["Horde"]) then - clr2 = addon:hexcolor("HORDE") - elseif (trnr["Faction"] == BFAC["Alliance"]) then - clr2 = addon:hexcolor("ALLIANCE") - else - clr2 = addon:hexcolor("NEUTRAL") - end + if (trnr["Faction"] == BFAC["Horde"]) then + clr2 = addon:hexcolor("HORDE") + elseif (trnr["Faction"] == BFAC["Alliance"]) then + clr2 = addon:hexcolor("ALLIANCE") + else + clr2 = addon:hexcolor("NEUTRAL") + end - gttAdd(0, -2, 0, 0, L["Trainer"], clr1, trnr["Name"], clr2) - clr1 = addon:hexcolor("NORMAL") - clr2 = addon:hexcolor("HIGH") - gttAdd(1, -2, 1, 0, trnr["Location"], clr1, cStr, clr2) + gttAdd(0, -2, 0, 0, L["Trainer"], clr1, trnr["Name"], clr2) + clr1 = addon:hexcolor("NORMAL") + clr2 = addon:hexcolor("HIGH") + gttAdd(1, -2, 1, 0, trnr["Location"], clr1, cStr, clr2) - -- Vendor - elseif (v["Type"] == 2) then + -- Vendor + elseif (v["Type"] == 2) then - -- Vendor: VendorName - -- VendorZone VendorCoords - local vndr = vendorDB[v["ID"]] - local cStr = "" + -- Vendor: VendorName + -- VendorZone VendorCoords + local vndr = vendorDB[v["ID"]] + local cStr = "" - if (vndr["Coordx"] ~= "0") and (vndr["Coordy"] ~= "0") then + if (vndr["Coordx"] ~= "0") and (vndr["Coordy"] ~= "0") then - cStr = "(" .. vndr["Coordx"] .. ", " .. vndr["Coordy"] .. ")" + cStr = "(" .. vndr["Coordx"] .. ", " .. vndr["Coordy"] .. ")" - end + end + + clr1 = addon:hexcolor("VENDOR") + + if (vndr["Faction"] == BFAC["Horde"]) then + clr2 = addon:hexcolor("HORDE") + elseif (vndr["Faction"] == BFAC["Alliance"]) then + clr2 = addon:hexcolor("ALLIANCE") + else + clr2 = addon:hexcolor("NEUTRAL") + end + + gttAdd(0, -1, 0, 0, L["Vendor"], clr1, vndr["Name"], clr2) + clr1 = addon:hexcolor("NORMAL") + clr2 = addon:hexcolor("HIGH") + gttAdd(1, -2, 1, 0, vndr["Location"], clr1, cStr, clr2) + + -- Mob Drop + elseif (v["Type"] == 3) then + + -- Mob Drop: Mob Name + -- MobZone MobCoords + local mob = mobDB[v["ID"]] + local cStr = "" + + if (mob["Coordx"] ~= "0") and (mob["Coordy"] ~= "0") then - clr1 = addon:hexcolor("VENDOR") + cStr = "(" .. mob["Coordx"] .. ", " .. mob["Coordy"] .. ")" - if (vndr["Faction"] == BFAC["Horde"]) then + end + + clr1 = addon:hexcolor("MOBDROP") clr2 = addon:hexcolor("HORDE") - elseif (vndr["Faction"] == BFAC["Alliance"]) then - clr2 = addon:hexcolor("ALLIANCE") + gttAdd(0, -1, 0, 0, L["Mob Drop"], clr1, mob["Name"], clr2) + clr1 = addon:hexcolor("NORMAL") + clr2 = addon:hexcolor("HIGH") + gttAdd(1, -2, 1, 0, mob["Location"], clr1, cStr, clr2) + + -- Quest + elseif (v["Type"] == 4) then + + -- Quest: QuestName + -- QuestZone QuestCoords + local qst = questDB[v["ID"]] + + if (qst ~= nil) then + + local cStr = "" + + if (qst["Coordx"] ~= "0") and (qst["Coordy"] ~= "0") then + + cStr = "(" .. qst["Coordx"] .. ", " .. qst["Coordy"] .. ")" + + end + + clr1 = addon:hexcolor("QUEST") + + if (qst["Faction"] == BFAC["Horde"]) then + clr2 = addon:hexcolor("HORDE") + elseif (qst["Faction"] == BFAC["Alliance"]) then + clr2 = addon:hexcolor("ALLIANCE") + else + clr2 = addon:hexcolor("NEUTRAL") + end + + gttAdd(0, -1, 0, 0, L["Quest"], clr1, qst["Name"], clr2) + clr1 = addon:hexcolor("NORMAL") + clr2 = addon:hexcolor("HIGH") + gttAdd(1, -2, 1, 0, qst["Location"], clr1, cStr, clr2) + + end + + -- Seasonal + elseif (v["Type"] == 5) then + + -- Seasonal: SeasonEventName + local ssnname = seasonDB[v["ID"]]["Name"] + + clr1 = addon:hexcolor("SEASON") + gttAdd(0, -1, 0, 0, L["Seasonal"], clr1, ssnname, clr1) + + -- Reputation + elseif (v["Type"] == 6) then + + -- Reputation: Faction + -- FactionLevel RepVendor + -- RepVendorZone RepVendorCoords + + local repfac = repDB[v["ID"]] + local repname = repfac["Name"] -- name + local rplvl = v["RepLevel"] + local repvndr = vendorDB[v["RepVendor"]] + local cStr = "" + + if (repvndr["Coordx"] ~= "0") and (repvndr["Coordy"] ~= "0") then + + cStr = "(" .. repvndr["Coordx"] .. ", " .. repvndr["Coordy"] .. ")" + + end + + clr1 = addon:hexcolor("REP") + clr2 = addon:hexcolor("NORMAL") + gttAdd(0, -1, 0, 0, L["Reputation"], clr1, repname, clr2) + + local rStr = "" + if (rplvl == 0) then + rStr = BFAC["Neutral"] + clr1 = addon:hexcolor("NEUTRAL") + elseif (rplvl == 1) then + rStr = BFAC["Neutral"] + clr1 = addon:hexcolor("FRIENDLY") + elseif (rplvl == 2) then + rStr = BFAC["Honored"] + clr1 = addon:hexcolor("HONORED") + elseif (rplvl == 3) then + rStr = BFAC["Revered"] + clr1 = addon:hexcolor("REVERED") + else + rStr = BFAC["Exalted"] + clr1 = addon:hexcolor("EXALTED") + end + + if (repvndr["Faction"] == BFAC["Horde"]) then + clr2 = addon:hexcolor("HORDE") + elseif (repvndr["Faction"] == BFAC["Alliance"]) then + clr2 = addon:hexcolor("ALLIANCE") + else + clr2 = addon:hexcolor("NEUTRAL") + end + + gttAdd(1, -2, 0, 0, rStr, clr1, repvndr["Name"], clr2) + clr1 = addon:hexcolor("NORMAL") + clr2 = addon:hexcolor("HIGH") + gttAdd(2, -2, 1, 0, repvndr["Location"], clr1, cStr, clr2) + + -- World Drop + elseif (v["Type"] == 7) then + + -- World Drop RarityLevel + if (v["ID"] == 1) then + clr1 = addon:hexcolor("COMMON") + elseif (v["ID"] == 2) then + clr1 = addon:hexcolor("UNCOMMON") + elseif (v["ID"] == 3) then + clr1 = addon:hexcolor("RARE") + elseif (v["ID"] == 4) then + clr1 = addon:hexcolor("EPIC") + else + clr1 = addon:hexcolor("NORMAL") + end + + gttAdd(0, -1, 0, 0, L["World Drop"], clr1) + + -- Unhandled else - clr2 = addon:hexcolor("NEUTRAL") + + clr1 = addon:hexcolor("NORMAL") + gttAdd(0, -1, 0, 0, L["Unhandled Recipe"], clr1) + end - gttAdd(0, -1, 0, 0, L["Vendor"], clr1, vndr["Name"], clr2) - clr1 = addon:hexcolor("NORMAL") - clr2 = addon:hexcolor("HIGH") - gttAdd(1, -2, 1, 0, vndr["Location"], clr1, cStr, clr2) + end - -- Mob Drop - elseif (v["Type"] == 3) then + gttAdd(0, 0, 0, 0, ".", addon:hexcolor("BLACK")) + clr1 = addon:hexcolor("NORMAL") + gttAdd(0, -1, 0, 0, L["ALT_CLICK"], clr1) + gttAdd(0, -1, 0, 1, L["CTRL_CLICK"], clr1) + gttAdd(0, -1, 0, 1, L["SHIFT_CLICK"], clr1) + arlTooltip:Show() - -- Mob Drop: Mob Name - -- MobZone MobCoords - local mob = mobDB[v["ID"]] - local cStr = "" + end + ) + + pButton:SetScript("OnLeave", + function() + arlTooltip:Hide() + end + ) - if (mob["Coordx"] ~= "0") and (mob["Coordy"] ~= "0") then + rButton:SetScript("OnEnter", + function (rButton) + arlTooltip:ClearLines() + arlTooltip:SetOwner(rButton, "ANCHOR_RIGHT") + gttAdd(0, 1, 0, 0, recipeDB[rIndex]["Name"], addon:hexcolor("HIGH")) + + -- check if the recipe is excluded + if (exclude[rIndex] == true) then + clr1 = addon:hexcolor("RED") + gttAdd(0, -1, 1, 0, L["RECIPE_EXCLUDED"], clr1) + end - cStr = "(" .. mob["Coordx"] .. ", " .. mob["Coordy"] .. ")" + -- Add in skill level requirement, colored correctly + clr1 = addon:hexcolor("NORMAL") - end + local recipeSkill = recipeDB[rIndex]["Level"] + local playerSkill = playerData.playerProfessionLevel - clr1 = addon:hexcolor("MOBDROP") - clr2 = addon:hexcolor("HORDE") - gttAdd(0, -1, 0, 0, L["Mob Drop"], clr1, mob["Name"], clr2) - clr1 = addon:hexcolor("NORMAL") - clr2 = addon:hexcolor("HIGH") - gttAdd(1, -2, 1, 0, mob["Location"], clr1, cStr, clr2) + if (recipeSkill > playerSkill) then + clr2 = addon:hexcolor("RED") + elseif ((playerSkill - recipeSkill) < 20) then + clr2 = addon:hexcolor("ORANGE") + elseif ((playerSkill - recipeSkill) < 30) then + clr2 = addon:hexcolor("YELLOW") + elseif ((playerSkill - recipeSkill) < 40) then + clr2 = addon:hexcolor("GREEN") + else + clr2 = addon:hexcolor("MIDGREY") + end - -- Quest - elseif (v["Type"] == 4) then + gttAdd(0, -1, 0, 0, L["Required Skill"] .. " :", clr1, recipeDB[rIndex]["Level"], clr2) + -- spacer + gttAdd(0, 0, 0, 0, ".", addon:hexcolor("BLACK")) + -- obtain info + gttAdd(0, -1, 0, 0, L["Obtained From"] .. " : ", addon:hexcolor("NORMAL")) - -- Quest: QuestName - -- QuestZone QuestCoords - local qst = questDB[v["ID"]] + -- loop through acquire methods, display each + for k, v in pairs(recipeDB[rIndex]["Acquire"]) do - if (qst ~= nil) then + -- Trainer + if (v["Type"] == 1) then + -- Trainer: TrainerName + -- TrainerZone TrainerCoords + local trnr = trainerDB[v["ID"]] local cStr = "" - if (qst["Coordx"] ~= "0") and (qst["Coordy"] ~= "0") then + if (trnr["Coordx"] ~= "0") and (trnr["Coordy"] ~= "0") then - cStr = "(" .. qst["Coordx"] .. ", " .. qst["Coordy"] .. ")" + cStr = "(" .. trnr["Coordx"] .. ", " .. trnr["Coordy"] .. ")" end - clr1 = addon:hexcolor("QUEST") + clr1 = addon:hexcolor("TRAINER") - if (qst["Faction"] == BFAC["Horde"]) then + if (trnr["Faction"] == BFAC["Horde"]) then clr2 = addon:hexcolor("HORDE") - elseif (qst["Faction"] == BFAC["Alliance"]) then + elseif (trnr["Faction"] == BFAC["Alliance"]) then clr2 = addon:hexcolor("ALLIANCE") else clr2 = addon:hexcolor("NEUTRAL") end - gttAdd(0, -1, 0, 0, L["Quest"], clr1, qst["Name"], clr2) + gttAdd(0, -2, 0, 0, L["Trainer"], clr1, trnr["Name"], clr2) clr1 = addon:hexcolor("NORMAL") clr2 = addon:hexcolor("HIGH") - gttAdd(1, -2, 1, 0, qst["Location"], clr1, cStr, clr2) + gttAdd(1, -2, 1, 0, trnr["Location"], clr1, cStr, clr2) - end + -- Vendor + elseif (v["Type"] == 2) then - -- Seasonal - elseif (v["Type"] == 5) then + -- Vendor: VendorName + -- VendorZone VendorCoords + local vndr = vendorDB[v["ID"]] + local cStr = "" - -- Seasonal: SeasonEventName - local ssnname = seasonDB[v["ID"]]["Name"] + if (vndr["Coordx"] ~= "0") and (vndr["Coordy"] ~= "0") then - clr1 = addon:hexcolor("SEASON") - gttAdd(0, -1, 0, 0, L["Seasonal"], clr1, ssnname, clr1) + cStr = "(" .. vndr["Coordx"] .. ", " .. vndr["Coordy"] .. ")" - -- Reputation - elseif (v["Type"] == 6) then + end - -- Reputation: Faction - -- FactionLevel RepVendor - -- RepVendorZone RepVendorCoords + clr1 = addon:hexcolor("VENDOR") - local repfac = repDB[v["ID"]] - local repname = repfac["Name"] -- name - local rplvl = v["RepLevel"] - local repvndr = vendorDB[v["RepVendor"]] - local cStr = "" + if (vndr["Faction"] == BFAC["Horde"]) then + clr2 = addon:hexcolor("HORDE") + elseif (vndr["Faction"] == BFAC["Alliance"]) then + clr2 = addon:hexcolor("ALLIANCE") + else + clr2 = addon:hexcolor("NEUTRAL") + end - if (repvndr["Coordx"] ~= "0") and (repvndr["Coordy"] ~= "0") then + gttAdd(0, -1, 0, 0, L["Vendor"], clr1, vndr["Name"], clr2) + clr1 = addon:hexcolor("NORMAL") + clr2 = addon:hexcolor("HIGH") + gttAdd(1, -2, 1, 0, vndr["Location"], clr1, cStr, clr2) - cStr = "(" .. repvndr["Coordx"] .. ", " .. repvndr["Coordy"] .. ")" + -- Mob Drop + elseif (v["Type"] == 3) then - end - - clr1 = addon:hexcolor("REP") - clr2 = addon:hexcolor("NORMAL") - gttAdd(0, -1, 0, 0, L["Reputation"], clr1, repname, clr2) - - local rStr = "" - if (rplvl == 0) then - rStr = BFAC["Neutral"] - clr1 = addon:hexcolor("NEUTRAL") - elseif (rplvl == 1) then - rStr = BFAC["Neutral"] - clr1 = addon:hexcolor("FRIENDLY") - elseif (rplvl == 2) then - rStr = BFAC["Honored"] - clr1 = addon:hexcolor("HONORED") - elseif (rplvl == 3) then - rStr = BFAC["Revered"] - clr1 = addon:hexcolor("REVERED") - else - rStr = BFAC["Exalted"] - clr1 = addon:hexcolor("EXALTED") - end + -- Mob Drop: Mob Name + -- MobZone MobCoords + local mob = mobDB[v["ID"]] + local cStr = "" - if (repvndr["Faction"] == BFAC["Horde"]) then - clr2 = addon:hexcolor("HORDE") - elseif (repvndr["Faction"] == BFAC["Alliance"]) then - clr2 = addon:hexcolor("ALLIANCE") - else - clr2 = addon:hexcolor("NEUTRAL") - end + if (mob["Coordx"] ~= "0") and (mob["Coordy"] ~= "0") then - gttAdd(1, -2, 0, 0, rStr, clr1, repvndr["Name"], clr2) - clr1 = addon:hexcolor("NORMAL") - clr2 = addon:hexcolor("HIGH") - gttAdd(2, -2, 1, 0, repvndr["Location"], clr1, cStr, clr2) - - -- World Drop - elseif (v["Type"] == 7) then - - -- World Drop RarityLevel - if (v["ID"] == 1) then - clr1 = addon:hexcolor("COMMON") - elseif (v["ID"] == 2) then - clr1 = addon:hexcolor("UNCOMMON") - elseif (v["ID"] == 3) then - clr1 = addon:hexcolor("RARE") - elseif (v["ID"] == 4) then - clr1 = addon:hexcolor("EPIC") - else + cStr = "(" .. mob["Coordx"] .. ", " .. mob["Coordy"] .. ")" + + end + + clr1 = addon:hexcolor("MOBDROP") + clr2 = addon:hexcolor("HORDE") + gttAdd(0, -1, 0, 0, L["Mob Drop"], clr1, mob["Name"], clr2) clr1 = addon:hexcolor("NORMAL") - end + clr2 = addon:hexcolor("HIGH") + gttAdd(1, -2, 1, 0, mob["Location"], clr1, cStr, clr2) - gttAdd(0, -1, 0, 0, L["World Drop"], clr1) + -- Quest + elseif (v["Type"] == 4) then - -- Unhandled - else + -- Quest: QuestName + -- QuestZone QuestCoords + local qst = questDB[v["ID"]] - clr1 = addon:hexcolor("NORMAL") - gttAdd(0, -1, 0, 0, L["Unhandled Recipe"], clr1) + if (qst ~= nil) then - end + local cStr = "" - end + if (qst["Coordx"] ~= "0") and (qst["Coordy"] ~= "0") then - gttAdd(0, 0, 0, 0, ".", addon:hexcolor("BLACK")) - clr1 = addon:hexcolor("NORMAL") - gttAdd(0, -1, 0, 0, L["ALT_CLICK"], clr1) - gttAdd(0, -1, 0, 1, L["CTRL_CLICK"], clr1) - gttAdd(0, -1, 0, 1, L["SHIFT_CLICK"], clr1) - arlTooltip:Show() + cStr = "(" .. qst["Coordx"] .. ", " .. qst["Coordy"] .. ")" - end - ) + end - pButton:SetScript("OnLeave", - function() - arlTooltip:Hide() - end - ) + clr1 = addon:hexcolor("QUEST") - rButton:SetScript("OnEnter", - function (rButton) - arlTooltip:ClearLines() - arlTooltip:SetOwner(rButton, "ANCHOR_RIGHT") - gttAdd(0, 1, 0, 0, recipeDB[rIndex]["Name"], addon:hexcolor("HIGH")) - -- check if the recipe is excluded - if (exclude[rIndex] == true) then - clr1 = addon:hexcolor("HORDE") - gttAdd(0, -1, 1, 0, L["RECIPE_EXCLUDED"], clr1) - end - -- Add in skill level requirement, colored correctly - clr1 = addon:hexcolor("NORMAL") - local recipeSkill = recipeDB[rIndex]["Level"] - local playerSkill = playerData.playerProfessionLevel - if (recipeSkill > playerSkill) then - clr2 = addon:hexcolor("HORDE") - elseif ((playerSkill - recipeSkill) < 20) then - clr2 = addon:hexcolor("ORANGE") - elseif ((playerSkill - recipeSkill) < 30) then - clr2 = addon:hexcolor("YELLOW") - elseif ((playerSkill - recipeSkill) < 40) then - clr2 = addon:hexcolor("GREEN") - else - clr2 = addon:hexcolor("MIDGREY") - end - gttAdd(0, -1, 0, 0, L["Required Skill"] .. " :", clr1, recipeDB[rIndex]["Level"], clr2) - -- spacer - gttAdd(0, 0, 0, 0, ".", addon:hexcolor("BLACK")) - -- obtain info - gttAdd(0, -1, 0, 0, L["Obtained From"] .. " : ", addon:hexcolor("NORMAL")) - -- loop through acquire methods, display each - for k, v in pairs(recipeDB[rIndex]["Acquire"]) do - if (v["Type"] == 1) then -- Trainer - -- Trainer: TrainerName - -- TrainerZone TrainerCoords - local trnr = trainerDB[v["ID"]] - local cStr = "(" .. trnr["Coordx"] .. ", " .. trnr["Coordy"] .. ")" - clr1 = addon:hexcolor("TRAINER") - if (trnr["Faction"] == BFAC["Horde"]) then - clr2 = addon:hexcolor("HORDE") - elseif (trnr["Faction"] == BFAC["Alliance"]) then - clr2 = addon:hexcolor("ALLIANCE") - else - clr2 = addon:hexcolor("NEUTRAL") - end - gttAdd(0, -2, 0, 0, L["Trainer"], clr1, trnr["Name"], clr2) - clr1 = addon:hexcolor("NORMAL") - clr2 = addon:hexcolor("HIGH") - gttAdd(1, -2, 1, 0, trnr["Location"], clr1, cStr, clr2) - elseif (v["Type"] == 2) then -- Vendor - -- Vendor: VendorName - -- VendorZone VendorCoords - local vndr = vendorDB[v["ID"]] - local cStr = "(" .. vndr["Coordx"] .. ", " .. vndr["Coordy"] .. ")" - clr1 = addon:hexcolor("VENDOR") - if (vndr["Faction"] == BFAC["Horde"]) then - clr2 = addon:hexcolor("HORDE") - elseif (vndr["Faction"] == BFAC["Alliance"]) then - clr2 = addon:hexcolor("ALLIANCE") - else - clr2 = addon:hexcolor("NEUTRAL") - end - gttAdd(0, -1, 0, 0, L["Vendor"], clr1, vndr["Name"], clr2) - clr1 = addon:hexcolor("NORMAL") - clr2 = addon:hexcolor("HIGH") - gttAdd(1, -2, 1, 0, vndr["Location"], clr1, cStr, clr2) - elseif (v["Type"] == 3) then -- Mob Drop - -- Mob Drop: Mob Name - -- MobZone MobCoords - local mob = mobDB[v["ID"]] - local cStr = "(" .. mob["Coordx"] .. ", " .. mob["Coordy"] .. ")" - clr1 = addon:hexcolor("MOBDROP") - clr2 = addon:hexcolor("HORDE") - gttAdd(0, -1, 0, 0, L["Mob Drop"], clr1, mob["Name"], clr2) - clr1 = addon:hexcolor("NORMAL") - clr2 = addon:hexcolor("HIGH") - gttAdd(1, -2, 1, 0, mob["Location"], clr1, cStr, clr2) - elseif (v["Type"] == 4) then -- Quest - -- Quest: QuestName - -- QuestZone QuestCoords - local qst = questDB[v["ID"]] - if (qst ~= nil) then - local cStr = "(" .. qst["Coordx"] .. ", " .. qst["Coordy"] .. ")" - clr1 = addon:hexcolor("QUEST") - if (qst["Faction"] == BFAC["Horde"]) then + if (qst["Faction"] == BFAC["Horde"]) then + clr2 = addon:hexcolor("HORDE") + elseif (qst["Faction"] == BFAC["Alliance"]) then + clr2 = addon:hexcolor("ALLIANCE") + else + clr2 = addon:hexcolor("NEUTRAL") + end + + gttAdd(0, -1, 0, 0, L["Quest"], clr1, qst["Name"], clr2) + clr1 = addon:hexcolor("NORMAL") + clr2 = addon:hexcolor("HIGH") + gttAdd(1, -2, 1, 0, qst["Location"], clr1, cStr, clr2) + + end + + -- Seasonal + elseif (v["Type"] == 5) then + + -- Seasonal: SeasonEventName + local ssnname = seasonDB[v["ID"]]["Name"] + + clr1 = addon:hexcolor("SEASON") + gttAdd(0, -1, 0, 0, L["Seasonal"], clr1, ssnname, clr1) + + -- Reputation + elseif (v["Type"] == 6) then + + -- Reputation: Faction + -- FactionLevel RepVendor + -- RepVendorZone RepVendorCoords + + local repfac = repDB[v["ID"]] + local repname = repfac["Name"] -- name + local rplvl = v["RepLevel"] + local repvndr = vendorDB[v["RepVendor"]] + local cStr = "" + + if (repvndr["Coordx"] ~= "0") and (repvndr["Coordy"] ~= "0") then + + cStr = "(" .. repvndr["Coordx"] .. ", " .. repvndr["Coordy"] .. ")" + + end + + clr1 = addon:hexcolor("REP") + clr2 = addon:hexcolor("NORMAL") + gttAdd(0, -1, 0, 0, L["Reputation"], clr1, repname, clr2) + + local rStr = "" + if (rplvl == 0) then + rStr = BFAC["Neutral"] + clr1 = addon:hexcolor("NEUTRAL") + elseif (rplvl == 1) then + rStr = BFAC["Neutral"] + clr1 = addon:hexcolor("FRIENDLY") + elseif (rplvl == 2) then + rStr = BFAC["Honored"] + clr1 = addon:hexcolor("HONORED") + elseif (rplvl == 3) then + rStr = BFAC["Revered"] + clr1 = addon:hexcolor("REVERED") + else + rStr = BFAC["Exalted"] + clr1 = addon:hexcolor("EXALTED") + end + + if (repvndr["Faction"] == BFAC["Horde"]) then clr2 = addon:hexcolor("HORDE") - elseif (qst["Faction"] == BFAC["Alliance"]) then + elseif (repvndr["Faction"] == BFAC["Alliance"]) then clr2 = addon:hexcolor("ALLIANCE") else clr2 = addon:hexcolor("NEUTRAL") end - gttAdd(0, -1, 0, 0, L["Quest"], clr1, qst["Name"], clr2) + + gttAdd(1, -2, 0, 0, rStr, clr1, repvndr["Name"], clr2) clr1 = addon:hexcolor("NORMAL") clr2 = addon:hexcolor("HIGH") - gttAdd(1, -2, 1, 0, qst["Location"], clr1, cStr, clr2) - end - elseif (v["Type"] == 5) then -- Seasonal - -- Seasonal: SeasonEventName - local ssnname = seasonDB[v["ID"]]["Name"] - clr1 = addon:hexcolor("SEASON") - gttAdd(0, -1, 0, 0, L["Seasonal"], clr1, ssnname, clr1) - elseif (v["Type"] == 6) then -- Reputation - -- Reputation: Faction - -- FactionLevel RepVendor - -- RepVendorZone RepVendorCoords - local repfac = repDB[v["ID"]] - local repname = repfac["Name"] -- name - local rplvl = v["RepLevel"] - local repvndr = vendorDB[v["RepVendor"]] - local cStr = "(" .. repvndr["Coordx"] .. ", " .. repvndr["Coordy"] .. ")" - - clr1 = addon:hexcolor("REP") - clr2 = addon:hexcolor("NORMAL") - gttAdd(0, -1, 0, 0, L["Reputation"], clr1, repname, clr2) - - local rStr = "" - if (rplvl == 0) then - rStr = BFAC["Neutral"] - clr1 = addon:hexcolor("NEUTRAL") - elseif (rplvl == 1) then - rStr = BFAC["Neutral"] - clr1 = addon:hexcolor("FRIENDLY") - elseif (rplvl == 2) then - rStr = BFAC["Honored"] - clr1 = addon:hexcolor("HONORED") - elseif (rplvl == 3) then - rStr = BFAC["Revered"] - clr1 = addon:hexcolor("REVERED") - else - rStr = BFAC["Exalted"] - clr1 = addon:hexcolor("EXALTED") - end - if (repvndr["Faction"] == BFAC["Horde"]) then - clr2 = addon:hexcolor("HORDE") - elseif (repvndr["Faction"] == BFAC["Alliance"]) then - clr2 = addon:hexcolor("ALLIANCE") - else - clr2 = addon:hexcolor("NEUTRAL") - end - gttAdd(1, -2, 0, 0, rStr, clr1, repvndr["Name"], clr2) - clr1 = addon:hexcolor("NORMAL") - clr2 = addon:hexcolor("HIGH") - gttAdd(2, -2, 1, 0, repvndr["Location"], clr1, cStr, clr2) - elseif (v["Type"] == 7) then -- World Drop - -- World Drop RarityLevel - if (v["ID"] == 1) then - clr1 = addon:hexcolor("COMMON") - elseif (v["ID"] == 2) then - clr1 = addon:hexcolor("UNCOMMON") - elseif (v["ID"] == 3) then - clr1 = addon:hexcolor("RARE") - elseif (v["ID"] == 4) then - clr1 = addon:hexcolor("EPIC") + gttAdd(2, -2, 1, 0, repvndr["Location"], clr1, cStr, clr2) + + -- World Drop + elseif (v["Type"] == 7) then + + -- World Drop RarityLevel + if (v["ID"] == 1) then + clr1 = addon:hexcolor("COMMON") + elseif (v["ID"] == 2) then + clr1 = addon:hexcolor("UNCOMMON") + elseif (v["ID"] == 3) then + clr1 = addon:hexcolor("RARE") + elseif (v["ID"] == 4) then + clr1 = addon:hexcolor("EPIC") + else + clr1 = addon:hexcolor("NORMAL") + end + + gttAdd(0, -1, 0, 0, L["World Drop"], clr1) + + -- Unhandled else + clr1 = addon:hexcolor("NORMAL") + gttAdd(0, -1, 0, 0, L["Unhandled Recipe"], clr1) + end - gttAdd(0, -1, 0, 0, L["World Drop"], clr1) - -- Unhandled - else - clr1 = addon:hexcolor("NORMAL") - gttAdd(0, -1, 0, 0, L["Unhandled Recipe"], clr1) + end - end - gttAdd(0, 0, 0, 0, ".", addon:hexcolor("BLACK")) - clr1 = addon:hexcolor("NORMAL") - gttAdd(0, -1, 0, 0, L["ALT_CLICK"], clr1) - gttAdd(0, -1, 0, 1, L["CTRL_CLICK"], clr1) - gttAdd(0, -1, 0, 1, L["SHIFT_CLICK"], clr1) - arlTooltip:Show() + gttAdd(0, 0, 0, 0, ".", addon:hexcolor("BLACK")) + clr1 = addon:hexcolor("NORMAL") + gttAdd(0, -1, 0, 0, L["ALT_CLICK"], clr1) + gttAdd(0, -1, 0, 1, L["CTRL_CLICK"], clr1) + gttAdd(0, -1, 0, 1, L["SHIFT_CLICK"], clr1) + arlTooltip:Show() - end - ) + end + ) rButton:SetScript("OnLeave", - function() - arlTooltip:Hide() - end - ) + function() + arlTooltip:Hide() + end + ) end @@ -3220,7 +3343,7 @@ function addon:CreateFrame( if (addon.db.profile.includefiltered == true) then pbMax = cPlayer.totalRecipes else - pbMax = cPlayer.totalRecipes - cPlayer.filteredRecipes + cPlayer.foundRecipes - cPlayer.otherRecipes + pbMax = GetFilteredRecipes(cPlayer.totalRecipes, cPlayer.filteredRecipes, cPlayer.foundRecipes, cPlayer.otherRecipes) end ARL_ProgressBar:SetMinMaxValues(pbMin, pbMax) ARL_ProgressBar:SetValue(pbCur) -- 1.7.9.5