add lock uplink button (#15994)

Co-authored-by: deltanedas <@deltanedas:kde.org>
This commit is contained in:
deltanedas
2023-05-02 07:53:10 +00:00
committed by GitHub
parent 529ca8ec88
commit a5aa4196a4
7 changed files with 83 additions and 57 deletions

View File

@@ -55,11 +55,6 @@ namespace Content.Client.PDA
SendMessage(new ItemSlotButtonPressedEvent(PDAComponent.PDAPenSlotId)); SendMessage(new ItemSlotButtonPressedEvent(PDAComponent.PDAPenSlotId));
}; };
_menu.ActivateUplinkButton.OnPressed += _ =>
{
SendMessage(new PDAShowUplinkMessage());
};
_menu.ActivateMusicButton.OnPressed += _ => _menu.ActivateMusicButton.OnPressed += _ =>
{ {
SendMessage(new PDAShowMusicMessage()); SendMessage(new PDAShowMusicMessage());
@@ -70,6 +65,16 @@ namespace Content.Client.PDA
SendMessage(new PDAShowRingtoneMessage()); SendMessage(new PDAShowRingtoneMessage());
}; };
_menu.ShowUplinkButton.OnPressed += _ =>
{
SendMessage(new PDAShowUplinkMessage());
};
_menu.LockUplinkButton.OnPressed += _ =>
{
SendMessage(new PDALockUplinkMessage());
};
_menu.OnProgramItemPressed += ActivateCartridge; _menu.OnProgramItemPressed += ActivateCartridge;
_menu.OnInstallButtonPressed += InstallCartridge; _menu.OnInstallButtonPressed += InstallCartridge;
_menu.OnUninstallButtonPressed += UninstallCartridge; _menu.OnUninstallButtonPressed += UninstallCartridge;

View File

@@ -62,14 +62,18 @@
Text="{Loc 'crew-manifest-button-label'}" Text="{Loc 'crew-manifest-button-label'}"
Description="{Loc 'crew-manifest-button-description'}" Description="{Loc 'crew-manifest-button-description'}"
Visible="False" /> 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" <pda:PDASettingsButton Name="ActivateMusicButton"
Access="Public" Access="Public"
Text="{Loc 'pda-bound-user-interface-music-button'}" Text="{Loc 'pda-bound-user-interface-music-button'}"
Description="{Loc 'pda-bound-user-interface-music-button-description'}"/> 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> </BoxContainer>
</ScrollContainer> </ScrollContainer>
<BoxContainer Orientation="Vertical" <BoxContainer Orientation="Vertical"

View File

@@ -106,8 +106,9 @@ namespace Content.Client.PDA
EjectIdButton.IsActive = state.PDAOwnerInfo.IdOwner != null || state.PDAOwnerInfo.JobTitle != null; EjectIdButton.IsActive = state.PDAOwnerInfo.IdOwner != null || state.PDAOwnerInfo.JobTitle != null;
EjectPenButton.IsActive = state.HasPen; EjectPenButton.IsActive = state.HasPen;
ActivateUplinkButton.Visible = state.HasUplink;
ActivateMusicButton.Visible = state.CanPlayMusic; ActivateMusicButton.Visible = state.CanPlayMusic;
ShowUplinkButton.Visible = state.HasUplink;
LockUplinkButton.Visible = state.HasUplink;
} }
public void UpdateAvailablePrograms(List<(EntityUid, CartridgeComponent)> programs) public void UpdateAvailablePrograms(List<(EntityUid, CartridgeComponent)> programs)

View File

@@ -137,6 +137,15 @@ namespace Content.Server.PDA
_store.ToggleUi(msg.Session.AttachedEntity!.Value, uid, store); _store.ToggleUi(msg.Session.AttachedEntity!.Value, uid, store);
break; break;
} }
case PDALockUplinkMessage _:
{
if (TryComp<RingerUplinkComponent>(uid, out var uplink))
{
_ringer.LockUplink(uid, uplink);
UpdatePdaUi(uid, pda);
}
break;
}
} }
} }

View 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) public void RandomizeRingtone(EntityUid uid, RingerComponent ringer, MapInitEvent args)
{ {
UpdateRingerRingtone(ringer, GenerateRingtone()); UpdateRingerRingtone(ringer, GenerateRingtone());

View File

@@ -1,49 +1,39 @@
using Robust.Shared.Serialization; using Robust.Shared.Serialization;
namespace Content.Shared.PDA namespace Content.Shared.PDA;
{
[Serializable, NetSerializable] [Serializable, NetSerializable]
public sealed class PDAToggleFlashlightMessage : BoundUserInterfaceMessage public sealed class PDAToggleFlashlightMessage : BoundUserInterfaceMessage
{ {
public PDAToggleFlashlightMessage() public PDAToggleFlashlightMessage() { }
{
}
} }
[Serializable, NetSerializable] [Serializable, NetSerializable]
public sealed class PDAShowRingtoneMessage : BoundUserInterfaceMessage public sealed class PDAShowRingtoneMessage : BoundUserInterfaceMessage
{ {
public PDAShowRingtoneMessage() public PDAShowRingtoneMessage() { }
{
}
} }
[Serializable, NetSerializable] [Serializable, NetSerializable]
public sealed class PDAShowUplinkMessage : BoundUserInterfaceMessage public sealed class PDAShowUplinkMessage : BoundUserInterfaceMessage
{ {
public PDAShowUplinkMessage() public PDAShowUplinkMessage() { }
{
} }
[Serializable, NetSerializable]
public sealed class PDALockUplinkMessage : BoundUserInterfaceMessage
{
public PDALockUplinkMessage() { }
} }
[Serializable, NetSerializable] [Serializable, NetSerializable]
public sealed class PDAShowMusicMessage : BoundUserInterfaceMessage public sealed class PDAShowMusicMessage : BoundUserInterfaceMessage
{ {
public PDAShowMusicMessage() public PDAShowMusicMessage() { }
{
}
} }
[Serializable, NetSerializable] [Serializable, NetSerializable]
public sealed class PDARequestUpdateInterfaceMessage : BoundUserInterfaceMessage public sealed class PDARequestUpdateInterfaceMessage : BoundUserInterfaceMessage
{ {
public PDARequestUpdateInterfaceMessage() public PDARequestUpdateInterfaceMessage() { }
{
}
}
} }

View File

@@ -16,9 +16,11 @@ comp-pda-io-program-fallback-title = Program
comp-pda-io-no-programs-available = No Programs Available 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 comp-pda-ui-menu-title = PDA