diff --git a/Content.Server/GameObjects/Components/Research/ResearchConsoleComponent.cs b/Content.Server/GameObjects/Components/Research/ResearchConsoleComponent.cs index 63e083c653..9992f709fd 100644 --- a/Content.Server/GameObjects/Components/Research/ResearchConsoleComponent.cs +++ b/Content.Server/GameObjects/Components/Research/ResearchConsoleComponent.cs @@ -1,14 +1,19 @@ -using Content.Server.GameObjects.EntitySystems; +using Content.Server.GameObjects.EntitySystems; +using Content.Shared.Audio; using Content.Shared.GameObjects.Components.Research; using Content.Shared.Research; using Robust.Server.GameObjects.Components.UserInterface; +using Robust.Server.GameObjects.EntitySystems; using Robust.Server.Interfaces.GameObjects; using Robust.Server.Interfaces.Player; using Robust.Shared.GameObjects; using Robust.Shared.GameObjects.Components.UserInterface; +using Robust.Shared.Interfaces.GameObjects; +using Robust.Shared.Interfaces.Random; using Robust.Shared.IoC; using Robust.Shared.Log; using Robust.Shared.Prototypes; +using Robust.Shared.Random; namespace Content.Server.GameObjects.Components.Research { @@ -16,8 +21,16 @@ namespace Content.Server.GameObjects.Components.Research [ComponentReference(typeof(IActivate))] public class ResearchConsoleComponent : SharedResearchConsoleComponent, IActivate { + +#pragma warning disable 649 + [Dependency] private readonly IEntitySystemManager _entitySystemManager; + [Dependency] private readonly IPrototypeManager _prototypeManager; + [Dependency] private readonly IRobustRandom _random; +#pragma warning restore 649 + private BoundUserInterface _userInterface; private ResearchClientComponent _client; + private const string _soundCollectionName = "keyboard"; public override void Initialize() { base.Initialize(); @@ -88,7 +101,16 @@ namespace Content.Server.GameObjects.Components.Research return; OpenUserInterface(actor.playerSession); + PlayKeyboardSound(); return; } + + private void PlayKeyboardSound() + { + var soundCollection = _prototypeManager.Index(_soundCollectionName); + var file = _random.Pick(soundCollection.PickFiles); + var audioSystem = _entitySystemManager.GetEntitySystem(); + audioSystem.Play(file); + } } } diff --git a/Resources/Audio/machines/keyboard/keyboard1.ogg b/Resources/Audio/machines/keyboard/keyboard1.ogg new file mode 100644 index 0000000000..90af4d6c02 Binary files /dev/null and b/Resources/Audio/machines/keyboard/keyboard1.ogg differ diff --git a/Resources/Audio/machines/keyboard/keyboard2.ogg b/Resources/Audio/machines/keyboard/keyboard2.ogg new file mode 100644 index 0000000000..6f2e2cda2e Binary files /dev/null and b/Resources/Audio/machines/keyboard/keyboard2.ogg differ diff --git a/Resources/Audio/machines/keyboard/keyboard3.ogg b/Resources/Audio/machines/keyboard/keyboard3.ogg new file mode 100644 index 0000000000..a1e4d23cb2 Binary files /dev/null and b/Resources/Audio/machines/keyboard/keyboard3.ogg differ diff --git a/Resources/Audio/machines/keyboard/keyboard4.ogg b/Resources/Audio/machines/keyboard/keyboard4.ogg new file mode 100644 index 0000000000..81a6dc7789 Binary files /dev/null and b/Resources/Audio/machines/keyboard/keyboard4.ogg differ diff --git a/Resources/Prototypes/SoundCollections/keyboard.yml b/Resources/Prototypes/SoundCollections/keyboard.yml new file mode 100644 index 0000000000..30a0c7712d --- /dev/null +++ b/Resources/Prototypes/SoundCollections/keyboard.yml @@ -0,0 +1,8 @@ +- type: sound_collection + id: keyboard + files: + - /Audio/machines/keyboard/keyboard1.ogg + - /Audio/machines/keyboard/keyboard2.ogg + - /Audio/machines/keyboard/keyboard3.ogg + - /Audio/machines/keyboard/keyboard4.ogg + \ No newline at end of file