Files
tbd-station-14/Content.Server/Ghost/ReturnToBodyEui.cs
2025-04-19 00:23:01 +02:00

40 lines
1000 B
C#

using Content.Server.EUI;
using Content.Shared.Eui;
using Content.Shared.Ghost;
using Content.Shared.Mind;
using Robust.Shared.Network;
using Robust.Shared.Player;
namespace Content.Server.Ghost;
public sealed class ReturnToBodyEui : BaseEui
{
private readonly SharedMindSystem _mindSystem;
private readonly ISharedPlayerManager _player;
private readonly NetUserId? _userId;
public ReturnToBodyEui(MindComponent mind, SharedMindSystem mindSystem, ISharedPlayerManager player)
{
_mindSystem = mindSystem;
_player = player;
_userId = mind.UserId;
}
public override void HandleMessage(EuiMessageBase msg)
{
base.HandleMessage(msg);
if (msg is not ReturnToBodyMessage choice ||
!choice.Accepted)
{
Close();
return;
}
if (_userId is { } userId && _player.TryGetSessionById(userId, out var session))
_mindSystem.UnVisit(session);
Close();
}
}