Remove SharedEye (but content) (#19481)
This commit is contained in:
@@ -4,11 +4,11 @@ using Content.Server.GameTicking;
|
||||
using Content.Server.Ghost.Components;
|
||||
using Content.Server.Mind;
|
||||
using Content.Server.Roles.Jobs;
|
||||
using Content.Server.Visible;
|
||||
using Content.Server.Warps;
|
||||
using Content.Shared.Actions;
|
||||
using Content.Shared.Administration;
|
||||
using Content.Shared.Examine;
|
||||
using Content.Shared.Eye;
|
||||
using Content.Shared.Follower;
|
||||
using Content.Shared.Ghost;
|
||||
using Content.Shared.Mind;
|
||||
@@ -37,6 +37,7 @@ namespace Content.Server.Ghost
|
||||
[Dependency] private readonly EntityLookupSystem _lookup = default!;
|
||||
[Dependency] private readonly FollowerSystem _followerSystem = default!;
|
||||
[Dependency] private readonly MobStateSystem _mobState = default!;
|
||||
[Dependency] private readonly SharedEyeSystem _eye = default!;
|
||||
[Dependency] private readonly SharedPhysicsSystem _physics = default!;
|
||||
[Dependency] private readonly MindSystem _minds = default!;
|
||||
[Dependency] private readonly JobSystem _jobs = default!;
|
||||
@@ -106,7 +107,7 @@ namespace Content.Server.Ghost
|
||||
private void OnGhostStartup(EntityUid uid, GhostComponent component, ComponentStartup args)
|
||||
{
|
||||
// Allow this entity to be seen by other ghosts.
|
||||
var visibility = EntityManager.EnsureComponent<VisibilityComponent>(component.Owner);
|
||||
var visibility = EntityManager.EnsureComponent<VisibilityComponent>(uid);
|
||||
|
||||
if (_ticker.RunLevel != GameRunLevel.PostRound)
|
||||
{
|
||||
@@ -115,9 +116,9 @@ namespace Content.Server.Ghost
|
||||
_visibilitySystem.RefreshVisibility(visibility);
|
||||
}
|
||||
|
||||
if (EntityManager.TryGetComponent(component.Owner, out EyeComponent? eye))
|
||||
if (EntityManager.TryGetComponent(uid, out EyeComponent? eye))
|
||||
{
|
||||
eye.VisibilityMask |= (uint) VisibilityFlags.Ghost;
|
||||
_eye.SetVisibilityMask(uid, eye.VisibilityMask | (int) VisibilityFlags.Ghost, eye);
|
||||
}
|
||||
|
||||
var time = _gameTiming.CurTime;
|
||||
@@ -142,7 +143,7 @@ namespace Content.Server.Ghost
|
||||
if (!Terminating(uid))
|
||||
{
|
||||
// Entity can't be seen by ghosts anymore.
|
||||
if (EntityManager.TryGetComponent(component.Owner, out VisibilityComponent? visibility))
|
||||
if (EntityManager.TryGetComponent(uid, out VisibilityComponent? visibility))
|
||||
{
|
||||
_visibilitySystem.RemoveLayer(visibility, (int) VisibilityFlags.Ghost, false);
|
||||
_visibilitySystem.AddLayer(visibility, (int) VisibilityFlags.Normal, false);
|
||||
@@ -150,9 +151,9 @@ namespace Content.Server.Ghost
|
||||
}
|
||||
|
||||
// Entity can't see ghosts anymore.
|
||||
if (EntityManager.TryGetComponent(component.Owner, out EyeComponent? eye))
|
||||
if (EntityManager.TryGetComponent(uid, out EyeComponent? eye))
|
||||
{
|
||||
eye.VisibilityMask &= ~(uint) VisibilityFlags.Ghost;
|
||||
_eye.SetVisibilityMask(uid, eye.VisibilityMask & ~(int) VisibilityFlags.Ghost, eye);
|
||||
}
|
||||
|
||||
_actions.RemoveAction(uid, component.ActionEntity);
|
||||
@@ -334,9 +335,11 @@ namespace Content.Server.Ghost
|
||||
if (uid == null
|
||||
|| !entityManager.HasComponent<GhostComponent>(uid)
|
||||
|| !entityManager.TryGetComponent<EyeComponent>(uid, out var eyeComponent))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
eyeComponent.VisibilityMask ^= (uint) VisibilityFlags.Ghost;
|
||||
entityManager.System<EyeSystem>().SetVisibilityMask(uid.Value, eyeComponent.VisibilityMask ^ (int) VisibilityFlags.Ghost, eyeComponent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user