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.

192 lines
6.4 KiB

local AS = unpack(AddOnSkins)
-- Cache global variables
--Lua functions
local _G = _G
local select, unpack = select, unpack
--WoW API / Variables
local GetContainerItemInfo = GetContainerItemInfo
local GetContainerItemQuestInfo = GetContainerItemQuestInfo
local hooksecurefunc = hooksecurefunc
-- GLOBALS:
function AS:Blizzard_Bags()
if AS:CheckAddOn('Tukui') and Tukui[2]["Bags"]["Enable"] then return end
if AS:CheckAddOn('ElvUI') and ElvUI[1].private.bags.enable then return end
for i = 1, 12 do -- There is 13 Total..
local Bag = _G["ContainerFrame"..i]
AS:SkinBackdropFrame(Bag, nil, true)
for j = 1, 36 do
local ItemButton = _G["ContainerFrame"..i.."Item"..j]
--AS:SkinTexture(_G["ContainerFrame"..i.."Item"..j..'IconQuestTexture'])
AS:SetTemplate(ItemButton)
AS:SkinTexture(ItemButton.icon)
ItemButton:SetNormalTexture('')
ItemButton:SetPushedTexture('')
AS:SetInside(ItemButton.icon)
ItemButton.IconBorder:SetAlpha(0)
ItemButton.NewItemTexture:SetAtlas(nil)
ItemButton.NewItemTexture.SetAtlas = AS.Noop
_G["ContainerFrame"..i.."Item"..j..'IconQuestTexture']:SetAlpha(0)
ItemButton.searchOverlay:SetAllPoints(ItemButton.icon)
ItemButton.searchOverlay:SetColorTexture(0, 0, 0, .8)
ItemButton:SetNormalTexture('')
AS:StyleButton(ItemButton)
hooksecurefunc(ItemButton.IconBorder, 'SetVertexColor', function(_, r, g, b, a)
local Quality = select(4, GetContainerItemInfo(ItemButton:GetParent():GetID(), ItemButton:GetID()))
local isQuestItem = GetContainerItemQuestInfo(ItemButton:GetParent():GetID(), ItemButton:GetID())
if Quality and Quality > Enum.ItemQuality.Good then
ItemButton:SetBackdropBorderColor(r, g, b)
elseif isQuestItem then
ItemButton:SetBackdropBorderColor(1, .82, 0)
else
ItemButton:SetBackdropBorderColor(unpack(AS.BorderColor))
end
end)
hooksecurefunc(ItemButton.IconBorder, 'Hide', function()
ItemButton:SetBackdropBorderColor(unpack(AS.BorderColor))
end)
end
Bag.Backdrop:SetPoint("TOPLEFT", 4, -2)
Bag.Backdrop:SetPoint("BOTTOMRIGHT", 1, 1)
AS:Kill(_G["ContainerFrame"..i.."BackgroundTop"])
AS:Kill(_G["ContainerFrame"..i.."BackgroundMiddle1"])
AS:Kill(_G["ContainerFrame"..i.."BackgroundMiddle2"])
AS:Kill(_G["ContainerFrame"..i.."BackgroundBottom"])
AS:SkinCloseButton(_G["ContainerFrame"..i.."CloseButton"])
AS:SkinButton(Bag.PortraitButton)
if Bag.PortraitButton.Highlight then
AS:Kill(Bag.PortraitButton.Highlight)
end
end
local function UpdateBagIcon()
for i = 1, 12 do
local Portrait = _G["ContainerFrame"..i.."PortraitButton"]
if i == 1 then
Portrait:SetNormalTexture("Interface\\Buttons\\Button-Backpack-Up")
elseif i <= 5 and i >= 2 then
Portrait:SetNormalTexture(_G["CharacterBag"..(i - 2).."SlotIconTexture"]:GetTexture())
elseif i <= 12 and i >= 6 then
if _G.BankSlotsFrame["Bag"..(i-5)] and _G.BankSlotsFrame["Bag"..(i-5)].icon:GetTexture() then
Portrait:SetNormalTexture(_G.BankSlotsFrame["Bag"..(i-5)].icon:GetTexture())
end
end
if Portrait:GetNormalTexture() then
AS:SkinTexture(Portrait:GetNormalTexture())
AS:SetInside(Portrait:GetNormalTexture())
end
for j = 1, 30 do
local ItemButton = _G["ContainerFrame"..i.."Item"..j]
if ItemButton then
local QuestIcon = _G["ContainerFrame"..i.."Item"..j.."IconQuestTexture"]
local QuestTexture = QuestIcon:GetTexture()
if QuestTexture == _G.TEXTURE_ITEM_QUEST_BANG then
QuestIcon:SetAlpha(1)
else
QuestIcon:SetAlpha(0)
end
end
end
end
end
hooksecurefunc('BankFrameItemButton_Update', UpdateBagIcon)
hooksecurefunc('ContainerFrame_Update', UpdateBagIcon)
AS:SkinFrame(_G.BankFrame, nil, nil, true)
AS:SkinCloseButton(_G.BankCloseButton)
AS:StripTextures(_G.BankSlotsFrame)
AS:SkinButton(_G.BankFramePurchaseButton)
_G.BankFramePurchaseButton:SetHeight(22)
-- Bank Slots
for _, ItemButton in pairs({_G.BankSlotsFrame:GetChildren()}) do
if ItemButton:IsObjectType("Button") then
AS:SkinFrame(ItemButton)
AS:SkinTexture(ItemButton.icon)
AS:SetInside(ItemButton.icon)
ItemButton.searchOverlay:SetAllPoints(ItemButton.icon)
ItemButton.searchOverlay:SetTexture(0, 0, 0, .8)
ItemButton:SetNormalTexture(nil)
AS:StyleButton(ItemButton)
end
end
if AS.Retail then
AS:SkinEditBox(_G.BagItemSearchBox)
AS:SkinEditBox(_G.BankItemSearchBox)
_G.BankItemSearchBox:SetSize(159, 16)
AS:StripTextures(_G.BackpackTokenFrame)
for i = 1, 3 do
local Token = _G["BackpackTokenFrameToken"..i]
AS:SkinTexture(Token.icon, true)
--Token.icon:SetPoint("LEFT", Token.count, "RIGHT", 3, 0)
end
for _, Button in pairs({ _G.BagItemAutoSortButton, _G.BankItemAutoSortButton }) do
AS:SkinButton(Button)
Button:SetNormalTexture("Interface\\ICONS\\INV_Pet_Broom")
Button:SetPushedTexture("Interface\\ICONS\\INV_Pet_Broom")
AS:SkinTexture(Button:GetNormalTexture())
AS:SetInside(Button:GetNormalTexture())
AS:SkinTexture(Button:GetPushedTexture())
AS:SetInside(Button:GetPushedTexture())
Button:SetSize(22, 22)
end
_G.BankItemAutoSortButton:SetPoint("LEFT", _G.BankItemSearchBox, "RIGHT", 4, 0)
_G.BagItemAutoSortButton:SetScript('OnShow', function(self)
local a, b, c, d, e = self:GetPoint()
self:SetPoint(a, b, c, d - 3, e - 1)
self.SetPoint = AS.Noop
self:SetScript('OnShow', nil)
end)
-- Reagent Bank
AS:SkinButton(_G.ReagentBankFrame.DespositButton)
_G.ReagentBankFrame:HookScript('OnShow', function(self)
if _G.ReagentBankFrame.slots_initialized and not _G.ReagentBankFrame.isSkinned then
for i = 1, 98 do
local ItemButton = _G["ReagentBankFrameItem"..i]
AS:SkinFrame(ItemButton)
AS:SkinTexture(ItemButton.icon)
AS:SetInside(ItemButton.icon)
ItemButton.searchOverlay:SetAllPoints(ItemButton.icon)
ItemButton.searchOverlay:SetTexture(0, 0, 0, .8)
ItemButton:SetNormalTexture(nil)
AS:StyleButton(ItemButton)
hooksecurefunc(ItemButton.IconBorder, 'SetVertexColor', function(self, r, g, b, a)
ItemButton:SetBackdropBorderColor(r, g, b)
end)
hooksecurefunc(ItemButton.IconBorder, 'Hide', function(self)
ItemButton:SetBackdropBorderColor(unpack(AS.BorderColor))
end)
BankFrameItemButton_Update(ItemButton)
end
AS:StripTextures(_G.ReagentBankFrame, true)
self.isSkinned = true
end
end)
AS:SkinTab(_G.BankFrameTab1)
AS:SkinTab(_G.BankFrameTab2)
end
end
AS:RegisterSkin('Blizzard_Bags', AS.Blizzard_Bags)