AudioManagerSettings.cs 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. using UnityEngine;
  2. using ModSettings;
  3. using MelonLoader;
  4. namespace AudioMgr
  5. {
  6. internal class AudioManagerSettings : JsonModSettings
  7. {
  8. [Section("Custom Audio")]
  9. [Name("Volume")]
  10. [Description("Volume of custom audio sources")]
  11. [Slider(0, 1)]
  12. public float customVolume = 1;
  13. [Section("Aurora Audio")]
  14. [Name("Limit Volume")]
  15. [Description("Limit Volume to Value below")]
  16. public bool enableAuroraTweaks = false;
  17. [Name("Music")]
  18. [Description("Left: Silent / Right: Maximum Volume")]
  19. [Slider(0, 100)]
  20. public int auroraVolume = 0;
  21. [Section("Radio")]
  22. [Name("Custom Radio Music")]
  23. [Description("Play custom ogg files instead of the standard classical music")]
  24. public bool customRadioMusic = false;
  25. [Name("Radio Works Without Auroa")]
  26. [Description("Makes radios functional at any time")]
  27. public bool radioWorksWithoutAurora = true;
  28. [Name("Randomize Playback Order")]
  29. [Description("Plays audiofiles in alphabetical order if disabled")]
  30. public bool randomRadioMusic = true;
  31. [Name("Radio Volume")]
  32. [Description("Left: Silent / Right: Maximum Volume")]
  33. [Slider(0, 1)]
  34. public float customRadioVolume = 0.3f;
  35. [Section("Wind Audio Indoor (clattering)")]
  36. [Name("Limit Volume")]
  37. [Description("Limit Volume to Value below")]
  38. public bool enableWindTweaks = false;
  39. [Name("Indoor Wind Audio")]
  40. [Description("Left: Silent / Right: Maximum Volume")]
  41. [Slider(0, 100)]
  42. public int windVolume = 0;
  43. [Section("Waterfalls")]
  44. [Name("Silent Waterfalls")]
  45. [Description("Disable waterfall audio")]
  46. public bool disableWaterfall = true;
  47. [Section("Flares")]
  48. [Name("Silent Flares")]
  49. [Description("Disable flare audio")]
  50. public bool disableFlare = true;
  51. protected override void OnConfirm()
  52. {
  53. base.OnConfirm();
  54. VolumeMaster.SetVolume(AudioMaster.SourceType.AuroraRadio, customRadioVolume);
  55. }
  56. }
  57. internal static class Settings
  58. {
  59. public static AudioManagerSettings options;
  60. public static void OnLoad()
  61. {
  62. options = new AudioManagerSettings();
  63. options.AddToModSettings("AudioManager");
  64. VolumeMaster.SetVolume(AudioMaster.SourceType.AuroraRadio, Settings.options.customRadioVolume);
  65. }
  66. }
  67. }