From 3615922254dabf4775384a0f9028749493ab6fab Mon Sep 17 00:00:00 2001 From: pschifferer Date: Thu, 19 Feb 2009 20:06:35 +0000 Subject: [PATCH] Added filter that will sort skills that have key reagents (those not available from vendors). --- CauldronMain.lua | 1 + CauldronMainUI.lua | 2 -- CauldronTradeskill.lua | 17 ++++++++++++++--- CauldronUtil.lua | 5 ++++- 4 files changed, 19 insertions(+), 6 deletions(-) diff --git a/CauldronMain.lua b/CauldronMain.lua index e4def62..4f0587e 100644 --- a/CauldronMain.lua +++ b/CauldronMain.lua @@ -854,6 +854,7 @@ end ["index"] = , -- the index of the reagent, for API call usage ["skillIndex"] = , -- the index of the skill, for API call usage ["icon"] = "", + ["key"] = , }, -- [1] ... }, diff --git a/CauldronMainUI.lua b/CauldronMainUI.lua index c95fd5c..fcea2b9 100644 --- a/CauldronMainUI.lua +++ b/CauldronMainUI.lua @@ -1330,7 +1330,6 @@ function Cauldron:FilterDropDown_Initialize(level) }; UIDropDownMenu_AddButton(haveAllReagents); - --[[ local haveKeyReagents = { text = L["Have key"], checked = Cauldron.db.realm.userdata[Cauldron.vars.playername].skills[skillName].window.filter.haveKeyReagents, @@ -1341,7 +1340,6 @@ function Cauldron:FilterDropDown_Initialize(level) arg2 = "", }; UIDropDownMenu_AddButton(haveKeyReagents); - --]] local haveAnyReagents = { text = L["Have any"], diff --git a/CauldronTradeskill.lua b/CauldronTradeskill.lua index 7e283e3..79eaac2 100644 --- a/CauldronTradeskill.lua +++ b/CauldronTradeskill.lua @@ -327,14 +327,18 @@ function Cauldron:GetSkillList(playername, skillName) end elseif self.db.realm.userdata[playername].skills[skillName].window.filter.haveKeyReagents then -- check if the reagent count for key reagents is 0 + for rname, rinfo in pairs(recipe.reagents) do + -- check possession count + if (GetItemCount(rname) == 0) and (rinfo.key) then + add = false; + end + end elseif self.db.realm.userdata[playername].skills[skillName].window.filter.haveAnyReagents then -- check if the reagent count for any reagent is 0 for rname, rinfo in pairs(recipe.reagents) do -- check possession count if GetItemCount(rname) == 0 then --- if Cauldron:GetAltReagentCount(rinfo) == 0 then - add = false; --- end + add = false; end end end @@ -528,6 +532,12 @@ function Cauldron:GetReagentsForSkill(skillInfo) for i=1,GetTradeSkillNumReagents(skillInfo.index) do local name, icon, count, _ = GetTradeSkillReagentInfo(skillInfo.index, i); local link = GetTradeSkillReagentItemLink(skillInfo.index, i); + local itemId = Cauldron:GetIdFromLink(link); + local value, set = self.libs.PT:ItemInSet(itemId, "Tradeskill.Mat.BySource.Vendor"); + local key = true; + if value then + key = false; + end local r = { -- ["toonHas"] = GetItemCount(link), @@ -536,6 +546,7 @@ function Cauldron:GetReagentsForSkill(skillInfo) ["skillIndex"] = skillInfo.index, ["icon"] = icon, ["link"] = link, + ["key"] = key, }; table.insert(reagents, r); diff --git a/CauldronUtil.lua b/CauldronUtil.lua index 731d300..37280ac 100644 --- a/CauldronUtil.lua +++ b/CauldronUtil.lua @@ -9,11 +9,14 @@ function Cauldron:GetAltReagentCount(reagentInfo) self:debug("GetAltReagentCount exit"); end -function Cauldron:GetPotentialCraftCount(skill) +function Cauldron:GetPotentialCraftCount(skillInfo) self:debug("GetPotentialCraftCount enter"); local count = 0; + -- get reagent list +-- local reagents = Cauldron:GetReagentsForSkill(skillInfo); + -- TODO self:debug("GetPotentialCraftCount exit"); -- 1.7.9.5