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.

332 lines
12 KiB

4 years ago
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']
-- local cooldown = _G[slot:GetName()..'Cooldown']
AS:SkinTexture(icon)
AS:SetInside(icon)
AS:SkinFrame(Slot)
AS:StyleButton(Slot)
AS:CreateShadow(Slot, true)
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['ReputationHeader'..i]
local factionIndex = factionOffset + i
if ( factionIndex <= numFactions ) then
local name, _, _, _, _, _, atWarWith, canToggleAtWar, isHeader, isCollapsed = GetFactionInfo(factionIndex)
if isHeader then
if isCollapsed then
Header:SetNormalTexture(AS.Media.Textures.Plus)
else
Header:SetNormalTexture(AS.Media.Textures.Minus)
end
Header: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
AS:SkinStatusBar(_G["ReputationBar"..i])
AS:SetOutside(_G["ReputationBar"..i].Backdrop, _G["ReputationBar"..i])
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')