diff --git a/api/config.lua b/api/config.lua index 3b823d00..39e8c6dc 100644 --- a/api/config.lua +++ b/api/config.lua @@ -768,7 +768,6 @@ function pfUI:LoadConfig() pfUI:UpdateConfig("thirdparty", "twt", "dock", "0") pfUI:UpdateConfig("thirdparty", "wim", "enable", "1") pfUI:UpdateConfig("thirdparty", "healcomm", "enable", "1") - pfUI:UpdateConfig("thirdparty", "superwow", "enable", "1") pfUI:UpdateConfig("thirdparty", "sortbags", "enable", "1") pfUI:UpdateConfig("thirdparty", "bag_sort", "enable", "1") pfUI:UpdateConfig("thirdparty", "mrplow", "enable", "1") diff --git a/init/modules.xml b/init/modules.xml index 887cd80b..20a6f053 100644 --- a/init/modules.xml +++ b/init/modules.xml @@ -70,4 +70,5 @@ + diff --git a/modules/gui.lua b/modules/gui.lua index 6bfb3356..f3b49419 100644 --- a/modules/gui.lua +++ b/modules/gui.lua @@ -2271,7 +2271,6 @@ pfUI:RegisterModule("gui", "vanilla:tbc", function () CreateConfig(nil, "TW Threatmeter (" .. T["Dock"] .. ")", C.thirdparty.twt, "dock", "checkbox", nil, nil, nil, nil, "vanilla") CreateConfig(nil, "WIM", C.thirdparty.wim, "enable", "checkbox", nil, nil, nil, nil, "vanilla") CreateConfig(nil, "HealComm", C.thirdparty.healcomm, "enable", "checkbox", nil, nil, nil, nil, "vanilla") - CreateConfig(nil, "SuperWoW", C.thirdparty.superwow, "enable", "checkbox", nil, nil, nil, nil, "vanilla") CreateConfig(nil, "SortBags", C.thirdparty.sortbags, "enable", "checkbox", nil, nil, nil, nil, "vanilla") CreateConfig(nil, "Bag_Sort", C.thirdparty.bag_sort, "enable", "checkbox", nil, nil, nil, nil, "tbc") CreateConfig(nil, "MrPlow", C.thirdparty.mrplow, "enable", "checkbox") diff --git a/modules/superwow.lua b/modules/superwow.lua new file mode 100644 index 00000000..94a4637f --- /dev/null +++ b/modules/superwow.lua @@ -0,0 +1,49 @@ +-- Compatibility layer to use castbars provided by SuperWoW: +-- https://github.com/balakethelock/SuperWoW +pfUI:RegisterModule("superwow", "vanilla", function () + local unitcast = CreateFrame("Frame") + unitcast:RegisterEvent("UNIT_CASTEVENT") + unitcast:SetScript("OnEvent", function() + if arg3 == "START" or arg3 == "CAST" or arg3 == "CHANNEL" then + -- human readable argument list + local guid = arg1 + local target = arg2 + local event_type = arg3 + local spell_id = arg4 + local timer = arg5 + local start = GetTime() + + -- get spell info from spell id + local spell, icon, _ + if SpellInfo and SpellInfo(spell_id) then + spell, _, icon = SpellInfo(spell_id) + end + + -- set fallback values + spell = spell or UNKNOWN + icon = icon or "Interface\\Icons\\INV_Misc_QuestionMark" + + -- add cast action to the database + if not libcast.db[guid] then libcast.db[guid] = {} end + libcast.db[guid].cast = spell + libcast.db[guid].rank = nil + libcast.db[guid].start = GetTime() + libcast.db[guid].casttime = timer + libcast.db[guid].icon = icon + libcast.db[guid].channel = event_type == "CHANNEL" or false + + -- write state variable + superwow_active = true + elseif arg3 == "FAIL" then + local guid = arg1 + + -- delete all cast entries of guid + libcast.db[guid].cast = nil + libcast.db[guid].rank = nil + libcast.db[guid].start = nil + libcast.db[guid].casttime = nil + libcast.db[guid].icon = nil + libcast.db[guid].channel = nil + end + end) +end) \ No newline at end of file diff --git a/modules/thirdparty-vanilla.lua b/modules/thirdparty-vanilla.lua index 1449e28b..ace1460d 100644 --- a/modules/thirdparty-vanilla.lua +++ b/modules/thirdparty-vanilla.lua @@ -796,59 +796,6 @@ pfUI:RegisterModule("thirdparty-vanilla", "vanilla", function() end) end) - -- SuperWoW - -- Vanilla: https://github.com/balakethelock/SuperWoW - HookAddonOrVariable("SpellInfo", function() - if C.thirdparty.superwow.enable == "0" then return end - - -- add UnitGUID based casting info to libcast - local unitcast = CreateFrame("Frame") - unitcast:RegisterEvent("UNIT_CASTEVENT") - unitcast:SetScript("OnEvent", function() - if arg3 == "START" or arg3 == "CAST" or arg3 == "CHANNEL" then - -- human readable argument list - local guid = arg1 - local target = arg2 - local event_type = arg3 - local spell_id = arg4 - local timer = arg5 - local start = GetTime() - - -- get spell info from spell id - local spell, icon, _ - if SpellInfo and SpellInfo(spell_id) then - spell, _, icon = SpellInfo(spell_id) - end - - -- set fallback values - spell = spell or UNKNOWN - icon = icon or "Interface\\Icons\\INV_Misc_QuestionMark" - - -- add cast action to the database - if not libcast.db[guid] then libcast.db[guid] = {} end - libcast.db[guid].cast = spell - libcast.db[guid].rank = nil - libcast.db[guid].start = GetTime() - libcast.db[guid].casttime = timer - libcast.db[guid].icon = icon - libcast.db[guid].channel = event_type == "CHANNEL" or false - - -- write state variable - superwow_active = true - elseif arg3 == "FAIL" then - local guid = arg1 - - -- delete all cast entries of guid - libcast.db[guid].cast = nil - libcast.db[guid].rank = nil - libcast.db[guid].start = nil - libcast.db[guid].casttime = nil - libcast.db[guid].icon = nil - libcast.db[guid].channel = nil - end - end) - end) - -- SortBags -- Vanilla: https://github.com/shirsig/SortBags-vanilla HookAddonOrVariable("SortBags", function()