From 0385f1387c438f61bb8d378a75f0eab1b16ba550 Mon Sep 17 00:00:00 2001 From: Flipp Syder <76629141+vulppine@users.noreply.github.com> Date: Wed, 28 Sep 2022 19:22:27 -0700 Subject: [PATCH] Voice mask (#10458) --- .../VoiceMask/VoiceMaskBoundUserInterface.cs | 46 ++++++++++ .../VoiceMask/VoiceMaskNameChangeWindow.xaml | 11 +++ .../VoiceMaskNameChangeWindow.xaml.cs | 26 ++++++ Content.Server/Chat/Systems/ChatSystem.cs | 23 ++++- Content.Server/Clothing/MaskSystem.cs | 7 ++ .../Components/IntrinsicRadioComponent.cs | 11 ++- Content.Server/Headset/HeadsetComponent.cs | 11 ++- .../Radio/EntitySystems/RadioSystem.cs | 1 - .../VoiceMask/VoiceMaskComponent.cs | 9 ++ .../VoiceMask/VoiceMaskSystem.Equip.cs | 48 ++++++++++ Content.Server/VoiceMask/VoiceMaskSystem.cs | 88 +++++++++++++++++++ .../VoiceMask/VoiceMaskerComponent.cs | 13 +++ .../VoiceMask/SharedVoiceMaskSystem.cs | 31 +++++++ Resources/Locale/en-US/voice-mask.ftl | 7 ++ Resources/Prototypes/Actions/types.yml | 7 ++ .../Prototypes/Catalog/uplink_catalog.yml | 14 ++- .../Entities/Clothing/Masks/masks.yml | 9 ++ .../Prototypes/Entities/Mobs/Species/base.yml | 2 + 18 files changed, 357 insertions(+), 7 deletions(-) create mode 100644 Content.Client/VoiceMask/VoiceMaskBoundUserInterface.cs create mode 100644 Content.Client/VoiceMask/VoiceMaskNameChangeWindow.xaml create mode 100644 Content.Client/VoiceMask/VoiceMaskNameChangeWindow.xaml.cs create mode 100644 Content.Server/VoiceMask/VoiceMaskComponent.cs create mode 100644 Content.Server/VoiceMask/VoiceMaskSystem.Equip.cs create mode 100644 Content.Server/VoiceMask/VoiceMaskSystem.cs create mode 100644 Content.Server/VoiceMask/VoiceMaskerComponent.cs create mode 100644 Content.Shared/VoiceMask/SharedVoiceMaskSystem.cs create mode 100644 Resources/Locale/en-US/voice-mask.ftl diff --git a/Content.Client/VoiceMask/VoiceMaskBoundUserInterface.cs b/Content.Client/VoiceMask/VoiceMaskBoundUserInterface.cs new file mode 100644 index 0000000000..1427248c35 --- /dev/null +++ b/Content.Client/VoiceMask/VoiceMaskBoundUserInterface.cs @@ -0,0 +1,46 @@ +using Content.Shared.VoiceMask; +using Robust.Client.GameObjects; + +namespace Content.Client.VoiceMask; + +public sealed class VoiceMaskBoundUserInterface : BoundUserInterface +{ + public VoiceMaskBoundUserInterface(ClientUserInterfaceComponent owner, Enum uiKey) : base(owner, uiKey) + { + } + + private VoiceMaskNameChangeWindow? _window; + + protected override void Open() + { + base.Open(); + + _window = new(); + + _window.OpenCentered(); + _window.OnNameChange += OnNameSelected; + _window.OnClose += Close; + } + + private void OnNameSelected(string name) + { + SendMessage(new VoiceMaskChangeNameMessage(name)); + } + + protected override void UpdateState(BoundUserInterfaceState state) + { + if (state is not VoiceMaskBuiState cast || _window == null) + { + return; + } + + _window.UpdateState(cast.Name); + } + + protected override void Dispose(bool disposing) + { + base.Dispose(disposing); + + _window?.Close(); + } +} diff --git a/Content.Client/VoiceMask/VoiceMaskNameChangeWindow.xaml b/Content.Client/VoiceMask/VoiceMaskNameChangeWindow.xaml new file mode 100644 index 0000000000..2316ec9c7d --- /dev/null +++ b/Content.Client/VoiceMask/VoiceMaskNameChangeWindow.xaml @@ -0,0 +1,11 @@ + + +