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.
131 lines
4.4 KiB
131 lines
4.4 KiB
|
3 years ago
|
local E, L, V, P, G = unpack(ElvUI)
|
||
|
|
local S = E:GetModule('Skins')
|
||
|
|
|
||
|
|
local _G = _G
|
||
|
|
local gsub, pairs, strmatch = gsub, pairs, strmatch
|
||
|
|
local hooksecurefunc = hooksecurefunc
|
||
|
|
|
||
|
|
local GetNumQuestLogEntries = GetNumQuestLogEntries
|
||
|
|
local GetQuestLogTitle = GetQuestLogTitle
|
||
|
|
local IsQuestComplete = IsQuestComplete
|
||
|
|
|
||
|
|
local function createParchment(frame)
|
||
|
|
local tex = frame:CreateTexture(nil, 'ARTWORK')
|
||
|
|
tex:SetTexture([[Interface\QuestFrame\QuestBG]])
|
||
|
|
tex:SetTexCoord(0, 0.586, 0.02, 0.655)
|
||
|
|
return tex
|
||
|
|
end
|
||
|
|
|
||
|
|
function S:GossipFrame()
|
||
|
|
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.gossip) then return end
|
||
|
|
|
||
|
|
-- GossipFrame
|
||
|
|
local GossipFrame = _G.GossipFrame
|
||
|
|
S:HandleFrame(GossipFrame, true, nil, 11, -12, -32, 66)
|
||
|
|
S:HandleScrollBar(_G.GossipGreetingScrollFrameScrollBar)
|
||
|
|
S:HandleCloseButton(_G.GossipFrameCloseButton, GossipFrame.backdrop)
|
||
|
|
S:HandleScrollBar(_G.ItemTextScrollFrameScrollBar)
|
||
|
|
S:HandleCloseButton(_G.ItemTextCloseButton)
|
||
|
|
|
||
|
|
_G.GossipFrameNpcNameText:ClearAllPoints()
|
||
|
|
_G.GossipFrameNpcNameText:Point('CENTER', _G.GossipNpcNameFrame, 'CENTER', -1, 0)
|
||
|
|
|
||
|
|
for i = 1, _G.NUMGOSSIPBUTTONS do
|
||
|
|
_G['GossipTitleButton'..i..'GossipIcon']:SetSize(16, 16)
|
||
|
|
_G['GossipTitleButton'..i..'GossipIcon']:SetPoint('TOPLEFT', 3, 1)
|
||
|
|
end
|
||
|
|
|
||
|
|
S:HandleButton(_G.GossipFrameGreetingGoodbyeButton)
|
||
|
|
_G.GossipFrameGreetingGoodbyeButton:Point('BOTTOMRIGHT', -38, 72)
|
||
|
|
|
||
|
|
local GossipGreetingScrollFrame = _G.GossipGreetingScrollFrame
|
||
|
|
GossipGreetingScrollFrame:CreateBackdrop('Transparent')
|
||
|
|
GossipGreetingScrollFrame.backdrop:Point('TOPLEFT', 0, 0)
|
||
|
|
GossipGreetingScrollFrame.backdrop:Point('BOTTOMRIGHT', 0, 2)
|
||
|
|
|
||
|
|
local ItemTextFrame = _G.ItemTextFrame
|
||
|
|
ItemTextFrame:StripTextures()
|
||
|
|
ItemTextFrame:CreateBackdrop('Transparent')
|
||
|
|
ItemTextFrame.backdrop:ClearAllPoints()
|
||
|
|
ItemTextFrame.backdrop:Point('TOPLEFT', ItemTextFrame, 5, -10)
|
||
|
|
ItemTextFrame.backdrop:Point('BOTTOMRIGHT', ItemTextFrame, -25, 45)
|
||
|
|
|
||
|
|
local ItemTextScrollFrame = _G.ItemTextScrollFrame
|
||
|
|
ItemTextScrollFrame:DisableDrawLayer('ARTWORK')
|
||
|
|
ItemTextScrollFrame:DisableDrawLayer('BACKGROUND')
|
||
|
|
|
||
|
|
S:HandleNextPrevButton(_G.ItemTextPrevPageButton)
|
||
|
|
S:HandleNextPrevButton(_G.ItemTextNextPageButton)
|
||
|
|
|
||
|
|
_G.ItemTextPageText:SetTextColor(1, 1, 1)
|
||
|
|
hooksecurefunc(_G.ItemTextPageText, 'SetTextColor', function(pageText, headerType, r, g, b)
|
||
|
|
if r ~= 1 or g ~= 1 or b ~= 1 then
|
||
|
|
pageText:SetTextColor(headerType, 1, 1, 1)
|
||
|
|
end
|
||
|
|
end)
|
||
|
|
|
||
|
|
local StripAllTextures = { 'GossipFrameGreetingPanel', 'GossipGreetingScrollFrame' }
|
||
|
|
|
||
|
|
for _, object in pairs(StripAllTextures) do
|
||
|
|
_G[object]:StripTextures()
|
||
|
|
end
|
||
|
|
|
||
|
|
if not E.private.skins.parchmentRemoverEnable then
|
||
|
|
local spellTex = createParchment(GossipGreetingScrollFrame)
|
||
|
|
spellTex:SetInside(GossipGreetingScrollFrame.backdrop)
|
||
|
|
GossipGreetingScrollFrame.spellTex = spellTex
|
||
|
|
|
||
|
|
local itemTex = createParchment(ItemTextFrame)
|
||
|
|
itemTex:SetInside(ItemTextScrollFrame, -5)
|
||
|
|
ItemTextFrame.itemTex = itemTex
|
||
|
|
else
|
||
|
|
_G.GossipGreetingText:SetTextColor(1, 1, 1)
|
||
|
|
|
||
|
|
hooksecurefunc('GossipFrameUpdate', function()
|
||
|
|
for i = 1, _G.NUMGOSSIPBUTTONS do
|
||
|
|
local button = _G['GossipTitleButton'..i]
|
||
|
|
local icon = _G['GossipTitleButton'..i..'GossipIcon']
|
||
|
|
local text = button:GetFontString()
|
||
|
|
|
||
|
|
if text and text:GetText() then
|
||
|
|
local textString = gsub(text:GetText(), '|c[Ff][Ff]%x%x%x%x%x%x(.+)|r', '%1')
|
||
|
|
|
||
|
|
button:SetText(textString)
|
||
|
|
text:SetTextColor(1, 1, 1)
|
||
|
|
|
||
|
|
if button.type == 'Available' or button.type == 'Active' then
|
||
|
|
if button.type == 'Active' then
|
||
|
|
icon:SetDesaturation(1)
|
||
|
|
text:SetTextColor(.6, .6, .6)
|
||
|
|
else
|
||
|
|
icon:SetDesaturation(0)
|
||
|
|
text:SetTextColor(1, .8, .1)
|
||
|
|
end
|
||
|
|
|
||
|
|
local numEntries = GetNumQuestLogEntries()
|
||
|
|
for k = 1, numEntries, 1 do
|
||
|
|
local questLogTitleText, _, _, _, _, isComplete, _, questId = GetQuestLogTitle(k)
|
||
|
|
if strmatch(questLogTitleText, textString) then
|
||
|
|
if (isComplete == 1 or IsQuestComplete(questId)) then
|
||
|
|
icon:SetDesaturation(0)
|
||
|
|
button:GetFontString():SetTextColor(1, .8, .1)
|
||
|
|
break
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end)
|
||
|
|
end
|
||
|
|
|
||
|
|
local NPCFriendshipStatusBar = _G.NPCFriendshipStatusBar
|
||
|
|
NPCFriendshipStatusBar:StripTextures()
|
||
|
|
NPCFriendshipStatusBar:SetStatusBarTexture(E.media.normTex)
|
||
|
|
NPCFriendshipStatusBar:CreateBackdrop()
|
||
|
|
|
||
|
|
E:RegisterStatusBar(NPCFriendshipStatusBar)
|
||
|
|
end
|
||
|
|
|
||
|
|
S:AddCallback('GossipFrame')
|