From ed6904f021221f0744afeafaddc5e64d0c2a2bba Mon Sep 17 00:00:00 2001 From: Meow <30401521+me0wg4ming@users.noreply.github.com> Date: Sat, 21 Mar 2026 21:03:00 +0100 Subject: [PATCH] new pfui skins by jrc13245 --- init/skins.xml | 7 +++ skins/blizzard/arena_score.lua | 22 +++++++++ skins/blizzard/barbershop.lua | 75 ++++++++++++++++++++++++++++++ skins/blizzard/custom_merchant.lua | 51 ++++++++++++++++++++ skins/blizzard/ebc.lua | 30 ++++++++++++ skins/blizzard/transmog.lua | 73 +++++++++++++++++++++++++++++ 6 files changed, 258 insertions(+) create mode 100644 skins/blizzard/arena_score.lua create mode 100644 skins/blizzard/barbershop.lua create mode 100644 skins/blizzard/custom_merchant.lua create mode 100644 skins/blizzard/ebc.lua create mode 100644 skins/blizzard/transmog.lua diff --git a/init/skins.xml b/init/skins.xml index 89a0a3af..16d3c957 100644 --- a/init/skins.xml +++ b/init/skins.xml @@ -39,6 +39,13 @@ + + + + + + + diff --git a/skins/blizzard/arena_score.lua b/skins/blizzard/arena_score.lua new file mode 100644 index 00000000..41d784b0 --- /dev/null +++ b/skins/blizzard/arena_score.lua @@ -0,0 +1,22 @@ +pfUI:RegisterSkin("Arena Score", "vanilla", function () + if not ArenaScoreFrame then return end + + local rawborder, border = GetBorderSize() + local bpad = rawborder > 1 and border - GetPerfectPixel() or GetPerfectPixel() + + -- Main frame + StripTextures(ArenaScoreFrame) + CreateBackdrop(ArenaScoreFrame, nil, nil, .75) + CreateBackdropShadow(ArenaScoreFrame) + + ArenaScoreFrame.backdrop:SetPoint("TOPLEFT", 10, -14) + ArenaScoreFrame.backdrop:SetPoint("BOTTOMRIGHT", -112, 68) + ArenaScoreFrame:SetHitRectInsets(10, 112, 14, 68) + + -- Close button + SkinCloseButton(ArenaScoreFrameCloseButton, ArenaScoreFrame.backdrop, -6, -6) + + -- Title + ArenaScoreFrameTitle:ClearAllPoints() + ArenaScoreFrameTitle:SetPoint("TOP", ArenaScoreFrame.backdrop, "TOP", 0, -10) +end) diff --git a/skins/blizzard/barbershop.lua b/skins/blizzard/barbershop.lua new file mode 100644 index 00000000..1bdf1395 --- /dev/null +++ b/skins/blizzard/barbershop.lua @@ -0,0 +1,75 @@ +pfUI:RegisterSkin("Barbershop", "vanilla", function () + if not BarbershopFrame then return end + + local rawborder, border = GetBorderSize() + local bpad = rawborder > 1 and border - GetPerfectPixel() or GetPerfectPixel() + + -- Main frame + StripTextures(BarbershopFrame) + CreateBackdrop(BarbershopFrame, nil, nil, .75) + CreateBackdropShadow(BarbershopFrame) + + BarbershopFrame.backdrop:SetPoint("TOPLEFT", 0, 0) + BarbershopFrame.backdrop:SetPoint("BOTTOMRIGHT", 0, 0) + EnableMovable(BarbershopFrame) + + -- Banner frame (title decoration) + StripTextures(BarbershopBannerFrame) + + -- Selectors (hair style, color, facial hair) + for i = 1, 3 do + local selector = _G["BarbershopFrameSelector" .. i] + if selector then + StripTextures(selector) + CreateBackdrop(selector, nil, true) + + local prev = _G["BarbershopFrameSelector" .. i .. "Prev"] + local next = _G["BarbershopFrameSelector" .. i .. "Next"] + if prev then + StripTextures(prev) + SkinArrowButton(prev, "left", 18) + end + if next then + StripTextures(next) + SkinArrowButton(next, "right", 18) + end + end + end + + -- Money frame border + if BarbershopFrameMoneyFrame then + StripTextures(BarbershopFrameMoneyFrame) + end + + -- Buttons + SkinButton(BarbershopFrameOkayButton) + SkinButton(BarbershopFrameCancelButton) + SkinButton(BarbershopFrameResetButton) + + -- Fix: disable TargetFrameDebuff OnEnter scripts while barbershop is open + -- to prevent SetUnitDebuff crash (TargetFrame is hidden but scripts remain active) + local savedOnEnter = {} + + local origOnShow = BarbershopFrame:GetScript("OnShow") + BarbershopFrame:SetScript("OnShow", function() + for i = 1, 16 do + local debuff = _G["TargetFrameDebuff" .. i] + if debuff then + savedOnEnter[i] = debuff:GetScript("OnEnter") + debuff:SetScript("OnEnter", nil) + end + end + if origOnShow then origOnShow() end + end) + + local origOnHide = BarbershopFrame:GetScript("OnHide") + BarbershopFrame:SetScript("OnHide", function() + for i = 1, 16 do + local debuff = _G["TargetFrameDebuff" .. i] + if debuff and savedOnEnter[i] then + debuff:SetScript("OnEnter", savedOnEnter[i]) + end + end + if origOnHide then origOnHide() end + end) +end) diff --git a/skins/blizzard/custom_merchant.lua b/skins/blizzard/custom_merchant.lua new file mode 100644 index 00000000..0084a667 --- /dev/null +++ b/skins/blizzard/custom_merchant.lua @@ -0,0 +1,51 @@ +pfUI:RegisterSkin("Custom Merchant", "vanilla", function () + if not CustomMerchantFrame then return end + + local rawborder, border = GetBorderSize() + local bpad = rawborder > 1 and border - GetPerfectPixel() or GetPerfectPixel() + + -- Main frame + StripTextures(CustomMerchantFrame) + CreateBackdrop(CustomMerchantFrame, nil, nil, .75) + CreateBackdropShadow(CustomMerchantFrame) + + CustomMerchantFrame.backdrop:SetPoint("TOPLEFT", 10, -10) + CustomMerchantFrame.backdrop:SetPoint("BOTTOMRIGHT", -32, 58) + CustomMerchantFrame:SetHitRectInsets(10, 32, 10, 58) + EnableMovable(CustomMerchantFrame) + + -- Close button + SkinCloseButton(CustomMerchantFrameCloseButton, CustomMerchantFrame.backdrop, -6, -6) + + -- Title + CustomMerchantNameText:ClearAllPoints() + CustomMerchantNameText:SetPoint("TOP", CustomMerchantFrame.backdrop, "TOP", 0, -10) + + -- Item frames + for i = 1, 10 do + local item = _G["CustomMerchantItem" .. i] + if item then + StripTextures(item) + + local bg = item:CreateTexture(nil, "LOW") + bg:SetTexture(1, 1, 1, .05) + bg:SetAllPoints() + + local itemButton = _G["CustomMerchantItem" .. i .. "ItemButton"] + if itemButton then + StripTextures(itemButton) + SkinButton(itemButton, nil, nil, nil, _G[itemButton:GetName() .. "IconTexture"]) + end + end + end + + -- Pagination buttons + if CustomMerchantPrevPageButton then + StripTextures(CustomMerchantPrevPageButton) + SkinArrowButton(CustomMerchantPrevPageButton, "left", 18) + end + if CustomMerchantNextPageButton then + StripTextures(CustomMerchantNextPageButton) + SkinArrowButton(CustomMerchantNextPageButton, "right", 18) + end +end) diff --git a/skins/blizzard/ebc.lua b/skins/blizzard/ebc.lua new file mode 100644 index 00000000..012c399e --- /dev/null +++ b/skins/blizzard/ebc.lua @@ -0,0 +1,30 @@ +pfUI:RegisterSkin("Everlook Broadcasting", "vanilla", function () + if not EBC_Minimap then return end + + -- Minimap button border + for _, region in ipairs({ EBC_Minimap:GetRegions() }) do + if region.GetTexture and region:GetTexture() == "Interface\\Minimap\\MiniMap-TrackingBorder" then + region:SetTexture(nil) + end + end + + -- Dropdown panel + if EBCMinimapDropdown then + StripTextures(EBCMinimapDropdown) + CreateBackdrop(EBCMinimapDropdown, nil, nil, .75) + CreateBackdropShadow(EBCMinimapDropdown) + + -- Checkbuttons + for i = 1, 2 do + local cb = _G["EBCMinimapDropdownCheckButton" .. i] + if cb then + SkinCheckbox(cb) + end + end + + -- Volume slider + if EBCMinimapDropdownSlider then + SkinSlider(EBCMinimapDropdownSlider) + end + end +end) diff --git a/skins/blizzard/transmog.lua b/skins/blizzard/transmog.lua new file mode 100644 index 00000000..f7127201 --- /dev/null +++ b/skins/blizzard/transmog.lua @@ -0,0 +1,73 @@ +pfUI:RegisterSkin("Transmog", "vanilla", function () + if not TransmogFrame then return end + + local rawborder, border = GetBorderSize() + local bpad = rawborder > 1 and border - GetPerfectPixel() or GetPerfectPixel() + + -- Main frame + StripTextures(TransmogFrame, true) + CreateBackdrop(TransmogFrame, nil, nil, .75) + CreateBackdropShadow(TransmogFrame) + + TransmogFrame.backdrop:SetPoint("TOPLEFT", 14, -10) + TransmogFrame.backdrop:SetPoint("BOTTOMRIGHT", -14, 10) + TransmogFrame:SetHitRectInsets(14, 14, 10, 10) + EnableMovable(TransmogFrame) + + -- Close button + SkinCloseButton(TransmogFrameCloseButton, TransmogFrame.backdrop, -6, -6) + + -- Title + TransmogFrameTitleText:ClearAllPoints() + TransmogFrameTitleText:SetPoint("TOP", TransmogFrame.backdrop, "TOP", 0, -10) + + -- Search box + if TransmogFrameSearch then + StripTextures(TransmogFrameSearch) + CreateBackdrop(TransmogFrameSearch) + end + + -- Outfits dropdown + if TransmogFrameOutfits then + SkinDropDown(TransmogFrameOutfits) + end + + -- Tab buttons (Items / Outfits) + if TransmogFrameItemsButton then SkinButton(TransmogFrameItemsButton) end + if TransmogFrameSetsButton then SkinButton(TransmogFrameSetsButton) end + if TransmogFrameApplyButton then SkinButton(TransmogFrameApplyButton) end + if TransmogFrameSaveOutfit then SkinButton(TransmogFrameSaveOutfit) end + + -- Arrow buttons (pagination) + if TransmogFrameLeftArrow then + StripTextures(TransmogFrameLeftArrow) + SkinArrowButton(TransmogFrameLeftArrow, "left", 18) + end + if TransmogFrameRightArrow then + StripTextures(TransmogFrameRightArrow) + SkinArrowButton(TransmogFrameRightArrow, "right", 18) + end + + -- Equipment slot buttons + local slots = { + "HeadSlot", "ShoulderSlot", "BackSlot", "ChestSlot", + "ShirtSlot", "TabardSlot", "WristSlot", "HandsSlot", + "WaistSlot", "LegsSlot", "FeetSlot", + "MainHandSlot", "SecondaryHandSlot", "RangedSlot", + } + + for _, name in ipairs(slots) do + local slot = _G[name] + if slot then + local icon = _G[name .. "ItemIcon"] + StripTextures(slot) + CreateBackdrop(slot, nil, true) + if icon then + icon:SetTexCoord(.08, .92, .08, .92) + icon:ClearAllPoints() + icon:SetPoint("TOPLEFT", slot, "TOPLEFT", 1, -1) + icon:SetPoint("BOTTOMRIGHT", slot, "BOTTOMRIGHT", -1, 1) + end + end + end +end)