Only delete ghosts on return to body or unghost

This commit is contained in:
zumorica
2020-04-17 19:19:37 +02:00
parent 01e8e4784b
commit 02ccc6dc45
3 changed files with 7 additions and 3 deletions

View File

@@ -1,10 +1,12 @@
using Content.Server.GameObjects.Components.Observer;
using System.Timers;
using Content.Server.GameObjects.Components.Observer;
using Content.Server.Players;
using Robust.Server.Interfaces.Console;
using Robust.Server.Interfaces.Player;
using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Map;
using Timer = Robust.Shared.Timers.Timer;
namespace Content.Server.Administration
{
@@ -27,7 +29,7 @@ namespace Content.Server.Administration
{
var visiting = mind.VisitingEntity;
mind.UnVisit();
visiting.Delete();
Timer.Spawn(100, visiting.Delete);
}
else
{

View File

@@ -50,6 +50,7 @@ namespace Content.Server.GameObjects.Components.Observer
if (netChannel == null || netChannel == actor.playerSession.ConnectedClient)
{
actor.playerSession.ContentData().Mind.UnVisit();
Timer.Spawn(100, Owner.Delete);
}
break;
case PlayerAttachedMsg msg:
@@ -58,7 +59,6 @@ namespace Content.Server.GameObjects.Components.Observer
break;
case PlayerDetachedMsg msg:
msg.OldPlayer.VisibilityMask &= ~(int)VisibilityFlags.Ghost;
Timer.Spawn(100, Owner.Delete);
break;
default:
break;

View File

@@ -10,6 +10,7 @@ using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Log;
using Robust.Shared.Map;
using Robust.Shared.Timers;
namespace Content.Server.Observer
{
@@ -37,6 +38,7 @@ namespace Content.Server.Observer
if (mind.VisitingEntity != null)
{
mind.UnVisit();
Timer.Spawn(100, mind.VisitingEntity.Delete);
}
var position = player.AttachedEntity?.Transform.GridPosition ?? IoCManager.Resolve<IGameTicker>().GetObserverSpawnPoint();