Files
OldThink/Content.Client/Mind/MindSystem.cs

28 lines
963 B
C#
Raw Normal View History

using Content.Shared.Mind;
namespace Content.Client.Mind;
public sealed class MindSystem : SharedMindSystem
{
2023-10-25 01:23:56 +11:00
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<MindComponent, AfterAutoHandleStateEvent>(OnHandleState);
}
private void OnHandleState(EntityUid uid, MindComponent component, ref AfterAutoHandleStateEvent args)
{
// Because minds are generally not networked, there might be weird situations were a client thinks multiple
// users share a mind? E.g., if an admin periodical gets sent all minds via some PVS override, but doesn't get
// sent intermediate states? Not sure if this is actually possible, but better to be safe.
foreach (var (user, mind) in UserMinds)
{
if (mind == uid)
UserMinds.Remove(user);
}
if (component.UserId != null)
UserMinds[component.UserId.Value] = uid;
}
}