X-Git-Url: https://www.aleksib.fi/git/wowui.git/blobdiff_plain/d76a52e46fc339db35e6a068c0f1564db7b9cf46..7cd9b15270a53b3c833f41e00ed755a30e22b2ef:/OmaUF/UnitFrames.lua diff --git a/OmaUF/UnitFrames.lua b/OmaUF/UnitFrames.lua index 815fa17..2c338f0 100644 --- a/OmaUF/UnitFrames.lua +++ b/OmaUF/UnitFrames.lua @@ -51,6 +51,15 @@ local events = { "PLAYER_ENTERING_WORLD", "PLAYER_TARGET_CHANGED", }, + ["pet"] = { + "UNIT_ENTERED_VEHICLE", + "UNIT_EXITED_VEHICLE", + "UNIT_PET", + "PLAYER_ENTERING_WORLD", + "PLAYER_LEVEL_UP", + "PLAYER_REGEN_DISABLED", + "PLAYER_REGEN_ENABLED", + }, }; local M = {}; @@ -68,16 +77,16 @@ local function frameHide(frame) frame:UnregisterAllEvents(); end -local function showTooltip(frame) - GameTooltip_SetDefaultAnchor(GameTooltip, frame); - GameTooltip:SetUnit(frame:GetAttribute("unit")); +local function showTooltip(secure) + GameTooltip_SetDefaultAnchor(GameTooltip, secure); + GameTooltip:SetUnit(secure:GetAttribute("unit")); end -local function hideTooltip(frame) +local function hideTooltip(secure) GameTooltip:FadeOut(); end -local function setupFrame(frame, secure, unit) +local function setupFrame(frame, secure, unit, width, height) secure:SetAttribute("unit", unit); frame:SetAttribute("unit", unit); frame.unit = unit; @@ -90,6 +99,11 @@ local function setupFrame(frame, secure, unit) frame.vehicle = unit.."pet"; end -- create visuals + secure:SetWidth(width+2); + secure:SetHeight(height+2); + frame:SetWidth(width+2); + frame:SetHeight(height+2); + frame.width = width; frame.base = frame:CreateTexture(nil, "BACKGROUND"); frame.base:SetAllPoints(); frame.base:SetColorTexture(1, 1, 1); @@ -144,11 +158,6 @@ local function setupFrame(frame, secure, unit) frame.healabsorb:SetPoint("BOTTOMRIGHT", frame.health, "BOTTOMRIGHT"); frame.healabsorb:SetColorTexture(unpack(healabsorbColor)); frame.healabsorb:Hide(); - frame.overlay = frame:CreateTexture(nil, "ARTWORK", nil, 1); - frame.overlay:SetPoint("TOPLEFT", frame.healthback, "TOPLEFT"); - frame.overlay:SetPoint("BOTTOMRIGHT", frame.healthback, "BOTTOMRIGHT"); - frame.overlay:SetColorTexture(1, 1, 1); - frame.overlay:Hide(); frame.role = frame:CreateTexture(nil, "OVERLAY"); frame.role:SetPoint("TOPLEFT", frame.healthback, "TOPRIGHT", -8, 8); frame.role:SetPoint("BOTTOMRIGHT", frame.healthback, "TOPRIGHT", 8, -8); @@ -168,10 +177,12 @@ local function setupFrame(frame, secure, unit) frame.leader:SetPoint("TOPLEFT", frame.healthback, "TOPLEFT", -6, 6); frame.leader:SetPoint("BOTTOMRIGHT", frame.healthback, "TOPLEFT", 6, -6); frame.leader:Hide(); - frame.name = frame:CreateFontString(nil, "OVERLAY", "GameFontHighlightLarge"); - frame.name:SetPoint("LEFT", frame.healthback, "LEFT", 2, 1); - frame.level = frame:CreateFontString(nil, "OVERLAY", "GameFontHighlight"); - frame.level:SetPoint("LEFT", frame.manaback, "LEFT", 2, 1); + if unit ~= "pet" then + frame.name = frame:CreateFontString(nil, "OVERLAY", "GameFontHighlightLarge"); + frame.name:SetPoint("LEFT", frame.healthback, "LEFT", 2, 1); + frame.level = frame:CreateFontString(nil, "OVERLAY", "GameFontHighlight"); + frame.level:SetPoint("LEFT", frame.manaback, "LEFT", 2, 1); + end -- set scripts frame:SetScript("OnShow", frameShow); frame:SetScript("OnHide", frameHide); @@ -203,16 +214,23 @@ local function initializePlayer(parent) local frame = CreateFrame("Frame", "OmaPlayer", parent); local unit = "player"; secure:SetPoint("CENTER", parent, "CENTER", -300, -175); - secure:SetWidth(width+2); - secure:SetHeight(height+2); frame:SetPoint("CENTER", parent, "CENTER", -300, -175); - frame:SetWidth(width+2); - frame:SetHeight(height+2); - setupFrame(frame, secure, unit); + setupFrame(frame, secure, unit, width, height); + RegisterUnitWatch(frame); + RegisterUnitWatch(secure); + --RegisterStateDriver(secure, "vehicleui", "[vehicleui] vehicle; no"); + --secure:SetAttribute("_onstate-vehicleui", vehicletoggle); +end + +local function initializePet(parent) + local secure = CreateFrame("Button", "OmaPetSecure", parent, inheritedFrames); + local frame = CreateFrame("Frame", "OmaPet", parent); + local unit = "pet"; + secure:SetPoint("TOPRIGHT", parent, "TOPLEFT", -10, 0); + frame:SetPoint("TOPRIGHT", parent, "TOPLEFT", -10, 0); + setupFrame(frame, secure, unit, width/2, height/2); RegisterUnitWatch(frame); RegisterUnitWatch(secure); - RegisterStateDriver(secure, "vehicleui", "[vehicleui] vehicle; no"); - secure:SetAttribute("_onstate-vehicleui", vehicletoggle); end local function initializeTarget(parent) @@ -220,17 +238,11 @@ local function initializeTarget(parent) local frame = CreateFrame("Frame", "OmaTarget", parent); local unit = "target"; secure:SetPoint("CENTER", parent, "CENTER", 300, -175); - secure:SetWidth(width+2); - secure:SetHeight(height+2); frame:SetPoint("CENTER", parent, "CENTER", 300, -175); - frame:SetWidth(width+2); - frame:SetHeight(height+2); - setupFrame(frame, secure, unit); + setupFrame(frame, secure, unit, width, height); createAuraFrame(frame, unit); RegisterUnitWatch(frame); RegisterUnitWatch(secure); - RegisterStateDriver(secure, "vehicleui", "[vehicleui] vehicle; no"); - secure:SetAttribute("_onstate-vehicleui", vehicletoggle); end local function loadCharSettings() @@ -244,6 +256,7 @@ local function initialize() GameTooltip = _G["GameTooltip"]; GameTooltip_SetDefaultAnchor = _G["GameTooltip_SetDefaultAnchor"]; initializePlayer(UIParent); + initializePet(_G["OmaPlayer"]); initializeTarget(UIParent); -- TODO boss frames, pet frame, (arena frames) end @@ -253,7 +266,7 @@ local function hideBlizzardFrames() if hidden then return end hidden = true; - for _, frame in pairs({PlayerFrame, TargetFrame, TargetFrameToT}) do + for _, frame in pairs({PlayerFrame, TargetFrame, TargetFrameToT, PetFrame}) do frame:UnregisterAllEvents(); frame.healthbar:UnregisterAllEvents(); frame.manabar:UnregisterAllEvents();