TradeSkillMaster/Core/Service/Tooltip/Auctioning.lua

80 lines
2.9 KiB
Lua
Raw Permalink Normal View History

2020-11-13 14:13:12 -05:00
-- ------------------------------------------------------------------------------ --
-- TradeSkillMaster --
-- https://tradeskillmaster.com --
-- All Rights Reserved - Detailed license information included with addon. --
-- ------------------------------------------------------------------------------ --
local _, TSM = ...
local Auctioning = TSM.Tooltip:NewPackage("Auctioning")
local L = TSM.Include("Locale").GetTable()
local ItemString = TSM.Include("Util.ItemString")
local ItemInfo = TSM.Include("Service.ItemInfo")
local private = {}
-- ============================================================================
-- Module Functions
-- ============================================================================
function Auctioning.OnInitialize()
TSM.Tooltip.Register(TSM.Tooltip.CreateInfo()
:SetHeadings(L["TSM Auctioning"])
:SetSettingsModule("Auctioning")
:AddSettingEntry("postQuantity", false, private.PopulatePostQuantityLine)
:AddSettingEntry("operationPrices", false, private.PopulatePricesLine)
)
end
-- ============================================================================
-- Private Helper Functions
-- ============================================================================
function private.PopulatePostQuantityLine(tooltip, itemString)
local postCap, stackSize = nil, nil
if itemString == ItemString.GetPlaceholder() then
postCap = 5
stackSize = TSM.IsWowClassic() and 200
elseif ItemInfo.IsSoulbound(itemString) then
return
else
itemString = TSM.Groups.TranslateItemString(itemString)
local _, operation = TSM.Operations.GetFirstOperationByItem("Auctioning", itemString)
if not operation then
return
end
postCap = TSM.Auctioning.Util.GetPrice("postCap", operation, itemString)
stackSize = TSM.IsWowClassic() and TSM.Auctioning.Util.GetPrice("stackSize", operation, itemString)
end
if TSM.IsWowClassic() then
tooltip:AddTextLine(L["Post Quantity"], postCap and stackSize and postCap.."x"..stackSize or "---")
else
tooltip:AddTextLine(L["Post Quantity"], postCap or "---")
end
end
function private.PopulatePricesLine(tooltip, itemString)
local minPrice, normalPrice, maxPrice = nil, nil, nil
if itemString == ItemString.GetPlaceholder() then
minPrice = 20
normalPrice = 24
maxPrice = 29
elseif ItemInfo.IsSoulbound(itemString) then
return
else
itemString = TSM.Groups.TranslateItemString(itemString)
local _, operation = TSM.Operations.GetFirstOperationByItem("Auctioning", itemString)
if not operation then
return
end
minPrice = TSM.Auctioning.Util.GetPrice("minPrice", operation, itemString)
normalPrice = TSM.Auctioning.Util.GetPrice("normalPrice", operation, itemString)
maxPrice = TSM.Auctioning.Util.GetPrice("maxPrice", operation, itemString)
end
tooltip:AddValueLine(L["Min/Normal/Max Prices"], minPrice, normalPrice, maxPrice)
end