/
local config = bdCore.config["Grid"] |
local raidpartyholder = CreateFrame('frame', "bdGrid", UIParent) |
raidpartyholder:RegisterEvent("GROUP_ROSTER_UPDATE") |
raidpartyholder:RegisterEvent("PLAYER_ENTERING_WORLD") |
raidpartyholder:RegisterEvent("PLAYER_REGEN_ENABLED") |
raidpartyholder:SetSize(config['width'], config['height']*5+8) |
raidpartyholder:EnableMouse() |
raidpartyholder:SetPoint("TOPLEFT", UIParent, "CENTER", -200,(config['height']*5+8)/2) |
raidpartyholder:SetPoint("CENTER", UIParent, "CENTER", -200,40) |
raidpartyholder:SetScript("OnEvent", function(self, event, arg1) |
grid:containerSize() |
end) |
bdCore:makeMovable(raidpartyholder) |
-- make sizes outside of combat |
frame.LFDRole:Hide() |
end |
end |
--[[ |
function grid:containerSize() |
-- local num = GetNumGroupMembers() |
-- local size = math.floor(num/5); |
-- if (size == 0) then |
-- size = 1 |
-- end |
-- if (size > config['num_groups']) then |
-- size = config['num_groups'] |
-- end |
local num = GetNumGroupMembers() |
local size = math.floor(num/5); |
if (size == 0) then |
size = 1 |
end |
if (size > config['num_groups']) then |
size = config['num_groups'] |
end |
if (not UnitAffectingCombat('player')) then |
raidpartyholder:SetSize(config['width'], config['height']+8) |
raidpartyholder:SetWidth(config['width']*size+(2*size)-2) |
end |
end--]] |
end |
-- Load |
function grid.layout(self, unit) |
self.unit = unit |
-- Health |
self.Health = self.Health or CreateFrame("StatusBar", nil, self) |
self.Health = CreateFrame("StatusBar", nil, self) |
self.Health:SetStatusBarTexture(bdCore.media.flat) |
self.Health:SetAllPoints(self) |
self.Health.frequentUpdates = true |
self.TotalAbsorb:SetStatusBarColor(.1,.1,.1,.5) |
end |
end |
-- raid icon |
self.RaidIcon = self.Health:CreateTexture(nil, "OVERLAY", nil, 1) |
self.RaidIcon:SetPoint("TOP", self, "TOP", 0, -2) |
-- absorb |
self.TotalAbsorb = self.TotalAbsorb or CreateFrame('StatusBar', nil, self.Health) |
self.TotalAbsorb = CreateFrame('StatusBar', nil, self.Health) |
--self.TotalAbsorb:SetFrameLevel(20) |
self.TotalAbsorb:SetPoint("TOPLEFT", self.Health, "TOPLEFT", 0, 0) |
self.TotalAbsorb:SetPoint("BOTTOMRIGHT", self.Health, "BOTTOMRIGHT", 0, 0) |
-- Tags |
-- Status (offline/dead) |
self.Status = self.Status or self.Health:CreateFontString(nil) |
self.Status = self.Health:CreateFontString(nil) |
self.Status:SetFont(bdCore.media.font, 12, "OUTLINE") |
self.Status:SetPoint('BOTTOMLEFT', self, "BOTTOMLEFT", 0, 0) |
oUF.Tags.Events["status"] = "UNIT_HEALTH UNIT_CONNECTION" |
end |
-- shortname |
self.Short = self.Short or self.Health:CreateFontString(nil,"OVERLAY") |
self.Short = self.Health:CreateFontString(nil,"OVERLAY") |
self.Short:SetFont(bdCore.media.font, 13) |
self.Short:SetShadowOffset(1,-1) |
self.Short:SetPoint("BOTTOMRIGHT", self, "BOTTOMRIGHT", -1, 1) |
-- Raid Icon |
self.RaidIcon = self.RaidIcon or self.Health:CreateTexture(nil, "OVERLAY", nil, 1) |
self.RaidIcon = self.Health:CreateTexture(nil, "OVERLAY", nil, 1) |
self.RaidIcon:SetSize(12, 12) |
self.RaidIcon:SetPoint("TOP", self, "TOP", 0, -2) |
-- roll icon |
self.LFDRole = self.LFDRole or self.Health:CreateTexture(nil, "OVERLAY") |
self.LFDRole = self.Health:CreateTexture(nil, "OVERLAY") |
self.LFDRole:SetSize(12, 12) |
self.LFDRole:SetPoint("BOTTOMLEFT", self, "BOTTOMLEFT",2,2) |
self.LFDRole.PostUpdate = function(self, role) |
self.Range = false |
-- Readycheck |
self.ReadyCheck = self.ReadyCheck or self.Health:CreateTexture(nil, 'OVERLAY', nil, 7) |
self.ReadyCheck = self.Health:CreateTexture(nil, 'OVERLAY', nil, 7) |
self.ReadyCheck:SetPoint('BOTTOM', self, 'BOTTOM', 0, 2) |
-- ResurrectIcon |
self.ResurrectIcon = self.ResurrectIcon or self.Health:CreateTexture(nil, 'OVERLAY') |
self.ResurrectIcon = self.Health:CreateTexture(nil, 'OVERLAY') |
self.ResurrectIcon:SetPoint('CENTER', self, "CENTER", 0,0) |
-- Threat |
self.Threat = self.Threat or CreateFrame('frame', nil, self) |
self.Threat = CreateFrame('frame', nil, self) |
self.Threat:SetFrameLevel(95) |
self.Threat:SetPoint('TOPRIGHT', self, "TOPRIGHT", 1, 1) |
self.Threat:SetPoint('BOTTOMLEFT', self, "BOTTOMLEFT", -1, -1) |
self.Threat.SetVertexColor = function() return end |
-- Buffs |
self.Buffs = self.Buffs or CreateFrame("Frame", nil, self.Health) |
self.Buffs = CreateFrame("Frame", nil, self.Health) |
self.Buffs:SetPoint("TOPLEFT", self.Health, "TOPLEFT") |
self.Buffs:SetFrameLevel(21) |
end |
-- Dispells |
self.Dispel = self.Dispel or CreateFrame('frame', nil, self.Health) |
self.Dispel = CreateFrame('frame', nil, self.Health) |
self.Dispel:SetFrameLevel(100) |
self.Dispel:SetPoint('TOPRIGHT', self, "TOPRIGHT", 1, 1) |
self.Dispel:SetPoint('BOTTOMLEFT', self, "BOTTOMLEFT", -1, -1) |
end) |
-- Debuffs |
self.Debuffs = self.Debuffs or CreateFrame("Frame", nil, self.Health) |
self.Debuffs = CreateFrame("Frame", nil, self.Health) |
self.Debuffs:SetFrameLevel(21) |
self.Debuffs:SetPoint("CENTER", self.Health, "CENTER") |
-- Enable |
function grid:enable() |
for k, frame in pairs(grid.frames) do |
frame:Kill() |
bdCore:Kill(frame) |
end |
grid.frames = {} |
oUF:Factory(function(self) |
grid:frameSize(frame) |
end |
end |
grid:containerSize() |
end |
grid:RegisterEvent("PLAYER_REGEN_ENABLED") |