293 lines
11 KiB
Lua
293 lines
11 KiB
Lua
---@type QuestieOptions
|
|
local QuestieOptions = QuestieLoader:ImportModule("QuestieOptions")
|
|
---@type Sounds
|
|
local Sounds = QuestieLoader:ImportModule("Sounds")
|
|
---@type l10n
|
|
local l10n = QuestieLoader:ImportModule("l10n")
|
|
|
|
local tinsert = table.insert
|
|
|
|
local _GetQuestSoundChoices
|
|
local _GetQuestSoundChoicesSort
|
|
local _GetObjectiveSoundChoices
|
|
local _GetObjectiveSoundChoicesSort
|
|
local _GetObjectiveProgressSoundChoices
|
|
local _GetObjectiveProgressSoundChoicesSort
|
|
|
|
QuestieOptions.tabs.sounds = {...}
|
|
|
|
function QuestieOptions.tabs.sounds:Initialize()
|
|
|
|
return {
|
|
name = function()
|
|
return l10n('Sounds');
|
|
end,
|
|
type = "group",
|
|
order = 17,
|
|
args = {
|
|
questCompleteSound = {
|
|
type = "toggle",
|
|
order = 2.11,
|
|
name = function() return l10n('Quest completed'); end,
|
|
desc = function() return l10n('Play a short sound when completing a quest when it is ready to turn in.'); end,
|
|
width = 1.2,
|
|
get = function() return Questie.db.profile.soundOnQuestComplete; end,
|
|
set = function(_, value)
|
|
Questie.db.profile.soundOnQuestComplete = value
|
|
end,
|
|
},
|
|
questCompleteSoundButton = {
|
|
type = "execute",
|
|
order = 2.12,
|
|
name = "",
|
|
width = 0.5,
|
|
image = function()
|
|
return "Interface\\OptionsFrame\\VoiceChat-Play", 15, 15
|
|
end,
|
|
func = function()
|
|
PlaySoundFile(Sounds.GetSelectedSoundFile(Questie.db.profile.questCompleteSoundChoiceName), "Master")
|
|
end
|
|
},
|
|
questCompleteSoundChoice = {
|
|
type = "select",
|
|
order = 2.13,
|
|
values = _GetQuestSoundChoices(),
|
|
sorting = _GetQuestSoundChoicesSort(),
|
|
style = 'dropdown',
|
|
name = function() return l10n('Quest Complete Sound Selection') end,
|
|
desc = function() return l10n('The sound you hear when a quest is completed'); end,
|
|
get = function() return Questie.db.profile.questCompleteSoundChoiceName or "None"; end,
|
|
disabled = function() return (not Questie.db.profile.soundOnQuestComplete); end,
|
|
set = function(_, value)
|
|
Questie.db.profile.questCompleteSoundChoiceName = value
|
|
end,
|
|
},
|
|
soundLineBreak = {
|
|
type = "description",
|
|
name = " ",
|
|
width = 0.1,
|
|
order = 2.135,
|
|
},
|
|
objectiveCompleteSound = {
|
|
type = "toggle",
|
|
order = 2.14,
|
|
name = function() return l10n('Quest objective completed'); end,
|
|
desc = function() return l10n('Play a short sound when completing a quest objective.'); end,
|
|
width = 1.2,
|
|
get = function() return Questie.db.profile.soundOnObjectiveComplete; end,
|
|
set = function(_, value)
|
|
Questie.db.profile.soundOnObjectiveComplete = value
|
|
end,
|
|
},
|
|
objectiveCompleteSoundButton = {
|
|
type = "execute",
|
|
order = 2.15,
|
|
name = "",
|
|
width = 0.5,
|
|
image = function()
|
|
return "Interface\\OptionsFrame\\VoiceChat-Play", 15, 15
|
|
end,
|
|
func = function()
|
|
PlaySoundFile(Sounds.GetSelectedSoundFile(Questie.db.profile.objectiveCompleteSoundChoiceName), "Master")
|
|
end
|
|
},
|
|
objectiveCompleteSoundChoice = {
|
|
type = "select",
|
|
order = 2.16,
|
|
values = _GetObjectiveSoundChoices(),
|
|
sorting = _GetObjectiveSoundChoicesSort(),
|
|
style = 'dropdown',
|
|
name = function() return l10n('Objective Complete Sound Selection') end,
|
|
desc = function() return l10n('The sound you hear when an objective is completed'); end,
|
|
get = function() return Questie.db.profile.objectiveCompleteSoundChoiceName; end,
|
|
disabled = function() return (not Questie.db.profile.soundOnObjectiveComplete); end,
|
|
set = function(_, value)
|
|
Questie.db.profile.objectiveCompleteSoundChoiceName = value
|
|
end,
|
|
},
|
|
objectiveProgressSound = {
|
|
type = "toggle",
|
|
order = 2.17,
|
|
name = function() return l10n('Quest objective progress'); end,
|
|
desc = function() return l10n('Play a short sound when making progress on a quest objective.'); end,
|
|
width = 1.2,
|
|
get = function() return Questie.db.profile.soundOnObjectiveProgress; end,
|
|
set = function(_, value)
|
|
Questie.db.profile.soundOnObjectiveProgress = value
|
|
end,
|
|
},
|
|
objectiveProgressSoundButton = {
|
|
type = "execute",
|
|
order = 2.18,
|
|
name = "",
|
|
width = 0.5,
|
|
image = function()
|
|
return "Interface\\OptionsFrame\\VoiceChat-Play", 15, 15
|
|
end,
|
|
func = function()
|
|
PlaySoundFile(Sounds.GetSelectedSoundFile(Questie.db.profile.objectiveProgressSoundChoiceName), "Master")
|
|
end
|
|
},
|
|
objectiveProgressSoundChoice = {
|
|
type = "select",
|
|
order = 2.19,
|
|
values = _GetObjectiveProgressSoundChoices(),
|
|
sorting = _GetObjectiveProgressSoundChoicesSort(),
|
|
style = 'dropdown',
|
|
name = function() return l10n('Objective Progress Sound Selection') end,
|
|
desc = function() return l10n('The sound you hear when you make progress on a quest objective'); end,
|
|
get = function() return Questie.db.profile.objectiveProgressSoundChoiceName; end,
|
|
disabled = function() return (not Questie.db.profile.soundOnObjectiveProgress); end,
|
|
set = function(_, value)
|
|
Questie.db.profile.objectiveProgressSoundChoiceName = value
|
|
end,
|
|
},
|
|
}
|
|
}
|
|
end
|
|
|
|
_GetQuestSoundChoices = function()
|
|
return {
|
|
["QuestDefault"] = "Default",
|
|
["GameDefault"] = "Game Default",
|
|
["Troll Male"] = "Troll Male",
|
|
["Troll Female"] = "Troll Female",
|
|
["Tauren Male"] = "Tauren Male",
|
|
["Tauren Female"] = "Tauren Female",
|
|
["Undead Male"] = "Undead Male",
|
|
["Undead Female"] = "Undead Female",
|
|
["Orc Male"] = "Orc Male",
|
|
["Orc Female"] = "Orc Female",
|
|
["Night Elf Female"] = "Night Elf Female",
|
|
["Night Elf Male"] = "Night Elf Male",
|
|
["Human Female"] = "Human Female",
|
|
["Human Male"] = "Human Male",
|
|
["Gnome Male"] = "Gnome Male",
|
|
["Gnome Female"] = "Gnome Female",
|
|
["Dwarf Male"] = "Dwarf Male",
|
|
["Dwarf Female"] = "Dwarf Female",
|
|
["Draenei Male"] = "Draenei Male",
|
|
["Draenei Female"] = "Draenei Female",
|
|
["Blood Elf Female"] = "Blood Elf Female",
|
|
["Blood Elf Male"] = "Blood Elf Male",
|
|
}
|
|
end
|
|
|
|
|
|
_GetQuestSoundChoicesSort = function()
|
|
return {
|
|
"QuestDefault",
|
|
"GameDefault",
|
|
"Troll Male",
|
|
"Troll Female",
|
|
"Tauren Male",
|
|
"Tauren Female",
|
|
"Undead Male",
|
|
"Undead Female",
|
|
"Orc Male",
|
|
"Orc Female",
|
|
"Night Elf Female",
|
|
"Night Elf Male",
|
|
"Human Female",
|
|
"Human Male",
|
|
"Gnome Male",
|
|
"Gnome Female",
|
|
"Dwarf Male",
|
|
"Dwarf Female",
|
|
"Draenei Male",
|
|
"Draenei Female",
|
|
"Blood Elf Female",
|
|
"Blood Elf Male",
|
|
}
|
|
end
|
|
|
|
_GetObjectiveSoundChoices = function()
|
|
local choices = {
|
|
["ObjectiveDefault"] = "Default",
|
|
["Map Ping"] = "Map Ping",
|
|
["Window Close"] = "Window Close",
|
|
["Window Open"] = "Window Open",
|
|
["Boat Docked"] = "Boat Docked",
|
|
["Bell Toll Alliance"] = "Bell Toll Alliance",
|
|
["Bell Toll Horde"] = "Bell Toll Horde",
|
|
}
|
|
if Questie.IsWotlk or QuestieCompat.Is335 then
|
|
choices["Explosion"] = "Explosion"
|
|
choices["Shing!"] = "Shing!"
|
|
choices["Wham!"] = "Wham!"
|
|
choices["Simon Chime"] = "Simon Chime"
|
|
choices["War Drums"] = "War Drums"
|
|
choices["Humm"] = "Humm"
|
|
choices["Short Circuit"] = "Short Circuit"
|
|
end
|
|
return choices
|
|
end
|
|
|
|
_GetObjectiveSoundChoicesSort = function()
|
|
local sorting = {
|
|
"ObjectiveDefault",
|
|
"Map Ping",
|
|
"Window Close",
|
|
"Window Open",
|
|
"Boat Docked",
|
|
"Bell Toll Alliance",
|
|
"Bell Toll Horde",
|
|
}
|
|
if Questie.IsWotlk or QuestieCompat.Is335 then
|
|
tinsert(sorting, "Explosion")
|
|
tinsert(sorting, "Shing!")
|
|
tinsert(sorting, "Wham!")
|
|
tinsert(sorting, "Simon Chime")
|
|
tinsert(sorting, "War Drums")
|
|
tinsert(sorting, "Humm")
|
|
tinsert(sorting, "Short Circuit")
|
|
end
|
|
return sorting
|
|
end
|
|
|
|
_GetObjectiveProgressSoundChoices = function()
|
|
local choices = {
|
|
["ObjectiveProgress"] = "Default",
|
|
["ObjectiveDefault"] = "Objective Complete",
|
|
["Map Ping"] = "Map Ping",
|
|
["Window Close"] = "Window Close",
|
|
["Window Open"] = "Window Open",
|
|
["Boat Docked"] = "Boat Docked",
|
|
["Bell Toll Alliance"] = "Bell Toll Alliance",
|
|
["Bell Toll Horde"] = "Bell Toll Horde",
|
|
}
|
|
if Questie.IsWotlk or QuestieCompat.Is335 then
|
|
choices["Explosion"] = "Explosion"
|
|
choices["Shing!"] = "Shing!"
|
|
choices["Wham!"] = "Wham!"
|
|
choices["Simon Chime"] = "Simon Chime"
|
|
choices["War Drums"] = "War Drums"
|
|
choices["Humm"] = "Humm"
|
|
choices["Short Circuit"] = "Short Circuit"
|
|
end
|
|
return choices
|
|
end
|
|
|
|
_GetObjectiveProgressSoundChoicesSort = function()
|
|
local sorting = {
|
|
"ObjectiveProgress",
|
|
"ObjectiveDefault",
|
|
"Map Ping",
|
|
"Window Close",
|
|
"Window Open",
|
|
"Boat Docked",
|
|
"Bell Toll Alliance",
|
|
"Bell Toll Horde",
|
|
}
|
|
if Questie.IsWotlk or QuestieCompat.Is335 then
|
|
tinsert(sorting, "Explosion")
|
|
tinsert(sorting, "Shing!")
|
|
tinsert(sorting, "Wham!")
|
|
tinsert(sorting, "Simon Chime")
|
|
tinsert(sorting, "War Drums")
|
|
tinsert(sorting, "Humm")
|
|
tinsert(sorting, "Short Circuit")
|
|
end
|
|
return sorting
|
|
end
|