-
Notifications
You must be signed in to change notification settings - Fork 3
/
Engravings.lua
60 lines (48 loc) · 1.45 KB
/
Engravings.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
local myname, ns = ...
Engravings = {}
local sources = Engravings
local origs = {}
local R, G, B = 1, 136/255, 0
local sortedtitles
ns.dbname = "EngravingsDB2"
ns.dbpcname = "EngravingsDBPC"
ns.dbdefaults = {
["ItemID:"] = true,
["SourceID:"] = true,
["VisualID:"] = true,
}
local function IsModuleEnabled(title)
if ns.db[title] or ns.dbpc[title] then return false end
return true
end
local function AddLines(frame, title, line, ...)
if not line then return end
frame:AddDoubleLine(type(title) == "string" and title or "", line, R, G, B, R, G, B)
AddLines(frame, " ", ...)
end
local function OnTooltipSetItem(frame, ...)
if not sortedtitles then
sortedtitles = {}
for title,data in pairs(sources) do table.insert(sortedtitles, title) end
table.sort(sortedtitles, function(a,b)
if a == "Vendor:" then return true
elseif b == "Vendor:" then return false end
return string.lower(a) < string.lower(b)
end)
end
local name, link = frame:GetItem()
local id = link and ns.ids[link]
if id then
for i,title in pairs(sortedtitles) do
local data = sources[title]
if IsModuleEnabled(title) and data[id] then
AddLines(frame, title, string.split("`", data[id]))
end
end
end
if origs[frame] then return origs[frame](frame, ...) end
end
for _,frame in pairs{GameTooltip, ItemRefTooltip, ShoppingTooltip1, ShoppingTooltip2} do
origs[frame] = frame:GetScript("OnTooltipSetItem")
frame:SetScript("OnTooltipSetItem", OnTooltipSetItem)
end