function M.RegisterEvents(frame)
-- events are taken from FrameXML/CompactUnitFrame.lua
- -- TODO vehicle support, ready check support, raid marker support,
+ -- TODO ready check support, raid marker support,
-- player flags support (/afk, /dnd)
- -- TODO only update for vehicle events here
local displayed = frame.unit ~= frame.displayed and frame.displayed or nil;
- frame:RegisterEvent("PARTY_MEMBER_ENABLE");
- frame:RegisterEvent("PARTY_MEMBER_DISABLE");
- frame:RegisterEvent("UNIT_ENTERED_VEHICLE");
- frame:RegisterEvent("UNIT_EXITED_VEHICLE");
- frame:RegisterEvent("UNIT_PET");
frame:RegisterUnitEvent("UNIT_HEALTH", frame.unit, displayed);
frame:RegisterUnitEvent("UNIT_HEALTH_FREQUENT", frame.unit, displayed);
frame:RegisterUnitEvent("UNIT_MAXHEALTH", frame.unit, displayed);
local registerEvents = M.RegisterEvents;
local function frameShow(frame)
+ frame:RegisterEvent("PARTY_MEMBER_ENABLE");
+ frame:RegisterEvent("PARTY_MEMBER_DISABLE");
+ frame:RegisterEvent("UNIT_ENTERED_VEHICLE");
+ frame:RegisterEvent("UNIT_EXITED_VEHICLE");
+ frame:RegisterEvent("UNIT_PET");
+ frame:RegisterEvent("PLAYER_ROLES_ASSIGNED");
+ frame:RegisterEvent("GROUP_ROSTER_UPDATE");
registerEvents(frame);
frame:SetScript("OnUpdate", unitUpdate);
unitEvent(frame, "UPDATE_ALL_BARS", frame.displayed);
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:SetTexCoord(0.75, 1, 0, 1);
+ 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", 0, 2);