+ frame:RegisterEvent("PLAYER_ENTERING_WORLD");
+ frame:RegisterEvent("PLAYER_ROLES_ASSIGNED");
+ frame:RegisterEvent("READY_CHECK");
+ frame:RegisterEvent("READY_CHECK_FINISHED");
+ frame:RegisterEvent("GROUP_ROSTER_UPDATE");
+ frame:RegisterEvent("RAID_TARGET_UPDATE");
+ if frame.unit == "focus" then frame:RegisterEvent("PLAYER_FOCUS_CHANGED") end
+end
+
+local function unregisterPower(frame)
+ frame.health:SetPoint("BOTTOMLEFT", frame.background, "BOTTOMLEFT");
+ frame.overlay:SetPoint("BOTTOMRIGHT", frame.background, "BOTTOMRIGHT");
+ frame.mana:Hide();
+ frame:UnregisterEvent("PARTY_MEMBER_ENABLE");
+ frame:UnregisterEvent("PARTY_MEMBER_DISABLE");
+ frame:UnregisterEvent("UNIT_POWER");
+ frame:UnregisterEvent("UNIT_MAXPOWER");
+ frame:UnregisterEvent("UNIT_DISPLAYPOWER");
+ frame:UnregisterEvent("UNIT_POWER_BAR_SHOW");
+ frame:UnregisterEvent("UNIT_POWER_BAR_HIDE");
+end
+
+local function registerPower(frame)
+ frame.health:SetPoint("BOTTOMLEFT", frame.background, "BOTTOMLEFT", 0, 2);
+ frame.overlay:SetPoint("BOTTOMRIGHT", frame.background, "BOTTOMRIGHT", 0, 2);
+ frame.mana:Show();
+ frame:RegisterEvent("PARTY_MEMBER_ENABLE");
+ frame:RegisterEvent("PARTY_MEMBER_DISABLE");
+ frame:RegisterUnitEvent("UNIT_POWER", frame.unit);
+ frame:RegisterUnitEvent("UNIT_MAXPOWER", frame.unit);
+ frame:RegisterUnitEvent("UNIT_DISPLAYPOWER", frame.unit);
+ frame:RegisterUnitEvent("UNIT_POWER_BAR_SHOW", frame.unit);
+ frame:RegisterUnitEvent("UNIT_POWER_BAR_HIDE", frame.unit);
+end
+
+function M.RegisterUnitEvents(frame)