Files
pfUI/skins/blizzard/character.lua
T

391 lines
14 KiB
Lua

pfUI:RegisterSkin("Character", function ()
local border = tonumber(pfUI_config.appearance.border.default)
local bpad = border > 1 and border - 1 or 1
local magicResTextureCords = {
{0.21875, 0.78125, 0.25, 0.3203125},
{0.21875, 0.78125, 0.0234375, 0.09375},
{0.21875, 0.78125, 0.13671875, 0.20703125},
{0.21875, 0.78125, 0.36328125, 0.43359375},
{0.21875, 0.78125, 0.4765625, 0.546875}
}
do -- character frame
local CharacterFrame = _G["PaperDollFrame"]
StripTextures(CharacterFrame)
CreateBackdrop(CharacterFrame, nil, nil, .75)
CharacterFrame.backdrop:SetPoint("TOPLEFT", 10, -12)
CharacterFrame.backdrop:SetPoint("BOTTOMRIGHT", -32, 76)
SkinCloseButton(CharacterFrameCloseButton, CharacterFrame, -37, -17)
CharacterFramePortrait:Hide()
CharacterNameFrame:SetPoint("TOP", -10, -20)
StripTextures(CharacterAttributesFrame)
StripTextures(CharacterResistanceFrame)
CharacterModelFrameRotateLeftButton:Hide()
CharacterModelFrameRotateRightButton:Hide()
EnableClickRotate(CharacterModelFrame)
for i,c in pairs(magicResTextureCords) do
local magicResFrame = _G["MagicResFrame"..i]
magicResFrame:SetWidth(26)
magicResFrame:SetHeight(26)
CreateBackdrop(magicResFrame)
SetAllPointsOffset(magicResFrame.backdrop, magicResFrame, 2)
for k,f in pairs({magicResFrame:GetRegions()}) do
if f:GetObjectType() == "Texture" then
f:SetTexCoord(c[1], c[2], c[3], c[4])
SetAllPointsOffset(f, magicResFrame, 3)
end
end
end
local slots = {
"HeadSlot",
"NeckSlot",
"ShoulderSlot",
"BackSlot",
"ChestSlot",
"ShirtSlot",
"TabardSlot",
"WristSlot",
"HandsSlot",
"WaistSlot",
"LegsSlot",
"FeetSlot",
"Finger0Slot",
"Finger1Slot",
"Trinket0Slot",
"Trinket1Slot",
"MainHandSlot",
"SecondaryHandSlot",
"RangedSlot",
"AmmoSlot"
}
for i, slot in pairs(slots) do
local slotId, _, _ = GetInventorySlotInfo(slot)
local quality = GetInventoryItemQuality("player", slotId)
local frame = _G["Character"..slot]
local texture = _G["Character"..slot.."IconTexture"]
texture:SetTexCoord(.08, .92, .08, .92)
texture:ClearAllPoints()
texture:SetPoint("TOPLEFT", frame, "TOPLEFT", 4, -4)
texture:SetPoint("BOTTOMRIGHT", frame, "BOTTOMRIGHT", -4, 4)
StripTextures(frame)
CreateBackdrop(frame)
frame.backdrop:SetPoint("TOPLEFT", frame, "TOPLEFT", 2, -2)
frame.backdrop:SetPoint("BOTTOMRIGHT", frame, "BOTTOMRIGHT", -2, 2)
if not frame.scoreText then
frame.scoreText = frame:CreateFontString(nil, "OVERLAY", "GameFontNormal")
frame.scoreText:SetFont(pfUI.font_default, 12, "OUTLINE")
frame.scoreText:SetPoint("BOTTOMRIGHT", 0, 0)
end
if true == false and i ~= 1 and i ~= 9 and i ~= 17 then
local isBottomSlots = i > 17
local lastSlot = slots[i-1]
lastSlot = _G["Character"..lastSlot]
slot:ClearAllPoints()
if isBottomSlots then
slot:SetPoint("LEFT", lastSlot, "RIGHT", 8, 0)
else
slot:SetPoint("TOP", lastSlot, "BOTTOM", 0, -7)
end
end
end
hooksecurefunc("PaperDollItemSlotButton_Update", function()
for i, slot in pairs(slots) do
local slotId, _, _ = GetInventorySlotInfo(slot)
local quality = GetInventoryItemQuality("player", slotId)
slot = _G["Character"..slot]
if slot and slot.backdrop then
if quality and quality > 0 then
slot.backdrop:SetBackdropBorderColor(GetItemQualityColor(quality))
else
slot.backdrop:SetBackdropBorderColor(pfUI.cache.er, pfUI.cache.eg, pfUI.cache.eb, pfUI.cache.ea)
end
if ShaguScore and GetInventoryItemLink("player", slotId) and slot.scoreText then
local _, _, itemID = string.find(GetInventoryItemLink("player", slotId), "item:(%d+):%d+:%d+:%d+")
local itemLevel = ShaguScore.Database[tonumber(itemID)] or 0
local _, _, itemRarity, _, _, _, _, itemSlot, _ = GetItemInfo(itemID)
local r,g,b = GetItemQualityColor((itemRarity or 1))
local score = ShaguScore:Calculate(itemSlot, itemRarity, itemLevel)
if score and score > 0 then
if quality and quality > 0 then
slot.scoreText:SetText(score)
slot.scoreText:SetTextColor(r, g, b, 1)
else
slot.scoreText:SetText("")
end
else
if slot.scoreText then slot.scoreText:SetText("") end
end
else
if slot.scoreText then slot.scoreText:SetText("") end
end
end
end
end)
end
do -- pet frame
CreateBackdrop(PetPaperDollFrame, nil, nil, .75)
PetPaperDollFrame.backdrop:SetPoint("TOPLEFT", 10, -12)
PetPaperDollFrame.backdrop:SetPoint("BOTTOMRIGHT", -32, 76)
StripTextures(PetPaperDollFrame)
StripTextures(PetAttributesFrame)
StripTextures(PetPaperDollFrameExpBar)
CreateBackdrop(PetPaperDollFrameExpBar)
PetPaperDollFrameExpBar:SetStatusBarTexture("Interface\\AddOns\\pfUI\\img\\bar")
PetPaperDollFrameExpBar:ClearAllPoints()
PetPaperDollFrameExpBar:SetPoint("BOTTOM", PetModelFrame, "BOTTOM", 0, -120)
PetPaperDollCloseButton:Hide()
PetModelFrameRotateLeftButton:Hide()
PetModelFrameRotateRightButton:Hide()
EnableClickRotate(PetModelFrame)
PetTrainingPointText:ClearAllPoints()
PetTrainingPointText:SetJustifyH("RIGHT")
PetTrainingPointText:SetPoint("TOPRIGHT", PetArmorFrame, "BOTTOMRIGHT", 0, -16)
PetTrainingPointLabel:ClearAllPoints()
PetTrainingPointLabel:SetJustifyH("LEFT")
PetTrainingPointLabel:SetPoint("TOPLEFT", PetArmorFrame, "BOTTOMLEFT", 0, -16)
PetPaperDollPetInfo:ClearAllPoints()
PetPaperDollPetInfo:SetPoint("TOPLEFT", PetModelFrame, "TOPLEFT")
PetPaperDollPetInfo:SetFrameLevel(255)
PetResistanceFrame:ClearAllPoints()
PetResistanceFrame:SetPoint("TOPRIGHT", PetModelFrame, "TOPRIGHT")
for i,c in pairs(magicResTextureCords) do
local magicResFrame = _G["PetMagicResFrame"..i]
magicResFrame:SetWidth(26)
magicResFrame:SetHeight(26)
CreateBackdrop(magicResFrame)
SetAllPointsOffset(magicResFrame.backdrop, magicResFrame, 2)
for k,f in pairs({magicResFrame:GetRegions()}) do
if f:GetObjectType() == "Texture" then
f:SetTexCoord(c[1], c[2], c[3], c[4])
SetAllPointsOffset(f, magicResFrame, 3)
end
end
end
end
do -- reputation frame
CreateBackdrop(ReputationFrame, nil, nil, .75)
ReputationFrame.backdrop:SetPoint("TOPLEFT", 10, -12)
ReputationFrame.backdrop:SetPoint("BOTTOMRIGHT", -32, 76)
StripTextures(ReputationFrame)
for i = 1, NUM_FACTIONS_DISPLAYED do
local frame = _G["ReputationBar" .. i]
local header = _G["ReputationHeader"..i]
local name = _G["ReputationBar"..i.."FactionName"]
local war = _G["ReputationBar"..i.."AtWarCheck"]
StripTextures(frame)
CreateBackdrop(frame)
frame:SetStatusBarTexture("Interface\\AddOns\\pfUI\\img\\bar")
StripTextures(war)
war:SetPoint("LEFT", frame, "RIGHT", 0, 0)
war.icon = war:CreateTexture(nil, "OVERLAY")
war.icon:SetPoint("LEFT", 6, -8)
war.icon:SetWidth(32)
war.icon:SetHeight(32)
war.icon:SetTexture("Interface\\Buttons\\UI-CheckBox-SwordCheck")
StripTextures(header)
header:SetNormalTexture(nil)
header.SetNormalTexture = function() return end
header:SetPoint("TOPLEFT", frame, "TOPLEFT", -125, 0)
header.text = header:CreateFontString(nil, "OVERLAY")
header.text:SetFontObject(GameFontWhite)
header.text:SetJustifyH("CENTER")
header.text:SetJustifyV("CENTER")
header.text:SetPoint("LEFT", 0, 0)
header.text:SetWidth(12)
header.text:SetHeight(12)
header.SetNormalTexture = function(self, tex)
self.text:SetText(strfind(tex, "MinusButton") and "-" or "+")
end
header.backdrop = CreateFrame("Frame", nil, header)
header.backdrop:SetAllPoints(header.text)
CreateBackdrop(header.backdrop)
end
StripTextures(ReputationListScrollFrame)
SkinScrollbar(ReputationListScrollFrameScrollBar)
ReputationDetailFrame:ClearAllPoints()
ReputationDetailFrame:SetPoint("TOPLEFT", ReputationFrame, "TOPRIGHT", -26, -28)
CreateBackdrop(ReputationDetailFrame)
StripTextures(ReputationDetailFrame)
SkinCloseButton(ReputationDetailCloseButton, ReputationDetailFrame, -3, -3)
SkinCheckbox(ReputationDetailAtWarCheckBox)
local texWar = ReputationDetailAtWarCheckBox:GetCheckedTexture()
texWar:SetWidth(20)
texWar:SetHeight(20)
SkinCheckbox(ReputationDetailInactiveCheckBox)
SkinCheckbox(ReputationDetailMainScreenCheckBox)
end
do -- skills frame
StripTextures(SkillFrame)
CreateBackdrop(SkillFrame, nil, nil, .75)
SkillFrame.backdrop:SetPoint("TOPLEFT", 10, -12)
SkillFrame.backdrop:SetPoint("BOTTOMRIGHT", -32, 76)
SkillFrameCancelButton:Hide()
SkillFrameExpandButtonFrame:DisableDrawLayer("BACKGROUND")
StripTextures(SkillFrameCollapseAllButton)
SkillFrameCollapseAllButton:SetNormalTexture(nil)
SkillFrameCollapseAllButton.SetNormalTexture = function(self, tex)
self.text:SetText(strfind(tex, "MinusButton") and "-" or "+")
end
SkillFrameCollapseAllButton:SetPoint("LEFT", SkillFrameExpandButtonFrame, "LEFT", -50, 5)
SkillFrameCollapseAllButton.text = SkillFrameCollapseAllButton:CreateFontString(nil, "OVERLAY")
SkillFrameCollapseAllButton.text:SetFontObject(GameFontWhite)
SkillFrameCollapseAllButton.text:SetJustifyH("CENTER")
SkillFrameCollapseAllButton.text:SetJustifyV("CENTER")
SkillFrameCollapseAllButton.text:SetPoint("LEFT", 0, 0)
SkillFrameCollapseAllButton.text:SetWidth(14)
SkillFrameCollapseAllButton.text:SetHeight(14)
SkillFrameCollapseAllButton.backdrop = CreateFrame("Frame", nil, SkillFrameCollapseAllButton)
SkillFrameCollapseAllButton.backdrop:SetAllPoints(SkillFrameCollapseAllButton.text)
CreateBackdrop(SkillFrameCollapseAllButton.backdrop)
for i = 1, SKILLS_TO_DISPLAY do
local lastframe = _G["SkillRankFrame" .. i-1]
local frame = _G["SkillRankFrame" .. i]
local border = _G["SkillRankFrame"..i.."Border"]
local header = _G["SkillTypeLabel"..i]
StripTextures(border)
StripTextures(header)
StripTextures(frame)
frame:SetHeight(12)
if lastframe then
frame:SetPoint("TOPLEFT", lastframe, "BOTTOMLEFT", 0, -6)
end
CreateBackdrop(frame)
frame:SetStatusBarTexture("Interface\\AddOns\\pfUI\\img\\bar")
StripTextures(border)
StripTextures(header)
header:SetNormalTexture(nil)
header:SetPoint("TOPLEFT", frame, "TOPLEFT", -18, 0)
header.text = header:CreateFontString(nil, "OVERLAY")
header.text:SetFontObject(GameFontWhite)
header.text:SetJustifyH("CENTER")
header.text:SetJustifyV("CENTER")
header.text:SetPoint("LEFT", 0, 0)
header.text:SetWidth(10)
header.text:SetHeight(10)
header.SetNormalTexture = function(self, tex)
self.text:SetText(strfind(tex, "MinusButton") and "-" or "+")
end
header.backdrop = CreateFrame("Frame", nil, header)
header.backdrop:SetAllPoints(header.text)
CreateBackdrop(header.backdrop)
StripTextures(SkillListScrollFrame)
SkinScrollbar(SkillListScrollFrameScrollBar)
StripTextures(SkillDetailScrollFrame)
SkinScrollbar(SkillDetailScrollFrameScrollBar)
CreateBackdrop(SkillDetailScrollFrame)
SkillDetailScrollFrame:SetPoint("TOPLEFT", SkillListScrollFrame, "BOTTOMLEFT", 0, -10)
SkillDetailScrollFrame:SetPoint("BOTTOMRIGHT", SkillFrame, "BOTTOMRIGHT", -45, 90)
SkillDetailScrollFrameScrollBar:SetPoint("TOPRIGHT", SkillDetailScrollFrame, "TOPRIGHT", -22, 0)
SkillDetailScrollFrameScrollBar:SetPoint("BOTTOMRIGHT", SkillDetailScrollFrame, "BOTTOMRIGHT", -22, 0)
StripTextures(SkillDetailStatusBar)
CreateBackdrop(SkillDetailStatusBar)
SkillDetailStatusBar:SetStatusBarTexture("Interface\\AddOns\\pfUI\\img\\bar")
SkillDetailStatusBar:SetParent(SkillDetailScrollFrame)
SkillDetailStatusBar:SetFrameLevel(128)
SkillDetailStatusBar:ClearAllPoints()
SkillDetailStatusBar:SetPoint("TOPLEFT", SkillDetailScrollFrame, "TOPLEFT", 10, -10)
SkillDetailStatusBar:SetPoint("TOPRIGHT", SkillDetailScrollFrame, "TOPRIGHT", -30, -40)
StripTextures(SkillDetailStatusBarUnlearnButton)
SkillDetailStatusBarUnlearnButton:SetPoint("LEFT", SkillDetailStatusBar, "RIGHT", -2, -5)
SkillDetailStatusBarUnlearnButton:SetWidth(32)
SkillDetailStatusBarUnlearnButton:SetHeight(32)
SkillDetailStatusBarUnlearnButton.icon = SkillDetailStatusBarUnlearnButton:CreateTexture(nil, "ARTWORK")
SkillDetailStatusBarUnlearnButton.icon:SetPoint("LEFT", 7, 5)
SkillDetailStatusBarUnlearnButton.icon:SetWidth(16)
SkillDetailStatusBarUnlearnButton.icon:SetHeight(16)
SkillDetailStatusBarUnlearnButton.icon:SetTexture("Interface\\Buttons\\UI-GroupLoot-Pass-Up")
end
end
do -- honor tab
CreateBackdrop(HonorFrame, nil, nil, .75)
HonorFrame.backdrop:SetPoint("TOPLEFT", 10, -12)
HonorFrame.backdrop:SetPoint("BOTTOMRIGHT", -32, 76)
StripTextures(HonorFrame)
HonorFrameProgressBar:SetStatusBarTexture("Interface\\AddOns\\pfUI\\img\\bar")
CreateBackdrop(HonorFrameProgressBar)
HonorFrameProgressBar:SetHeight(24)
end
do -- tabs
local CharacterFrame = _G["PaperDollFrame"]
hooksecurefunc("PetTab_Update", function()
CharacterFrameTab1:SetPoint("TOPLEFT", CharacterFrame.backdrop, "BOTTOMLEFT", bpad, -(border + (border == 1 and 1 or 2)))
for i=1, 5 do
local tab = _G["CharacterFrameTab"..i]
SkinTab(tab)
tab.backdrop:SetFrameLevel(1)
if i ~= 1 then
local lastTab = _G["CharacterFrameTab"..(i-1)]
if i == 3 and not HasPetUI() then
lastTab = _G["CharacterFrameTab"..(i-2)]
end
tab:ClearAllPoints()
tab:SetPoint("LEFT", lastTab, "RIGHT", border*2 + 1, 0)
end
end
end, true)
end
end)