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.
337 lines
12 KiB
337 lines
12 KiB
local AS = unpack(AddOnSkins)
|
|
|
|
-- Cache global variables
|
|
--Lua functions
|
|
local _G = _G
|
|
local pairs, select, unpack = pairs, select, unpack
|
|
--WoW API / Variables
|
|
|
|
local hooksecurefunc = hooksecurefunc
|
|
local HasPetUI = HasPetUI
|
|
local GetPetHappiness = GetPetHappiness
|
|
-- GLOBALS:
|
|
|
|
function AS:Blizzard_Character()
|
|
_G.CHARACTERFRAME_EXPANDED_WIDTH = 580
|
|
|
|
AS:StripTextures(_G.PaperDollFrame)
|
|
AS:SkinBackdropFrame(_G.CharacterFrame)
|
|
_G.CharacterFrame.Backdrop:SetPoint('TOPLEFT', 11, -12)
|
|
_G.CharacterFrame.Backdrop:SetPoint('BOTTOMRIGHT', -32, 76)
|
|
AS:CreateShadow(_G.CharacterFrame)
|
|
_G.CharacterFrame.Shadow:SetPoint('TOPLEFT', 8, -9)
|
|
_G.CharacterFrame.Shadow:SetPoint('BOTTOMRIGHT', -29, 73)
|
|
|
|
CharacterModelFrameRotateLeftButton:SetSize(16, 16)
|
|
CharacterModelFrameRotateRightButton:SetSize(16, 16)
|
|
AS:SkinArrowButton(_G.CharacterModelFrameRotateLeftButton)
|
|
_G.CharacterModelFrameRotateLeftButton:SetPoint('TOPLEFT', 2, 1)
|
|
AS:SkinArrowButton(_G.CharacterModelFrameRotateRightButton)
|
|
_G.CharacterModelFrameRotateRightButton:SetPoint('TOPLEFT', _G.CharacterModelFrameRotateLeftButton, 'TOPRIGHT', 3, 0)
|
|
|
|
AS:Kill(_G.CharacterFramePortrait)
|
|
AS:StripTextures(_G.CharacterAttributesFrame)
|
|
AS:SkinBackdropFrame(_G.CharacterAttributesFrame)
|
|
_G.CharacterAttributesFrame.Backdrop:SetPoint('TOPLEFT', -2, 1)
|
|
_G.CharacterAttributesFrame.Backdrop:SetPoint('BOTTOMRIGHT', 2, -5)
|
|
|
|
AS:StripTextures(_G.PetPaperDollFrame)
|
|
AS:StripTextures(_G.PetAttributesFrame)
|
|
AS:SkinBackdropFrame(_G.PetAttributesFrame)
|
|
_G.PetAttributesFrame.Backdrop:SetPoint('TOPLEFT', -2, 2)
|
|
_G.PetAttributesFrame.Backdrop:SetPoint('BOTTOMRIGHT', 2, -2)
|
|
|
|
AS:StripTextures(_G.PetPaperDollFrameExpBar)
|
|
AS:SkinStatusBar(_G.PetPaperDollFrameExpBar)
|
|
AS:SetOutside(_G.PetPaperDollFrameExpBar.Backdrop, _G.PetPaperDollFrameExpBar)
|
|
_G.PetPaperDollFrameExpBar.Backdrop:SetFrameLevel(_G.PetPaperDollFrameExpBar:GetFrameLevel())
|
|
|
|
AS:SkinButton(_G.PetPaperDollCloseButton)
|
|
|
|
PetModelFrameRotateLeftButton:SetSize(16, 16)
|
|
PetModelFrameRotateRightButton:SetSize(16, 16)
|
|
AS:SkinArrowButton(_G.PetModelFrameRotateRightButton)
|
|
_G.PetModelFrameRotateLeftButton:SetPoint('TOPLEFT', 2, 1)
|
|
AS:SkinArrowButton(_G.PetModelFrameRotateLeftButton)
|
|
_G.PetModelFrameRotateRightButton:SetPoint('TOPLEFT', _G.PetModelFrameRotateLeftButton, 'TOPRIGHT', 3, 0)
|
|
|
|
AS:CreateBackdrop(PetPaperDollPetInfo)
|
|
PetPaperDollPetInfo:SetPoint('TOPLEFT', _G.PetModelFrameRotateLeftButton, 'BOTTOMLEFT', 1, -5)
|
|
PetPaperDollPetInfo:SetSize(24, 24)
|
|
|
|
for _, frame in pairs({_G.CharacterAttributesFrame:GetChildren()}) do
|
|
AS:GradientHighlight(frame, nil, AS:CheckOption('HighlightColor'))
|
|
end
|
|
|
|
for _, Slot in pairs({_G.PaperDollItemsFrame:GetChildren()}) do
|
|
local icon = _G[Slot:GetName()..'IconTexture']
|
|
if icon then
|
|
-- local cooldown = _G[slot:GetName()..'Cooldown']
|
|
AS:SkinTexture(icon)
|
|
AS:SetInside(icon)
|
|
AS:SkinFrame(Slot)
|
|
AS:StyleButton(Slot)
|
|
AS:CreateShadow(Slot, true)
|
|
end
|
|
end
|
|
|
|
hooksecurefunc('PaperDollItemSlotButton_Update', function(self, cooldownOnly)
|
|
if not self.SetBackdropBorderColor or cooldownOnly then return end
|
|
|
|
local rarity = GetInventoryItemQuality('player', self:GetID())
|
|
if rarity and rarity > 1 then
|
|
self:SetBackdropBorderColor(GetItemQualityColor(rarity))
|
|
else
|
|
self:SetBackdropBorderColor(unpack(AS.BorderColor))
|
|
end
|
|
end)
|
|
|
|
local ResistanceCoords = {
|
|
[1] = { 0.21875, 0.8125, 0.25, 0.32421875 }, --Arcane
|
|
[2] = { 0.21875, 0.8125, 0.0234375, 0.09765625 }, --Fire
|
|
[3] = { 0.21875, 0.8125, 0.13671875, 0.2109375 }, --Nature
|
|
[4] = { 0.21875, 0.8125, 0.36328125, 0.4375}, --Frost
|
|
[5] = { 0.21875, 0.8125, 0.4765625, 0.55078125}, --Shadow
|
|
}
|
|
|
|
local function HandleResistanceFrame(frameName)
|
|
for i = 1, 5 do
|
|
local frame, icon, text = _G[frameName..i], _G[frameName..i]:GetRegions()
|
|
frame:SetSize(24, 24)
|
|
AS:SetTemplate(frame)
|
|
|
|
if i ~= 1 then
|
|
frame:ClearAllPoints()
|
|
frame:SetPoint('TOP', _G[frameName..i - 1], 'BOTTOM', 0, -1)
|
|
end
|
|
|
|
if icon then
|
|
AS:SetInside(icon)
|
|
icon:SetTexCoord(unpack(ResistanceCoords[i]))
|
|
icon:SetDrawLayer('ARTWORK')
|
|
end
|
|
|
|
if text then
|
|
text:SetDrawLayer('OVERLAY')
|
|
end
|
|
end
|
|
end
|
|
|
|
HandleResistanceFrame('MagicResFrame')
|
|
HandleResistanceFrame('PetMagicResFrame')
|
|
|
|
local function updHappiness(self)
|
|
local happiness = GetPetHappiness()
|
|
local _, isHunterPet = HasPetUI()
|
|
if not happiness or not isHunterPet then return end
|
|
|
|
local texture = self:GetRegions()
|
|
if happiness == 1 then
|
|
texture:SetTexCoord(0.41, 0.53, 0.06, 0.30)
|
|
elseif happiness == 2 then
|
|
texture:SetTexCoord(0.22, 0.345, 0.06, 0.30)
|
|
elseif happiness == 3 then
|
|
texture:SetTexCoord(0.04, 0.15, 0.06, 0.30)
|
|
end
|
|
end
|
|
|
|
PetPaperDollPetInfo:RegisterEvent('UNIT_HAPPINESS')
|
|
PetPaperDollPetInfo:SetScript('OnEvent', updHappiness)
|
|
PetPaperDollPetInfo:SetScript('OnShow', updHappiness)
|
|
|
|
for i = 1, CharacterFrame.numTabs do
|
|
AS:SkinTab(_G["CharacterFrameTab"..i])
|
|
end
|
|
|
|
-- Reputation
|
|
AS:StripTextures(ReputationFrame)
|
|
AS:StripTextures(_G.ReputationListScrollFrame)
|
|
AS:SkinScrollBar(_G.ReputationListScrollFrame.ScrollBar)
|
|
AS:SkinFrame(_G.ReputationDetailFrame)
|
|
|
|
_G.ReputationDetailFrame:SetPoint("TOPLEFT", _G.ReputationFrame, "TOPRIGHT", 4, -28)
|
|
|
|
hooksecurefunc("ReputationFrame_Update", function()
|
|
local factionOffset = FauxScrollFrame_GetOffset(_G.ReputationListScrollFrame)
|
|
local numFactions = GetNumFactions()
|
|
for i = 1, _G.NUM_FACTIONS_DISPLAYED do
|
|
local FactionName = _G["ReputationBar"..i.."FactionName"]
|
|
local Button = _G["ReputationBar"..i.."ExpandOrCollapseButton"]
|
|
local Header = _G['ReputationBar'..i]
|
|
local factionIndex = factionOffset + i
|
|
if ( factionIndex <= numFactions ) then
|
|
local name, _, _, _, _, _, atWarWith, canToggleAtWar, isHeader, isCollapsed = GetFactionInfo(factionIndex)
|
|
if isHeader then
|
|
if isCollapsed then
|
|
Button:SetNormalTexture(AS.Media.Textures.Plus)
|
|
else
|
|
Button:SetNormalTexture(AS.Media.Textures.Minus)
|
|
end
|
|
Button:SetHighlightTexture(nil)
|
|
FactionName:SetTextColor(.9, .8, 0)
|
|
else
|
|
if atWarWith and canToggleAtWar then
|
|
FactionName:SetTextColor(1, .1, .1)
|
|
else
|
|
FactionName:SetTextColor(1, 1, 1)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end)
|
|
|
|
AS:SkinCloseButton(_G.ReputationDetailCloseButton)
|
|
AS:SkinCheckBox(_G.ReputationDetailAtWarCheckBox)
|
|
_G.ReputationDetailAtWarCheckBox:SetCheckedTexture("Interface\\Buttons\\UI-CheckBox-SwordCheck")
|
|
AS:SkinCheckBox(_G.ReputationDetailInactiveCheckBox)
|
|
AS:SkinCheckBox(_G.ReputationDetailMainScreenCheckBox)
|
|
|
|
for i = 1, 15 do
|
|
local frame = _G["ReputationBar"..i]
|
|
local bar = _G["ReputationBar"..i.."ReputationBar"]
|
|
|
|
AS:StripTextures(frame)
|
|
AS:SkinStatusBar(bar)
|
|
AS:SetOutside(bar.Backdrop, bar)
|
|
end
|
|
|
|
-- Skill Frame
|
|
AS:StripTextures(_G.SkillFrame)
|
|
|
|
AS:StripTextures(_G.SkillFrameExpandButtonFrame)
|
|
|
|
hooksecurefunc('SkillFrame_UpdateSkills', function()
|
|
if strfind(_G.SkillFrameCollapseAllButton:GetNormalTexture():GetTexture(), 'MinusButton') then
|
|
_G.SkillFrameCollapseAllButton:SetNormalTexture(AS.Media.Textures.Minus)
|
|
else
|
|
_G.SkillFrameCollapseAllButton:SetNormalTexture(AS.Media.Textures.Plus)
|
|
end
|
|
_G.SkillFrameCollapseAllButton:SetHighlightTexture(nil)
|
|
end)
|
|
|
|
AS:SkinButton(_G.SkillFrameCancelButton)
|
|
|
|
for i = 1, _G.SKILLS_TO_DISPLAY do
|
|
local bar = _G['SkillRankFrame'..i]
|
|
local label = _G['SkillTypeLabel'..i]
|
|
local border = _G['SkillRankFrame'..i..'Border']
|
|
local background = _G['SkillRankFrame'..i..'Background']
|
|
|
|
AS:SkinStatusBar(bar)
|
|
AS:SetOutside(bar.Backdrop, bar, 1, 1)
|
|
AS:StripTextures(border)
|
|
background:SetTexture(nil)
|
|
|
|
label:GetNormalTexture():SetSize(14, 14)
|
|
label:SetHighlightTexture(nil)
|
|
end
|
|
|
|
hooksecurefunc('SkillFrame_SetStatusBar', function(statusBarID, skillIndex, numSkills)
|
|
local skillLine = _G["SkillTypeLabel"..statusBarID]
|
|
if strfind(skillLine:GetNormalTexture():GetTexture(), 'MinusButton') then
|
|
skillLine:SetNormalTexture(AS.Media.Textures.Minus)
|
|
else
|
|
skillLine:SetNormalTexture(AS.Media.Textures.Plus)
|
|
end
|
|
end)
|
|
|
|
AS:StripTextures(_G.SkillListScrollFrame)
|
|
AS:SkinScrollBar(_G.SkillListScrollFrameScrollBar)
|
|
|
|
AS:StripTextures(_G.SkillDetailScrollFrame)
|
|
AS:SkinScrollBar(_G.SkillDetailScrollFrameScrollBar)
|
|
|
|
AS:SkinStatusBar(_G.SkillDetailStatusBar)
|
|
|
|
AS:SkinArrowButton(_G.SkillDetailStatusBarUnlearnButton)
|
|
_G.SkillDetailStatusBarUnlearnButton:SetSize(24, 24)
|
|
_G.SkillDetailStatusBarUnlearnButton:SetPoint('LEFT', _G.SkillDetailStatusBarBorder, 'RIGHT', 5, 0)
|
|
_G.SkillDetailStatusBarUnlearnButton:SetHitRectInsets(0, 0, 0, 0)
|
|
|
|
-- Honor Frame
|
|
AS:StripTextures(PVPFrame)
|
|
end
|
|
|
|
function AS:Blizzard_DressUpFrame()
|
|
AS:SkinFrame(_G.SideDressUpFrame, nil, nil, true)
|
|
AS:SkinButton(_G.SideDressUpModelResetButton)
|
|
AS:SkinCloseButton(_G.SideDressUpModelCloseButton)
|
|
|
|
hooksecurefunc("SetUpSideDressUpFrame", function(parentFrame, closedWidth, openWidth, point, relativePoint, offsetX, offsetY)
|
|
if parentFrame == _G.AuctionFrame then
|
|
_G.SideDressUpFrame:SetPoint(point, parentFrame, relativePoint, 2, offsetY)
|
|
end
|
|
end)
|
|
|
|
AS:SkinBackdropFrame(_G.DressUpFrame)
|
|
AS:SkinCloseButton(_G.DressUpFrameCloseButton)
|
|
AS:SkinButton(_G.DressUpFrameResetButton)
|
|
|
|
_G.DressUpFrame.Backdrop:SetPoint("TOPLEFT", 11, -12)
|
|
_G.DressUpFrame.Backdrop:SetPoint("BOTTOMRIGHT", -32, 76)
|
|
|
|
AS:SkinArrowButton(_G.DressUpModelFrameRotateLeftButton)
|
|
_G.DressUpModelFrameRotateLeftButton:SetPoint('TOPLEFT', DressUpFrame, 25, -79)
|
|
|
|
AS:SkinArrowButton(_G.DressUpModelFrameRotateRightButton)
|
|
_G.DressUpModelFrameRotateRightButton:SetPoint('TOPLEFT', _G.DressUpModelFrameRotateLeftButton, 'TOPRIGHT', 3, 0)
|
|
|
|
DressUpModelFrameRotateLeftButton:SetSize(16, 16)
|
|
DressUpModelFrameRotateRightButton:SetSize(16, 16)
|
|
|
|
_G.DressUpFramePortrait:SetAlpha(0)
|
|
|
|
AS:SkinButton(_G.DressUpFrameCancelButton)
|
|
_G.DressUpFrame.ResetButton:SetPoint("RIGHT", _G.DressUpFrameCancelButton, "LEFT", -2, 0)
|
|
end
|
|
|
|
function AS:Blizzard_Inspect(event, addon)
|
|
if addon ~= "Blizzard_InspectUI" then return end
|
|
|
|
AS:SkinBackdropFrame(_G.InspectPaperDollFrame)
|
|
AS:SkinCloseButton(_G.InspectFrameCloseButton)
|
|
_G.InspectFramePortrait:SetAlpha(0)
|
|
|
|
_G.InspectPaperDollFrame.Backdrop:SetPoint("TOPLEFT", 11, -12)
|
|
_G.InspectPaperDollFrame.Backdrop:SetPoint("BOTTOMRIGHT", -32, 76)
|
|
|
|
AS:SkinBackdropFrame(_G.InspectModelFrame)
|
|
|
|
AS:SkinArrowButton(_G.InspectModelFrameRotateLeftButton)
|
|
_G.InspectModelFrameRotateLeftButton:SetPoint('TOPLEFT', 3, -3)
|
|
|
|
AS:SkinArrowButton(_G.InspectModelFrameRotateRightButton)
|
|
_G.InspectModelFrameRotateRightButton:SetPoint('TOPLEFT', _G.InspectModelFrameRotateLeftButton, 'TOPRIGHT', 3, 0)
|
|
|
|
InspectModelFrameRotateLeftButton:SetSize(16, 16)
|
|
InspectModelFrameRotateRightButton:SetSize(16, 16)
|
|
|
|
for i = 1, _G.InspectFrame.numTabs do
|
|
AS:SkinTab(_G["InspectFrameTab"..i])
|
|
end
|
|
|
|
for _, Slot in pairs({_G.InspectPaperDollItemsFrame:GetChildren()}) do
|
|
if Slot:IsObjectType("Button") or Slot:IsObjectType("ItemButton") then
|
|
AS:SkinTexture(Slot.icon)
|
|
AS:SkinFrame(Slot)
|
|
AS:StyleButton(Slot)
|
|
AS:CreateShadow(Slot, true)
|
|
AS:SetInside(Slot.icon)
|
|
|
|
Slot.IconBorder:SetAlpha(0)
|
|
hooksecurefunc(Slot.IconBorder, 'SetVertexColor', function(self, r, g, b) Slot:SetBackdropBorderColor(r, g, b) end)
|
|
hooksecurefunc(Slot.IconBorder, 'Hide', function(self) Slot:SetBackdropBorderColor(unpack(AS.BorderColor)) end)
|
|
end
|
|
end
|
|
|
|
AS:SkinBackdropFrame(_G.InspectPVPFrame)
|
|
|
|
_G.InspectPVPFrame.Backdrop:SetPoint("TOPLEFT", 11, -12)
|
|
_G.InspectPVPFrame.Backdrop:SetPoint("BOTTOMRIGHT", -32, 76)
|
|
|
|
AS:UnregisterSkinEvent(addon, event)
|
|
end
|
|
|
|
AS:RegisterSkin('Blizzard_Character', AS.Blizzard_Character)
|
|
AS:RegisterSkin('Blizzard_DressUpFrame', AS.Blizzard_DressUpFrame)
|
|
AS:RegisterSkin("Blizzard_Inspect", AS.Blizzard_Inspect, 'ADDON_LOADED')
|
|
|