mirror of
https://github.com/Bluewhale1337/ElvUIModernized.git
synced 2026-07-27 16:34:45 +00:00
149 lines
4.5 KiB
Lua
149 lines
4.5 KiB
Lua
local E, L, V, P, G = unpack(ElvUI); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
|
local S = E:GetModule("Skins");
|
|
|
|
--Cache global variables
|
|
--Lua functions
|
|
local _G = _G
|
|
local unpack = unpack
|
|
local match = string.match
|
|
--WoW API / Variables
|
|
local GetItemQualityColor = GetItemQualityColor
|
|
local GetContainerItemLink = GetContainerItemLink
|
|
local BANK_CONTAINER = BANK_CONTAINER
|
|
local NUM_CONTAINER_FRAMES = NUM_CONTAINER_FRAMES
|
|
|
|
function S:ContainerFrame_Update()
|
|
local id = this:GetID()
|
|
local name = this:GetName()
|
|
local _, itemButton, itemLink, quality
|
|
|
|
for i = 1, this.size, 1 do
|
|
itemButton = _G[name.."Item"..i]
|
|
|
|
itemLink = GetContainerItemLink(id, itemButton:GetID())
|
|
if itemLink then
|
|
_, _, quality = GetItemInfo(match(itemLink, "item:(%d+)"))
|
|
if quality then
|
|
itemButton:SetBackdropBorderColor(GetItemQualityColor(quality))
|
|
else
|
|
itemButton:SetBackdropBorderColor(unpack(E["media"].bordercolor))
|
|
end
|
|
else
|
|
itemButton:SetBackdropBorderColor(unpack(E["media"].bordercolor))
|
|
end
|
|
end
|
|
end
|
|
|
|
function S:BankFrameItemButton_OnUpdate()
|
|
if not this.isBag then
|
|
local itemLink = GetContainerItemLink(BANK_CONTAINER, this:GetID())
|
|
if itemLink then
|
|
local _, _, quality = GetItemInfo(match(itemLink, "item:(%d+)"))
|
|
if quality then
|
|
this:SetBackdropBorderColor(GetItemQualityColor(quality))
|
|
else
|
|
this:SetBackdropBorderColor(unpack(E["media"].bordercolor))
|
|
end
|
|
else
|
|
this:SetBackdropBorderColor(unpack(E["media"].bordercolor))
|
|
end
|
|
end
|
|
end
|
|
|
|
local function LoadSkin()
|
|
if not E.private.skins.blizzard.enable and E.private.skins.blizzard.bags and not E.private.bags.enable then return end
|
|
|
|
-- ContainerFrame
|
|
local containerFrame, containerFrameClose
|
|
for i = 1, NUM_CONTAINER_FRAMES, 1 do
|
|
containerFrame = _G["ContainerFrame"..i]
|
|
containerFrameClose = _G["ContainerFrame"..i.."CloseButton"]
|
|
|
|
E:StripTextures(containerFrame, true)
|
|
E:CreateBackdrop(containerFrame, "Transparent")
|
|
E:Point(containerFrame.backdrop, "TOPLEFT", 9, -4)
|
|
E:Point(containerFrame.backdrop, "BOTTOMRIGHT", -4, 2)
|
|
|
|
S:HandleCloseButton(containerFrameClose)
|
|
|
|
S:SecureHookScript(containerFrame, "OnShow", "ContainerFrame_Update")
|
|
|
|
local itemButton, itemButtonIcon
|
|
for k = 1, MAX_CONTAINER_ITEMS, 1 do
|
|
itemButton = _G["ContainerFrame"..i.."Item"..k]
|
|
itemButtonIcon = _G["ContainerFrame"..i.."Item"..k.."IconTexture"]
|
|
itemButtonCooldown = _G["ContainerFrame"..i.."Item"..k.."Cooldown"]
|
|
|
|
itemButton:SetNormalTexture("")
|
|
|
|
E:SetTemplate(itemButton, "Default", true)
|
|
E:StyleButton(itemButton)
|
|
|
|
E:SetInside(itemButtonIcon)
|
|
itemButtonIcon:SetTexCoord(unpack(E.TexCoords))
|
|
|
|
if itemButtonCooldown then
|
|
E:RegisterCooldown(itemButtonCooldown)
|
|
end
|
|
end
|
|
end
|
|
|
|
S:SecureHook("ContainerFrame_Update")
|
|
|
|
-- BankFrame
|
|
E:CreateBackdrop(BankFrame, "Transparent")
|
|
E:Point(BankFrame.backdrop, "TOPLEFT", 10, -11)
|
|
E:Point(BankFrame.backdrop, "BOTTOMRIGHT", -26, 93)
|
|
|
|
E:StripTextures(BankFrame, true)
|
|
|
|
S:HandleCloseButton(BankCloseButton)
|
|
|
|
local button, buttonIcon
|
|
for i = 1, NUM_BANKGENERIC_SLOTS, 1 do
|
|
button = _G["BankFrameItem"..i]
|
|
buttonIcon = _G["BankFrameItem"..i.."IconTexture"]
|
|
|
|
button:SetNormalTexture("")
|
|
|
|
E:SetTemplate(button, "Default", true)
|
|
E:StyleButton(button)
|
|
|
|
E:SetInside(buttonIcon)
|
|
buttonIcon:SetTexCoord(unpack(E.TexCoords))
|
|
end
|
|
|
|
BankFrame.itemBackdrop = CreateFrame("Frame", "BankFrameItemBackdrop", BankFrame)
|
|
E:SetTemplate(BankFrame.itemBackdrop, "Default")
|
|
E:Point(BankFrame.itemBackdrop, "TOPLEFT", BankFrameItem1, "TOPLEFT", -6, 6)
|
|
E:Point(BankFrame.itemBackdrop, "BOTTOMRIGHT", BankFrameItem24, "BOTTOMRIGHT", 6, -6)
|
|
BankFrame.itemBackdrop:SetFrameLevel(BankFrame:GetFrameLevel())
|
|
|
|
for i = 1, NUM_BANKBAGSLOTS, 1 do
|
|
button = _G["BankFrameBag"..i]
|
|
buttonIcon = _G["BankFrameBag"..i.."IconTexture"]
|
|
|
|
button:SetNormalTexture("")
|
|
|
|
E:SetTemplate(button, "Default", true)
|
|
E:StyleButton(button)
|
|
|
|
E:SetInside(buttonIcon)
|
|
buttonIcon:SetTexCoord(unpack(E.TexCoords))
|
|
|
|
E:SetInside(_G["BankFrameBag"..i.."HighlightFrameTexture"])
|
|
_G["BankFrameBag"..i.."HighlightFrameTexture"]:SetTexture(unpack(E["media"].rgbvaluecolor), 0.3)
|
|
end
|
|
|
|
BankFrame.bagBackdrop = CreateFrame("Frame", "BankFrameBagBackdrop", BankFrame)
|
|
E:SetTemplate(BankFrame.bagBackdrop, "Default")
|
|
E:Point(BankFrame.bagBackdrop, "TOPLEFT", BankFrameBag1, "TOPLEFT", -6, 6)
|
|
E:Point(BankFrame.bagBackdrop, "BOTTOMRIGHT", BankFrameBag6, "BOTTOMRIGHT", 6, -6)
|
|
BankFrame.bagBackdrop:SetFrameLevel(BankFrame:GetFrameLevel())
|
|
|
|
S:HandleButton(BankFramePurchaseButton)
|
|
|
|
S:SecureHook("BankFrameItemButton_OnUpdate")
|
|
end
|
|
|
|
S:AddCallback("SkinBags", LoadSkin) |