Fixes Enhanced character frame
Update nameplate coloring. Fix world map blips
This commit is contained in:
@@ -0,0 +1,109 @@
|
||||
local E, L, V, P, G = unpack(ElvUI)
|
||||
local TI = E:NewModule("Enhanced_TooltipIcon", "AceHook-3.0")
|
||||
|
||||
local _G = _G
|
||||
local select, type = select, type
|
||||
local find, match = string.find, string.match
|
||||
|
||||
local GetAchievementInfo = GetAchievementInfo
|
||||
local GetItemIcon = GetItemIcon
|
||||
local GetSpellInfo = GetSpellInfo
|
||||
|
||||
local itemTooltips = {
|
||||
GameTooltip,
|
||||
ItemRefTooltip,
|
||||
ShoppingTooltip1,
|
||||
ShoppingTooltip2
|
||||
}
|
||||
|
||||
local spellTooltips = {
|
||||
GameTooltip,
|
||||
ItemRefTooltip
|
||||
}
|
||||
|
||||
local function AddIcon(self, icon)
|
||||
if not icon then return end
|
||||
|
||||
local title = _G[self:GetName().."TextLeft1"]
|
||||
local text = title and title:GetText()
|
||||
|
||||
if text and not find(text, "|T"..icon) then
|
||||
title:SetFormattedText("|T%s:30:30:0:0:64:64:5:59:5:59|t %s", icon, text)
|
||||
end
|
||||
end
|
||||
|
||||
local function ItemIcon(self)
|
||||
local _, link = self:GetItem()
|
||||
local icon = link and GetItemIcon(link)
|
||||
AddIcon(self, icon)
|
||||
end
|
||||
|
||||
local function SpellIcon(self)
|
||||
local id = self:GetSpell()
|
||||
if id then
|
||||
AddIcon(self, select(3, GetSpellInfo(id)))
|
||||
end
|
||||
end
|
||||
|
||||
local function AchievementIcon(self, link)
|
||||
if type(link) ~= "string" then return end
|
||||
|
||||
local linkType, id = match(link, "^([^:]+):(%d+)")
|
||||
if id and (linkType == "achievement") then
|
||||
AddIcon(self, select(10, GetAchievementInfo(id)))
|
||||
end
|
||||
end
|
||||
|
||||
function TI:ToggleItemsState()
|
||||
local state = E.db.enhanced.tooltip.tooltipIcon.tooltipIconItems and E.db.enhanced.tooltip.tooltipIcon.enable
|
||||
|
||||
for _, tooltip in ipairs(itemTooltips) do
|
||||
if state then
|
||||
if not self:IsHooked(tooltip, "OnTooltipSetItem", ItemIcon) then
|
||||
self:SecureHookScript(tooltip, "OnTooltipSetItem", ItemIcon)
|
||||
end
|
||||
else
|
||||
self:Unhook(tooltip, "OnTooltipSetItem")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function TI:ToggleSpellsState()
|
||||
local state = E.db.enhanced.tooltip.tooltipIcon.tooltipIconSpells and E.db.enhanced.tooltip.tooltipIcon.enable
|
||||
|
||||
for _, tooltip in ipairs(spellTooltips) do
|
||||
if state then
|
||||
if not self:IsHooked(tooltip, "OnTooltipSetSpell", SpellIcon) then
|
||||
self:SecureHookScript(tooltip, "OnTooltipSetSpell", SpellIcon)
|
||||
end
|
||||
else
|
||||
self:Unhook(tooltip, "OnTooltipSetSpell")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function TI:ToggleAchievementsState()
|
||||
local state = E.db.enhanced.tooltip.tooltipIcon.tooltipIconAchievements and E.db.enhanced.tooltip.tooltipIcon.enable
|
||||
|
||||
if state then
|
||||
if not self:IsHooked(GameTooltip, "SetHyperlink", AchievementIcon) then
|
||||
self:SecureHook(GameTooltip, "SetHyperlink", AchievementIcon)
|
||||
end
|
||||
else
|
||||
self:Unhook(GameTooltip, "SetHyperlink")
|
||||
end
|
||||
end
|
||||
|
||||
function TI:Initialize()
|
||||
if not E.db.enhanced.tooltip.tooltipIcon.enable then return end
|
||||
|
||||
self:ToggleItemsState()
|
||||
self:ToggleSpellsState()
|
||||
self:ToggleAchievementsState()
|
||||
end
|
||||
|
||||
local function InitializeCallback()
|
||||
TI:Initialize()
|
||||
end
|
||||
|
||||
E:RegisterModule(TI:GetName(), InitializeCallback)
|
||||
Reference in New Issue
Block a user