From cdf47aab4465544f8940f6944402a8fa6b93f6a0 Mon Sep 17 00:00:00 2001 From: Pieter-Jan Briers Date: Fri, 17 Apr 2020 19:11:10 +0200 Subject: [PATCH] Fix ghosts not being hidden when you do-aghost. --- .../GameObjects/Components/Observer/GhostComponent.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Content.Client/GameObjects/Components/Observer/GhostComponent.cs b/Content.Client/GameObjects/Components/Observer/GhostComponent.cs index 21403b3a76..c71e04a56b 100644 --- a/Content.Client/GameObjects/Components/Observer/GhostComponent.cs +++ b/Content.Client/GameObjects/Components/Observer/GhostComponent.cs @@ -18,6 +18,8 @@ namespace Content.Client.GameObjects.Components.Observer [ViewVariables(VVAccess.ReadOnly)] public bool CanReturnToBody { get; private set; } = true; + private bool _isAttached; + #pragma warning disable 649 [Dependency] private readonly IGameHud _gameHud; [Dependency] private readonly IPlayerManager _playerManager; @@ -29,6 +31,12 @@ namespace Content.Client.GameObjects.Components.Observer base.OnRemove(); _gui?.Dispose(); + + // PlayerDetachedMsg might not fire due to deletion order so... + if (_isAttached) + { + SetGhostVisibility(false); + } } @@ -68,12 +76,14 @@ namespace Content.Client.GameObjects.Components.Observer _gameHud.HandsContainer.AddChild(_gui); SetGhostVisibility(true); + _isAttached = true; break; case PlayerDetachedMsg _: _gui.Parent?.RemoveChild(_gui); SetGhostVisibility(false); + _isAttached = false; break; } }