From 24c5909c43a5b011385fb7b432f5329871dc6806 Mon Sep 17 00:00:00 2001 From: zumorica Date: Mon, 30 Mar 2020 01:16:44 +0200 Subject: [PATCH] Ghosts retain their prior name, before defaulting to username. --- Content.Server/Observer/Ghost.cs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Content.Server/Observer/Ghost.cs b/Content.Server/Observer/Ghost.cs index 3ee16adf73..66410bff7f 100644 --- a/Content.Server/Observer/Ghost.cs +++ b/Content.Server/Observer/Ghost.cs @@ -1,4 +1,5 @@ using Content.Server.GameObjects; +using Content.Server.GameObjects.EntitySystems; using Content.Server.Interfaces.GameTicking; using Content.Server.Players; using Content.Shared.GameObjects; @@ -25,15 +26,18 @@ namespace Content.Server.Observer } var mind = player.ContentData().Mind; - GridCoordinates position; var canReturn = player.AttachedEntity != null; + var name = player.AttachedEntity?.Name ?? player.Name; + + if (player.AttachedEntity != null && player.AttachedEntity.HasComponent()) + return; if (mind.VisitingEntity != null) { mind.UnVisit(); } - position = player.AttachedEntity?.Transform.GridPosition ?? IoCManager.Resolve().GetObserverSpawnPoint(); + var position = player.AttachedEntity?.Transform.GridPosition ?? IoCManager.Resolve().GetObserverSpawnPoint(); if (canReturn && player.AttachedEntity.TryGetComponent(out SpeciesComponent species)) { @@ -55,6 +59,7 @@ namespace Content.Server.Observer var entityManager = IoCManager.Resolve(); var ghost = entityManager.SpawnEntity("MobObserver", position); + ghost.Name = name; var ghostComponent = ghost.GetComponent(); ghostComponent.CanReturnToBody = canReturn;