diff --git a/Broker_Garbage.toc b/Broker_Garbage.toc index e6dab94..58d716a 100644 --- a/Broker_Garbage.toc +++ b/Broker_Garbage.toc @@ -2,13 +2,13 @@ ## Dependencies: ## OptionalDeps: Auctionator, AuctionLite, Auctioneer ## SavedVariables: BG_GlobalDB -## SavedVariablesPerCharacter: +## SavedVariablesPerCharacter: BG_LocalDB ## Title: Broker_Garbage ## Notes: Full bags no more! Find your least valuable item .. and destroy it! ## Notes-deDE: Endlich wieder Platz! Finde dein billigstes Item ... und zerstöre es. ## Author: ckaotik -## Version: 3.3v8 +## Version: 3.3v9 ## X-Category: Inventory ## X-Credits: GarbageFu, Tekkub diff --git a/Libs/CallbackHandler-1.0.lua b/Libs/CallbackHandler-1.0.lua index 5ad658f..fbf93cf 100644 --- a/Libs/CallbackHandler-1.0.lua +++ b/Libs/CallbackHandler-1.0.lua @@ -1,4 +1,4 @@ ---[[ $Id: CallbackHandler-1.0.lua 60548 2008-02-07 11:04:06Z nevcairiel $ ]] +--[[ $Id: CallbackHandler-1.0.lua 60548 2008-02-07 11:04:06Z nevcairiel $ ]] local MAJOR, MINOR = "CallbackHandler-1.0", 3 local CallbackHandler = LibStub:NewLibrary(MAJOR, MINOR) diff --git a/Libs/LibDataBroker-1.1.lua b/Libs/LibDataBroker-1.1.lua index 6b10124..7382a8d 100644 --- a/Libs/LibDataBroker-1.1.lua +++ b/Libs/LibDataBroker-1.1.lua @@ -1,4 +1,4 @@ - + assert(LibStub, "LibDataBroker-1.1 requires LibStub") assert(LibStub:GetLibrary("CallbackHandler-1.0", true), "LibDataBroker-1.1 requires CallbackHandler-1.0") diff --git a/Libs/LibQTip-1.0.lua b/Libs/LibQTip-1.0.lua index ed1ad56..aeae958 100644 --- a/Libs/LibQTip-1.0.lua +++ b/Libs/LibQTip-1.0.lua @@ -1,4 +1,4 @@ -local MAJOR = "LibQTip-1.0" +local MAJOR = "LibQTip-1.0" local MINOR = 29 -- Should be manually increased assert(LibStub, MAJOR.." requires LibStub") diff --git a/Libs/LibStub.lua b/Libs/LibStub.lua index 0a41ac0..3c48e5e 100644 --- a/Libs/LibStub.lua +++ b/Libs/LibStub.lua @@ -1,4 +1,4 @@ --- LibStub is a simple versioning stub meant for use in Libraries. http://www.wowace.com/wiki/LibStub for more info +-- LibStub is a simple versioning stub meant for use in Libraries. http://www.wowace.com/wiki/LibStub for more info -- LibStub is hereby placed in the Public Domain Credits: Kaelten, Cladhaire, ckknight, Mikk, Ammo, Nevcairiel, joshborke local LIBSTUB_MAJOR, LIBSTUB_MINOR = "LibStub", 2 -- NEVER MAKE THIS AN SVN REVISION! IT NEEDS TO BE USABLE IN ALL REPOS! local LibStub = _G[LIBSTUB_MAJOR] diff --git a/Libs/tekKonfig/tekKonfig.xml b/Libs/tekKonfig/tekKonfig.xml index 0f5bfe2..313c6d6 100644 --- a/Libs/tekKonfig/tekKonfig.xml +++ b/Libs/tekKonfig/tekKonfig.xml @@ -1,4 +1,4 @@ -<Ui xmlns="http://www.blizzard.com/wow/ui/"> +<Ui xmlns="http://www.blizzard.com/wow/ui/"> <Script file="LibStub.lua"/> <Script file="tekKonfigButton.lua"/> <Script file="tekKonfigCheckbox.lua"/> diff --git a/Libs/tekKonfig/tekKonfigAboutPanel.lua b/Libs/tekKonfig/tekKonfigAboutPanel.lua index f7ea166..2547979 100644 --- a/Libs/tekKonfig/tekKonfigAboutPanel.lua +++ b/Libs/tekKonfig/tekKonfigAboutPanel.lua @@ -1,4 +1,4 @@ - + local lib, oldminor = LibStub:NewLibrary("tekKonfig-AboutPanel", 5) if not lib then return end diff --git a/Libs/tekKonfig/tekKonfigButton.lua b/Libs/tekKonfig/tekKonfigButton.lua index 812e0d0..4456258 100644 --- a/Libs/tekKonfig/tekKonfigButton.lua +++ b/Libs/tekKonfig/tekKonfigButton.lua @@ -1,4 +1,4 @@ - + local lib, oldminor = LibStub:NewLibrary("tekKonfig-Button", 5) if not lib then return end oldminor = oldminor or 0 diff --git a/Libs/tekKonfig/tekKonfigCheckbox.lua b/Libs/tekKonfig/tekKonfigCheckbox.lua index d03f108..180c9f0 100644 --- a/Libs/tekKonfig/tekKonfigCheckbox.lua +++ b/Libs/tekKonfig/tekKonfigCheckbox.lua @@ -1,4 +1,4 @@ - + local lib, oldminor = LibStub:NewLibrary("tekKonfig-Checkbox", 1) if not lib then return end diff --git a/Libs/tekKonfig/tekKonfigHeading.lua b/Libs/tekKonfig/tekKonfigHeading.lua index 2c0dc1e..774bf80 100644 --- a/Libs/tekKonfig/tekKonfigHeading.lua +++ b/Libs/tekKonfig/tekKonfigHeading.lua @@ -1,4 +1,4 @@ - + local lib, oldminor = LibStub:NewLibrary("tekKonfig-Heading", 1) if not lib then return end diff --git a/Libs/tekKonfig/tekKonfigSlider.lua b/Libs/tekKonfig/tekKonfigSlider.lua index 75abda7..98ec4cc 100644 --- a/Libs/tekKonfig/tekKonfigSlider.lua +++ b/Libs/tekKonfig/tekKonfigSlider.lua @@ -1,4 +1,4 @@ - + local lib, oldminor = LibStub:NewLibrary("tekKonfig-Slider", 3) if not lib then return end oldminor = oldminor or 0 diff --git a/core.lua b/core.lua index 9ba6e27..e790dcf 100644 --- a/core.lua +++ b/core.lua @@ -1,4 +1,4 @@ --- Broker_Garbage +-- Broker_Garbage -- Author: Ckaotik (Raisa@EU-Die Todeskrallen) -- created to replace/update GarbageFu for 3.x and further provide LDB support _, BrokerGarbage = ... @@ -17,24 +17,49 @@ LDB.OnEnter = function(...) BrokerGarbage:Tooltip(...) end LDB.OnMouseWheel = function(...) BrokerGarbage:OnScroll(...) end -- default saved variables -BrokerGarbage.defaultSettings = { - dropQuality = 0, +BrokerGarbage.defaultGlobalSettings = { + -- lists exclude = {}, include = {}, - forceVendorPrice = {}, -- TODO options + dropList = {}, -- TODO options autoSellList = {}, -- TODO options - showMoney = 2, + forceVendorPrice = {}, -- TODO options, only global + + -- behavior autoSellToVendor = true, - showAutoSellIcon = true, autoRepairAtVendor = true, neverRepairGuildBank = false, + useTwoPartLists = true, -- TODO options + + -- default values + moneyLostByDeleting = 0, -- total value + moneyEarned = 0, -- total value tooltipMaxHeight = 220, - tooltipNumItems = 10, - moneyLostByDeleting = 0, + tooltipNumItems = 9, + dropQuality = 0, + showMoney = 2, + + -- display options + showAutoSellIcon = true, showLost = true, - moneyEarned = 0, showEarned = true, showWarnings = true, -- TODO options + showSource = false, +} + +BrokerGarbage.defaultLocalSettings = { + -- lists + exclude = {}, + include = {}, + dropList = {}, + autoSellList = {}, + + -- behavior + neverRepairGuildBank = false, + + -- default values + moneyLostByDeleting = 0, + moneyEarned = 0, } -- internal locals @@ -103,14 +128,19 @@ local function eventHandler(self, event, ...) -- check for settings if not BG_GlobalDB then BG_GlobalDB = {} end - for key, value in pairs(BrokerGarbage.defaultSettings) do - BrokerGarbage:Debug("Testing key, value", key, value) + for key, value in pairs(BrokerGarbage.defaultGlobalSettings) do if BG_GlobalDB[key] == nil then - BrokerGarbage:Debug("key not existant", key) BG_GlobalDB[key] = value end end + if not BG_LocalDB then BG_LocalDB = {} end + for key, value in pairs(BrokerGarbage.defaultLocalSettings) do + if BG_LocalDB[key] == nil then + BG_LocalDB[key] = value + end + end + if not locked and loaded then warnings = BrokerGarbage:ScanInventory() end @@ -158,7 +188,7 @@ function MerchantFrame_UpdateRepairButtons(...) if not _G["BrokerGarbage_SellIcon"] then iconbutton = CreateFrame("Button", "BrokerGarbage_SellIcon", MerchantBuyBackItemItemButton) iconbutton:SetWidth(36); iconbutton:SetHeight(36) - iconbutton:SetNormalTexture("Interface\\Icons\\achievement_bg_returnxflags_def_wsg") + iconbutton:SetNormalTexture("Interface\\Icons\\achievement_bg_returnxflags_def_wsg") -- INV_Crate_05 iconbutton:SetHighlightTexture("Interface\\Buttons\\ButtonHilight-Square") iconbutton:SetScript("OnClick", BrokerGarbage.AutoSell) iconbutton:SetScript("OnEnter", function(self) @@ -289,6 +319,14 @@ function BrokerGarbage:ResetMoney(which) end end +function BrokerGarbage:ResetList(which) + if which == "exclude" then + BG_GlobalDB.exclude = {} + elseif which == "include" then + BG_GlobalDB.include = {} + end +end + function BrokerGarbage:CanDisenchant(itemLink) if (itemLink) then local _, _, quality, level, _, _, _, count, slot = GetItemInfo(itemLink) @@ -298,7 +336,7 @@ function BrokerGarbage:CanDisenchant(itemLink) string.find(slot, "INVTYPE") and not string.find(slot, "BAG") and (not count or count == 1) then - -- can we DE ourselves? + -- can we DE ourself? local enchanting = GetSpellInfo(7411) if IsUsableSpell(enchanting) then local skill @@ -306,17 +344,31 @@ function BrokerGarbage:CanDisenchant(itemLink) local name, _, _, skillRank, _, _, _, _, _, _, _, _, _ = GetSkillLineInfo(i) if name == enchanting then skill = skillRank + BrokerGarbage:Debug("DE Skill", skill) break end end - local requiredSkill = 5*5*math.ceil(level/5)-100 - -- fix low-level items - if requiredSkill <= 0 then + local requiredSkill = 0 + if level <= 20 then requiredSkill = 1 + elseif level <= 60 then + requiredSkill = 5*5*math.ceil(level/5)-100 + elseif level < 100 then -- BC starts here + requiredSkill = 225 + elseif level <= 115 then + requiredSkill = 275 + elseif level <= 130 then + requiredSkill = 300 + elseif level <= 200 and quality <= 3 then -- WotLK starts here + requiredSkill = 325 + else + requiredSkill = 375 end + BrokerGarbage:Debug("Required DE Skill", requiredSkill) if skill >= requiredSkill then + BrokerGarbage:Debug("Can Diss.") return true end -- if skill is too low, still check if we can send it @@ -332,8 +384,11 @@ end -- basic functionality from here -- --------------------------------------------------------- function BrokerGarbage:Tooltip(wut) - -- Acquire a tooltip with 3 columns, respectively aligned to left, right and right - BrokerGarbage.tt = LibQTip:Acquire("BrokerGarbage_TT", 3, "LEFT", "RIGHT", "RIGHT") + if BG_GlobalDB.showSource then + BrokerGarbage.tt = LibQTip:Acquire("BrokerGarbage_TT", 4, "LEFT", "RIGHT", "RIGHT", "CENTER") + else + BrokerGarbage.tt = LibQTip:Acquire("BrokerGarbage_TT", 3, "LEFT", "RIGHT", "RIGHT") + end BrokerGarbage.tt:Clear() -- font settings @@ -358,15 +413,16 @@ function BrokerGarbage:Tooltip(wut) local lineNum local cheapList = BrokerGarbage:GetCheapest(BG_GlobalDB.tooltipNumItems) for i = 1, #cheapList do - -- adds lines: itemLink, count, itemPrice + -- adds lines: itemLink, count, itemPrice, source lineNum = BrokerGarbage.tt:AddLine( select(2,GetItemInfo(cheapList[i].itemID)), cheapList[i].count, - BrokerGarbage:FormatMoney(cheapList[i].value)) + BrokerGarbage:FormatMoney(cheapList[i].value), + (BG_GlobalDB.showSource and cheapList[i].source or nil)) BrokerGarbage.tt:SetLineScript(lineNum, "OnMouseDown", BrokerGarbage.OnClick, cheapList[i]) end if lineNum == nil then - BrokerGarbage.tt:AddLine(BrokerGarbage.locale.noItems, '', '') + BrokerGarbage.tt:AddLine(BrokerGarbage.locale.noItems, '', BrokerGarbage.locale.increaseTreshold) end -- add useful(?) information @@ -374,11 +430,11 @@ function BrokerGarbage:Tooltip(wut) or (BG_GlobalDB.showEarned and BG_GlobalDB.moneyEarned ~= 0) then BrokerGarbage.tt:AddSeparator(2) - if BG_GlobalDB.moneyLostByDeleting ~= 0 then - BrokerGarbage.tt:AddLine(BrokerGarbage.locale.moneyLost, '', BrokerGarbage:FormatMoney(BG_GlobalDB.moneyLostByDeleting)) + if BG_LocalDB.moneyLostByDeleting ~= 0 then + BrokerGarbage.tt:AddLine(BrokerGarbage.locale.moneyLost, '', BrokerGarbage:FormatMoney(BG_LocalDB.moneyLostByDeleting)) end - if BG_GlobalDB.moneyEarned ~= 0 then - BrokerGarbage.tt:AddLine(BrokerGarbage.locale.moneyEarned, '', BrokerGarbage:FormatMoney(BG_GlobalDB.moneyEarned)) + if BG_LocalDB.moneyEarned ~= 0 then + BrokerGarbage.tt:AddLine(BrokerGarbage.locale.moneyEarned, '', BrokerGarbage:FormatMoney(BG_LocalDB.moneyEarned)) end end @@ -386,7 +442,7 @@ function BrokerGarbage:Tooltip(wut) BrokerGarbage.tt:SmartAnchorTo(wut) BrokerGarbage.tt:SetAutoHideDelay(0.25, wut) - -- Show it, et voil ! + -- Show it, et voilà ! BrokerGarbage.tt:Show() BrokerGarbage.tt:UpdateScrolling(BG_GlobalDB.tooltipMaxHeight) end @@ -408,10 +464,7 @@ function BrokerGarbage:OnScroll(self, direction) end -- onClick function for when you ... click -function BrokerGarbage:OnClick(itemTable, button) - BrokerGarbage:Debug("Click!", button) - BrokerGarbage:Debug("Table", itemTable, itemTable.itemID) - +function BrokerGarbage:OnClick(itemTable, button) -- handle LDB clicks seperately if not itemTable.itemID or type(itemTable.itemID) ~= "number" then itemTable = BrokerGarbage.cheapestItem @@ -423,15 +476,16 @@ function BrokerGarbage:OnClick(itemTable, button) BrokerGarbage:Debug("SHIFT-Click!") BrokerGarbage:Delete(select(2,GetItemInfo(itemTable.itemID)), itemTable.bag, itemTable.slot) BG_GlobalDB.moneyLostByDeleting = BG_GlobalDB.moneyLostByDeleting + itemTable.value + BG_LocalDB.moneyLostByDeleting = BG_GlobalDB.moneyLostByDeleting + itemTable.value + BrokerGarbage:ScanInventory() elseif itemTable and IsControlKeyDown() then -- add to exclude list BrokerGarbage:Debug("CTRL-Click!") - BG_GlobalDB.exclude[itemTable.itemID] = true + BG_LocalDB.exclude[itemTable.itemID] = true BrokerGarbage:Print(format(BrokerGarbage.locale.addedToSaveList, select(2,GetItemInfo(itemTable.itemID)))) BrokerGarbage:ScanInventory() - BrokerGarbage:Debug("CTRL-Click!", "Ende") elseif button == "RightButton" then -- open config @@ -447,18 +501,26 @@ end -- calculates the value of a stack/partial stack of an item function BrokerGarbage:GetItemValue(itemLink, count) local vendorPrice = select(11,GetItemInfo(itemLink)) - local auctionPrice, disenchantPrice, temp + local auctionPrice, disenchantPrice, temp, source + local DE = false if vendorPrice == 0 then vendorPrice = nil end if not count then count = GetItemCount(itemLink, false, false) end - -- gray items on the AH / forced vendor price - if select(3,GetItemInfo(itemLink)) == 0 or BG_GlobalDB.forceVendorPrice[itemID] then - return vendorPrice and vendorPrice*count or nil + -- gray items on the AH / auto sell items have only vendor value (to not screw up moneyEarned/moneyLost) + if select(3,GetItemInfo(itemLink)) == 0 + or BG_GlobalDB.autoSellList[itemID] or BG_LocalDB.autoSellList[itemID] + or BG_GlobalDB.forceVendorPrice[itemID] then + + return vendorPrice and vendorPrice*count or nil, "|cFFF5DEB3V" -- orange + end + + -- drop list items have a value of 0 copper + if BG_GlobalDB.dropList[itemID] or BG_LocalDB.dropList[itemID] then + return 0 end -- calculate auction value - -- TODO: update/support more if IsAddOnLoaded("Auctionator") then auctionPrice = Atr_GetAuctionBuyout(itemLink) disenchantPrice = Atr_GetDisenchantValue(itemLink) @@ -488,29 +550,33 @@ function BrokerGarbage:GetItemValue(itemLink, count) end -- DE items might be worth more than auction selling - if BrokerGarbage:CanDisenchant(itemID) then - auctionPrice = (disenchantPrice > auctionPrice) and disenchantPrice or auctionPrice + if BrokerGarbage:CanDisenchant(itemLink) then + DE = true + --auctionPrice = (disenchantPrice > auctionPrice) and disenchantPrice or auctionPrice end if vendorPrice then - if auctionPrice and disenchantPrice then + if auctionPrice and disenchantPrice and DE then if auctionPrice > disenchantPrice then temp = auctionPrice + source = "|cFF9F9F5FA" -- greenish else temp = disenchantPrice + source = "|cFF7171C6DE" -- purple end elseif auctionPrice then temp = auctionPrice + source = "|cFF9F9F5FA" -- greenish else temp = 0 end -- return highest price found if vendorPrice > temp then - return vendorPrice * count + return vendorPrice * count, "|cFFF5DEB3V" -- orange else - return temp * count or 0 - end + return temp * count or 0, source + end end end @@ -548,13 +614,17 @@ function BrokerGarbage:ScanInventory() select(2,GetItemInfo(itemID)))) end - if quality and - (quality <= BG_GlobalDB.dropQuality or BG_GlobalDB.include[itemID]) - and not BG_GlobalDB.exclude[itemID] then + if quality and (quality <= BG_GlobalDB.dropQuality + or BG_GlobalDB.include[itemID] or BG_LocalDB.include[itemID] + or BG_GlobalDB.autoSellList[itemID] or BG_LocalDB.autoSellList[itemID]) + and not BG_GlobalDB.exclude[itemID] then -- save excluded items!!! - local value = BrokerGarbage:GetItemValue(itemLink,count) - -- make included items appear in tooltip list - if BG_GlobalDB.include[itemID] and not value then value = 0 end + local value, source = BrokerGarbage:GetItemValue(itemLink,count) + -- make included items appear in tooltip list as "forced" + if BG_GlobalDB.include[itemID] or BG_LocalDB.include[itemID] then + value = 0 + source = "|cFF8C1717F" + end if value then local currentItem = { bag = container, @@ -563,6 +633,7 @@ function BrokerGarbage:ScanInventory() quality = quality, count = count, value = value, + source = source, } if not cheapestItem or cheapestItem.value >= value then @@ -616,22 +687,26 @@ end -- special functionality -- --------------------------------------------------------- --- when at a merchant this will clear your bags of junk (gray quality) +-- when at a merchant this will clear your bags of junk (gray quality) and items on your autoSellList function BrokerGarbage:AutoSell(self) if BG_GlobalDB.autoSellToVendor or self == _G["BrokerGarbage_SellIcon"] then local i = 1 sellValue = 0 for _, itemTable in pairs(BrokerGarbage.inventory) do if (itemTable.quality == 0 - and not BrokerGarbage:Find(BG_GlobalDB.exclude, itemTable.itemID)) - or (BG_GlobalDB.include[itemTable.itemID] and itemTable.value ~= 0) then + and not (BG_GlobalDB.exclude[itemTable.itemID] or BG_LocalDB.exclude[itemTable.itemID])) + or ((BG_GlobalDB.autoSellList[itemTable.itemID] or BG_LocalDB.autoSellList[itemTable.itemID]) + and itemTable.value ~= 0) then if i == 1 then BrokerGarbage:Debug("locked") locked = true end + sellValue = sellValue + itemTable.value BG_GlobalDB.moneyEarned = BG_GlobalDB.moneyEarned + itemTable.value + BG_LocalDB.moneyEarned = BG_LocalDB.moneyEarned + itemTable.value + UseContainerItem(itemTable.bag, itemTable.slot) i = i+1 end @@ -671,4 +746,6 @@ end -- types: Normal Food, Bonus Food, Stat Food, Conjured Bread, Raw Food, Bread, Fish, percent food/water, combi food/drink.... -- ignore special bags -- drop-beyond-treshold: only keep 5 soulshards --- feature: selective looting (only crafting materials, greens+ , ...) \ No newline at end of file +-- feature: selective looting (only crafting materials, greens+ , ...) + +-- Spell_Shaman_SpiritLink \ No newline at end of file diff --git a/deDE.lua b/deDE.lua index b21c03b..93bf6d6 100644 --- a/deDE.lua +++ b/deDE.lua @@ -1,7 +1,4 @@ ---[[ German localisation file - = \195\132 = \195\164 - = \195\150 = \195\182 - = \195\156 = \195\188 = \195\159 ]]-- +-- German localisation file _, BrokerGarbage = ... if GetLocale() == "deDE" then @@ -10,88 +7,92 @@ BrokerGarbage.locale = { label = "Kein Junk", -- Chat Messages - sellAndRepair = "M\195\188ll f\195\188r %1$s verkauft, repariert f\195\188r %2$s. \195\132nderung: %3$s.", - repair = "Repariert f\195\188r %s.", - sell = "M\195\188ll verkauft f\195\188r %s.", + sellAndRepair = "Müll für %1$s verkauft, repariert für %2$s. Änderung: %3$s.", + repair = "Repariert für %s.", + sell = "Müll verkauft für %s.", - addedToSaveList = "%s zur Ausnahmeliste hinzugef\195\188gt.", - addedToDestroyList = "%s zur Einschlussliste hinzugef\195\188gt.", - itemDeleted = "%s wurde gel\195\182scht.", + addedToSaveList = "%s zur Ausnahmeliste hinzugefügt.", + addedToDestroyList = "%s zur Einschlussliste hinzugefügt.", + itemDeleted = "%s wurde gelöscht.", - openPlease = "Bitte \195\182ffne %s - es nimmt unn\195\182tig Platz weg.", + openPlease = "Bitte öffne %s - es nimmt unnötig Platz weg.", -- Tooltip - headerRightClick = "Rechts-Klick \195\182ffnet Optionen", - headerShiftClick = "SHIFT-Klick: Zerst\195\182ren", + headerRightClick = "Rechts-Klick: Optionen", + headerShiftClick = "SHIFT-Klick: Zerstören", headerCtrlClick = "STRG-Klick: Behalten", moneyLost = "Gold verloren:", moneyEarned = "Gold verdient:", - noItems = "Keine Items zum L\195\182schen.", + noItems = "Keine Items zum Löschen.", + increaseTreshold = "Erhöhe die Item Qualität", autoSellTooltip = "Graue Items verkaufen.", -- Options Frame - subTitle = "M\195\182chtest du einmal nicht automatisch verkaufen / reparieren? \nHalte SHIFT gedr\195\188ckt, wenn du den H\195\164ndler ansprichst!", + subTitle = "Möchtest du einmal nicht automatisch verkaufen / reparieren? \nHalte SHIFT gedrückt, wenn du den Händler ansprichst!", autoSellTitle = "Automatisch Verkaufen", - autoSellText = "Wenn ausgew\195\164hlt, werden graue Gegenst\195\164nde automatisch beim H\195\164ndler verkauft.", + autoSellText = "Wenn ausgewählt, werden graue Gegenstände automatisch beim Händler verkauft.", showAutoSellIconTitle = "Icon anzeigen", - showAutoSellIconText = "Wenn ausgew\195\164hlt, wird bei H\195\164ndlern ein Icon zum automatischen Verkaufen angezeigt.", + showAutoSellIconText = "Wenn ausgewählt, wird bei Händlern ein Icon zum automatischen Verkaufen angezeigt.", autoRepairTitle = "Automatisch Reparieren", - autoRepairText = "Wenn ausgew\195\164hlt, wird deine Ausr\195\188stung automatisch repariert wenn m\195\182glich.", + autoRepairText = "Wenn ausgewählt, wird deine Ausrüstung automatisch repariert wenn möglich.", autoRepairGuildTitle = "Reparatur selbst zahlen", - autoRepairGuildText = "Wenn ausgew\195\164hlt, wird Broker_Garbage nicht auf Gildenkosten reparieren.", + autoRepairGuildText = "Wenn ausgewählt, wird Broker_Garbage nicht auf Gildenkosten reparieren.", showLostTitle = "'Verlorenes Gold' zeigen", - showLostText = "Wenn ausgew\195\164hlt, wird im Tooltip die Zeile 'Verlorenes Gold' gezeigt.", + showLostText = "Wenn ausgewählt, wird im Tooltip die Zeile 'Verlorenes Gold' gezeigt.", + + showSourceTitle = "Quelle anzeigen", + showSourceText = "Wenn ausgewählt, wird im Tooltip als letzte Spalte die Preisquelle gezeigt.", showEarnedTitle = "'Verdientes Gold' zeigen", - showEarnedText = "Wenn ausgew\195\164hlt, wird im Tooltip die Zeile 'Verdientes Gold' gezeigt.", + showEarnedText = "Wenn ausgewählt, wird im Tooltip die Zeile 'Verdientes Gold' gezeigt.", - dropQualityTitle = "Item Qualit\195\164t", - dropQualityText = "W\195\164hle, bis zu welcher Qualit\195\164t Items zum L\195\182schen vorgeschlagen werden. Standard: Schlecht (0)", + dropQualityTitle = "Item Qualität", + dropQualityText = "Wähle, bis zu welcher Qualität Items zum Löschen vorgeschlagen werden. Standard: Schlecht (0)", moneyFormatTitle = "Geldformat", - moneyFormatText = "\195\132ndere die Art, wie Geldbetr\195\164ge angezeigt werden. Standard: 2", + moneyFormatText = "Ändere die Art, wie Geldbeträge angezeigt werden. Standard: 2", maxItemsTitle = "Max. Items", - maxItemsText = "Lege fest, wie viele Zeilen im Tooltip angezeigt werden. Standard: 10", + maxItemsText = "Lege fest, wie viele Zeilen im Tooltip angezeigt werden. Standard: 9", - maxHeightTitle = "Max. H\195\182he", + maxHeightTitle = "Max. Höhe", maxHeightText = "Lege fest, wie hoch der Tooltip sein darf. Standard: 220", rescanInventory = "Inventar neu scannen", - rescanInventoryText = "Klicke um dein Inventar neu zu scannen. Dies sollte normalerweise nicht n\195\182tig sein!", + rescanInventoryText = "Klicke um dein Inventar neu zu scannen. Dies sollte normalerweise nicht nötig sein!", resetMoneyLost = "'Verlorenes Geld' leeren", - resetMoneyLostText = "Klicke um die Statistik 'Verlorenes Geld' zur\195\188ckzusetzen.", + resetMoneyLostText = "Klicke um die Statistik 'Verlorenes Geld' zurückzusetzen.", resetMoneyEarned = "'Verdientes Geld' leeren", - resetMoneyEarnedText = "Klicke um die Statistik 'Verdientes Geld' zur\195\188ckzusetzen.", + resetMoneyEarnedText = "Klicke um die Statistik 'Verdientes Geld' zurückzusetzen.", emptyExcludeList = "Ausschlussliste leeren", - emptyExcludeListText = "Klicke um deine Ausschlussliste zu leeren.", + emptyExcludeListText = "Klicke um deine globale (!) Ausschlussliste zu leeren.", emptyIncludeList = "Einschlussliste leeren", - emptyIncludeListText = "Klicke um deine Einschlussliste zu leeren.", + emptyIncludeListText = "Klicke um deine globale (!) Einschlussliste zu leeren.", -- List Options Panel LOTitle = "Listen-Optionen", - LOSubTitle = "Stelle hier deine Listen ein. Um Items hinzuzuf\195\188gen, zieh sie auf das jeweilige '+'. Um sie zu entfernen, w\195\164hle sie aus und klicke auf '-'.", - - LOExcludeHeader = "Ausschlussliste - Items hier werden nie verkauft/gel\195\182scht.", - LOExcludePlusTT = "Items hinzuf\195\188gen, indem du sie hierher ziehst/hier ablegst", - LOExcludeRefreshTT = "Klicke, um die Anzeige zu aktualisieren", - LOExcludeMinusTT = "W\195\164hle Items, die du entfernen willst. Dann klicke hier.", - LOExcludeEmptyTT = "Klicke, um die Ausschlussliste v\195\182llig zu leeren.\nAchtung!", - - LOIncludeHeader = "Einschlussliste - Items hier werden zum L\195\182schen vorgeschlagen.", - LOIncludePlusTT = "Items hinzuf\195\188gen, indem du sie hierher ziehst/hier ablegst", - LOIncludeRefreshTT = "Klicke, um die Anzeige zu aktualisieren", - LOIncludeMinusTT = "W\195\164hle Items, die du entfernen willst. Dann klicke hier.", - LOIncludeEmptyTT = "Klicke, um die Einschlussliste v\195\182llig zu leeren.\nAchtung!", + LOSubTitle = "Stelle hier deine Listen ein. Um Items hinzuzufügen, ziehe sie auf das jeweilige '+'. Um sie zu entfernen, wähle sie aus und klicke auf '-'.", + + LOExcludeHeader = "Ausschlussliste - Items hier werden nie verkauft/gelöscht.", + LOExcludePlusTT = "Items hinzufügen, indem du sie hierher ziehst/hier ablegst", + LOExcludeMinusTT = "Wähle Items, die du entfernen willst. Dann klicke hier.", + LOExcludePromoteTT = "Klicke um alle markierten Items in die globale Ausnahmeliste zu übernehmen.", + LOExcludeEmptyTT = "Klicke, um die lokale Ausschlussliste völlig zu leeren.\nAchtung!", + + LOIncludeHeader = "Einschlussliste - Items hier werden zum Löschen vorgeschlagen.", + LOIncludePlusTT = "Items hinzufügen, indem du sie hierher ziehst/hier ablegst", + LOIncludeMinusTT = "Wähle Items, die du entfernen willst. Dann klicke hier.", + LOIncludePromoteTT = "Klicke, um alle markierten Items in die globale Einschlussliste zu übernehmen.", + LOIncludeEmptyTT = "Klicke, um die lokale Einschlussliste völlig zu leeren.\nAchtung!", } end \ No newline at end of file diff --git a/enUS.lua b/enUS.lua index 79b2b13..dd51842 100644 --- a/enUS.lua +++ b/enUS.lua @@ -1,3 +1,4 @@ +-- enUS / enGB / default localization file _, BrokerGarbage = ... BrokerGarbage.locale = { @@ -21,6 +22,7 @@ BrokerGarbage.locale = { moneyLost = "Money Lost:", moneyEarned = "Money Earned:", noItems = "No items to delete.", + increaseTreshold = "Increase quality treshold", autoSellTooltip = "Sell gray items.", @@ -41,6 +43,9 @@ BrokerGarbage.locale = { showLostTitle = "Show Money Lost", showLostText = "Toggles whether to show the tooltip line 'Money Lost'.", + showSourceTitle = "Show Source", + showSourceText = "Toggles whether to show the last column in the tooltip, displaying the item value source.", + showEarnedTitle = "Show Money Earned", showEarnedText = "Toggles whether to show the tooltip line 'Money Earned'.", @@ -51,7 +56,7 @@ BrokerGarbage.locale = { moneyFormatText = "Change the way money (i.e. gold/silver/copper) is being displayed. Default: 2", maxItemsTitle = "Max. Items", - maxItemsText = "Set how many lines you would like to have displayed in the tooltip. Default: 10", + maxItemsText = "Set how many lines you would like to have displayed in the tooltip. Default: 9", maxHeightTitle = "Max. Height", maxHeightText = "Set the height of the tooltip. Default: 220", @@ -76,14 +81,14 @@ BrokerGarbage.locale = { LOSubTitle = "Set up your master lists here. To add Items, drag them over the corresponding '+' icon, to remove them select them and klick the '-'.", LOExcludeHeader = "Exclude List - these items will never be sold/deleted.", - LOExcludePlusTT = "Add items to the list by dragging/placing them on me!", - LOExcludeRefreshTT = "Click to refresh the Exclude List display", + LOExcludePlusTT = "Add items to the Exclude List by dragging/placing them on me!", LOExcludeMinusTT = "Select items you want to remove, then click here.", - LOExcludeEmptyTT = "Click to fully empty your Exclude List. Caution!", + LOExcludePromoteTT = "Selected items will be written onto your global Exclude List, as seen by every character.", + LOExcludeEmptyTT = "Click to fully empty your local Exclude List. Caution!", LOIncludeHeader = "Include List - these items will be suggested to be deleted.", - LOIncludePlusTT = "Add items to the list by dragging/placing them on me!", - LOIncludeRefreshTT = "Click to refresh the Include List display", + LOIncludePlusTT = "Add items to your Include List by dragging/placing them on me!", LOIncludeMinusTT = "Select items you want to remove, then click here.", - LOIncludeEmptyTT = "Click to fully empty your Include List. Caution!", + LOIncludePromoteTT = "Selected items will be written onto your global Include List, as seen by every character.", + LOIncludeEmptyTT = "Click to fully empty your local Include List. Caution!", } \ No newline at end of file diff --git a/options.lua b/options.lua index 0b606be..dd1555f 100644 --- a/options.lua +++ b/options.lua @@ -1,4 +1,4 @@ -addonName, BrokerGarbage = ... +addonName, BrokerGarbage = ... BrokerGarbage.quality = { [0] = "|cff9D9D9D"..ITEM_QUALITY0_DESC.."|r", @@ -60,11 +60,11 @@ BrokerGarbage.options:SetScript("OnShow", function(frame) local guildrepair = LibStub("tekKonfig-Checkbox").new(BrokerGarbage.options, nil, BrokerGarbage.locale.autoRepairGuildTitle, "TOPLEFT", autorepair, "BOTTOMLEFT", 14, 0) guildrepair.tiptext = BrokerGarbage.locale.autoRepairGuildText - guildrepair:SetChecked(BG_GlobalDB.neverRepairGuildBank) + guildrepair:SetChecked(BG_LocalDB.neverRepairGuildBank) local checksound = guildrepair:GetScript("OnClick") guildrepair:SetScript("OnClick", function(guildrepair) checksound(guildrepair) - BG_GlobalDB.neverRepairGuildBank = not BG_GlobalDB.neverRepairGuildBank + BG_LocalDB.neverRepairGuildBank = not BG_LocalDB.neverRepairGuildBank end) local showlost = LibStub("tekKonfig-Checkbox").new(BrokerGarbage.options, nil, BrokerGarbage.locale.showLostTitle, "TOPLEFT", autosellicon, "BOTTOMLEFT", -14, -10) @@ -85,7 +85,7 @@ BrokerGarbage.options:SetScript("OnShow", function(frame) BG_GlobalDB.showEarned = not BG_GlobalDB.showEarned end) - local quality = LibStub("tekKonfig-Slider").new(BrokerGarbage.options, BrokerGarbage.locale.dropQualityTitle, 0, 6, "TOPLEFT", showlost, "BOTTOMLEFT", 2, -50) + local quality = LibStub("tekKonfig-Slider").new(BrokerGarbage.options, BrokerGarbage.locale.dropQualityTitle, 0, 6, "TOPLEFT", showlost, "BOTTOMLEFT", 5, -40) quality.tiptext = BrokerGarbage.locale.dropQualityText quality:SetWidth(200) quality:SetValueStep(1); @@ -100,7 +100,7 @@ BrokerGarbage.options:SetScript("OnShow", function(frame) end) local testValue = 130007 - local moneyFormat = LibStub("tekKonfig-Slider").new(BrokerGarbage.options, BrokerGarbage.locale.moneyFormatTitle, 0, 4, "LEFT", quality, "RIGHT", 40, 0) + local moneyFormat = LibStub("tekKonfig-Slider").new(BrokerGarbage.options, BrokerGarbage.locale.moneyFormatTitle, 0, 4, "LEFT", quality, "LEFT", 200, 0) moneyFormat.tiptext = BrokerGarbage.locale.moneyFormatText moneyFormat:SetWidth(200) moneyFormat:SetValueStep(1); @@ -114,7 +114,7 @@ BrokerGarbage.options:SetScript("OnShow", function(frame) end) - local ttMaxItems = LibStub("tekKonfig-Slider").new(BrokerGarbage.options, BrokerGarbage.locale.maxItemsTitle, 0, 50, "TOPLEFT", quality, "BOTTOMLEFT", 2, -15) + local ttMaxItems = LibStub("tekKonfig-Slider").new(BrokerGarbage.options, BrokerGarbage.locale.maxItemsTitle, 0, 50, "TOPLEFT", quality, "BOTTOMLEFT", 0, -15) ttMaxItems.tiptext = BrokerGarbage.locale.maxItemsText ttMaxItems:SetWidth(200) ttMaxItems:SetValueStep(1); @@ -128,7 +128,7 @@ BrokerGarbage.options:SetScript("OnShow", function(frame) end) - local ttMaxHeight = LibStub("tekKonfig-Slider").new(BrokerGarbage.options, BrokerGarbage.locale.maxHeightTitle, 0, 400, "LEFT", ttMaxItems, "RIGHT", 40, 0) + local ttMaxHeight = LibStub("tekKonfig-Slider").new(BrokerGarbage.options, BrokerGarbage.locale.maxHeightTitle, 0, 400, "LEFT", ttMaxItems, "LEFT", 200, 0) ttMaxHeight.tiptext = BrokerGarbage.locale.maxHeightText ttMaxHeight:SetWidth(200) ttMaxHeight:SetValueStep(10); @@ -140,9 +140,24 @@ BrokerGarbage.options:SetScript("OnShow", function(frame) BG_GlobalDB.tooltipMaxHeight = ttMaxHeight:GetValue() ttMaxHeight.text:SetText(ttMaxHeight:GetValue()) end) - - - local rescan = LibStub("tekKonfig-Button").new_small(BrokerGarbage.options, "TOPLEFT", ttMaxItems, "BOTTOMLEFT", 0, -50) + + local resetexclude = LibStub("tekKonfig-Button").new_small(BrokerGarbage.options, "TOPLEFT", ttMaxItems, "BOTTOMLEFT", 0, -50) + resetexclude:SetText(BrokerGarbage.locale.emptyExcludeList) + resetexclude.tiptext = BrokerGarbage.locale.emptyExcludeListText + resetexclude:SetWidth(150) resetexclude:SetHeight(18) + resetexclude:SetScript("OnClick", function() + BrokerGarbage:ResetList("exclude") + end) + + local resetinclude = LibStub("tekKonfig-Button").new_small(BrokerGarbage.options, "TOPLEFT", resetexclude, "BOTTOMLEFT", 0, 0) + resetinclude:SetText(BrokerGarbage.locale.emptyIncludeList) + resetinclude.tiptext = BrokerGarbage.locale.emptyIncludeListText + resetinclude:SetWidth(150) resetinclude:SetHeight(18) + resetinclude:SetScript("OnClick", function() + BrokerGarbage:ResetList("include") + end) + + local rescan = LibStub("tekKonfig-Button").new_small(BrokerGarbage.options, "TOPLEFT", resetinclude, "BOTTOMLEFT", 0, -20) rescan:SetText(BrokerGarbage.locale.rescanInventory) rescan.tiptext = BrokerGarbage.locale.rescanInventoryText rescan:SetWidth(150) rescan:SetHeight(18) @@ -150,7 +165,7 @@ BrokerGarbage.options:SetScript("OnShow", function(frame) BrokerGarbage:ScanInventory() end) - local resetmoneylost = LibStub("tekKonfig-Button").new_small(BrokerGarbage.options, "LEFT", rescan, "RIGHT", 40, 0) + local resetmoneylost = LibStub("tekKonfig-Button").new_small(BrokerGarbage.options, "LEFT", resetexclude, "LEFT", 200, 0) resetmoneylost:SetText(BrokerGarbage.locale.resetMoneyLost) resetmoneylost.tiptext = BrokerGarbage.locale.resetMoneyLostText resetmoneylost:SetWidth(150) resetmoneylost:SetHeight(18) @@ -165,6 +180,15 @@ BrokerGarbage.options:SetScript("OnShow", function(frame) resetmoneyearned:SetScript("OnClick", function() BrokerGarbage:ResetMoney(1) end) + + local showsource = LibStub("tekKonfig-Checkbox").new(BrokerGarbage.options, nil, BrokerGarbage.locale.showSourceTitle, "TOPLEFT", resetmoneyearned, "BOTTOMLEFT", 0, -20) + showsource.tiptext = BrokerGarbage.locale.showSourceText + showsource:SetChecked(BG_GlobalDB.showSource) + local checksound = showsource:GetScript("OnClick") + showsource:SetScript("OnClick", function(showsource) + checksound(showsource) + BG_GlobalDB.showsource = not BG_GlobalDB.showsource + end) -- ---------------------------------- -- List Options panel @@ -191,7 +215,7 @@ BrokerGarbage.options:SetScript("OnShow", function(frame) group:SetWidth(boxWidth) local backdrop = {bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", - tile = true, + tile = false, tileSize = 32, insets = { left = 0, right = -22, top = 0, bottom = 0 }} excludeBox:SetBackdrop(backdrop) @@ -201,32 +225,28 @@ BrokerGarbage.options:SetScript("OnShow", function(frame) -- action buttons local plus = CreateFrame("Button", nil, BrokerGarbage.listOptions) plus:SetPoint("TOPLEFT", "BG_ExcludeListBoxScrollBar", "TOPRIGHT", 8, -3) - plus:SetWidth(25) - plus:SetHeight(25) + plus:SetWidth(25); plus:SetHeight(25) plus:SetHighlightTexture("Interface\\Buttons\\ButtonHilight-Square") plus:SetNormalTexture("Interface\\Icons\\Spell_chargepositive") plus.tiptext = BrokerGarbage.locale.LOExcludePlusTT - - local refresh = CreateFrame("Button", nil, BrokerGarbage.listOptions) - refresh:SetPoint("TOP", plus, "BOTTOM", 0, -6) - refresh:SetWidth(25) - refresh:SetHeight(25) - refresh:SetHighlightTexture("Interface\\Buttons\\ButtonHilight-Square") - refresh:SetNormalTexture("Interface\\Icons\\achievement_bg_returnxflags_def_wsg") - refresh.tiptext = BrokerGarbage.locale.LOExcludeRefreshTT local minus = CreateFrame("Button", nil, BrokerGarbage.listOptions) - minus:SetPoint("TOP", refresh, "BOTTOM", 0, -6) - minus:SetWidth(25) - minus:SetHeight(25) + minus:SetPoint("TOP", plus, "BOTTOM", 0, -6) + minus:SetWidth(25); minus:SetHeight(25) minus:SetHighlightTexture("Interface\\Buttons\\ButtonHilight-Square") minus:SetNormalTexture("Interface\\Icons\\Spell_chargenegative") minus.tiptext = BrokerGarbage.locale.LOExcludeMinusTT + local promote = CreateFrame("Button", nil, BrokerGarbage.listOptions) + promote:SetPoint("TOP", minus, "BOTTOM", 0, -6) + promote:SetWidth(25) promote:SetHeight(25) + promote:SetHighlightTexture("Interface\\Buttons\\ButtonHilight-Square") + promote:SetNormalTexture("Interface\\Icons\\achievement_bg_returnxflags_def_wsg") + promote.tiptext = BrokerGarbage.locale.LOExcludePromoteTT + local emptyExcludeList = CreateFrame("Button", nil, BrokerGarbage.listOptions) - emptyExcludeList:SetPoint("TOP", minus, "BOTTOM", 0, -6) - emptyExcludeList:SetWidth(25) - emptyExcludeList:SetHeight(25) + emptyExcludeList:SetPoint("TOP", promote, "BOTTOM", 0, -6) + emptyExcludeList:SetWidth(25); emptyExcludeList:SetHeight(25) emptyExcludeList:SetNormalTexture("Interface\\Buttons\\Ui-grouploot-pass-up") emptyExcludeList.tiptext = BrokerGarbage.locale.LOExcludeEmptyTT @@ -253,32 +273,28 @@ BrokerGarbage.options:SetScript("OnShow", function(frame) -- action buttons local plus2 = CreateFrame("Button", nil, BrokerGarbage.listOptions) plus2:SetPoint("TOPLEFT", "BG_IncludeListBoxScrollBar", "TOPRIGHT", 8, -3) - plus2:SetWidth(25) - plus2:SetHeight(25) + plus2:SetWidth(25); plus2:SetHeight(25) plus2:SetHighlightTexture("Interface\\Buttons\\ButtonHilight-Square") plus2:SetNormalTexture("Interface\\Icons\\Spell_chargepositive") plus2.tiptext = BrokerGarbage.locale.LOIncludePlusTT - local refresh2 = CreateFrame("Button", nil, BrokerGarbage.listOptions) - refresh2:SetPoint("TOP", plus2, "BOTTOM", 0, -6) - refresh2:SetWidth(25) - refresh2:SetHeight(25) - refresh2:SetHighlightTexture("Interface\\Buttons\\ButtonHilight-Square") - refresh2:SetNormalTexture("Interface\\Icons\\achievement_bg_returnxflags_def_wsg") - refresh2.tiptext = BrokerGarbage.locale.LOIncludeRefreshTT - local minus2 = CreateFrame("Button", nil, BrokerGarbage.listOptions) - minus2:SetPoint("TOP", refresh2, "BOTTOM", 0, -6) - minus2:SetWidth(25) - minus2:SetHeight(25) + minus2:SetPoint("TOP", plus2, "BOTTOM", 0, -6) + minus2:SetWidth(25); minus2:SetHeight(25) minus2:SetHighlightTexture("Interface\\Buttons\\ButtonHilight-Square") minus2:SetNormalTexture("Interface\\Icons\\Spell_chargenegative") minus2.tiptext = BrokerGarbage.locale.LOIncludeMinusTT + + local promote2 = CreateFrame("Button", nil, BrokerGarbage.listOptions) + promote2:SetPoint("TOP", minus2, "BOTTOM", 0, -6) + promote2:SetWidth(25); promote2:SetHeight(25) + promote2:SetHighlightTexture("Interface\\Buttons\\ButtonHilight-Square") + promote2:SetNormalTexture("Interface\\Icons\\achievement_bg_returnxflags_def_wsg") + promote2.tiptext = BrokerGarbage.locale.LOIncludePromoteTT local emptyIncludeList = CreateFrame("Button", nil, BrokerGarbage.listOptions) - emptyIncludeList:SetPoint("TOP", minus2, "BOTTOM", 0, -6) - emptyIncludeList:SetWidth(25) - emptyIncludeList:SetHeight(25) + emptyIncludeList:SetPoint("TOP", promote2, "BOTTOM", 0, -6) + emptyIncludeList:SetWidth(25); emptyIncludeList:SetHeight(25) emptyIncludeList:SetNormalTexture("Interface\\Buttons\\Ui-grouploot-pass-up") emptyIncludeList.tiptext = BrokerGarbage.locale.LOIncludeEmptyTT @@ -294,23 +310,45 @@ BrokerGarbage.options:SetScript("OnShow", function(frame) local function HideTooltip() GameTooltip:Hide() end + local function JoinTables(t1, t2) + result = {} + + if t1 then + for index, value in pairs (t1) do + result[index] = value + end + end + if t2 then + for index, value in pairs (t2) do + result[index] = value + end + end + + return result + end + local numCols = 8 local function ListOptionsUpdate(listName) - local list, box, parent, buttonList + local globalList, localList, dataList, box, parent, buttonList if listName == "include" then - list = BG_GlobalDB.include + globalList = BG_GlobalDB.include + localList = BG_LocalDB.include + box = includeBox parent = group2 buttonList = BrokerGarbage.listButtons.include else - list = BG_GlobalDB.exclude + globalList = BG_GlobalDB.exclude + localList = BG_LocalDB.exclude + box = excludeBox parent = group buttonList = BrokerGarbage.listButtons.exclude end + dataList = JoinTables(globalList, localList) local index = 1 - for itemID,_ in pairs(list) do + for itemID,_ in pairs(dataList) do if buttonList[index] then -- use available button local button = buttonList[index] @@ -319,6 +357,7 @@ BrokerGarbage.options:SetScript("OnShow", function(frame) button.itemID = itemID button.itemLink = itemLink button:SetNormalTexture(texture) + button:GetNormalTexture():SetDesaturated(globalList[itemID]) -- desaturate global list items button:SetChecked(false) button:Show() else @@ -336,6 +375,8 @@ BrokerGarbage.options:SetScript("OnShow", function(frame) tex:ClearAllPoints() tex:SetPoint("CENTER") tex:SetWidth(36/37*66) tex:SetHeight(36/37*66) + + iconbutton:GetNormalTexture():SetDesaturated(globalList[itemID]) -- desaturate global list items iconbutton:SetScript("OnEnter", ShowTooltip) iconbutton:SetScript("OnLeave", HideTooltip) @@ -371,12 +412,12 @@ BrokerGarbage.options:SetScript("OnShow", function(frame) if not type == "item" then return end if self == group2 or self == includeBox or self == plus2 then - BG_GlobalDB.include[itemID] = true + BG_LocalDB.include[itemID] = true BrokerGarbage:Print(format(BrokerGarbage.locale.addedToDestroyList, link)) ListOptionsUpdate("include") ClearCursor() elseif self == group or self == excludeBox or self == plus then - BG_GlobalDB.exclude[itemID] = true + BG_LocalDB.exclude[itemID] = true BrokerGarbage:Print(format(BrokerGarbage.locale.addedToSaveList, link)) ListOptionsUpdate("exclude") ClearCursor() @@ -384,34 +425,28 @@ BrokerGarbage.options:SetScript("OnShow", function(frame) end local function OnClick(self, button) - if self == refresh then - ListOptionsUpdate("exclude") - - elseif self == refresh2 then - ListOptionsUpdate("include") - - elseif self == emptyExcludeList then - BG_GlobalDB.exclude = {} + if self == emptyExcludeList then + BG_LocalDB.exclude = {} ListOptionsUpdate("exclude") BrokerGarbage:ScanInventory() - elseif self == emptyIncludeList then - BG_GlobalDB.include = {} + BG_LocalDB.include = {} ListOptionsUpdate("include") BrokerGarbage:ScanInventory() elseif self == minus then for i, button in pairs(BrokerGarbage.listButtons.exclude) do if button:GetChecked() then + BG_LocalDB.exclude[button.itemID] = nil BG_GlobalDB.exclude[button.itemID] = nil end end ListOptionsUpdate("exclude") BrokerGarbage:ScanInventory() - elseif self == minus2 then for i, button in pairs(BrokerGarbage.listButtons.include) do if button:GetChecked() then + BG_LocalDB.include[button.itemID] = nil BG_GlobalDB.include[button.itemID] = nil end end @@ -424,22 +459,33 @@ BrokerGarbage.options:SetScript("OnShow", function(frame) ListOptionsUpdate("exclude") elseif self == plus2 then BrokerGarbage:Debug("Include2") - ListOptionsUpdate("include") ItemDrop(self) + ListOptionsUpdate("include") + + elseif self == promote then + BrokerGarbage:Debug("Promote") + for i, button in pairs(BrokerGarbage.listButtons.exclude) do + if button:GetChecked() then + BG_GlobalDB.exclude[button.itemID] = true + end + end + + ListOptionsUpdate("exclude") + elseif self == promote2 then + BrokerGarbage:Debug("Promote2") + for i, button in pairs(BrokerGarbage.listButtons.include) do + if button:GetChecked() then + BG_GlobalDB.include[button.itemID] = true + end + end + + ListOptionsUpdate("exclude") end --ListOptionsUpdate("include") --ListOptionsUpdate("exclude") end - refresh:SetScript("OnClick", OnClick) - refresh:SetScript("OnEnter", ShowTooltip) - refresh:SetScript("OnLeave", HideTooltip) - - refresh2:SetScript("OnClick", OnClick) - refresh2:SetScript("OnEnter", ShowTooltip) - refresh2:SetScript("OnLeave", HideTooltip) - emptyExcludeList:SetScript("OnClick", OnClick) emptyExcludeList:SetScript("OnEnter", ShowTooltip) emptyExcludeList:SetScript("OnLeave", HideTooltip) @@ -464,6 +510,14 @@ BrokerGarbage.options:SetScript("OnShow", function(frame) plus2:SetScript("OnEnter", ShowTooltip) plus2:SetScript("OnLeave", HideTooltip) + promote:SetScript("OnClick", OnClick) + promote:SetScript("OnEnter", ShowTooltip) + promote:SetScript("OnLeave", HideTooltip) + + promote2:SetScript("OnClick", OnClick) + promote2:SetScript("OnEnter", ShowTooltip) + promote2:SetScript("OnLeave", HideTooltip) + -- ---------------------------------- plus:RegisterForDrag("LeftButton") plus:SetScript("OnReceiveDrag", ItemDrop) diff --git a/readme.txt b/readme.txt new file mode 100644 index 0000000..ce1d85a --- /dev/null +++ b/readme.txt @@ -0,0 +1,69 @@ +Broker_Garbage +============== +Author: ckaotik +Version: 3.3v9 +WoW Version: 3.3 (TOC 30300) + +WoWInterface: http://www.wowinterface.com/downloads/info15531-Broker_Garbage.html +Curse: http://wow.curse.com/downloads/wow-addons/details/broker_garbage.aspx + + +1. What it does +----------------- + +2. First Start +----------------- +Depending on your LDB display addon you may or may not already see the Broker_Garbage plugin on it. If you don't, please check if you need to enable it in oder to be displayed (e.g. for DockingStation). It will be listed as "Garbage". +If you still can't find it, have a look at your options panel (ESC - Interface - Addon Tab - look for Broker_Garbage). Should you not find it there it might be because it caused an error (you can turn on Lua error messages in the Interface menu). + +If you get past that point (and really, you should) it's about time to set up your lists. For more information on lists, have at look at 5. List Management. +1) Set up items you never want to delete, on any character, in your Exclude List. Then, select them and push "Promote" to put them on your global Exclude List. +2) Now, go ahead and add character specific items to your Exclude List (same as above, just no "Promote") +3) With that taken care of you might want to think of items that always fill your inventory even though you don't need them or they can be easily gotten back. These items belong on your Include List. Examples for this list are Argentum Lance, Light Feather (if you have a Mage/Priest that needs them, put it on their (local) Exclude list.) and the likes. + + +3. I got an error!!!11!1! +----------------- +Well, that's not good, but it's good ;) If you report an error I can have a look to fix it. Of course, there shouldn't be any errors in the first place but you know ... I'm only human, too. +To report a bug just log on to WoWInterface.com or curse.com and leave me a message or a comment (the full links can be found at the top of this file) giving as much information as you can. On curse it even offers a bug tracker and I wouldn't mind you using it. + +* When did it happen? (on login, on /reload, when selling, ...) +* What happened? ("The tooltip went blank.", "The tooltip sticks to the cursor.", ...) +* Comment ("Could be because addon XY does weird things.", "Didn't happen on my pally char".) + + +4. Feature Suggestions +----------------- +Got a feature idea? Then tell me! Send me a message on curse/wowinterface or comment my addon on any of those sites. I'll make sure to read it! + +Still, do not feel bad if it doesn't make it into the addon. In that case I will most likely try to get you an individual solution - or include it at a later time. + + +5. List Management +----------------- +There are several lists for you to use: + +* Exclude List +Items on here will be "saved" from any actions - they will not be sold, dropped or anything else. +Grayed out items on there are items that are on your global list, active for all characters. Colorful ones are just for your current character. + +* 'Force Vendor Price' List +Items on this list will never have their auction value used. This is useful for food, drinks and other things people tend to put on the AH at unbelievable prices. + +* Include List +Items on this list will be dropped, no matter what Quality Treshold you might have set. Caution! +Grayed out items on there are items that are on your global list, active for all characters. Colorful ones are just for your current character. + +* Drop List +If your inventory gets too full and you want to drop something, these items will show up in the tooltip with a forced value of 0 copper. Items above your Quality Treshold will NOT be dropped. + +* Auto-Sell List +Items on this list will be sold whenever you talk to a vendor. Items of higher quality than your Quality Treshold WILL be sold. + +Each of these lists except the 'Force Vendor Price' list have a global (affects all your characters) and local (only affects the current character) component. You can broadcast items on your local lists as global by selecting them and then clicking on the promote icon next to the list. + + +6. How you can help +----------------- +I still need a few translations to get done. If you would like to help me with that, please do so on http://wow.curseforge.com/addons/broker_garbage/localization/ . +Likewise, I need people to test the addon with different auction addons. If you have one that isn't yet supported, make a Feature Suggestion (see 4.).