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));
};
_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;

View File

@@ -62,14 +62,18 @@
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"

View 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)

View 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;
}
}
}

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)
{
UpdateRingerRingtone(ringer, GenerateRingtone());

View File

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

View 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