mirror of
https://github.com/corvax-team/ss14-wl.git
synced 2026-02-15 03:31:38 +01:00
# Conflicts: # Content.Server/Administration/Systems/AdminSystem.cs # Content.Server/Doors/Systems/AirlockSystem.cs # Content.Server/Holopad/HolopadSystem.cs # Content.Server/Humanoid/Systems/HumanoidAppearanceSystem.cs # Resources/Prototypes/Catalog/Fills/Lockers/heads.yml # Resources/Prototypes/Catalog/VendingMachines/Inventories/curadrobe.yml # Resources/Prototypes/Datasets/Names/borg.yml # Resources/Prototypes/Datasets/ion_storm.yml # Resources/Prototypes/Entities/Clothing/Head/hardsuit-helmets.yml # Resources/Prototypes/Entities/Clothing/Neck/mantles.yml # Resources/Prototypes/Entities/Objects/Weapons/Guns/Shotguns/shotguns.yml # Resources/Prototypes/Entities/Stations/base.yml # Resources/Prototypes/Entities/Structures/Machines/lathe.yml # Resources/Prototypes/Maps/amber.yml # Resources/Prototypes/Maps/box.yml # Resources/Prototypes/Maps/convex.yml # Resources/Prototypes/Maps/fland.yml # Resources/Prototypes/Maps/meta.yml # Resources/Prototypes/Maps/plasma.yml # Resources/ServerInfo/Guidebook/Engineering/AME.xml # Resources/ServerInfo/Guidebook/Engineering/AirlockSecurity.xml # Resources/ServerInfo/Guidebook/Engineering/Atmospherics.xml # Resources/ServerInfo/Guidebook/Engineering/Construction.xml # Resources/ServerInfo/Guidebook/Engineering/Engineering.xml # Resources/ServerInfo/Guidebook/Engineering/Fires.xml # Resources/ServerInfo/Guidebook/Engineering/NetworkConfigurator.xml # Resources/ServerInfo/Guidebook/Engineering/Networking.xml # Resources/ServerInfo/Guidebook/Engineering/PortableGenerator.xml # Resources/ServerInfo/Guidebook/Engineering/Power.xml # Resources/ServerInfo/Guidebook/Engineering/RTG.xml # Resources/ServerInfo/Guidebook/Engineering/Shuttlecraft.xml # Resources/ServerInfo/Guidebook/Engineering/Singularity.xml # Resources/ServerInfo/Guidebook/Engineering/TEG.xml # Resources/ServerInfo/Guidebook/NewPlayer/Controls/Controls.xml # Resources/Textures/Clothing/Head/Helmets/paramedhelm.rsi/icon.png # Resources/Textures/Clothing/Head/Helmets/paramedhelm.rsi/inhand-left.png # Resources/Textures/Clothing/Head/Helmets/paramedhelm.rsi/inhand-right.png # Resources/Textures/Clothing/OuterClothing/Hardsuits/goliath.rsi/meta.json # Resources/Textures/Clothing/OuterClothing/Hardsuits/paramed.rsi/meta.json # Resources/Textures/Clothing/OuterClothing/Vests/hazard.rsi/equipped-OUTERCLOTHING.png # Resources/Textures/Clothing/OuterClothing/Vests/hazard.rsi/icon.png # Resources/Textures/Clothing/OuterClothing/Vests/hazard.rsi/meta.json # Resources/Textures/Clothing/Uniforms/Jumpsuit/ancient.rsi/meta.json # Resources/Textures/Clothing/Uniforms/Jumpsuit/security_trooper.rsi/inhand-right.png # Resources/Textures/Interface/Actions/actions_fakemindshield.rsi/icon-on.png # Resources/Textures/Objects/Storage/Briefcases/briefcase_brown.rsi/icon.png # Resources/Textures/Objects/Storage/Briefcases/briefcase_brown.rsi/meta.json # Resources/Textures/Objects/Storage/boxes.rsi/beaker.png # Resources/Textures/Objects/Storage/boxes.rsi/bodybags.png # Resources/Textures/Objects/Storage/boxes.rsi/bottle.png # Resources/Textures/Objects/Storage/boxes.rsi/box.png # Resources/Textures/Objects/Storage/boxes.rsi/box_hug.png # Resources/Textures/Objects/Storage/boxes.rsi/box_of_doom.png # Resources/Textures/Objects/Storage/boxes.rsi/box_of_doom_big.png # Resources/Textures/Objects/Storage/boxes.rsi/box_science.png # Resources/Textures/Objects/Storage/boxes.rsi/box_security.png # Resources/Textures/Objects/Storage/boxes.rsi/boxwide.png # Resources/Textures/Objects/Storage/boxes.rsi/boxwidetoy.png # Resources/Textures/Objects/Storage/boxes.rsi/candle.png # Resources/Textures/Objects/Storage/boxes.rsi/circuit.png # Resources/Textures/Objects/Storage/boxes.rsi/clown.png # Resources/Textures/Objects/Storage/boxes.rsi/darts.png # Resources/Textures/Objects/Storage/boxes.rsi/disk.png # Resources/Textures/Objects/Storage/boxes.rsi/emergencytank.png # Resources/Textures/Objects/Storage/boxes.rsi/encryptokey.png # Resources/Textures/Objects/Storage/boxes.rsi/evidence_markers.png # Resources/Textures/Objects/Storage/boxes.rsi/extendedtank.png # Resources/Textures/Objects/Storage/boxes.rsi/flare.png # Resources/Textures/Objects/Storage/boxes.rsi/flashbang.png # Resources/Textures/Objects/Storage/boxes.rsi/forensic.png # Resources/Textures/Objects/Storage/boxes.rsi/glasses.png # Resources/Textures/Objects/Storage/boxes.rsi/handcuff.png # Resources/Textures/Objects/Storage/boxes.rsi/headset.png # Resources/Textures/Objects/Storage/boxes.rsi/heart.png # Resources/Textures/Objects/Storage/boxes.rsi/holo.png # Resources/Textures/Objects/Storage/boxes.rsi/implant.png # Resources/Textures/Objects/Storage/boxes.rsi/inflatable.png # Resources/Textures/Objects/Storage/boxes.rsi/internals.png # Resources/Textures/Objects/Storage/boxes.rsi/latex.png # Resources/Textures/Objects/Storage/boxes.rsi/light.png # Resources/Textures/Objects/Storage/boxes.rsi/lightmixed.png # Resources/Textures/Objects/Storage/boxes.rsi/lighttube.png # Resources/Textures/Objects/Storage/boxes.rsi/magazine.png # Resources/Textures/Objects/Storage/boxes.rsi/meson.png # Resources/Textures/Objects/Storage/boxes.rsi/meta.json # Resources/Textures/Objects/Storage/boxes.rsi/mousetraps.png # Resources/Textures/Objects/Storage/boxes.rsi/nitrile.png # Resources/Textures/Objects/Storage/boxes.rsi/omegacart.png # Resources/Textures/Objects/Storage/boxes.rsi/pda.png # Resources/Textures/Objects/Storage/boxes.rsi/pillbox.png # Resources/Textures/Objects/Storage/boxes.rsi/sechud.png # Resources/Textures/Objects/Storage/boxes.rsi/shellbeanbag.png # Resources/Textures/Objects/Storage/boxes.rsi/shellflare.png # Resources/Textures/Objects/Storage/boxes.rsi/shellflash.png # Resources/Textures/Objects/Storage/boxes.rsi/shellincendiary.png # Resources/Textures/Objects/Storage/boxes.rsi/shelllethal.png # Resources/Textures/Objects/Storage/boxes.rsi/shellpractice.png # Resources/Textures/Objects/Storage/boxes.rsi/shellslug.png # Resources/Textures/Objects/Storage/boxes.rsi/shelltoy.png # Resources/Textures/Objects/Storage/boxes.rsi/solution_trays.png # Resources/Textures/Objects/Storage/boxes.rsi/sterile.png # Resources/Textures/Objects/Storage/boxes.rsi/swab.png # Resources/Textures/Objects/Storage/boxes.rsi/syringe.png # Resources/Textures/Objects/Storage/boxes.rsi/trashbag.png # Resources/Textures/Objects/Storage/boxes.rsi/vials.png # Resources/Textures/Objects/Storage/boxes.rsi/writing.png # Resources/Textures/Objects/Storage/boxes.rsi/writing_of_doom.png # Resources/Textures/Objects/Storage/boxes.rsi/ziptie.png # Resources/Textures/Objects/Tiles/tile.rsi/meta.json # Resources/Textures/Objects/Weapons/Grenades/empgrenade.rsi/icon.png # Resources/Textures/Objects/Weapons/Grenades/empgrenade.rsi/meta.json # Resources/Textures/Objects/Weapons/Grenades/empgrenade.rsi/primed.png # Resources/Textures/Objects/Weapons/Grenades/flashbang.rsi/icon.png # Resources/Textures/Objects/Weapons/Grenades/flashbang.rsi/meta.json # Resources/Textures/Objects/Weapons/Grenades/flashbang.rsi/primed.png # Resources/Textures/Objects/Weapons/Grenades/stingergrenade.rsi/icon.png # Resources/Textures/Objects/Weapons/Grenades/stingergrenade.rsi/meta.json # Resources/Textures/Objects/Weapons/Grenades/stingergrenade.rsi/primed.png # Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/base.png # Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/icon.png # Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/mag-unshaded-1.png # Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/mag-unshaded-2.png # Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/mag-unshaded-3.png # Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/mag-unshaded-4.png # Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/meta.json # Resources/Textures/Objects/Weapons/Guns/Rifles/lecter.rsi/equipped-BACKPACK.png # Resources/Textures/Objects/Weapons/Guns/SMGs/vector.rsi/equipped-BACKPACK.png # Resources/Textures/Objects/Weapons/Guns/Shotguns/pump.rsi/equipped-BACKPACK.png
105 lines
3.5 KiB
C#
105 lines
3.5 KiB
C#
using Content.Client.Administration.Managers;
|
|
using Content.Client.Audio;
|
|
using Content.Shared.CCVar;
|
|
using Content.Shared.Corvax.CCCVars;
|
|
using Robust.Client.Audio;
|
|
using Robust.Client.AutoGenerated;
|
|
using Robust.Client.UserInterface;
|
|
using Robust.Client.UserInterface.XAML;
|
|
using Robust.Shared;
|
|
using Robust.Shared.Configuration;
|
|
|
|
namespace Content.Client.Options.UI.Tabs;
|
|
|
|
[GenerateTypedNameReferences]
|
|
public sealed partial class AudioTab : Control
|
|
{
|
|
[Dependency] private readonly IAudioManager _audio = default!;
|
|
[Dependency] private readonly IClientAdminManager _admin = default!;
|
|
[Dependency] private readonly IConfigurationManager _cfg = default!;
|
|
|
|
public AudioTab()
|
|
{
|
|
RobustXamlLoader.Load(this);
|
|
IoCManager.InjectDependencies(this);
|
|
|
|
var masterVolume = Control.AddOptionPercentSlider(
|
|
CVars.AudioMasterVolume,
|
|
SliderVolumeMaster,
|
|
scale: ContentAudioSystem.MasterVolumeMultiplier);
|
|
masterVolume.ImmediateValueChanged += OnMasterVolumeSliderChanged;
|
|
|
|
// Corvax-TTS-Start
|
|
Control.AddOptionPercentSlider(
|
|
CCCVars.TTSVolume,
|
|
SliderVolumeTts,
|
|
scale: ContentAudioSystem.TtsMultiplier);
|
|
// Corvax-TTS-End
|
|
|
|
Control.AddOptionPercentSlider(
|
|
CVars.MidiVolume,
|
|
SliderVolumeMidi,
|
|
scale: ContentAudioSystem.MidiVolumeMultiplier);
|
|
|
|
Control.AddOptionPercentSlider(
|
|
CCVars.AmbientMusicVolume,
|
|
SliderVolumeAmbientMusic,
|
|
scale: ContentAudioSystem.AmbientMusicMultiplier);
|
|
|
|
Control.AddOptionPercentSlider(
|
|
CCVars.AmbienceVolume,
|
|
SliderVolumeAmbience,
|
|
scale: ContentAudioSystem.AmbienceMultiplier);
|
|
|
|
Control.AddOptionPercentSlider(
|
|
CCVars.LobbyMusicVolume,
|
|
SliderVolumeLobby,
|
|
scale: ContentAudioSystem.LobbyMultiplier);
|
|
|
|
Control.AddOptionPercentSlider(
|
|
CCVars.InterfaceVolume,
|
|
SliderVolumeInterface,
|
|
scale: ContentAudioSystem.InterfaceMultiplier);
|
|
|
|
Control.AddOptionSlider(
|
|
CCVars.MaxAmbientSources,
|
|
SliderMaxAmbienceSounds,
|
|
_cfg.GetCVar(CCVars.MinMaxAmbientSourcesConfigured),
|
|
_cfg.GetCVar(CCVars.MaxMaxAmbientSourcesConfigured));
|
|
|
|
Control.AddOptionCheckBox(CCVars.LobbyMusicEnabled, LobbyMusicCheckBox);
|
|
Control.AddOptionCheckBox(CCVars.RestartSoundsEnabled, RestartSoundsCheckBox);
|
|
Control.AddOptionCheckBox(CCVars.EventMusicEnabled, EventMusicCheckBox);
|
|
Control.AddOptionCheckBox(CCVars.AdminSoundsEnabled, AdminSoundsCheckBox);
|
|
Control.AddOptionCheckBox(CCVars.BwoinkSoundEnabled, BwoinkSoundCheckBox);
|
|
|
|
Control.Initialize();
|
|
}
|
|
|
|
protected override void EnteredTree()
|
|
{
|
|
base.EnteredTree();
|
|
_admin.AdminStatusUpdated += UpdateAdminButtonsVisibility;
|
|
UpdateAdminButtonsVisibility();
|
|
}
|
|
|
|
protected override void ExitedTree()
|
|
{
|
|
base.ExitedTree();
|
|
_admin.AdminStatusUpdated -= UpdateAdminButtonsVisibility;
|
|
}
|
|
|
|
|
|
private void UpdateAdminButtonsVisibility()
|
|
{
|
|
BwoinkSoundCheckBox.Visible = _admin.IsActive();
|
|
}
|
|
|
|
private void OnMasterVolumeSliderChanged(float value)
|
|
{
|
|
// TODO: I was thinking of giving OptionsTabControlRow a flag to "set CVar immediately", but I'm deferring that
|
|
// until there's a proper system for enforcing people don't close the window with pending changes.
|
|
_audio.SetMasterGain(value);
|
|
}
|
|
}
|