public static void RegisterSettings(ICustomShowableLayoutedMenu parent, Action on_exit) { parent.AddButtonToggleListItem("World Sound", "Settings", () => { var sound_menu = ExpansionKitApi.CreateCustomQuickMenuPage(LayoutDescription.WideSlimList); sound_menu.AddHeader("World Audio Settings"); sound_menu.AddDropdownListItem("Preset", typeof(Preset), (value) => { if ((Preset)value == Preset.Custom) { return; } s_AudioConfig = PresetAudioConfigs[value - 1]; s_Enabled = true; ApplySettingsToAll(); sound_menu.Hide(); on_exit(); }, (int)Preset.Custom); sound_menu.AddCategoryHeader("Player voice"); sound_menu.AddSliderListItem("Gain", (val) => { s_AudioConfig.voice_gain = val; }, () => s_AudioConfig.voice_gain, 0, 24); sound_menu.AddFloatDiffListItem("Far", (val) => { s_AudioConfig.voice_distance_far = val; }, () => s_AudioConfig.voice_distance_far); sound_menu.AddFloatDiffListItem("Near", (val) => { s_AudioConfig.voice_distance_near = val; }, () => s_AudioConfig.voice_distance_near); sound_menu.AddFloatDiffListItem("Volumetric Radius", (val) => { s_AudioConfig.voice_volumetric_radius = val; }, () => s_AudioConfig.voice_volumetric_radius); sound_menu.AddToggleListItem("Lowpass", (val) => { s_AudioConfig.voice_lowpass = val; }, () => s_AudioConfig.voice_lowpass, false); sound_menu.AddSimpleButton("Apply to all", ApplySettingsToAll); sound_menu.AddSimpleButton("Back", () => { sound_menu.Hide(); on_exit(); }); sound_menu.Show(); }, (enable) => { s_Enabled = enable; }, () => s_Enabled, false); }