mirror of
https://github.com/brues-code/pfUI.git
synced 2026-09-21 23:26:56 +00:00
f68b14e53b
Replaced numerous SetWidth/SetHeight calls with SetSize for consistency and brevity across UI code. Touched api/ui-widgets.lua, api/unitframes.lua and multiple modules (actionbar, addonbuttons, addons, afkcam, autovendor, bags, bgscore, buff, buffwatch, nameplates). Also simplified some sizing math in buff module. No functional behavior intended to change — code modernization only.
98 lines
3.3 KiB
Lua
98 lines
3.3 KiB
Lua
pfUI:RegisterModule("autovendor", function ()
|
|
local rawborder, border = GetBorderSize()
|
|
local bpad = rawborder > 1 and border - GetPerfectPixel() or GetPerfectPixel()
|
|
|
|
local function RepairItems()
|
|
local cost, possible = GetRepairAllCost()
|
|
if cost > 0 and possible then
|
|
DEFAULT_CHAT_FRAME:AddMessage(T["Your items have been repaired for"] .. " " .. CreateGoldString(cost))
|
|
RepairAllItems()
|
|
end
|
|
end
|
|
|
|
-- Trigger the engine's sell-all-junk path and report the gold income to
|
|
-- chat. C_MerchantFrame.SellAllJunkItems handles its own one-per-frame
|
|
-- pacing to avoid CMSG_SELL_ITEM flooding, so we just wait a beat before
|
|
-- sampling the final gold delta.
|
|
local function SellJunkAndReport()
|
|
if C_MerchantFrame.GetNumJunkItems() <= 0 then return end
|
|
local startGold = GetMoney()
|
|
C_MerchantFrame.SellAllJunkItems()
|
|
|
|
C_Timer.After(0.3, function()
|
|
local income = GetMoney() - startGold
|
|
if income > 0 then
|
|
DEFAULT_CHAT_FRAME:AddMessage(T["Your vendor trash has been sold and you earned"] .. " " .. CreateGoldString(income))
|
|
end
|
|
end)
|
|
end
|
|
|
|
local autovendor = CreateFrame("Frame", "pfMoneyUpdate", nil)
|
|
autovendor:RegisterEvent("MERCHANT_SHOW")
|
|
autovendor:RegisterEvent("MERCHANT_UPDATE")
|
|
autovendor:SetScript("OnEvent", function()
|
|
autovendor.button:Update()
|
|
|
|
if event == "MERCHANT_SHOW" then
|
|
if C["global"]["autorepair"] == "1" then RepairItems() end
|
|
|
|
if C["global"]["autosell"] == "1" then
|
|
SellJunkAndReport()
|
|
autovendor.button:Hide()
|
|
else
|
|
autovendor.button:Show()
|
|
end
|
|
|
|
MerchantRepairText:SetText("")
|
|
if MerchantRepairItemButton:IsShown() then
|
|
autovendor.button:ClearAllPoints()
|
|
autovendor.button:SetPoint("RIGHT", MerchantRepairItemButton, "LEFT", -4*bpad, 0)
|
|
else
|
|
autovendor.button:ClearAllPoints()
|
|
autovendor.button:SetPoint("RIGHT", MerchantBuyBackItemItemButton, "LEFT", -14, 0)
|
|
end
|
|
end
|
|
end)
|
|
|
|
-- Setup Autosell button
|
|
autovendor.button = CreateFrame("Button", "pfMerchantAutoVendorButton", MerchantFrame)
|
|
autovendor.button:SetSize(36, 36)
|
|
autovendor.button.icon = autovendor.button:CreateTexture("ARTWORK")
|
|
autovendor.button.icon:SetTexture("Interface\\Icons\\Spell_Shadow_SacrificialShield")
|
|
autovendor.button:SetScript("OnEnter", function()
|
|
GameTooltip:SetOwner(this, "ANCHOR_RIGHT")
|
|
GameTooltip:SetText(T["Sell Grey Items"])
|
|
GameTooltip:Show()
|
|
end)
|
|
|
|
autovendor.button:SetScript("OnLeave", function()
|
|
GameTooltip:Hide()
|
|
end)
|
|
SkinButton(autovendor.button, nil, nil, nil, autovendor.button.icon)
|
|
|
|
autovendor.button:SetScript("OnClick", SellJunkAndReport)
|
|
|
|
autovendor.button.Update = function()
|
|
if C_MerchantFrame.GetNumJunkItems() > 0 then
|
|
autovendor.button:Enable()
|
|
autovendor.button.icon:SetDesaturated(false)
|
|
else
|
|
autovendor.button:Disable()
|
|
autovendor.button.icon:SetDesaturated(true)
|
|
end
|
|
end
|
|
|
|
-- Hook MerchantFrame_Update
|
|
if not pfMerchantFrame_Update then
|
|
local pfMerchantFrame_Update = MerchantFrame_Update
|
|
function _G.MerchantFrame_Update()
|
|
if MerchantFrame.selectedTab == 1 and C["global"]["autosell"] ~= "1" then
|
|
autovendor.button:Show()
|
|
else
|
|
autovendor.button:Hide()
|
|
end
|
|
pfMerchantFrame_Update()
|
|
end
|
|
end
|
|
end)
|