From dae0b40fe3fd8564a3b08e69221859663d2877c1 Mon Sep 17 00:00:00 2001 From: shagu Date: Wed, 1 Jul 2020 17:29:46 +0200 Subject: [PATCH] raid: add option to limit amount of raidframes --- api/config.lua | 1 + modules/gui.lua | 11 +++++++++++ modules/raid.lua | 24 +++++++++++++++--------- 3 files changed, 27 insertions(+), 9 deletions(-) diff --git a/api/config.lua b/api/config.lua index be0de418..cf9844e0 100644 --- a/api/config.lua +++ b/api/config.lua @@ -206,6 +206,7 @@ function pfUI:LoadConfig() pfUI:UpdateConfig("unitframes", nil, "selfingroup", "0") pfUI:UpdateConfig("unitframes", nil, "selfinraid", "0") pfUI:UpdateConfig("unitframes", nil, "raidforgroup", "0") + pfUI:UpdateConfig("unitframes", nil, "maxraid", "40") pfUI:UpdateConfig("unitframes", nil, "clickcast", "target") pfUI:UpdateConfig("unitframes", nil, "clickcast_shift", "") diff --git a/modules/gui.lua b/modules/gui.lua index cdd0553a..70af3272 100644 --- a/modules/gui.lua +++ b/modules/gui.lua @@ -866,6 +866,16 @@ pfUI:RegisterModule("gui", "vanilla:tbc", function () "8:8 " .. T["Pixel"], "9:9 " .. T["Pixel"], }, + ["maxraid"] = { + "5:5", + "10:10", + "15:15", + "20:20", + "25:25", + "30:30", + "35:35", + "40:40", + }, ["scaling"] = { "0:" .. T["Off"], "4:" .. T["Huge (PixelPerfect)"], @@ -1530,6 +1540,7 @@ pfUI:RegisterModule("gui", "vanilla:tbc", function () CreateConfig(nil, T["Always Show Self In Raid Frames"], C.unitframes, "selfinraid", "checkbox") CreateConfig(nil, T["Show Self In Group Frames"], C.unitframes, "selfingroup", "checkbox") CreateConfig(nil, T["Hide Group Frames While In Raid"], C.unitframes.group, "hide_in_raid", "checkbox") + CreateConfig(nil, T["Max Amount Of Raid Frames"], C.unitframes, "maxraid", "dropdown", pfUI.gui.dropdowns.maxraid) CreateConfig(U[c], T["Colors"], nil, nil, "header") CreateConfig(nil, T["Enable Pastel Colors"], C.unitframes, "pastel", "checkbox") diff --git a/modules/raid.lua b/modules/raid.lua index 076cfaaf..d18d6cbb 100644 --- a/modules/raid.lua +++ b/modules/raid.lua @@ -4,6 +4,7 @@ pfUI:RegisterModule("raid", "vanilla:tbc", function () pfUI.uf.raid = CreateFrame("Frame", "pfRaidUpdater", UIParent) + local maxraid = tonumber(C.unitframes.maxraid) local rawborder, default_border = GetBorderSize("unitframes") local cluster = CreateFrame("Frame", "pfRaidCluster", UIParent) cluster:SetFrameLevel(20) @@ -21,8 +22,9 @@ pfUI:RegisterModule("raid", "vanilla:tbc", function () function pfUI.uf.raid:UpdateConfig() local rawborder, default_border = GetBorderSize("unitframes") + maxraid = tonumber(C.unitframes.maxraid) - for i=1,40 do + for i=1,maxraid do pfUI.uf.raid[i] = pfUI.uf.raid[i] or pfUI.uf:CreateUnitFrame("Raid", i, C.unitframes.raid) pfUI.uf.raid[i]:SetParent(cluster) pfUI.uf.raid[i]:SetFrameLevel(5) @@ -42,16 +44,20 @@ pfUI:RegisterModule("raid", "vanilla:tbc", function () if fill == "VERTICAL" then for r=1, x do for g=1, y do - pfUI.uf.raid[i]:ClearAllPoints() - pfUI.uf.raid[i]:SetPoint("BOTTOMLEFT", (r-1)*(padding+width), (g-1)*(padding+height)) - UpdateMovable(pfUI.uf.raid[i], true) + if pfUI.uf.raid[i] then + pfUI.uf.raid[i]:ClearAllPoints() + pfUI.uf.raid[i]:SetPoint("BOTTOMLEFT", (r-1)*(padding+width), (g-1)*(padding+height)) + UpdateMovable(pfUI.uf.raid[i], true) + end i = i + 1 end end else for g=1, y do for r=1, x do - pfUI.uf.raid[i]:ClearAllPoints() - pfUI.uf.raid[i]:SetPoint("BOTTOMLEFT", (r-1)*(padding+width), (g-1)*(padding+height)) - UpdateMovable(pfUI.uf.raid[i], true) + if pfUI.uf.raid[i] then + pfUI.uf.raid[i]:ClearAllPoints() + pfUI.uf.raid[i]:SetPoint("BOTTOMLEFT", (r-1)*(padding+width), (g-1)*(padding+height)) + UpdateMovable(pfUI.uf.raid[i], true) + end i = i + 1 end end end @@ -69,7 +75,7 @@ pfUI:RegisterModule("raid", "vanilla:tbc", function () function pfUI.uf.raid:AddUnitToGroup(index, group) for subindex = 1, 5 do local ids = subindex + 5*(group-1) - if pfUI.uf.raid[ids].id == 0 and pfUI.uf.raid[ids].config.visible == "1" then + if pfUI.uf.raid[ids] and pfUI.uf.raid[ids].id == 0 and pfUI.uf.raid[ids].config.visible == "1" then SetRaidIndex(pfUI.uf.raid[ids], index) return end @@ -85,7 +91,7 @@ pfUI:RegisterModule("raid", "vanilla:tbc", function () if not UnitInRaid("player") or (InCombatLockdown and InCombatLockdown()) then return end -- clear all existing frames - for i=1, 40 do SetRaidIndex(pfUI.uf.raid[i], 0) end + for i=1, maxraid do SetRaidIndex(pfUI.uf.raid[i], 0) end -- sort tanks into their groups for i=1, GetNumRaidMembers() do