v9.7.2: Ebonhold Database integration and core logic refinements
This commit is contained in:
@@ -0,0 +1,99 @@
|
||||
---@class MinimapIcon
|
||||
local MinimapIcon = QuestieLoader:CreateModule("MinimapIcon");
|
||||
local _MinimapIcon = {}
|
||||
-------------------------
|
||||
--Import modules.
|
||||
-------------------------
|
||||
---@type QuestieQuest
|
||||
local QuestieQuest = QuestieLoader:ImportModule("QuestieQuest");
|
||||
---@type QuestieOptions
|
||||
local QuestieOptions = QuestieLoader:ImportModule("QuestieOptions");
|
||||
---@type QuestieJourney
|
||||
local QuestieJourney = QuestieLoader:ImportModule("QuestieJourney");
|
||||
---@type QuestieLib
|
||||
local QuestieLib = QuestieLoader:ImportModule("QuestieLib");
|
||||
---@type QuestieMenu
|
||||
local QuestieMenu = QuestieLoader:ImportModule("QuestieMenu")
|
||||
---@type QuestieCombatQueue
|
||||
local QuestieCombatQueue = QuestieLoader:ImportModule("QuestieCombatQueue")
|
||||
---@type l10n
|
||||
local l10n = QuestieLoader:ImportModule("l10n")
|
||||
|
||||
local _LibDBIcon = LibStub("LibDBIcon-1.0");
|
||||
|
||||
function MinimapIcon:Init()
|
||||
_LibDBIcon:Register("Questie", _MinimapIcon:CreateDataBrokerObject(), Questie.db.profile.minimap);
|
||||
Questie.minimapConfigIcon = _LibDBIcon
|
||||
end
|
||||
|
||||
function _MinimapIcon:CreateDataBrokerObject()
|
||||
local LDBDataObject = LibStub("LibDataBroker-1.1"):NewDataObject("Questie", {
|
||||
type = "data source",
|
||||
text = Questie.db.profile.ldbDisplayText,
|
||||
icon = QuestieLib.AddonPath.."Icons\\complete.blp",
|
||||
|
||||
OnClick = function (_, button)
|
||||
if (not Questie.started) then
|
||||
return
|
||||
end
|
||||
|
||||
if button == "LeftButton" then
|
||||
if IsShiftKeyDown() and IsControlKeyDown() then
|
||||
Questie.db.profile.enabled = (not Questie.db.profile.enabled)
|
||||
QuestieQuest:ToggleNotes(Questie.db.profile.enabled)
|
||||
|
||||
-- Close config window if it's open to avoid desyncing the Checkbox
|
||||
QuestieOptions:HideFrame();
|
||||
return;
|
||||
elseif IsControlKeyDown() then
|
||||
QuestieQuest:SmoothReset()
|
||||
return
|
||||
end
|
||||
|
||||
QuestieMenu:Show()
|
||||
|
||||
if QuestieJourney:IsShown() then
|
||||
QuestieJourney.ToggleJourneyWindow();
|
||||
end
|
||||
|
||||
return;
|
||||
elseif button == "RightButton" then
|
||||
if (not IsModifierKeyDown()) then
|
||||
-- CLose config window if it's open to avoid desyncing the Checkbox
|
||||
QuestieOptions:HideFrame();
|
||||
if InCombatLockdown() then
|
||||
Questie:Print(l10n("Questie will open after combat ends."))
|
||||
end
|
||||
QuestieCombatQueue:Queue(function()
|
||||
QuestieOptions:OpenConfigWindow()
|
||||
end)
|
||||
return;
|
||||
elseif IsControlKeyDown() then
|
||||
Questie.db.profile.minimap.hide = true;
|
||||
Questie.minimapConfigIcon:Hide("Questie");
|
||||
return;
|
||||
end
|
||||
end
|
||||
end,
|
||||
|
||||
OnTooltipShow = function (tooltip)
|
||||
tooltip:AddLine("Questie ".. QuestieLib:GetAddonVersionString(), 1, 1, 1);
|
||||
tooltip:AddLine(Questie:Colorize(l10n('Left Click') , 'gray') .. ": ".. l10n('Toggle Menu'));
|
||||
tooltip:AddLine(Questie:Colorize(l10n('Ctrl + Shift + Left Click') , 'gray') .. ": ".. l10n('Toggle Questie'));
|
||||
tooltip:AddLine(Questie:Colorize(l10n('Right Click') , 'gray') .. ": ".. l10n('Questie Options'));
|
||||
tooltip:AddLine(Questie:Colorize(l10n('Ctrl + Right Click') , 'gray') .. ": ".. l10n('Hide Minimap Button'));
|
||||
tooltip:AddLine(Questie:Colorize(l10n('Ctrl + Left Click'), 'gray') .. ": ".. l10n('Reload Questie'));
|
||||
end,
|
||||
});
|
||||
|
||||
self.LDBDataObject = LDBDataObject
|
||||
|
||||
return LDBDataObject
|
||||
end
|
||||
|
||||
--- Update the LibDataBroker text
|
||||
function MinimapIcon:UpdateText(text)
|
||||
Questie.db.profile.ldbDisplayText = text
|
||||
_MinimapIcon.LDBDataObject.text = text
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user