-- ------------------------------------------------------------------------------ -- -- TradeSkillMaster -- -- https://tradeskillmaster.com -- -- All Rights Reserved - Detailed license information included with addon. -- -- ------------------------------------------------------------------------------ -- local TSM = select(2, ...) ---@type TSM local Inventory = TSM.Init("Service.Inventory") ---@class Service.Inventory local CustomPrice = TSM.Include("Service.CustomPrice") local AltTracking = TSM.Include("Service.AltTracking") local BagTracking = TSM.Include("Service.BagTracking") local AuctionTracking = TSM.Include("Service.AuctionTracking") local MailTracking = TSM.Include("Service.MailTracking") local private = { sources = {}, } -- ============================================================================ -- Module Loading -- ============================================================================ Inventory:OnSettingsLoad(function() tinsert(private.sources, "NumInventory") BagTracking.RegisterQuantityCallback(private.QuantityChangedCallback) AuctionTracking.RegisterQuantityCallback(private.QuantityChangedCallback) MailTracking.RegisterQuantityCallback(private.QuantityChangedCallback) AltTracking.RegisterQuantityCallback(private.QuantityChangedCallback) end) -- ============================================================================ -- Module Functions -- ============================================================================ function Inventory.RegisterDependentCustomSource(source) tinsert(private.sources, source) end function Inventory.GetTotalQuantity(itemString) local total = 0 total = total + BagTracking.GetBagQuantity(itemString) total = total + BagTracking.GetBankQuantity(itemString) total = total + BagTracking.GetReagentBankQuantity(itemString) total = total + MailTracking.GetQuantity(itemString) total = total + AuctionTracking.GetQuantity(itemString) total = total + AltTracking.GetTotalQuantity(itemString) total = total + AltTracking.GetTotalGuildQuantity(itemString) return total end -- ============================================================================ -- Private Helper Functions -- ============================================================================ function private.QuantityChangedCallback(updatedItems) for _, source in ipairs(private.sources) do for itemString in pairs(updatedItems) do CustomPrice.OnSourceChange(source, itemString) end end end