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.
213 lines
8.3 KiB
213 lines
8.3 KiB
-- ========================================================================= --
|
|
-- SylingTracker --
|
|
-- https://www.curseforge.com/wow/addons/sylingtracker --
|
|
-- --
|
|
-- Repository: --
|
|
-- https://github.com/Skamer/SylingTracker --
|
|
-- --
|
|
-- ========================================================================= --
|
|
Syling "SylingTracker" ""
|
|
-- ========================================================================= --
|
|
import "SLT"
|
|
-- ========================================================================= --
|
|
Log = Logger("SylingTracker")
|
|
|
|
Trace = Log:SetPrefix(1, "|cffa9a9a9[SLT:Trace]|r")
|
|
Debug = Log:SetPrefix(2, "|cff808080[SLT:Debug]|r")
|
|
Info = Log:SetPrefix(3, "|cffffffff[SLT:Info]|r")
|
|
Warn = Log:SetPrefix(4, "|cffffff00[SLT:Warn]|r")
|
|
Error = Log:SetPrefix(5, "|cffff0000[SLT:Error]|r")
|
|
Fatal = Log:SetPrefix(6, "|cff8b0000[SLT:Fatal]|r")
|
|
|
|
Log.LogLevel = 3
|
|
Log.UseTimeFormat = false
|
|
Log:AddHandler(print)
|
|
-- ========================================================================= --
|
|
_SLT_VERSION = GetAddOnMetadata("SylingTracker", "Version")
|
|
-- ========================================================================= --
|
|
_SCORPIO_VERSION = tonumber(GetAddOnMetadata("Scorpio", "Version"):match("%d+$"))
|
|
_PLOOP_VERSION = tonumber(GetAddOnMetadata("PLoop", "Version"):match("%d+$"))
|
|
-- ========================================================================= --
|
|
_LibSharedMedia = LibStub("LibSharedMedia-3.0")
|
|
_LibDataBroker = LibStub("LibDataBroker-1.1")
|
|
_LibDBIcon = LibStub("LibDBIcon-1.0")
|
|
-- ========================================================================= --
|
|
_SLT_LOGO = [[Interface\AddOns\SylingTracker\Media\logo]]
|
|
|
|
function OnLoad(self)
|
|
-- Create and init the DB
|
|
_DB = SVManager("SylingTrackerDB")
|
|
|
|
-- Regiser the options
|
|
Settings.Register("replace-blizzard-objective-tracker", true, "Blizzard/UpdateTrackerVisibility")
|
|
|
|
-- Register the callbacks
|
|
CallbackManager.Register("Blizzard/UpdateTrackerVisibility", Callback(function(replace) BLIZZARD_TRACKER_VISIBLITY_CHANGED(not replace) end))
|
|
|
|
--
|
|
_DB:SetDefault{ dbVersion = 1 }
|
|
_DB:SetDefault{ minimap = { hide = false }}
|
|
|
|
-- Setup the minimap button
|
|
self:SetupMinimapButton()
|
|
end
|
|
|
|
function OnEnable(self)
|
|
BLIZZARD_TRACKER_VISIBLITY_CHANGED(not Settings.Get("replace-blizzard-objective-tracker"))
|
|
end
|
|
|
|
|
|
__SystemEvent__()
|
|
function BLIZZARD_TRACKER_VISIBLITY_CHANGED(isVisible)
|
|
local wasInitialized = false
|
|
if not ObjectiveTrackerFrame.initialized then
|
|
ObjectiveTracker_Initialize(ObjectiveTrackerFrame)
|
|
wasInitilized = true
|
|
end
|
|
|
|
if isVisible and not wasInitialized then
|
|
ObjectiveTrackerFrame:SetScript("OnEvent", ObjectiveTracker_OnEvent)
|
|
WorldMapFrame:RegisterCallback("SetFocusedQuestID", ObjectiveTracker_OnFocusedQuestChanged, ObjectiveTrackerFrame)
|
|
WorldMapFrame:RegisterCallback("ClearFocusedQuestID", ObjectiveTracker_OnFocusedQuestChanged, ObjectiveTrackerFrame)
|
|
|
|
ObjectiveTrackerFrame:Show()
|
|
ObjectiveTracker_Update()
|
|
else
|
|
ObjectiveTrackerFrame:Hide()
|
|
|
|
ObjectiveTrackerFrame:SetScript("OnEvent", nil)
|
|
WorldMapFrame:UnregisterCallback("SetFocusedQuestID", ObjectiveTrackerFrame)
|
|
WorldMapFrame:UnregisterCallback("ClearFocusedQuestID", ObjectiveTrackerFrame)
|
|
end
|
|
end
|
|
|
|
function OnQuit(self)
|
|
-- Do a clean in the database (remove empty table) when the player log out
|
|
Database.Clean()
|
|
end
|
|
|
|
function SetupMinimapButton(self)
|
|
local LDBObject = _LibDataBroker:NewDataObject("SylingTracker", {
|
|
type = "launcher",
|
|
icon = _SLT_LOGO,
|
|
OnClick = function(_, button, down)
|
|
|
|
end,
|
|
|
|
OnTooltipShow = function(tooltip)
|
|
tooltip:AddDoubleLine("Syling Tracker", _SLT_VERSION, 1, 106/255, 0, 1, 1, 1)
|
|
end
|
|
})
|
|
|
|
_LibDBIcon:Register("SylingTracker", LDBObject, _DB.minimap)
|
|
end
|
|
|
|
|
|
-- __SlashCmd__ "slt" "config"
|
|
-- function OpenOptions()
|
|
-- local loaded, reason = LoadAddOn("SylingTracker_Options")
|
|
-- end
|
|
|
|
__SlashCmd__ "slt" "bot" "- enable/disable the blizzard objective tracker"
|
|
function ToggleBlizzardObjectiveTracker()
|
|
Settings.Set("replace-blizzard-objective-tracker", ObjectiveTrackerFrame:IsShown())
|
|
end
|
|
|
|
__SlashCmd__ "slt" "lock" "- lock the Tracker and the Item Bar, preventing them to be moved or resized"
|
|
function LockCommand()
|
|
_M:FireSystemEvent("SLT_LOCK_COMMAND")
|
|
end
|
|
|
|
__SlashCmd__ "slt" "unlock" "- unlock the Tracker and the Item Bar, allowing you to resize or move them"
|
|
function UnlockCommand()
|
|
_M:FireSystemEvent("SLT_UNLOCK_COMMAND")
|
|
end
|
|
|
|
__SlashCmd__ "slt" "show" "- show the Tracker and the Item bar"
|
|
function ShowCommand()
|
|
_M:FireSystemEvent("SLT_SHOW_COMMAND")
|
|
end
|
|
|
|
__SlashCmd__ "slt" "hide" "- hide the Tracker and the Item Bar"
|
|
function HideCommand()
|
|
_M:FireSystemEvent("SLT_HIDE_COMMAND")
|
|
end
|
|
|
|
__SlashCmd__ "slt" "toggle" "- toggle the Tracker and the Item Bar"
|
|
function ToggleCommand()
|
|
_M:FireSystemEvent("SLT_TOGGLE_COMMAND")
|
|
end
|
|
|
|
__SlashCmd__ "slt" "scrollstep" "- set the scroll sensibility (default: 15)"
|
|
function SetScrollStepCommand(info)
|
|
local val = tonumber(info)
|
|
|
|
if val then
|
|
_M:FireSystemEvent("SLT_SCROLL_STEP_COMMAND", val)
|
|
end
|
|
end
|
|
|
|
__SlashCmd__ "slt" "log" "- set the log level"
|
|
function SetLogLevel(info)
|
|
local val = tonumber(info)
|
|
|
|
Info("Set the Log Level to %i", val)
|
|
Log.LogLevel = val
|
|
end
|
|
|
|
__SlashCmd__ "slt" "qcat" "- toggle the displaying of categories for quests"
|
|
function ToggleQuestCategories()
|
|
_M:FireSystemEvent("SLT_TOGGLE_QUEST_CATEGORIES_COMMAND")
|
|
end
|
|
|
|
__SlashCmd__ "slt" "minimap" "- toggle the minimap button"
|
|
function ToggleMinimapButton()
|
|
local isHidden = not _DB.minimap.hide
|
|
|
|
if isHidden then
|
|
_LibDBIcon:Hide("SylingTracker")
|
|
else
|
|
_LibDBIcon:Show("SylingTracker")
|
|
end
|
|
|
|
_DB.minimap.hide = isHidden
|
|
end
|
|
|
|
__SystemEvent__()
|
|
function PLAYER_ENTERING_WORLD(initialLogin, reloadingUI)
|
|
IsInitialLogin = initialLogin
|
|
IsReloadingUI = reloadingUI
|
|
end
|
|
|
|
-------------------------------------------------------------------------------
|
|
-- LibSharedMedia: register the fonts
|
|
-------------------------------------------------------------------------------
|
|
_Fonts = {
|
|
-- PT Sans Family Fonts
|
|
["PT Sans"] = [[Interface\AddOns\SylingTracker\Media\Fonts\PTSans-Regular.ttf]],
|
|
["PT Sans Bold"] = [[Interface\AddOns\SylingTracker\Media\Fonts\PTSans-Bold.ttf]],
|
|
["PT Sans Bold Italic"] = [[Interface\AddOns\SylingTracker\Media\Fonts\PTSans-Bold-Italic.ttf]],
|
|
["PT Sans Narrow"] = [[Interface\AddOns\SylingTracker\Media\Fonts\PTSans-Narrow.ttf]],
|
|
["PT Sans Narrow Bold"] = [[Interface\AddOns\SylingTracker\Media\Fonts\PTSans-Narrow-Bold.ttf]],
|
|
["PT Sans Caption"] = [[Interface\AddOns\SylingTracker\Media\Fonts\PTSans-Caption.ttf]],
|
|
["PT Sans Caption Bold"] = [[Interface\AddOns\SylingTracker\Media\Fonts\PTSans-Caption-Bold.ttf]],
|
|
-- DejaVuSans Family Fonts
|
|
["Deja Vu Sans"] = [[Interface\AddOns\SylingTracker\Media\Fonts\DejaVuSans.ttf]],
|
|
["Deja Vu Sans Bold"] = [[Interface\AddOns\SylingTracker\Media\Fonts\DejaVuSans-Bold.ttf]],
|
|
["Deja Vu Sans Bold Italic"] = [[Interface\AddOns\SylingTracker\Media\Fonts\DejaVuSans-BoldOblique.ttf]],
|
|
["DejaVuSansCondensed"] = [[Interface\AddOns\SylingTracker\Media\Fonts\DejaVuSansCondensed.ttf]],
|
|
["DejaVuSansCondensed Bold"] = [[Interface\AddOns\SylingTracker\Media\Fonts\DejaVuSansCondensed-Bold.ttf]],
|
|
["DejaVuSansCondensed Bold Italic"] = [[Interface\AddOns\SylingTracker\Media\Fonts\DejaVuSansCondensed-BoldOblique.ttf]],
|
|
["DejaVuSansCondensed Italic"] = [[Interface\AddOns\SylingTracker\Media\Fonts\DejaVuSansCondensed-Oblique.ttf]]
|
|
|
|
}
|
|
|
|
for fontName, fontFile in pairs(_Fonts) do
|
|
_LibSharedMedia:Register("font", fontName, fontFile)
|
|
end
|
|
-- -------------------------------------------------------------------------------
|
|
-- LibSharedMedia: register the backgounds
|
|
-------------------------------------------------------------------------------
|
|
_LibSharedMedia:Register("background", "SylingTracker Background", [[Interface\AddOns\SylingTracker\Media\Textures\Frame-Background]])
|
|
|
|
|
|
|