Mercurial > wow > itemauditor
changeset 99:e9b903cf9b33
Added a menu to allow the user to see what is to be crafted, only what you hae mats for, or view everything so you can see why something isn't to be crafted.
author | Asa Ayers <Asa.Ayers@Gmail.com> |
---|---|
date | Thu, 19 Aug 2010 23:14:30 -0700 |
parents | b29441cd130d |
children | e6292f1a0cf3 |
files | CHANGELOG.txt Modules/Crafting.lua |
diffstat | 2 files changed, 64 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/CHANGELOG.txt Thu Aug 19 22:53:54 2010 -0700 +++ b/CHANGELOG.txt Thu Aug 19 23:14:30 2010 -0700 @@ -1,10 +1,11 @@ -2010-08-14 Asa Ayers <Asa.Ayers@Gmail.com> +2010-08-19 Asa Ayers <Asa.Ayers@Gmail.com> - Ticket 30 (related to #23) - ItemAuditor is back to counting items in the mailbox, but will subtract items purchased from the AH or COD mail from its item counts. +- Added a menu to allow the user to see what is to be crafted, only what you hae mats for, or view everything so you can see why something isn't to be crafted. 2010-08-14 Asa Ayers <Asa.Ayers@Gmail.com> -- Ticket 29 - Changed the Insufficient COD alert to use a case-insensitive comparison on character names. +- Ticket 29 - Changed the Insufficient COD alert to use a case-insensitive comparison on character names. 2010-08-12 Asa Ayers <Asa.Ayers@Gmail.com>
--- a/Modules/Crafting.lua Thu Aug 19 22:53:54 2010 -0700 +++ b/Modules/Crafting.lua Thu Aug 19 23:14:30 2010 -0700 @@ -114,12 +114,15 @@ { name= "Est Sale Each", width = 100, align = "RIGHT", ['DoCellUpdate'] = displayMoney, }, - { name= "Decided By", width = 100, align = "RIGHT", + { name= "Decided By", width = 125, align = "RIGHT", }, { name= "craft", width = 50, align = "RIGHT", }, + { name= "Have Mats", width = 60, align = "RIGHT", + + }, { name= "Total Profit", width = 100, align = "RIGHT", ['DoCellUpdate'] = displayMoney, }, @@ -160,10 +163,18 @@ end -- ItemAuditor:GetModule('Crafting').filter_queued = false -Crafting.filter_queued = true +Crafting.filter_have_mats = false +Crafting.filter_show_all = false local function tableFilter(self, row, ...) + if Crafting.filter_show_all then + return true + end + -- column 5 is how many should be crafted - if Crafting.filter_queued and row[5] <= 0 then + if Crafting.filter_have_mats and row[6] == 'n' then + return false + end + if strfind(row[4], 'VETO: .*') or row[5] == 0 then return false end return true @@ -204,7 +215,35 @@ end, }); - + local craftingView = CreateFrame("Button", nil, craftingContent, "UIPanelButtonTemplate") + craftingView:SetText("View") + craftingView:SetSize(50, 25) + craftingView:SetPoint("BOTTOMLEFT", craftingContent, 0, 0) + + local menu = { + { text = "View", isTitle = true}, + { text = "To be crafted", func = function() + Crafting.filter_have_mats = false + Crafting.filter_show_all = false + ItemAuditor:RefreshCraftingTable() + end }, + { text = "Have Mats", func = function() + Crafting.filter_have_mats = true + Crafting.filter_show_all = false + ItemAuditor:RefreshCraftingTable() + end }, + { text = "All", func = function() + Crafting.filter_have_mats = false + Crafting.filter_show_all = true + ItemAuditor:RefreshCraftingTable() + end }, + } + local menuFrame = CreateFrame("Frame", "ExampleMenuFrame", UIParent, "UIDropDownMenuTemplate") + craftingView:SetScript("OnClick", function (self, button, down) + EasyMenu(menu, menuFrame, "cursor", 0 , 0, "MENU"); + end) + + btnProcess = CreateFrame("Button", nil, craftingContent, "UIPanelButtonTemplate") btnProcess:SetText("Process") btnProcess:SetSize(100, 25) @@ -237,8 +276,7 @@ end) btnSkillet = CreateFrame("Button", nil, craftingContent, "UIPanelButtonTemplate") - - + btnSkillet:SetSize(125, 25) btnSkillet:SetPoint("BOTTOMRIGHT", btnProcess, 'BOTTOMLEFT', 0, 0) btnSkillet:RegisterForClicks("LeftButtonUp"); @@ -331,7 +369,7 @@ if data.profit > 0 and data.profit > ItemAuditor:GetCraftingThreshold() then return 1 end - return -1 + return -1, 'Not Profitable' end Crafting.RegisterCraftingDecider('Is Profitable', isProfitable) @@ -411,7 +449,13 @@ } data.winner, data.queue = Decide(data) - data.queue = data.queue - count + --[[ + If it wasn't vetoed we need to reduce the number by how many are owned + but this should not go below 0 + ]] + if data.queue > 0 then + data.queue = max(0, data.queue - count) + end -- If a tradeskill makes 5 at a time and something asks for 9, we should only -- craft twice to get 10. @@ -422,7 +466,7 @@ end end end - table.sort(realData, function(a, b) return a.profit*a.queue > b.profit*b.queue end) + table.sort(realData, function(a, b) return a.profit*max(1, a.queue) > b.profit*max(1, b.queue) end) local numOwned = {} for key, data in pairs(realData) do @@ -447,14 +491,20 @@ end function ItemAuditor:RefreshCraftingTable() + local displayMaterials for key, data in pairs(realData) do + displayMaterials = 'n' + if data.haveMaterials then + displayMaterials = 'y' + end tableData[key] = { data.name, data.cost, data.price, data.winner, - data.queue, - data.profit*data.queue, + abs(data.queue), + displayMaterials, + data.profit*abs(data.queue), } end craftingTable:SetData(tableData, true)