mirror of
https://github.com/brues-code/pfUI.git
synced 2026-09-21 23:26:56 +00:00
140 lines
4.5 KiB
Lua
140 lines
4.5 KiB
Lua
pfUI:RegisterSkin("Gossip and Quest", function ()
|
|
local frames = {'Quest', 'Gossip'}
|
|
local panels = {'Greeting', 'Detail', 'Progress', 'Reward'}
|
|
local buttons = {
|
|
QuestFrameGreetingGoodbyeButton, GossipFrameGreetingGoodbyeButton,
|
|
QuestFrameDeclineButton, QuestFrameAcceptButton,
|
|
QuestFrameGoodbyeButton, QuestFrameCompleteButton,
|
|
QuestFrameCancelButton, QuestFrameCompleteQuestButton
|
|
}
|
|
|
|
for _, button in pairs(buttons) do
|
|
SkinButton(button)
|
|
end
|
|
|
|
do -- quest gossip
|
|
StripTextures(QuestGreetingScrollChildFrame)
|
|
|
|
QuestTitleText:SetPoint("TOPLEFT", 10, -10)
|
|
QuestProgressTitleText:SetPoint("TOPLEFT", 10, -10)
|
|
|
|
StripTextures(QuestRewardItemHighlight)
|
|
local QuestRewardItemHighlight = CreateFrame("Frame", nil, QuestRewardScrollChildFrame)
|
|
local QuestRewardItemHighlightBG = QuestRewardItemHighlight:CreateTexture(nil, "OVERLAY")
|
|
QuestRewardItemHighlightBG:SetTexture(1,1,1,.2)
|
|
QuestRewardItemHighlightBG:SetAllPoints()
|
|
|
|
hooksecurefunc("QuestFrameItems_Update", function()
|
|
QuestRewardItemHighlight:Hide()
|
|
end)
|
|
|
|
hooksecurefunc("QuestRewardItem_OnClick", function()
|
|
if this.type == "choice" then
|
|
QuestRewardItemHighlight:SetAllPoints(this.backdrop)
|
|
QuestRewardItemHighlight:Show()
|
|
end
|
|
end)
|
|
|
|
for _, name in pairs({ "QuestProgressItem", "QuestDetailItem", "QuestRewardItem" }) do
|
|
for i = 1, 6 do
|
|
local name = name .. i
|
|
local item = _G[name]
|
|
local icon = _G[name.."IconTexture"]
|
|
local count = _G[name.."Count"]
|
|
local title = _G[name.."Name"]
|
|
|
|
local xsize = item:GetWidth() -12
|
|
local ysize = item:GetHeight() -12
|
|
|
|
item:SetWidth(xsize)
|
|
StripTextures(item)
|
|
CreateBackdrop(item, nil, nil, .75)
|
|
SetAllPointsOffset(item.backdrop, item, 4)
|
|
SetHighlight(item)
|
|
|
|
icon:SetWidth(ysize)
|
|
icon:SetHeight(ysize)
|
|
icon:ClearAllPoints()
|
|
icon:SetPoint("LEFT", 6, 0)
|
|
icon:SetTexCoord(.08, .92, .08, .92)
|
|
icon:SetParent(item.backdrop)
|
|
icon:SetDrawLayer("OVERLAY")
|
|
|
|
count:SetParent(item.backdrop)
|
|
count:SetDrawLayer("OVERLAY")
|
|
|
|
title:SetParent(item.backdrop)
|
|
title:SetDrawLayer("OVERLAY")
|
|
end
|
|
end
|
|
end
|
|
|
|
for _, f in pairs(frames) do
|
|
local frameName = f
|
|
local frame = _G[frameName.."Frame"]
|
|
local NPCName = _G[frame:GetName().."NpcNameText"]
|
|
CreateBackdrop(frame, nil, nil, .75)
|
|
CreateBackdropShadow(frame)
|
|
|
|
frame.backdrop:SetPoint("TOPLEFT", 12, -18)
|
|
frame.backdrop:SetPoint("BOTTOMRIGHT", -28, 66)
|
|
frame:SetHitRectInsets(12,28,18,66)
|
|
EnableMovable(frame)
|
|
|
|
SkinCloseButton(_G[frame:GetName()..'CloseButton'], frame.backdrop, -6, -6)
|
|
|
|
_G[frame:GetName()..'Portrait']:Hide()
|
|
|
|
NPCName:ClearAllPoints()
|
|
NPCName:SetPoint("TOP", frame.backdrop, "TOP", 0, -10)
|
|
|
|
for _, v in pairs(panels) do
|
|
local panel = v
|
|
if frameName == 'Gossip' and panel ~= 'Greeting' then break end
|
|
|
|
local fname = frame:GetName()..panel.."Panel"
|
|
StripTextures(_G[fname])
|
|
|
|
local scroll = _G[frameName..panel.."ScrollFrame"]
|
|
scroll:SetHeight(330)
|
|
SkinScrollbar(_G[scroll:GetName().."ScrollBar"])
|
|
CreateBackdrop(scroll, nil, true, .75)
|
|
|
|
local bg = scroll:CreateTexture(nil, "LOW")
|
|
bg:SetAllPoints()
|
|
bg:SetTexCoord(.1,1,0,1)
|
|
bg:SetTexture("Interface\\Stationery\\StationeryTest1")
|
|
|
|
-- assign material backgrounds to the default one
|
|
_G[fname.."MaterialTopLeft"].SetTexture = function(self, texture)
|
|
bg:SetTexture(texture)
|
|
end
|
|
|
|
_G[fname.."MaterialTopLeft"].Hide = function()
|
|
bg:SetTexture("Interface\\Stationery\\StationeryTest1")
|
|
end
|
|
|
|
-- disable meterial backgrounds
|
|
_G[fname.."MaterialTopLeft"].Show = function() return end
|
|
_G[fname.."MaterialTopRight"].Show = function() return end
|
|
_G[fname.."MaterialBotLeft"].Show = function() return end
|
|
_G[fname.."MaterialBotRight"].Show = function() return end
|
|
_G[fname.."MaterialTopLeft"]:Hide()
|
|
_G[fname.."MaterialTopRight"]:Hide()
|
|
_G[fname.."MaterialBotLeft"]:Hide()
|
|
_G[fname.."MaterialBotRight"]:Hide()
|
|
|
|
if panel ~= 'Greeting' then
|
|
local num_items, hook_func
|
|
if panel == 'Progress' then
|
|
num_items = MAX_REQUIRED_ITEMS
|
|
hook_func = "QuestFrameProgressItems_Update"
|
|
else
|
|
num_items = MAX_NUM_ITEMS
|
|
hook_func = "QuestFrameItems_Update"
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end)
|