mirror of
https://github.com/WWhiteDreamProject/wwdpublic.git
synced 2026-04-17 21:48:58 +03:00
<!-- This is a semi-strict format, you can add/remove sections as needed but the order/format should be kept the same Remove these comments before submitting --> # Description <!-- Explain this PR in as much detail as applicable Some example prompts to consider: How might this affect the game? The codebase? What might be some alternatives to this? How/Who does this benefit/hurt [the game/codebase]? --> - Ports the Atmospheric Alerts Computer, as implemented on WizDen --- # TODO [x] small fixes <!-- A list of everything you have to do before this PR is "complete" You probably won't have to complete everything before merging but it's good to leave future references --> n/a --- <!-- This is default collapsed, readers click to expand it and see all your media The PR media section can get very large at times, so this is a good way to keep it clean The title is written using HTML tags The title must be within the <summary> tags or you won't see it --> <details><summary><h1>Media</h1></summary> <p>  </p> </details> --- # Changelog <!-- You can add an author after the `🆑` to change the name that appears in the changelog (ex: `🆑 Death`) Leaving it blank will default to your GitHub display name This includes all available types for the changelog --> 🆑 zelezniciar - add: Added Atmospheric Alerts Computer Co-authored-by: SsalamethVersaach <thebluettdle@gmail.com>
53 lines
1.5 KiB
C#
53 lines
1.5 KiB
C#
using Content.Shared.Atmos.Components;
|
|
|
|
namespace Content.Client.Atmos.Consoles;
|
|
|
|
public sealed class AtmosAlertsComputerBoundUserInterface : BoundUserInterface
|
|
{
|
|
[ViewVariables]
|
|
private AtmosAlertsComputerWindow? _menu;
|
|
|
|
public AtmosAlertsComputerBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey) { }
|
|
|
|
protected override void Open()
|
|
{
|
|
_menu = new AtmosAlertsComputerWindow(this, Owner);
|
|
_menu.OpenCentered();
|
|
_menu.OnClose += Close;
|
|
|
|
EntMan.TryGetComponent<TransformComponent>(Owner, out var xform);
|
|
}
|
|
|
|
protected override void UpdateState(BoundUserInterfaceState state)
|
|
{
|
|
base.UpdateState(state);
|
|
|
|
var castState = (AtmosAlertsComputerBoundInterfaceState) state;
|
|
|
|
if (castState == null)
|
|
return;
|
|
|
|
EntMan.TryGetComponent<TransformComponent>(Owner, out var xform);
|
|
_menu?.UpdateUI(xform?.Coordinates, castState.AirAlarms, castState.FireAlarms, castState.FocusData);
|
|
}
|
|
|
|
public void SendFocusChangeMessage(NetEntity? netEntity)
|
|
{
|
|
SendMessage(new AtmosAlertsComputerFocusChangeMessage(netEntity));
|
|
}
|
|
|
|
public void SendDeviceSilencedMessage(NetEntity netEntity, bool silenceDevice)
|
|
{
|
|
SendMessage(new AtmosAlertsComputerDeviceSilencedMessage(netEntity, silenceDevice));
|
|
}
|
|
|
|
protected override void Dispose(bool disposing)
|
|
{
|
|
base.Dispose(disposing);
|
|
if (!disposing)
|
|
return;
|
|
|
|
_menu?.Dispose();
|
|
}
|
|
}
|