Mind tweaks & fixes (#21203)

This commit is contained in:
Leon Friedrich
2023-10-25 01:23:56 +11:00
committed by GitHub
parent a2bbda43cc
commit 0880145ac8
11 changed files with 237 additions and 111 deletions

View File

@@ -4,4 +4,24 @@ namespace Content.Client.Mind;
public sealed class MindSystem : SharedMindSystem
{
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;
}
}