Mercurial > wow > reagentmaker
changeset 76:9d487333bf10
Block cross-tradeskill in external window
author | contrebasse |
---|---|
date | Sat, 14 May 2011 21:30:56 +0200 |
parents | 3d344a2d8fdf |
children | cd36938d2a48 |
files | ReagentMaker.lua SecureMenu.lua utils.lua |
diffstat | 3 files changed, 38 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/ReagentMaker.lua Sat May 14 21:00:38 2011 +0200 +++ b/ReagentMaker.lua Sat May 14 21:30:56 2011 +0200 @@ -138,10 +138,12 @@ -- If we can make the item needed to make the reagent, open a window to make it -- one step recursion, enables to mill to create an ink if (not A.data[reagentID][1].manyReagents) and A.data[A.data[reagentID][1][1]] then - A.externalCraftWindow(A.data[reagentID][1][1],reagentID) - else - A.Error(A.L["You do not have enough reagents to craft [%s]"]:format(GetItemInfo(reagentID) or "item #"..reagentID)) + if A.externalCraftWindow(A.data[reagentID][1][1],reagentID) ~= false then + return + end end + + A.Error(A.L["You do not have enough reagents to craft [%s]"]:format(GetItemInfo(reagentID) or "item #"..reagentID)) return else A.externalCraftWindow(reagentID)
--- a/SecureMenu.lua Sat May 14 21:00:38 2011 +0200 +++ b/SecureMenu.lua Sat May 14 21:30:56 2011 +0200 @@ -330,17 +330,27 @@ MenuFrame.superItemID = superItemID -- optional, will be nil if not set -- Loop over the available recipes - MenuFrame.state = true + local noSkipped = true -- check if we have to reload the external frame to get all the data + local existsValidEntries -- check if the menu contains at least one item (cross-tradeskill problem) for _,reagent in ipairs(A.data[itemID]) do if reagent.macro then -- Special spell - MenuFrame.state = menuAddItem(reagent.macro,itemID,reagent) and MenuFrame.state + existsValidEntries = true + noSkipped = menuAddItem(reagent.macro,itemID,reagent) and noSkipped else - -- Standard tradeskill spell UNTESTED - MenuFrame.state = menuAddItem(A.craft,itemID,reagent) and MenuFrame.state + -- Standard tradeskill spell + if reagent.spellID == A.currentTradeSkill then + existsValidEntries = true + noSkipped = menuAddItem(A.craft,itemID,reagent) and noSkipped + end end -- if end -- for + -- do not show an empty menu + if not existsValidEntries then + return false + end + MenuFrame:SetHeight(89 + numActiveEntries*(MENU_ENTRY_HEIGHT+2)) MenuFrame:ClearAllPoints() @@ -351,7 +361,7 @@ MenuFrame:Show() - if not MenuFrame.state then + if not noSkipped then MenuFrame:SetScript("OnUpdate",reopen) end end
--- a/utils.lua Sat May 14 21:00:38 2011 +0200 +++ b/utils.lua Sat May 14 21:30:56 2011 +0200 @@ -235,3 +235,21 @@ return unique end + +--[[ +function A.isTradeskillUnique(itemData) + local spellID = itemData[1].spellID + + -- Check if the item is made by only one recipe. If not, return + if #itemData>1 then + for _,v in ipairs(itemData) do + if v.spellID ~= spellID then + spellID = nil + break + end + end + end + + return spellID +end +--]] \ No newline at end of file