/Tukui/modules/unitframes/core/oUF/elements/qicon.lua

http://github.com/Asphyxia/Tukui · Lua · 45 lines · 38 code · 7 blank · 0 comment · 7 complexity · 4d5b3ad03de107ba19af480df7eb0076 MD5 · raw file

  1. local parent, ns = ...
  2. local oUF = ns.oUF
  3. local Update = function(self, event, unit)
  4. if(unit ~= self.unit) then return end
  5. local qicon = self.QuestIcon
  6. if(UnitIsQuestBoss(unit)) then
  7. return qicon:Show()
  8. else
  9. return qicon:Hide()
  10. end
  11. end
  12. local Path = function(self, ...)
  13. return (self.QuestIcon.Override or Update) (self, ...)
  14. end
  15. local ForceUpdate = function(element)
  16. return Path(element.__owner, 'ForceUpdate', element.__owner.unit)
  17. end
  18. local Enable = function(self)
  19. local qicon = self.QuestIcon
  20. if(qicon) then
  21. qicon.__owner = self
  22. qicon.ForceUpdate = ForceUpdate
  23. self:RegisterEvent('UNIT_CLASSIFICATION_CHANGED', Path)
  24. if(qicon:IsObjectType'Texture' and not qicon:GetTexture()) then
  25. qicon:SetTexture[[Interface\TargetingFrame\PortraitQuestBadge]]
  26. end
  27. return true
  28. end
  29. end
  30. local Disable = function(self)
  31. if(self.QuestIcon) then
  32. self:UnregisterEvent('UNIT_CLASSIFICATION_CHANGED', Path)
  33. end
  34. end
  35. oUF:AddElement('QuestIcon', Path, Enable, Disable)