v9.7.2: Ebonhold Database integration and core logic refinements
This commit is contained in:
@@ -0,0 +1,292 @@
|
||||
---@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
|
||||
Reference in New Issue
Block a user