X-Git-Url: https://www.aleksib.fi/git/wowui.git/blobdiff_plain/a5940de0c59cc9f6acc34c09402dbe137fcf4650..0973648bffbf36772a40bbc76d6c7c786189a900:/OmaRF/RaidFrame.lua diff --git a/OmaRF/RaidFrame.lua b/OmaRF/RaidFrame.lua index f8ca89f..5d94ff0 100644 --- a/OmaRF/RaidFrame.lua +++ b/OmaRF/RaidFrame.lua @@ -5,9 +5,10 @@ local format = string.format; local UnitInRange = UnitInRange; local InCombatLockdown = InCombatLockdown; local CreateFrame, RegisterStateDriver, RegisterUnitWatch = CreateFrame, RegisterStateDriver, RegisterUnitWatch; +local CTimerAfter = C_Timer.After; local STANDARD_TEXT_FONT = STANDARD_TEXT_FONT; -local GameTooltip = nil; -local GameTooltip_SetDefaultAnchor = nil; +local GameTooltip = GameTooltip; +local GameTooltip_SetDefaultAnchor = GameTooltip_SetDefaultAnchor; local registerEvents = OmaRFEvents.RegisterEvents; local registerUnitEvents = OmaRFEvents.RegisterUnitEvents; @@ -29,6 +30,7 @@ local attributes = {}; local CFrame = CreateFrame("Frame", "OmaRFFrame", UIParent); local inheritedFrames = "SecureUnitButtonTemplate,SecureHandlerStateTemplate"; +local barTexture = "Interface\\AddOns\\OmaRF\\images\\minimalist"; local class = nil; local party = {}; local raid = {}; @@ -91,7 +93,7 @@ local function setupFrame(frame, secure, unit) frame.background:SetPoint("BOTTOMRIGHT", frame, "BOTTOMRIGHT", -1, 1); frame.background:SetColorTexture(unpack(bgColor)); frame.health = frame:CreateTexture(nil, "BORDER"); - frame.health:SetTexture("Interface\\RaidFrame\\Raid-Bar-Hp-Fill"); + frame.health:SetTexture(barTexture); frame.health:SetPoint("TOPLEFT", frame.background, "TOPLEFT"); frame.health:SetPoint("BOTTOMLEFT", frame.background, "BOTTOMLEFT"); frame.health:SetVertexColor(unpack(healthColor)); @@ -103,7 +105,8 @@ local function setupFrame(frame, secure, unit) frame.shield = frame:CreateTexture(nil, "BORDER"); frame.shield:SetPoint("TOPLEFT", frame.health, "TOPRIGHT"); frame.shield:SetPoint("BOTTOMLEFT", frame.health, "BOTTOMRIGHT"); - frame.shield:SetColorTexture(unpack(shieldColor)); + frame.shield:SetTexture(barTexture); + frame.shield:SetVertexColor(unpack(shieldColor)); frame.shield:Hide(); frame.shieldhl = frame:CreateTexture(nil, "ARTWORK"); frame.shieldhl:SetPoint("TOPLEFT", frame.background, "TOPRIGHT", -1, 0); @@ -120,16 +123,16 @@ local function setupFrame(frame, secure, unit) frame.healabsorb:SetPoint("BOTTOMRIGHT", frame.health, "BOTTOMRIGHT"); frame.healabsorb:SetColorTexture(unpack(healabsorbColor)); frame.healabsorb:Hide(); - frame.role = frame:CreateTexture(nil, "ARTWORK"); - frame.role:SetPoint("BOTTOMRIGHT", frame.background, "BOTTOMRIGHT", -2, 2); - frame.role:SetPoint("TOPLEFT", frame.background, "BOTTOMRIGHT", -14, 14); - frame.role:SetTexture("Interface\\LFGFRAME\\LFGROLE"); - frame.role:Hide(); frame.overlay = frame:CreateTexture(nil, "ARTWORK", nil, 1); frame.overlay:SetPoint("TOPLEFT", frame.background, "TOPLEFT"); frame.overlay:SetPoint("BOTTOMRIGHT", frame.background, "BOTTOMRIGHT"); frame.overlay:SetColorTexture(1, 1, 1); frame.overlay:Hide(); + frame.role = frame:CreateTexture(nil, "ARTWORK", nil, 2); + frame.role:SetPoint("BOTTOMRIGHT", frame.background, "BOTTOMRIGHT", -2, 2); + frame.role:SetPoint("TOPLEFT", frame.background, "BOTTOMRIGHT", -14, 14); + frame.role:SetTexture("Interface\\LFGFRAME\\LFGROLE"); + frame.role:Hide(); frame.name = frame:CreateFontString(nil, "OVERLAY", "GameFontHighlight"); frame.name:SetPoint("CENTER", frame.background, "CENTER", 0, 11); frame.text = frame:CreateFontString(nil, "OVERLAY", "GameFontHighlight"); @@ -270,12 +273,10 @@ local function initializeFocus(parent) end local function initialize() - -- let other addons hook these to anchor tooltip elsewhere - GameTooltip = _G["GameTooltip"]; - GameTooltip_SetDefaultAnchor = _G["GameTooltip_SetDefaultAnchor"]; _, class = UnitClass("player"); anchorX, anchorY = Settings.Character.AnchorX, Settings.Character.AnchorY; attributes = Settings.Character.Clickheal; + CFrame:SetFrameStrata("LOW"); CFrame:SetPoint("CENTER", nil, "CENTER", anchorX, anchorY); CFrame:SetHeight((height+2)*8); CFrame:SetWidth((width+2)*5); @@ -320,26 +321,35 @@ local function hideBlizzardRaid() hideBlizzardRaidButton(); -- hide focus frame - for _, frame in pairs({FocusFrame, FocusFrameToT}) do + for _, frame in pairs({FocusFrame, FocusFrameToT, FocusFrameSpellBar}) do frame:UnregisterAllEvents(); - frame.healthbar:UnregisterAllEvents(); - frame.manabar:UnregisterAllEvents(); + if frame.healthbar then frame.healthbar:UnregisterAllEvents() end + if frame.manabar then frame.manabar:UnregisterAllEvents() end if frame.spellbar then frame.spellbar:UnregisterAllEvents() end if frame.powerBarAlt then frame.powerBarAlt:UnregisterAllEvents() end frame:Hide(); end end +local function updateTooltipFuncs() + -- let MoveAnything hook these to anchor tooltip elsewhere + GameTooltip = _G["GameTooltip"]; + GameTooltip_SetDefaultAnchor = _G["GameTooltip_SetDefaultAnchor"]; +end + CFrame:RegisterEvent("PLAYER_LOGIN"); +CFrame:RegisterEvent("PLAYER_ENTERING_WORLD"); CFrame:RegisterEvent("PLAYER_REGEN_ENABLED"); CFrame:SetScript("OnEvent", function(self, event, addon) - if event == "PLAYER_LOGIN" then - OmaRFLoadChar(); - hideBlizzardRaid(); - initialize(); - elseif event == "PLAYER_REGEN_ENABLED" then + if event == "PLAYER_REGEN_ENABLED" then -- if CompactRaidFrameManager_UpdateOptionsFlowContainer was called in combat -- couldn't hide the button hideBlizzardRaidButton(); + elseif event == "PLAYER_ENTERING_WORLD" then + CTimerAfter(0.01, updateTooltipFuncs); + elseif event == "PLAYER_LOGIN" then + OmaRFLoadChar(); + hideBlizzardRaid(); + initialize(); end end);