You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
125 lines
5.5 KiB
125 lines
5.5 KiB
-- ------------------------------------------------------------------------------ -- |
|
-- TradeSkillMaster_Warehousing -- |
|
-- http://www.curse.com/addons/wow/tradeskillmaster_warehousing -- |
|
-- -- |
|
-- A TradeSkillMaster Addon (http://tradeskillmaster.com) -- |
|
-- All Rights Reserved* - Detailed license information included with addon. -- |
|
-- ------------------------------------------------------------------------------ -- |
|
|
|
-- loads the localization table -- |
|
local L = LibStub("AceLocale-3.0"):GetLocale("TradeSkillMaster_Warehousing") |
|
|
|
-- load the parent file (TSM) into a local variable and register this file as a module |
|
local TSM = select(2, ...) |
|
local util = TSM:NewModule("util", "AceEvent-3.0") |
|
local AceGUI = LibStub("AceGUI-3.0") -- load the AceGUI libraries |
|
|
|
-- this is a set of wrapper functions so that I can switch |
|
-- between guildbank and bank function easily |
|
|
|
|
|
util.pickupContainerItemSrc = nil |
|
util.getContainerItemIDSrc = nil |
|
util.getContainerNumSlotsSrc = nil |
|
util.getContainerItemLinkSrc = nil |
|
util.getContainerNumFreeSlotsSrc = nil |
|
util.splitContainerItemSrc = nil |
|
|
|
util.pickupContainerItemDest = nil |
|
util.getContainerItemIDDest = nil |
|
util.getContainerNumSlotsDest = nil |
|
util.getContainerItemLinkDest = nil |
|
util.getContainerNumFreeSlotsDest = nil |
|
|
|
util.getItemString = nil |
|
util.autoStoreItem = nil |
|
|
|
|
|
function util:setSrcBagFunctions(bagType) |
|
if bagType == "guildbank" then |
|
util.autoStoreItem = function(bag, slot) AutoStoreGuildBankItem(bag, slot) end |
|
util.splitContainerItemSrc = function(bag, slot, need) SplitGuildBankItem(bag, slot, need); end |
|
util.pickupContainerItemSrc = function(bag, slot) PickupGuildBankItem(bag, slot) end |
|
util.getContainerNumSlotsSrc = function(bag) return MAX_GUILDBANK_SLOTS_PER_TAB or 98 end |
|
util.getContainerItemLinkSrc = function(bag, slot) return GetGuildBankItemLink(bag, slot) end |
|
util.getContainerNumFreeSlotsSrc = function(bag) return MAX_GUILDBANK_SLOTS_PER_TAB or 98 end --need to change this eventually |
|
util.getContainerItemIDSrc = function(bag, slot) |
|
local tmpLink = GetGuildBankItemLink(bag, slot) |
|
local quantity = select(2, GetGuildBankItemInfo(bag, slot)) |
|
if tmpLink then |
|
return TSMAPI:GetItemString(tmpLink), quantity |
|
else |
|
return nil |
|
end |
|
end |
|
elseif bagType == "mail" then |
|
util.autoStoreItem = function(bag, slot) TakeInboxItem(bag, slot) end |
|
util.splitContainerItemSrc = function(bag, slot, need) TakeInboxItem(bag, slot) end |
|
util.pickupContainerItemSrc = function(bag, slot) return end |
|
util.getContainerItemIDSrc = function(bag, slot) |
|
local quantity = select(3, GetInboxItem(bag, slot)) |
|
local tmpLink = GetInboxItemLink(bag, slot) |
|
return TSMAPI:GetItemString(tmpLink), quantity |
|
end |
|
util.getContainerNumSlotsSrc = function(bag) return 16 end |
|
util.getContainerItemLinkSrc = function(bag, slot) return GetInboxItemLink(bag, slot) end |
|
util.getContainerNumFreeSlotsSrc = function(bag) return 16 end |
|
else |
|
util.autoStoreItem = function(bag, slot) UseContainerItem(bag, slot) end |
|
util.splitContainerItemSrc = function(bag, slot, need) SplitContainerItem(bag, slot, need) end |
|
util.pickupContainerItemSrc = function(bag, slot) PickupContainerItem(bag, slot) end |
|
util.getContainerItemIDSrc = function(bag, slot) |
|
local tmpLink = GetContainerItemLink(bag, slot) |
|
local quantity = select(2, GetContainerItemInfo(bag, slot)) |
|
return TSMAPI:GetItemString(tmpLink), quantity |
|
end |
|
util.getContainerNumSlotsSrc = function(bag) return GetContainerNumSlots(bag) end |
|
util.getContainerItemLinkSrc = function(bag, slot) return GetContainerItemLink(bag, slot) end |
|
util.getContainerNumFreeSlotsSrc = function(bag) return GetContainerNumFreeSlots(bag) end |
|
end |
|
end |
|
|
|
function util:setDestBagFunctions(bagType) |
|
if bagType == "guildbank" then |
|
util.pickupContainerItemDest = function(bag, slot) PickupGuildBankItem(bag, slot) end |
|
util.getContainerNumSlotsDest = function(bag) return 98 end |
|
util.getContainerNumFreeSlotsDest = function(bag) return 98 end --need to change this eventually |
|
util.getContainerItemLinkDest = function(bag, slot) return GetGuildBankItemLink(bag, slot) end |
|
util.getContainerItemIDDest = function(bag, slot) |
|
local tmpLink = GetGuildBankItemLink(bag, slot) |
|
local quantity = select(2, GetGuildBankItemInfo(bag, slot)) |
|
if tmpLink then |
|
return TSMAPI:GetItemString(tmpLink), quantity |
|
else |
|
return nil |
|
end |
|
end |
|
else |
|
util.pickupContainerItemDest = function(bag, slot) PickupContainerItem(bag, slot) end |
|
util.getContainerItemIDDest = function(bag, slot) |
|
local tmpLink = GetContainerItemLink(bag, slot) |
|
local quantity = select(2, GetContainerItemInfo(bag, slot)) |
|
return TSMAPI:GetItemString(tmpLink), quantity |
|
end |
|
util.getContainerNumSlotsDest = function(bag) return GetContainerNumSlots(bag) end |
|
util.getContainerItemLinkDest = function(bag, slot) return GetContainerItemLink(bag, slot) end |
|
util.getContainerNumFreeSlotsDest = function(bag) return GetContainerNumFreeSlots(bag) end |
|
end |
|
end |
|
|
|
-- |
|
--This will find a special bag for your special item |
|
-- |
|
function util:canGoInBag(item, destTable) |
|
local itemFamily = GetItemFamily(item) |
|
local default |
|
for bag, _ in pairs(destTable) do |
|
local bagFamily = GetItemFamily(GetBagName(bag)) or 0 |
|
if itemFamily and bagFamily and bagFamily > 0 and bit.band(itemFamily, bagFamily) > 0 then |
|
return bag |
|
elseif bagFamily == 0 then |
|
default = bag |
|
end |
|
end |
|
return default |
|
end
|
|
|