0aaffce1e9
QuestieOptions.tabs.{auto,dbm,icons,nameplate} were initialized with {...}
instead of {}. At file scope in Lua 5.1 this silently captures the addon
varargs into the table; in Lua 5.0 it is a parse error. All sibling tabs use
{}. No behavioral change (Initialize repopulates the table).
201 lines
10 KiB
Lua
201 lines
10 KiB
Lua
-------------------------
|
|
--Import modules.
|
|
-------------------------
|
|
---@type QuestieQuest
|
|
local QuestieQuest = QuestieLoader:ImportModule("QuestieQuest");
|
|
---@type QuestieOptions
|
|
local QuestieOptions = QuestieLoader:ImportModule("QuestieOptions");
|
|
---@type QuestieOptionsDefaults
|
|
local QuestieOptionsDefaults = QuestieLoader:ImportModule("QuestieOptionsDefaults");
|
|
---@type QuestieOptionsUtils
|
|
local QuestieOptionsUtils = QuestieLoader:ImportModule("QuestieOptionsUtils");
|
|
---@type QuestieDBMIntegration
|
|
local QuestieDBMIntegration = QuestieLoader:ImportModule("QuestieDBMIntegration");
|
|
---@type l10n
|
|
local l10n = QuestieLoader:ImportModule("l10n")
|
|
|
|
QuestieOptions.tabs.dbm = {}
|
|
local optionsDefaults = QuestieOptionsDefaults:Load()
|
|
|
|
|
|
--TODO, hid hud tab if DBMHudMap global doesn't exist? Or at very least gray out options?
|
|
--dbmHUDEnable, dbmHUDShowAlert, DBMHUDZoom, dbmHUDRadius, dbmHUDShowQuest, dbmHUDShowSlay, dbmHUDShowLoot, dbmHUDShowInteract
|
|
function QuestieOptions.tabs.dbm:Initialize()
|
|
return {
|
|
name = function() return l10n('DBM HUD'); end,
|
|
type = "group",
|
|
disabled = function() if DBM and DBM.HudMap then return false else return true end end,
|
|
hidden = function() if DBM and DBM.HudMap then return false else return true end end,
|
|
order = 6,
|
|
args = {
|
|
info_prespacer = QuestieOptionsUtils:Spacer(0),
|
|
info_text = {
|
|
type = "description",
|
|
order = 0.1,
|
|
name = function() return Questie:Colorize(l10n('The DBM HUD integrates with the addon DeadlyBossMods to show a radar of objective icons on your entire screen. Enabling this feature usually requires a /reload to take effect.'), 'gray'); end,
|
|
fontSize = "medium",
|
|
},
|
|
info_postspacer = QuestieOptionsUtils:Spacer(0.2),
|
|
hud_options = {
|
|
type = "header",
|
|
order = 1,
|
|
name = function() return l10n('DBM HUD'); end,
|
|
},
|
|
dbmHUDEnable = {
|
|
type = "toggle",
|
|
order = 1.1,
|
|
name = function() return l10n('Show DBM HUD'); end,
|
|
desc = function() return l10n('Enable or disable the DBM Heads Up Display (HUD) overlay for showing map objects.'); end,
|
|
width = "full",
|
|
get = function(info) return QuestieOptions:GetProfileValue(info); end,
|
|
set = function (info, value)
|
|
QuestieOptions:SetProfileValue(info, value)
|
|
|
|
if value then
|
|
QuestieDBMIntegration:EnableHUD()
|
|
--Hud Integration is completely innert when disabled, so QuestieDBMIntegration:SoftReset() cannot be used since it has no local tables
|
|
--Questies SmoothReset must be used after enabling hud so that HUD can build it's own tables when initial icons get added
|
|
QuestieQuest:SmoothReset()
|
|
else
|
|
QuestieDBMIntegration:ClearAll(true)--Passing true unregisters events and completely disables HUD activity after the ClearAll
|
|
end
|
|
end,
|
|
},
|
|
dbmHUDShowAlert = {
|
|
type = "toggle",
|
|
order = 1.2,
|
|
name = function() return l10n('Enable proximity visual for HUD icons'); end,
|
|
desc = function() return l10n('Changes the color of a HUD icon to red when you are near it.'); end,
|
|
width = "full",
|
|
disabled = function() return not Questie.db.profile.dbmHUDEnable end,
|
|
get = function(info) return QuestieOptions:GetProfileValue(info); end,
|
|
set = function (info, value)
|
|
QuestieOptions:SetProfileValue(info, value)
|
|
QuestieDBMIntegration:SoftReset()
|
|
end,
|
|
},
|
|
DBMHUDRefresh = {
|
|
type = "range",
|
|
disabled = function()
|
|
if not Questie.db.profile.dbmHUDEnable then
|
|
return true
|
|
elseif DBM and DBM.HudMap and not DBM.HudMap.Version then
|
|
return true
|
|
else
|
|
return false
|
|
end
|
|
end,
|
|
order = 1.3,
|
|
name = function() return l10n('Refresh rate for HUD (Requires turning HUD off/on)'); end,
|
|
desc = function() return l10n('Adjusts the fresh rate for HUD Icons which affects how often UI refreshes their position. (Default: %s)', optionsDefaults.profile.DBMHUDRefresh); end,
|
|
width = "double",
|
|
min = 0.01,
|
|
max = 0.05,
|
|
step = 0.01,
|
|
get = function(info) return QuestieOptions:GetProfileValue(info); end,
|
|
set = function (info, value)
|
|
QuestieOptions:SetProfileValue(info, value)
|
|
QuestieDBMIntegration:ChangeRefreshRate(value)
|
|
end,
|
|
},
|
|
Spacer_A = QuestieOptionsUtils:Spacer(1.9),
|
|
mapnote_options = {
|
|
type = "header",
|
|
order = 2,
|
|
name = function() return l10n('Size & Scale Options'); end,
|
|
},
|
|
Spacer_B = QuestieOptionsUtils:Spacer(2.1),
|
|
DBMHUDZoom = {
|
|
type = "range",
|
|
order = 2.2,
|
|
name = function() return l10n('Global zoom level for HUD Icons'); end,
|
|
desc = function() return l10n('Adjusts the zoom level for HUD Icons which affects how close in or how far out you see them. (Default: %s)', optionsDefaults.profile.DBMHUDZoom); end,
|
|
width = "double",
|
|
min = 40,
|
|
max = 200,
|
|
step = 20,
|
|
disabled = function() return not Questie.db.profile.dbmHUDEnable end,
|
|
get = function(info) return QuestieOptions:GetProfileValue(info); end,
|
|
set = function (info, value)
|
|
QuestieOptions:SetProfileValue(info, value)
|
|
QuestieDBMIntegration:ChangeZoomLevel(value)
|
|
end,
|
|
},
|
|
dbmHUDRadius = {
|
|
type = "range",
|
|
order = 2.3,
|
|
name = function() return l10n('Global radius/size for HUD Icons'); end,
|
|
desc = function() return l10n('Adjusts the size of the icons that appear on the DBM HUD. (Default: %s)', optionsDefaults.profile.dbmHUDRadius); end,
|
|
width = "double",
|
|
min = 1,
|
|
max = 5,
|
|
step = 0.5,
|
|
disabled = function() return not Questie.db.profile.dbmHUDEnable end,
|
|
get = function(info) return QuestieOptions:GetProfileValue(info); end,
|
|
set = function (info, value)
|
|
QuestieOptions:SetProfileValue(info, value)
|
|
QuestieDBMIntegration:SoftReset()
|
|
end,
|
|
},
|
|
Spacer_C = QuestieOptionsUtils:Spacer(2.9),
|
|
fade_options = {
|
|
type = "header",
|
|
order = 3,
|
|
name = function() return l10n('Filter Options'); end,
|
|
},
|
|
dbmHUDShowQuest = {
|
|
type = "toggle",
|
|
order = 3.1,
|
|
name = function() return l10n('Show quest giver icons'); end,
|
|
desc = function() return l10n('Toggles whether or not available/complete quest icons appear on the DBM HUD. (Default: %s)', optionsDefaults.profile.dbmHUDShowQuest); end,
|
|
width = "full",
|
|
disabled = function() return not Questie.db.profile.dbmHUDEnable end,
|
|
get = function(info) return QuestieOptions:GetProfileValue(info); end,
|
|
set = function (info, value)
|
|
QuestieOptions:SetProfileValue(info, value)
|
|
QuestieDBMIntegration:SoftReset()
|
|
end,
|
|
},
|
|
dbmHUDShowSlay = {
|
|
type = "toggle",
|
|
order = 3.2,
|
|
name = function() return l10n('Show slay icons'); end,
|
|
desc = function() return l10n('Toggles whether or not slay icons appear on the DBM HUD. (Default: %s)', optionsDefaults.profile.dbmHUDShowSlay); end,
|
|
width = "full",
|
|
disabled = function() return not Questie.db.profile.dbmHUDEnable end,
|
|
get = function(info) return QuestieOptions:GetProfileValue(info); end,
|
|
set = function (info, value)
|
|
QuestieOptions:SetProfileValue(info, value)
|
|
QuestieDBMIntegration:SoftReset()
|
|
end,
|
|
},
|
|
dbmHUDShowLoot = {
|
|
type = "toggle",
|
|
order = 3.3,
|
|
name = function() return l10n('Show loot icons'); end,
|
|
desc = function() return l10n('Toggles whether or not loot icons appear on the DBM HUD. (Default: %s)', optionsDefaults.profile.dbmHUDShowLoot); end,
|
|
width = "full",
|
|
disabled = function() return not Questie.db.profile.dbmHUDEnable end,
|
|
get = function(info) return QuestieOptions:GetProfileValue(info); end,
|
|
set = function (info, value)
|
|
QuestieOptions:SetProfileValue(info, value)
|
|
QuestieDBMIntegration:SoftReset()
|
|
end,
|
|
},
|
|
dbmHUDShowInteract = {
|
|
type = "toggle",
|
|
order = 3.4,
|
|
name = function() return l10n('Show object interact icons'); end,
|
|
desc = function() return l10n('Toggles whether or not object (gear) icons appear on the DBM HUD. (Default: %s)', optionsDefaults.profile.dbmHUDShowInteract); end,
|
|
width = "full",
|
|
disabled = function() return not Questie.db.profile.dbmHUDEnable end,
|
|
get = function(info) return QuestieOptions:GetProfileValue(info); end,
|
|
set = function (info, value)
|
|
QuestieOptions:SetProfileValue(info, value)
|
|
QuestieDBMIntegration:SoftReset()
|
|
end,
|
|
},
|
|
},
|
|
}
|
|
end
|