diff --git a/modules/group.lua b/modules/group.lua index 406d34b6..697fe206 100644 --- a/modules/group.lua +++ b/modules/group.lua @@ -2,13 +2,6 @@ pfUI:RegisterModule("group", function () -- do not go further on disabled UFs if C.unitframes.disable == "1" then return end - local default_border = C.appearance.border.default - if C.appearance.border.unitframes ~= "-1" then - default_border = C.appearance.border.unitframes - end - - local spacing = C.unitframes.group.pspace - -- hide blizzard group frames for i=1, 4 do if _G["PartyMemberFrame" .. i] then @@ -19,29 +12,54 @@ pfUI:RegisterModule("group", function () pfUI.uf.group = {} - local startid = C.unitframes.selfingroup == "1" and 0 or 1 - - for i=startid, 4 do - pfUI.uf.group[i] = pfUI.uf:CreateUnitFrame("Party", i, C.unitframes.group) - pfUI.uf.group[i]:UpdateFrameSize() - pfUI.uf.group[i]:SetPoint("TOPLEFT", 5, -5 - ((i-startid)*75)) - UpdateMovable(pfUI.uf.group[i]) - - if C.unitframes.grouptarget.visible == "1" then - pfUI.uf.group[i].target = pfUI.uf:CreateUnitFrame("Party" .. i .. "Target", nil, C.unitframes.grouptarget, 0.2) - pfUI.uf.group[i].target:UpdateFrameSize() - pfUI.uf.group[i].target:SetPoint("TOPLEFT", pfUI.uf.group[i], "TOPRIGHT", 3*default_border, 0) - UpdateMovable(pfUI.uf.group[i].target) + function pfUI.uf.group:UpdateConfig() + local startid = C.unitframes.selfingroup == "1" and 0 or 1 + local spacing = C.unitframes.group.pspace + local default_border = C.appearance.border.default + if C.appearance.border.unitframes ~= "-1" then + default_border = C.appearance.border.unitframes end - if C.unitframes.grouppet.visible == "1" then - pfUI.uf.group[i].pet = pfUI.uf:CreateUnitFrame("PartyPet", i, C.unitframes.grouppet, 0.5) - pfUI.uf.group[i].pet:UpdateFrameSize() - pfUI.uf.group[i].pet:SetPoint("BOTTOMLEFT", pfUI.uf.group[i], "BOTTOMRIGHT", 3*default_border, -default_border) - UpdateMovable(pfUI.uf.group[i].pet) + for i=0, 4 do + local active = i >= 1 or startid == 0 + + if active then + pfUI.uf.group[i] = pfUI.uf.group[i] or pfUI.uf:CreateUnitFrame("Party", i, C.unitframes.group) + pfUI.uf.group[i]:UpdateFrameSize() + pfUI.uf.group[i]:SetPoint("TOPLEFT", 5, -5 - ((i-startid)*75)) + pfUI.uf.group[i]:UpdateConfig() + UpdateMovable(pfUI.uf.group[i]) + elseif pfUI.uf.group[i] then + pfUI.uf.group[i]:UpdateConfig() + RemoveMovable(pfUI.uf.group[i]) + end + + if C.unitframes.grouptarget.visible == "1" and active then + pfUI.uf.group[i].target = pfUI.uf.group[i].target or pfUI.uf:CreateUnitFrame("Party" .. i .. "Target", nil, C.unitframes.grouptarget, 0.2) + pfUI.uf.group[i].target:UpdateFrameSize() + pfUI.uf.group[i].target:SetPoint("TOPLEFT", pfUI.uf.group[i], "TOPRIGHT", 3*default_border, 0) + pfUI.uf.group[i].target:UpdateConfig() + UpdateMovable(pfUI.uf.group[i].target) + elseif pfUI.uf.group[i] and pfUI.uf.group[i].target then + pfUI.uf.group[i].target:UpdateConfig() + RemoveMovable(pfUI.uf.group[i].target) + end + + if C.unitframes.grouppet.visible == "1" and active then + pfUI.uf.group[i].pet = pfUI.uf.group[i].pet or pfUI.uf:CreateUnitFrame("PartyPet", i, C.unitframes.grouppet, 0.5) + pfUI.uf.group[i].pet:UpdateFrameSize() + pfUI.uf.group[i].pet:SetPoint("BOTTOMLEFT", pfUI.uf.group[i], "BOTTOMRIGHT", 3*default_border, -default_border) + pfUI.uf.group[i].pet:UpdateConfig() + UpdateMovable(pfUI.uf.group[i].pet) + elseif pfUI.uf.group[i] and pfUI.uf.group[i].pet then + pfUI.uf.group[i].pet:UpdateConfig() + RemoveMovable(pfUI.uf.group[i].pet) + end end end + pfUI.uf.group:UpdateConfig() + -- scan for group targets if C.unitframes.grouptarget.visible == "1" then pfUI.uf.groupscanner = CreateFrame("Frame", nil, UIParent)