244 lines
4.8 KiB
C#
244 lines
4.8 KiB
C#
using UnityEngine;
|
|
|
|
namespace DarkTonic.MasterAudio
|
|
{
|
|
public static class PersistentAudioSettings
|
|
{
|
|
public const string SfxVolKey = "MA_sfxVolume";
|
|
|
|
public const string MusicVolKey = "MA_musicVolume";
|
|
|
|
public const string SfxMuteKey = "MA_sfxMute";
|
|
|
|
public const string MusicMuteKey = "MA_musicMute";
|
|
|
|
public const string BusVolKey = "MA_BusVolume_";
|
|
|
|
public const string GroupVolKey = "MA_GroupVolume_";
|
|
|
|
public const string BusKeysKey = "MA_BusKeys";
|
|
|
|
public const string GroupKeysKey = "MA_GroupsKeys";
|
|
|
|
public const string Separator = ";";
|
|
|
|
public static string BusesUpdatedKeys
|
|
{
|
|
get
|
|
{
|
|
if (!PlayerPrefs.HasKey("MA_BusKeys"))
|
|
{
|
|
PlayerPrefs.SetString("MA_BusKeys", ";");
|
|
}
|
|
return PlayerPrefs.GetString("MA_BusKeys");
|
|
}
|
|
set
|
|
{
|
|
PlayerPrefs.SetString("MA_BusKeys", value);
|
|
}
|
|
}
|
|
|
|
public static string GroupsUpdatedKeys
|
|
{
|
|
get
|
|
{
|
|
if (!PlayerPrefs.HasKey("MA_GroupsKeys"))
|
|
{
|
|
PlayerPrefs.SetString("MA_GroupsKeys", ";");
|
|
}
|
|
return PlayerPrefs.GetString("MA_GroupsKeys");
|
|
}
|
|
set
|
|
{
|
|
PlayerPrefs.SetString("MA_GroupsKeys", value);
|
|
}
|
|
}
|
|
|
|
public static bool? MixerMuted
|
|
{
|
|
get
|
|
{
|
|
if (!PlayerPrefs.HasKey("MA_sfxMute"))
|
|
{
|
|
return null;
|
|
}
|
|
return PlayerPrefs.GetInt("MA_sfxMute") != 0;
|
|
}
|
|
set
|
|
{
|
|
if (!value.HasValue)
|
|
{
|
|
PlayerPrefs.DeleteKey("MA_sfxMute");
|
|
return;
|
|
}
|
|
bool value2 = value.Value;
|
|
PlayerPrefs.SetInt("MA_sfxMute", value2 ? 1 : 0);
|
|
if (MasterAudio.SafeInstance != null)
|
|
{
|
|
MasterAudio.MixerMuted = value2;
|
|
}
|
|
}
|
|
}
|
|
|
|
public static float? MixerVolume
|
|
{
|
|
get
|
|
{
|
|
if (!PlayerPrefs.HasKey("MA_sfxVolume"))
|
|
{
|
|
return null;
|
|
}
|
|
return PlayerPrefs.GetFloat("MA_sfxVolume");
|
|
}
|
|
set
|
|
{
|
|
if (!value.HasValue)
|
|
{
|
|
PlayerPrefs.DeleteKey("MA_sfxVolume");
|
|
return;
|
|
}
|
|
float value2 = value.Value;
|
|
PlayerPrefs.SetFloat("MA_sfxVolume", value2);
|
|
if (MasterAudio.SafeInstance != null)
|
|
{
|
|
MasterAudio.MasterVolumeLevel = value2;
|
|
}
|
|
}
|
|
}
|
|
|
|
public static bool? MusicMuted
|
|
{
|
|
get
|
|
{
|
|
if (!PlayerPrefs.HasKey("MA_musicMute"))
|
|
{
|
|
return null;
|
|
}
|
|
return PlayerPrefs.GetInt("MA_musicMute") != 0;
|
|
}
|
|
set
|
|
{
|
|
if (!value.HasValue)
|
|
{
|
|
PlayerPrefs.DeleteKey("MA_musicMute");
|
|
return;
|
|
}
|
|
bool value2 = value.Value;
|
|
PlayerPrefs.SetInt("MA_musicMute", value2 ? 1 : 0);
|
|
if (MasterAudio.SafeInstance != null)
|
|
{
|
|
MasterAudio.PlaylistsMuted = value2;
|
|
}
|
|
}
|
|
}
|
|
|
|
public static float? MusicVolume
|
|
{
|
|
get
|
|
{
|
|
if (!PlayerPrefs.HasKey("MA_musicVolume"))
|
|
{
|
|
return null;
|
|
}
|
|
return PlayerPrefs.GetFloat("MA_musicVolume");
|
|
}
|
|
set
|
|
{
|
|
if (!value.HasValue)
|
|
{
|
|
PlayerPrefs.DeleteKey("MA_musicVolume");
|
|
return;
|
|
}
|
|
float value2 = value.Value;
|
|
PlayerPrefs.SetFloat("MA_musicVolume", value2);
|
|
if (MasterAudio.SafeInstance != null)
|
|
{
|
|
MasterAudio.PlaylistMasterVolume = value2;
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void SetBusVolume(string busName, float vol)
|
|
{
|
|
PlayerPrefs.SetFloat(MakeBusKey(busName), vol);
|
|
if (!(MasterAudio.SafeInstance == null))
|
|
{
|
|
if (MasterAudio.GrabBusByName(busName) != null)
|
|
{
|
|
MasterAudio.SetBusVolumeByName(busName, vol);
|
|
}
|
|
if (!BusesUpdatedKeys.Contains(";" + busName + ";"))
|
|
{
|
|
BusesUpdatedKeys = BusesUpdatedKeys + busName + ";";
|
|
}
|
|
}
|
|
}
|
|
|
|
public static string MakeBusKey(string busName)
|
|
{
|
|
return "MA_BusVolume_" + busName;
|
|
}
|
|
|
|
public static float? GetBusVolume(string busName)
|
|
{
|
|
string key = MakeBusKey(busName);
|
|
if (!PlayerPrefs.HasKey(key))
|
|
{
|
|
return null;
|
|
}
|
|
return PlayerPrefs.GetFloat(key);
|
|
}
|
|
|
|
public static string GetGroupKey(string groupName)
|
|
{
|
|
return "MA_GroupVolume_" + groupName;
|
|
}
|
|
|
|
public static void SetGroupVolume(string grpName, float vol)
|
|
{
|
|
PlayerPrefs.SetFloat(GetGroupKey(grpName), vol);
|
|
if (!(MasterAudio.SafeInstance == null))
|
|
{
|
|
if (MasterAudio.GrabGroup(grpName, logIfMissing: false) != null)
|
|
{
|
|
MasterAudio.SetGroupVolume(grpName, vol);
|
|
}
|
|
if (!GroupsUpdatedKeys.Contains(";" + grpName + ";"))
|
|
{
|
|
GroupsUpdatedKeys = GroupsUpdatedKeys + grpName + ";";
|
|
}
|
|
}
|
|
}
|
|
|
|
public static float? GetGroupVolume(string grpName)
|
|
{
|
|
string groupKey = GetGroupKey(grpName);
|
|
if (!PlayerPrefs.HasKey(groupKey))
|
|
{
|
|
return null;
|
|
}
|
|
return PlayerPrefs.GetFloat(groupKey);
|
|
}
|
|
|
|
public static void RestoreMasterSettings()
|
|
{
|
|
if (MixerVolume.HasValue)
|
|
{
|
|
MasterAudio.MasterVolumeLevel = MixerVolume.Value;
|
|
}
|
|
if (MixerMuted.HasValue)
|
|
{
|
|
MasterAudio.MixerMuted = MixerMuted.Value;
|
|
}
|
|
if (MusicVolume.HasValue)
|
|
{
|
|
MasterAudio.PlaylistMasterVolume = MusicVolume.Value;
|
|
}
|
|
if (MusicMuted.HasValue)
|
|
{
|
|
MasterAudio.PlaylistsMuted = MusicMuted.Value;
|
|
}
|
|
}
|
|
}
|
|
}
|