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.

103 lines
2.9 KiB

local _, addon = ...
local API = addon.API;
local PlaySoundFile = PlaySoundFile;
local PlaySoundKit = PlaySound;
--[[
local SoundPanel = CreateFrame("Frame");
function SoundPanel:OnUpdate(elapsed)
self.t = self.t + elapsed;
if self.t > 0.1 then
self.t = 0;
self:Unlock();
end
end
function SoundPanel:Start()
if not self.isPlaying then
self.isPlaying = true;
self.t = 0;
self:SetScript("OnUpdate", self.OnUpdate);
end
end
function SoundPanel:Unlock()
self.isPlaying = nil;
self:SetScript("OnUpdate", nil);
end
--]]
local PATH = "Interface/AddOns/DialogueUI/Sound/";
local SOUNDS = {
DIALOG_OPTION_CLICK = "paper-collect-1.mp3",
DIALOG_OPTION_ENTER = "paper-collect-2.mp3",
QUEST_TEXT_SHOW = "page-turn-1.mp3",
};
local SOUNDKIT = SOUNDKIT or {};
local SOUND_KIT = {
["SOUNDKIT.IG_QUEST_LIST_OPEN"] = SOUNDKIT.IG_QUEST_LIST_OPEN,
["CHECKBOX_ON"] = SOUNDKIT.IG_MAINMENU_OPTION_CHECKBOX_ON,
["CHECKBOX_OFF"] = SOUNDKIT.IG_MAINMENU_OPTION_CHECKBOX_OFF,
};
local function PlaySound(name)
if SOUNDS[name] then
PlaySoundFile(PATH..SOUNDS[name]);
elseif SOUND_KIT[name] then
PlaySoundKit(SOUND_KIT[name])
end
end
addon.PlaySound = PlaySound;
do --Mute Target Lost Sound while interacting with NPC --Mute UI open/close sound briefly
--https://wago.tools/db2/SoundKitEntry?filter[SoundKitID]=684&page=1&sort[SoundKitID]=asc
--local soundKitID = (SOUNDKIT and SOUNDKIT.INTERFACE_SOUND_LOST_TARGET_UNIT) or 684;
local SHOULD_MUTE_FILE = true;
local SOUND_FILE_ID = 567520;
local MuteSoundFile = MuteSoundFile;
local UnmuteSoundFile = UnmuteSoundFile;
local function MuteTargetLostSound()
if SHOULD_MUTE_FILE then
MuteSoundFile(SOUND_FILE_ID);
end
end
local function UnmuteTargetLostSound()
if SHOULD_MUTE_FILE then
UnmuteSoundFile(SOUND_FILE_ID);
end
end
addon.CallbackRegistry:Register("DialogueUI.Show", MuteTargetLostSound);
addon.CallbackRegistry:Register("DialogueUI.Hide", UnmuteTargetLostSound);
local function BrieflyMuteUIOpenHideSound()
--SOUNDKIT.IG_MAINMENU_OPEN, SOUNDKIT.IG_MAINMENU_CLOSE
local s1, s2 = 567490, 567464;
MuteSoundFile(s1);
MuteSoundFile(s2);
C_Timer.After(0.03, function()
UnmuteSoundFile(s1);
UnmuteSoundFile(s2);
end);
end
API.BrieflyMuteUIOpenHideSound = BrieflyMuteUIOpenHideSound;
local function Settings_MuteTargetLostSound(dbValue)
if dbValue == false then
SHOULD_MUTE_FILE = false;
else
SHOULD_MUTE_FILE = true;
end
end
addon.CallbackRegistry:Register("SettingChanged.MuteTargetLostSound", Settings_MuteTargetLostSound);
end