Files
Andrew6810 60ef8a38af init
2022-10-21 07:09:01 -07:00

83 lines
3.0 KiB
Lua

local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
local _G = _G
--WoW API / Variables
local GetPetHappiness = GetPetHappiness
local HasPetUI = HasPetUI
local UnitExists = UnitExists
S:AddCallback("Skin_Stable", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.stable then return end
PetStableFrame:StripTextures()
PetStableFramePortrait:Kill()
PetStableFrame:CreateBackdrop("Transparent")
PetStableFrame.backdrop:Point("TOPLEFT", 11, -12)
PetStableFrame.backdrop:Point("BOTTOMRIGHT", -32, 76)
S:SetUIPanelWindowInfo(PetStableFrame, "width")
S:SetBackdropHitRect(PetStableFrame)
S:HandleCloseButton(PetStableFrameCloseButton, PetStableFrame.backdrop)
S:HandleRotateButton(PetStableModelRotateLeftButton)
S:HandleRotateButton(PetStableModelRotateRightButton)
S:HandleButton(PetStablePurchaseButton)
S:HandleItemButton(PetStableCurrentPet, true)
PetStableCurrentPetIconTexture:SetDrawLayer("OVERLAY")
PetStableModel:Size(325, 224)
PetStableModel:Point("TOPLEFT", 19, -71)
PetStableModelRotateLeftButton:Point("TOPLEFT", PetStableModel, "TOPLEFT", 4, -4)
PetStableModelRotateRightButton:Point("TOPLEFT", PetStableModelRotateLeftButton, "TOPRIGHT", 3, 0)
-- texWidth, texHeight, cropWidth, cropHeight, offsetX, offsetY = 128, 64, 16, 16, 52, 4
PetStablePetInfo:GetRegions():SetTexCoord(0.03125, 0.15625, 0.0625, 0.3125)
PetStablePetInfo:SetFrameLevel(PetModelFrame:GetFrameLevel() + 2)
PetStablePetInfo:CreateBackdrop("Default")
PetStablePetInfo:Size(25)
PetStablePetInfo:Point("TOPLEFT", PetStableModelRotateLeftButton, "BOTTOMLEFT", 10, -4)
PetStableCurrentPet:Point("BOTTOMLEFT", 40, 150)
local function UpdateSlot(self, r, g, b)
if g ~= 1 then
self:SetTexture(.8, .2, .2, .3)
else
self:SetTexture(0, 0, 0, 0)
end
end
for i = 1, NUM_PET_STABLE_SLOTS do
S:HandleItemButton(_G["PetStableStabledPet"..i], true)
_G["PetStableStabledPet"..i.."IconTexture"]:SetDrawLayer("OVERLAY")
local bg = _G["PetStableStabledPet"..i.."Background"]
bg:SetDrawLayer("BORDER")
bg:SetInside()
hooksecurefunc(bg, "SetVertexColor", UpdateSlot)
end
hooksecurefunc("PetStable_Update", function()
local hasPetUI, isHunterPet = HasPetUI()
if hasPetUI and not isHunterPet and UnitExists("pet") then return end
local happiness = GetPetHappiness()
if happiness == 1 then
-- texWidth, texHeight, cropWidth, cropHeight, offsetX, offsetY = 128, 64, 16, 16, 52, 4
PetStablePetInfo:GetRegions():SetTexCoord(0.40625, 0.53125, 0.0625, 0.3125)
elseif happiness == 2 then
-- texWidth, texHeight, cropWidth, cropHeight, offsetX, offsetY = 128, 64, 16, 16, 28, 4
PetStablePetInfo:GetRegions():SetTexCoord(0.21875, 0.34375, 0.0625, 0.3125)
elseif happiness == 3 then
-- texWidth, texHeight, cropWidth, cropHeight, offsetX, offsetY = 128, 64, 16, 16, 52, 4
PetStablePetInfo:GetRegions():SetTexCoord(0.03125, 0.15625, 0.0625, 0.3125)
end
end)
end)