83 lines
3.0 KiB
Lua
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) |