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.
155 lines
4.6 KiB
155 lines
4.6 KiB
local E, L, V, P, G = unpack(ElvUI)
|
|
local S = E:GetModule('Skins')
|
|
|
|
local _G = _G
|
|
local unpack = unpack
|
|
local hooksecurefunc = hooksecurefunc
|
|
|
|
local GetCraftNumReagents = GetCraftNumReagents
|
|
local GetCraftItemLink = GetCraftItemLink
|
|
local GetCraftReagentInfo = GetCraftReagentInfo
|
|
local GetCraftReagentItemLink = GetCraftReagentItemLink
|
|
|
|
local GetItemQualityByID = C_Item.GetItemQualityByID
|
|
|
|
function S:SkinCraft()
|
|
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.craft) then return end
|
|
|
|
local CraftFrame = _G.CraftFrame
|
|
S:HandleFrame(CraftFrame, true, nil, 11, -12, -32, 76)
|
|
|
|
local CraftRankFrame = _G.CraftRankFrame
|
|
CraftRankFrame:StripTextures()
|
|
CraftRankFrame:Size(322, 16)
|
|
CraftRankFrame:ClearAllPoints()
|
|
CraftRankFrame:Point('TOP', -10, -45)
|
|
CraftRankFrame:CreateBackdrop()
|
|
CraftRankFrame:SetStatusBarTexture(E.media.normTex)
|
|
CraftRankFrame:SetStatusBarColor(0.13, 0.35, 0.80)
|
|
E:RegisterStatusBar(CraftRankFrame)
|
|
|
|
_G.CraftRankFrameBorder:StripTextures()
|
|
|
|
_G.CraftListScrollFrame:StripTextures()
|
|
_G.CraftDetailScrollFrame:StripTextures()
|
|
_G.CraftDetailScrollChildFrame:StripTextures()
|
|
|
|
S:HandleScrollBar(_G.CraftListScrollFrameScrollBar)
|
|
S:HandleScrollBar(_G.CraftDetailScrollFrameScrollBar)
|
|
|
|
S:HandleButton(_G.CraftCancelButton)
|
|
|
|
S:HandleButton(_G.CraftCreateButton)
|
|
|
|
local CraftIcon = _G.CraftIcon
|
|
|
|
_G.CraftRequirements:SetTextColor(1, 0.80, 0.10)
|
|
|
|
S:HandleCloseButton(_G.CraftFrameCloseButton, CraftFrame.backdrop)
|
|
|
|
_G.CraftExpandButtonFrame:StripTextures()
|
|
|
|
local CraftCollapseAllButton = _G.CraftCollapseAllButton
|
|
S:HandleCollapseTexture(CraftCollapseAllButton, nil, true)
|
|
CraftCollapseAllButton:SetHighlightTexture(E.ClearTexture)
|
|
|
|
for i = 1, _G.CRAFTS_DISPLAYED do
|
|
local button = _G['Craft'..i]
|
|
S:HandleCollapseTexture(button, nil, true)
|
|
|
|
local normal = button:GetNormalTexture()
|
|
if normal then
|
|
normal:Size(14)
|
|
normal:Point('LEFT', 4, 1)
|
|
end
|
|
|
|
local highlight = _G['Craft'..i..'Highlight']
|
|
if highlight then
|
|
highlight:SetTexture(E.ClearTexture)
|
|
highlight.SetTexture = E.noop
|
|
end
|
|
end
|
|
|
|
for i = 1, _G.MAX_CRAFT_REAGENTS do
|
|
local icon = _G['CraftReagent'..i..'IconTexture']
|
|
local count = _G['CraftReagent'..i..'Count']
|
|
local nameFrame = _G['CraftReagent'..i..'NameFrame']
|
|
|
|
S:HandleIcon(icon, true)
|
|
icon:SetDrawLayer('ARTWORK')
|
|
count:SetDrawLayer('OVERLAY')
|
|
|
|
nameFrame:SetAlpha(0)
|
|
end
|
|
|
|
_G.CraftReagent1:Point('TOPLEFT', _G.CraftReagentLabel, 'BOTTOMLEFT', -3, -3)
|
|
_G.CraftReagent2:Point('LEFT', _G.CraftReagent1, 'RIGHT', 3, 0)
|
|
_G.CraftReagent4:Point('LEFT', _G.CraftReagent3, 'RIGHT', 3, 0)
|
|
_G.CraftReagent6:Point('LEFT', _G.CraftReagent5, 'RIGHT', 3, 0)
|
|
_G.CraftReagent8:Point('LEFT', _G.CraftReagent7, 'RIGHT', 3, 0)
|
|
|
|
CraftIcon:CreateBackdrop()
|
|
|
|
hooksecurefunc('CraftFrame_SetSelection', function(id)
|
|
if not id then return end
|
|
|
|
local CraftReagentLabel = _G.CraftReagentLabel
|
|
CraftReagentLabel:Point('TOPLEFT', _G.CraftDescription, 'BOTTOMLEFT', 0, -10)
|
|
|
|
if CraftIcon:GetNormalTexture() then
|
|
S:HandleIcon(CraftIcon:GetNormalTexture())
|
|
end
|
|
|
|
CraftIcon:Size(40)
|
|
CraftIcon:Point('TOPLEFT', 2, -3)
|
|
|
|
local skillLink = GetCraftItemLink(id)
|
|
if skillLink then
|
|
local quality = GetItemQualityByID(skillLink)
|
|
if quality and quality > 1 then
|
|
local r, g, b = E:GetItemQualityColor(quality)
|
|
CraftIcon.backdrop:SetBackdropBorderColor(r, g, b)
|
|
_G.CraftName:SetTextColor(r, g, b)
|
|
else
|
|
CraftIcon.backdrop:SetBackdropBorderColor(unpack(E.media.bordercolor))
|
|
_G.CraftName:SetTextColor(1, 1, 1)
|
|
end
|
|
end
|
|
|
|
local numReagents = GetCraftNumReagents(id)
|
|
for i = 1, numReagents do
|
|
local _, _, reagentCount, playerReagentCount = GetCraftReagentInfo(id, i)
|
|
local reagentLink = GetCraftReagentItemLink(id, i)
|
|
local icon = _G['CraftReagent'..i..'IconTexture']
|
|
local name = _G['CraftReagent'..i..'Name']
|
|
|
|
if reagentLink then
|
|
local quality = GetItemQualityByID(reagentLink)
|
|
if quality and quality > 1 then
|
|
local r, g, b = E:GetItemQualityColor(quality)
|
|
if playerReagentCount > reagentCount then
|
|
name:SetTextColor(r, g, b)
|
|
else
|
|
name:SetTextColor(0.5, 0.5, 0.5)
|
|
end
|
|
|
|
icon.backdrop:SetBackdropBorderColor(r, g, b)
|
|
else
|
|
icon.backdrop:SetBackdropBorderColor(unpack(E.media.bordercolor))
|
|
end
|
|
end
|
|
end
|
|
|
|
if numReagents < 5 then
|
|
_G.CraftDetailScrollFrameScrollBar:Hide()
|
|
_G.CraftDetailScrollFrameTop:Hide()
|
|
_G.CraftDetailScrollFrameBottom:Hide()
|
|
else
|
|
_G.CraftDetailScrollFrameScrollBar:Show()
|
|
_G.CraftDetailScrollFrameTop:Show()
|
|
_G.CraftDetailScrollFrameBottom:Show()
|
|
end
|
|
end)
|
|
end
|
|
|
|
S:AddCallbackForAddon('Blizzard_CraftUI', 'SkinCraft')
|
|
|