diff --git a/Content.Client/PDA/Ringer/RingerBoundUserInterface.cs b/Content.Client/PDA/Ringer/RingerBoundUserInterface.cs index 183a0acf02..1ccda7164e 100644 --- a/Content.Client/PDA/Ringer/RingerBoundUserInterface.cs +++ b/Content.Client/PDA/Ringer/RingerBoundUserInterface.cs @@ -1,11 +1,7 @@ -using System; -using Content.Client.Message; using Content.Shared.PDA; using Content.Shared.PDA.Ringer; using JetBrains.Annotations; using Robust.Client.GameObjects; -using Robust.Shared.GameObjects; -using Robust.Shared.Localization; namespace Content.Client.PDA.Ringer { [UsedImplicitly] @@ -47,17 +43,12 @@ namespace Content.Client.PDA.Ringer ringtone = new Note[4]; - if (!Enum.TryParse(_menu.RingerNoteOneInput.Text.Replace("#", "sharp"), false, out var one)) return false; - ringtone[0] = one; - - if (!Enum.TryParse(_menu.RingerNoteTwoInput.Text.Replace("#", "sharp"), false, out var two)) return false; - ringtone[1] = two; - - if (!Enum.TryParse(_menu.RingerNoteThreeInput.Text.Replace("#", "sharp"), false, out var three)) return false; - ringtone[2] = three; - - if (!Enum.TryParse(_menu.RingerNoteFourInput.Text.Replace("#", "sharp"), false, out var four)) return false; - ringtone[3] = four; + for (int i = 0; i < _menu.RingerNoteInputs.Length; i++) + { + if (!Enum.TryParse(_menu.RingerNoteInputs[i].Text.Replace("#", "sharp"), false, out var note)) + return false; + ringtone[i] = note; + } return true; } @@ -66,36 +57,22 @@ namespace Content.Client.PDA.Ringer { base.UpdateState(state); - if (_menu == null) - { + if (_menu == null || state is not RingerUpdateState msg) return; - } - switch (state) + for (int i = 0; i < _menu.RingerNoteInputs.Length; i++) { - case RingerUpdateState msg: + + var note = msg.Ringtone[i].ToString(); + if (RingtoneMenu.IsNote(note)) { - var noteOne = msg.Ringtone[0].ToString(); - var noteTwo = msg.Ringtone[1].ToString(); - var noteThree = msg.Ringtone[2].ToString(); - var noteFour = msg.Ringtone[3].ToString(); - - if (RingtoneMenu.IsNote(noteOne)) - _menu.RingerNoteOneInput.Text = noteOne.Replace("sharp", "#"); - - if (RingtoneMenu.IsNote(noteTwo)) - _menu.RingerNoteTwoInput.Text = noteTwo.Replace("sharp", "#"); - - if (RingtoneMenu.IsNote(noteThree)) - _menu.RingerNoteThreeInput.Text = noteThree.Replace("sharp", "#"); - - if (RingtoneMenu.IsNote(noteFour)) - _menu.RingerNoteFourInput.Text = noteFour.Replace("sharp", "#"); - - _menu.TestRingerButton.Visible = !msg.IsPlaying; - break; + _menu.PreviousNoteInputs[i] = note.Replace("sharp", "#"); + _menu.RingerNoteInputs[i].Text = _menu.PreviousNoteInputs[i]; } + } + + _menu.TestRingerButton.Visible = !msg.IsPlaying; } diff --git a/Content.Client/PDA/Ringer/RingtoneMenu.xaml b/Content.Client/PDA/Ringer/RingtoneMenu.xaml index b28876eabb..ecf5d30436 100644 --- a/Content.Client/PDA/Ringer/RingtoneMenu.xaml +++ b/Content.Client/PDA/Ringer/RingtoneMenu.xaml @@ -1,4 +1,4 @@ - @@ -70,4 +70,4 @@ - + diff --git a/Content.Client/PDA/Ringer/RingtoneMenu.xaml.cs b/Content.Client/PDA/Ringer/RingtoneMenu.xaml.cs index 5a16b120d6..3daa87efc1 100644 --- a/Content.Client/PDA/Ringer/RingtoneMenu.xaml.cs +++ b/Content.Client/PDA/Ringer/RingtoneMenu.xaml.cs @@ -1,89 +1,39 @@ using Robust.Client.AutoGenerated; using Robust.Client.UserInterface.CustomControls; using Robust.Client.UserInterface.XAML; -using Robust.Shared.Maths; -using System; -using Content.Client; using Content.Shared.PDA; +using Robust.Client.UserInterface.Controls; namespace Content.Client.PDA.Ringer { [GenerateTypedNameReferences] - public sealed partial class RingtoneMenu : SS14Window + public sealed partial class RingtoneMenu : DefaultWindow { - private string[] _previousNoteInputs = new string[4]; + public string[] PreviousNoteInputs = new string[] { "A", "A", "A", "A"}; + public LineEdit[] RingerNoteInputs = default!; public RingtoneMenu() { RobustXamlLoader.Load(this); - //RingerNoteOneInput - RingerNoteOneInput.OnTextChanged += _ => //Prevents unauthorized characters from being entered into the LineEdit + RingerNoteInputs = new LineEdit[] { RingerNoteOneInput, RingerNoteTwoInput, RingerNoteThreeInput, RingerNoteFourInput }; + + for (int i = 0; i < RingerNoteInputs.Length; i++) { - RingerNoteOneInput.Text = RingerNoteOneInput.Text.ToUpper(); - - if(!IsNote(RingerNoteOneInput.Text)) + var input = RingerNoteInputs[i]; + int index = i; + input.OnTextChanged += _ => //Prevents unauthorized characters from being entered into the LineEdit { - RingerNoteOneInput.Text = _previousNoteInputs[0]; - } - else - { - _previousNoteInputs[0] = RingerNoteOneInput.Text; - } + input.Text = input.Text.ToUpper(); - RingerNoteOneInput.CursorPosition = RingerNoteOneInput.Text.Length; //Resets caret position to the end of the typed input - }; + if (!IsNote(input.Text)) + input.Text = PreviousNoteInputs[index]; + else + PreviousNoteInputs[index] = input.Text; - //RingerNoteTwoInput - RingerNoteTwoInput.OnTextChanged += _ => //Prevents unauthorized characters from being entered into the LineEdit - { - RingerNoteTwoInput.Text = RingerNoteTwoInput.Text.ToUpper(); - - if(!IsNote(RingerNoteTwoInput.Text)) - { - RingerNoteTwoInput.Text = _previousNoteInputs[1]; - } - else - { - _previousNoteInputs[1] = RingerNoteTwoInput.Text; - } - - RingerNoteTwoInput.CursorPosition = RingerNoteTwoInput.Text.Length; //Resets caret position to the end of the typed input - }; - - //RingerNoteThreeInput - RingerNoteThreeInput.OnTextChanged += _ => //Prevents unauthorized characters from being entered into the LineEdit - { - RingerNoteThreeInput.Text = RingerNoteThreeInput.Text.ToUpper(); - - if(!IsNote(RingerNoteThreeInput.Text)) - { - RingerNoteThreeInput.Text = _previousNoteInputs[2]; - } - else - { - _previousNoteInputs[2] = RingerNoteThreeInput.Text; - } - - RingerNoteThreeInput.CursorPosition = RingerNoteThreeInput.Text.Length; //Resets caret position to the end of the typed input - }; - - //RingerNoteFourInput - RingerNoteFourInput.OnTextChanged += _ => //Prevents unauthorized characters from being entered into the LineEdit - { - RingerNoteFourInput.Text = RingerNoteFourInput.Text.ToUpper(); - - if(!IsNote(RingerNoteFourInput.Text)) - { - RingerNoteFourInput.Text = _previousNoteInputs[3]; - } - else - { - _previousNoteInputs[3] = RingerNoteFourInput.Text; - } - - RingerNoteFourInput.CursorPosition = RingerNoteFourInput.Text.Length; //Resets caret position to the end of the typed input - }; + input.CursorPosition = input.Text.Length; //Resets caret position to the end of the typed input + }; + } } protected override DragMode GetDragModeFor(Vector2 relativeMousePos)