-- ------------------------------------------------------------------------------ -- -- TradeSkillMaster_Destroying -- -- http://www.curse.com/addons/wow/tradeskillmaster_destroying -- -- -- -- A TradeSkillMaster Addon (http://tradeskillmaster.com) -- -- All Rights Reserved* - Detailed license information included with addon. -- -- ------------------------------------------------------------------------------ -- -- register this file with Ace Libraries local TSM = select(2, ...) TSM = LibStub("AceAddon-3.0"):NewAddon(TSM, "TSM_Destroying", "AceConsole-3.0") local L = LibStub("AceLocale-3.0"):GetLocale("TradeSkillMaster_Destroying") -- loads the localization table --Professions-- TSM.spells = { milling = 51005, prospect = 31252, disenchant = 13262, } local savedDBDefaults = { global = { history = {}, ignore = {}, autoStack = true, autoShow = true, timeFormat = "ago", deMaxQuality = 3, logDays = 3, includeSoulbound = false, }, } -- Called once the player has loaded WOW. function TSM:OnInitialize() -- create shortcuts to all the modules for moduleName, module in pairs(TSM.modules) do TSM[moduleName] = module end -- load the savedDB into TSM.db TSM.db = LibStub:GetLibrary("AceDB-3.0"):New("AscensionTSM_DestroyingDB", savedDBDefaults, true) -- register this module with TSM TSM:RegisterModule() end -- registers this module with TSM by first setting all fields and then calling TSMAPI:NewModule(). function TSM:RegisterModule() TSM.icons = { {side="module", desc="Destroying", slashCommand = "destroying", callback="Options:Load", icon="Interface\\Icons\\INV_Gizmo_RocketBoot_Destroyed_02"}, } TSM.slashCommands = { {key="destroy", label=L["Opens the Destroying frame if there's stuff in your bags to be destroyed."], callback="GUI:ShowFrame"}, } TSMAPI:NewModule(TSM) end -- determines if an item is millable or prospectable local scanTooltip local destroyCache = {} function TSM:IsDestroyable(bag, slot, itemString) if destroyCache[itemString] then return unpack(destroyCache[itemString]) end local _, link, quality, _, _, iType = TSMAPI:GetSafeItemInfo(itemString) local WEAPON, ARMOR = GetAuctionItemClasses() if itemString and not TSMAPI.DisenchantingData.notDisenchantable[itemString] and (iType == ARMOR or iType == WEAPON) and (quality >= 2 and quality <= TSM.db.global.deMaxQuality) then destroyCache[itemString] = {IsSpellKnown(TSM.spells.disenchant) and GetSpellInfo(TSM.spells.disenchant), 1} return unpack(destroyCache[itemString]) end if not scanTooltip then scanTooltip = CreateFrame("GameTooltip", "TSMDestroyScanTooltip", UIParent, "GameTooltipTemplate") scanTooltip:SetOwner(UIParent, "ANCHOR_NONE") end scanTooltip:ClearLines() scanTooltip:SetBagItem(bag, slot) for i=1, scanTooltip:NumLines() do local text = _G["TSMDestroyScanTooltipTextLeft"..i] and _G["TSMDestroyScanTooltipTextLeft"..i]:GetText() if text == ITEM_MILLABLE then destroyCache[itemString] = {IsSpellKnown(TSM.spells.milling) and GetSpellInfo(TSM.spells.milling), 5} break elseif text == ITEM_PROSPECTABLE then destroyCache[itemString] = {IsSpellKnown(TSM.spells.prospect) and GetSpellInfo(TSM.spells.prospect), 5} break end end return unpack(destroyCache[itemString] or {}) end