SendMessage(new ItemSlotButtonPressedEvent(PDAComponent.PDAPenSlotId));
};
- _menu.ActivateUplinkButton.OnPressed += _ =>
- {
- SendMessage(new PDAShowUplinkMessage());
- };
-
_menu.ActivateMusicButton.OnPressed += _ =>
{
SendMessage(new PDAShowMusicMessage());
SendMessage(new PDAShowRingtoneMessage());
};
+ _menu.ShowUplinkButton.OnPressed += _ =>
+ {
+ SendMessage(new PDAShowUplinkMessage());
+ };
+
+ _menu.LockUplinkButton.OnPressed += _ =>
+ {
+ SendMessage(new PDALockUplinkMessage());
+ };
+
_menu.OnProgramItemPressed += ActivateCartridge;
_menu.OnInstallButtonPressed += InstallCartridge;
_menu.OnUninstallButtonPressed += UninstallCartridge;
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"
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)
_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;
+ }
}
}
}
}
+ /// <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());
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() { }
}
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