You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

48 lines
1.5 KiB

local MODULE_NAME = "Narcissus_Achievements";
local Loader = CreateFrame("Frame");
Loader:RegisterEvent("PLAYER_ENTERING_WORLD");
Loader:SetScript("OnEvent", function(self, event, ...)
if event == "ADDON_LOADED" then
local name = ...
if name == MODULE_NAME then
self:UnregisterEvent(event);
self:OnAddOnLoaded();
end
elseif event == "PLAYER_ENTERING_WORLD" then
self:UnregisterEvent(event);
self:EnableAchievementPanel();
end
end)
function Loader:LoadAchievementPanel()
Loader:RegisterEvent("ADDON_LOADED");
EnableAddOn(MODULE_NAME); --Forced Enable
local loaded, reason = LoadAddOn(MODULE_NAME);
end
function Loader:OnAddOnLoaded()
local frame = Narci_AchievementFrame;
if frame then
frame:Init();
if self.pendingAchievementID then
C_Timer.After(0.5, function()
frame:LocateAchievement(self.pendingAchievementID, self.clickAgainToClose);
self.pendingAchievementID = nil;
end)
end
end
end
function Loader:EnableAchievementPanel()
if NarciAchievementOptions.UseAsDefault then
Narci.RedirectPrimaryAchievementFrame();
end
end
Narci.LoadAchievementPanel = function(achievementID, clickAgainToClose)
Loader.pendingAchievementID = achievementID; --Load panel then go to this achievement
Loader.clickAgainToClose = clickAgainToClose;
Loader:LoadAchievementPanel();
end