]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
add lock uplink button (#15994)
authordeltanedas <39013340+deltanedas@users.noreply.github.com>
Tue, 2 May 2023 07:53:10 +0000 (07:53 +0000)
committerGitHub <noreply@github.com>
Tue, 2 May 2023 07:53:10 +0000 (17:53 +1000)
Co-authored-by: deltanedas <@deltanedas:kde.org>
Content.Client/PDA/PDABoundUserInterface.cs
Content.Client/PDA/PDAMenu.xaml
Content.Client/PDA/PDAMenu.xaml.cs
Content.Server/PDA/PDASystem.cs
Content.Server/PDA/Ringer/RingerSystem.cs
Content.Shared/PDA/PDAMessagesUI.cs
Resources/Locale/en-US/pda/pda-component.ftl

index 52507df703884338d22b906fc700755e7d940be3..4553b23fd3feaccdec7235f398e74c4a1038e977 100644 (file)
@@ -55,11 +55,6 @@ namespace Content.Client.PDA
                 SendMessage(new ItemSlotButtonPressedEvent(PDAComponent.PDAPenSlotId));
             };
 
-            _menu.ActivateUplinkButton.OnPressed += _ =>
-            {
-                SendMessage(new PDAShowUplinkMessage());
-            };
-
             _menu.ActivateMusicButton.OnPressed += _ =>
             {
                 SendMessage(new PDAShowMusicMessage());
@@ -70,6 +65,16 @@ namespace Content.Client.PDA
                 SendMessage(new PDAShowRingtoneMessage());
             };
 
+            _menu.ShowUplinkButton.OnPressed += _ =>
+            {
+                SendMessage(new PDAShowUplinkMessage());
+            };
+
+            _menu.LockUplinkButton.OnPressed += _ =>
+            {
+                SendMessage(new PDALockUplinkMessage());
+            };
+
             _menu.OnProgramItemPressed += ActivateCartridge;
             _menu.OnInstallButtonPressed += InstallCartridge;
             _menu.OnUninstallButtonPressed += UninstallCartridge;
index d54de2c6bbe29947a0cb290924b881a24dae3866..e1c0e706d5d6c8ee4523b27bd2949f983608be66 100644 (file)
                                        Text="{Loc 'crew-manifest-button-label'}"
                                        Description="{Loc 'crew-manifest-button-description'}"
                                        Visible="False" />
-                <pda:PDASettingsButton Name="ActivateUplinkButton"
-                                       Access="Public"
-                                       Text="{Loc 'pda-bound-user-interface-uplink-tab-title'}"
-                                       Description="{Loc 'pda-bound-user-interface-uplink-tab-description'}"/>
                 <pda:PDASettingsButton Name="ActivateMusicButton"
                                        Access="Public"
                                        Text="{Loc 'pda-bound-user-interface-music-button'}"
                                        Description="{Loc 'pda-bound-user-interface-music-button-description'}"/>
+                <pda:PDASettingsButton Name="ShowUplinkButton"
+                                       Access="Public"
+                                       Text="{Loc 'pda-bound-user-interface-show-uplink-title'}"
+                                       Description="{Loc 'pda-bound-user-interface-show-uplink-description'}"/>
+                <pda:PDASettingsButton Name="LockUplinkButton"
+                                       Access="Public"
+                                       Text="{Loc 'pda-bound-user-interface-lock-uplink-title'}"
+                                       Description="{Loc 'pda-bound-user-interface-lock-uplink-description'}"/>
             </BoxContainer>
         </ScrollContainer>
         <BoxContainer Orientation="Vertical"
index 5d30e67e1bf0715be3af195a33279ad29d60cf35..98b1e1adaf88d670c2a78a2a1996c44bc7156621 100644 (file)
@@ -106,8 +106,9 @@ namespace Content.Client.PDA
 
             EjectIdButton.IsActive = state.PDAOwnerInfo.IdOwner != null || state.PDAOwnerInfo.JobTitle != null;
             EjectPenButton.IsActive = state.HasPen;
-            ActivateUplinkButton.Visible = state.HasUplink;
             ActivateMusicButton.Visible = state.CanPlayMusic;
+            ShowUplinkButton.Visible = state.HasUplink;
+            LockUplinkButton.Visible = state.HasUplink;
         }
 
         public void UpdateAvailablePrograms(List<(EntityUid, CartridgeComponent)> programs)
index f0448003fc5b4411100e75ab3dbeebe23340cf5a..6c4d63b54af65572852b6b59adca44d4a9a688d1 100644 (file)
@@ -137,6 +137,15 @@ namespace Content.Server.PDA
                         _store.ToggleUi(msg.Session.AttachedEntity!.Value, uid, store);
                     break;
                 }
+                case PDALockUplinkMessage _:
+                {
+                    if (TryComp<RingerUplinkComponent>(uid, out var uplink))
+                    {
+                        _ringer.LockUplink(uid, uplink);
+                        UpdatePdaUi(uid, pda);
+                    }
+                    break;
+                }
             }
         }
 
index a75dcce74d90b1f911443f1d4346c3db9f85f1e4..f4fd1173e63ae935e8175131a29fd3b14c067ca3 100644 (file)
@@ -79,6 +79,21 @@ namespace Content.Server.PDA.Ringer
             }
         }
 
+        /// <summary>
+        /// Locks the uplink and closes the window, if its open
+        /// </summary>
+        /// <remarks>
+        /// Will not update the PDA ui so you must do that yourself if needed
+        /// </remarks>
+        public void LockUplink(EntityUid uid, RingerUplinkComponent? uplink)
+        {
+            if (!Resolve(uid, ref uplink, true))
+                return;
+
+            uplink.Unlocked = false;
+            _ui.TryCloseAll(uid, StoreUiKey.Key);
+        }
+
         public void RandomizeRingtone(EntityUid uid, RingerComponent ringer, MapInitEvent args)
         {
             UpdateRingerRingtone(ringer, GenerateRingtone());
index a74e1515ee4815851ae9f332c0efb2f7220eceff..d0e32d8723ee6dbd81416a02e4fe16f929d25087 100644 (file)
@@ -1,49 +1,39 @@
 using Robust.Shared.Serialization;
 
-namespace Content.Shared.PDA
-{
-    [Serializable, NetSerializable]
-    public sealed class PDAToggleFlashlightMessage : BoundUserInterfaceMessage
-    {
-        public PDAToggleFlashlightMessage()
-        {
-
-        }
-    }
-
-    [Serializable, NetSerializable]
-    public sealed class PDAShowRingtoneMessage : BoundUserInterfaceMessage
-    {
-        public PDAShowRingtoneMessage()
-        {
-
-        }
-    }
+namespace Content.Shared.PDA;
 
-    [Serializable, NetSerializable]
-    public sealed class PDAShowUplinkMessage : BoundUserInterfaceMessage
-    {
-        public PDAShowUplinkMessage()
-        {
+[Serializable, NetSerializable]
+public sealed class PDAToggleFlashlightMessage : BoundUserInterfaceMessage
+{
+    public PDAToggleFlashlightMessage() { }
+}
 
-        }
-    }
+[Serializable, NetSerializable]
+public sealed class PDAShowRingtoneMessage : BoundUserInterfaceMessage
+{
+    public PDAShowRingtoneMessage() { }
+}
 
-    [Serializable, NetSerializable]
-    public sealed class PDAShowMusicMessage : BoundUserInterfaceMessage
-    {
-        public PDAShowMusicMessage()
-        {
+[Serializable, NetSerializable]
+public sealed class PDAShowUplinkMessage : BoundUserInterfaceMessage
+{
+    public PDAShowUplinkMessage() { }
+}
 
-        }
-    }
+[Serializable, NetSerializable]
+public sealed class PDALockUplinkMessage : BoundUserInterfaceMessage
+{
+    public PDALockUplinkMessage() { }
+}
 
-    [Serializable, NetSerializable]
-    public sealed class PDARequestUpdateInterfaceMessage : BoundUserInterfaceMessage
-    {
-        public PDARequestUpdateInterfaceMessage()
-        {
+[Serializable, NetSerializable]
+public sealed class PDAShowMusicMessage : BoundUserInterfaceMessage
+{
+    public PDAShowMusicMessage() { }
+}
 
-        }
-    }
+[Serializable, NetSerializable]
+public sealed class PDARequestUpdateInterfaceMessage : BoundUserInterfaceMessage
+{
+    public PDARequestUpdateInterfaceMessage()  { }
 }
index 4feb86252e5b0eef0e54af7f2d0c4dac9fef08f2..1eb1f829d80ee072a20915c4ac5106ed0c0203e4 100644 (file)
@@ -16,9 +16,11 @@ comp-pda-io-program-fallback-title = Program
 
 comp-pda-io-no-programs-available = No Programs Available
 
-pda-bound-user-interface-uplink-tab-title = Uplink
+pda-bound-user-interface-show-uplink-title = Open Uplink
+pda-bound-user-interface-show-uplink-description = Access your uplink
 
-pda-bound-user-interface-uplink-tab-description = Access your uplink
+pda-bound-user-interface-lock-uplink-title = Lock Uplink
+pda-bound-user-interface-lock-uplink-description = Prevent anyone from accessing your uplink without the code
 
 comp-pda-ui-menu-title = PDA