diff --git a/Robust.Client/Player/PlayerSession.cs b/Robust.Client/Player/PlayerSession.cs index 3a0aed2636..ebc752c587 100644 --- a/Robust.Client/Player/PlayerSession.cs +++ b/Robust.Client/Player/PlayerSession.cs @@ -17,7 +17,7 @@ namespace Robust.Client.Player } /// - public EntityUid AttachedEntity { get; set; } + public EntityUid? AttachedEntity { get; set; } /// public NetUserId UserId { get; } diff --git a/Robust.Server/GameObjects/EntitySystems/ActorSystem.cs b/Robust.Server/GameObjects/EntitySystems/ActorSystem.cs index db2ba0378a..9723b44a4c 100644 --- a/Robust.Server/GameObjects/EntitySystems/ActorSystem.cs +++ b/Robust.Server/GameObjects/EntitySystems/ActorSystem.cs @@ -115,7 +115,7 @@ namespace Robust.Server.GameObjects public bool Detach(IPlayerSession player) { var uid = player.AttachedEntity; - return uid == default || Detach(uid); + return uid == null || Detach(uid.Value); } private void OnActorShutdown(EntityUid entity, ActorComponent component, ComponentShutdown args) diff --git a/Robust.Server/GameStates/PVSSystem.cs b/Robust.Server/GameStates/PVSSystem.cs index fb79b5b858..2f58d16141 100644 --- a/Robust.Server/GameStates/PVSSystem.cs +++ b/Robust.Server/GameStates/PVSSystem.cs @@ -579,8 +579,8 @@ internal partial class PVSSystem : EntitySystem if (session.Status != SessionStatus.InGame) return viewers; - if (session.AttachedEntity != EntityUid.Invalid) - viewers.Add(session.AttachedEntity); + if (session.AttachedEntity != null) + viewers.Add(session.AttachedEntity.Value); // This is awful, but we're not gonna add the list of view subscriptions to common session. if (session is IPlayerSession playerSession) diff --git a/Robust.Server/Player/PlayerSession.cs b/Robust.Server/Player/PlayerSession.cs index e2142c7823..7ac1310cb0 100644 --- a/Robust.Server/Player/PlayerSession.cs +++ b/Robust.Server/Player/PlayerSession.cs @@ -43,7 +43,7 @@ namespace Robust.Server.Player [ViewVariables] public INetChannel ConnectedClient { get; } /// - [ViewVariables] public EntityUid AttachedEntity { get; set; } + [ViewVariables] public EntityUid? AttachedEntity { get; set; } private SessionStatus _status = SessionStatus.Connecting; @@ -151,7 +151,7 @@ namespace Robust.Server.Player } #endif - if (!EntitySystem.Get().Detach(AttachedEntity)) + if (!EntitySystem.Get().Detach(AttachedEntity.Value)) { Logger.Warning($"Couldn't detach player \"{this}\" from entity \"{AttachedEntity}\"! Is it missing an ActorComponent?"); } @@ -177,9 +177,9 @@ namespace Robust.Server.Player private void SetAttachedEntityName() { - if (Name != null && AttachedEntity != default) + if (Name != null && AttachedEntity != null) { - IoCManager.Resolve().GetComponent(AttachedEntity).EntityName = Name; + IoCManager.Resolve().GetComponent(AttachedEntity.Value).EntityName = Name; } } diff --git a/Robust.Shared/Containers/ContainerHelpers.cs b/Robust.Shared/Containers/ContainerHelpers.cs index ac0c64f96f..1b0b15d6e9 100644 --- a/Robust.Shared/Containers/ContainerHelpers.cs +++ b/Robust.Shared/Containers/ContainerHelpers.cs @@ -23,8 +23,7 @@ namespace Robust.Shared.Containers public static bool IsInContainer(this EntityUid entity) { var entMan = IoCManager.Resolve(); - DebugTools.AssertNotNull(entity); - DebugTools.Assert(!((!entMan.EntityExists(entity) ? EntityLifeStage.Deleted : entMan.GetComponent(entity).EntityLifeStage) >= EntityLifeStage.Deleted)); + DebugTools.Assert(entMan.EntityExists(entity)); // Notice the recursion starts at the Owner of the passed in entity, this // allows containers inside containers (toolboxes in lockers). @@ -46,8 +45,7 @@ namespace Robust.Shared.Containers public static bool TryGetContainerMan(this EntityUid entity, [NotNullWhen(true)] out IContainerManager? manager) { var entMan = IoCManager.Resolve(); - DebugTools.AssertNotNull(entity); - DebugTools.Assert(!((!entMan.EntityExists(entity) ? EntityLifeStage.Deleted : entMan.GetComponent(entity).EntityLifeStage) >= EntityLifeStage.Deleted)); + DebugTools.Assert(entMan.EntityExists(entity)); var parentTransform = entMan.GetComponent(entity).Parent; if (parentTransform != null && TryGetManagerComp(parentTransform.Owner, out manager) && manager.ContainsEntity(entity)) @@ -66,8 +64,7 @@ namespace Robust.Shared.Containers public static bool TryGetContainer(this EntityUid entity, [NotNullWhen(true)] out IContainer? container) { var entMan = IoCManager.Resolve(); - DebugTools.AssertNotNull(entity); - DebugTools.Assert(!((!entMan.EntityExists(entity) ? EntityLifeStage.Deleted : entMan.GetComponent(entity).EntityLifeStage) >= EntityLifeStage.Deleted)); + DebugTools.Assert(entMan.EntityExists(entity)); if (TryGetContainerMan(entity, out var manager)) return manager.TryGetContainer(entity, out container); @@ -86,8 +83,7 @@ namespace Robust.Shared.Containers public static bool TryRemoveFromContainer(this EntityUid entity, bool force, out bool wasInContainer) { var entMan = IoCManager.Resolve(); - DebugTools.AssertNotNull(entity); - DebugTools.Assert(!((!entMan.EntityExists(entity) ? EntityLifeStage.Deleted : entMan.GetComponent(entity).EntityLifeStage) >= EntityLifeStage.Deleted)); + DebugTools.Assert(entMan.EntityExists(entity)); if (TryGetContainer(entity, out var container)) { @@ -175,8 +171,7 @@ namespace Robust.Shared.Containers private static bool TryGetManagerComp(this EntityUid entity, [NotNullWhen(true)] out IContainerManager? manager) { var entMan = IoCManager.Resolve(); - DebugTools.AssertNotNull(entity); - DebugTools.Assert(!((!entMan.EntityExists(entity) ? EntityLifeStage.Deleted : entMan.GetComponent(entity).EntityLifeStage) >= EntityLifeStage.Deleted)); + DebugTools.Assert(entMan.EntityExists(entity)); if (entMan.TryGetComponent(entity, out manager)) return true; @@ -190,9 +185,6 @@ namespace Robust.Shared.Containers public static bool IsInSameOrNoContainer(this EntityUid user, EntityUid other) { - DebugTools.AssertNotNull(user); - DebugTools.AssertNotNull(other); - var isUserContained = TryGetContainer(user, out var userContainer); var isOtherContained = TryGetContainer(other, out var otherContainer); @@ -208,9 +200,6 @@ namespace Robust.Shared.Containers public static bool IsInSameOrParentContainer(this EntityUid user, EntityUid other) { - DebugTools.AssertNotNull(user); - DebugTools.AssertNotNull(other); - var isUserContained = TryGetContainer(user, out var userContainer); var isOtherContained = TryGetContainer(other, out var otherContainer); diff --git a/Robust.Shared/Player/Filter.cs b/Robust.Shared/Player/Filter.cs index faeeab85e4..182b034660 100644 --- a/Robust.Shared/Player/Filter.cs +++ b/Robust.Shared/Player/Filter.cs @@ -156,7 +156,7 @@ namespace Robust.Shared.Player { return AddWhere(session => session.AttachedEntity != null && - position.InRange(IoCManager.Resolve().GetComponent(session.AttachedEntity).MapPosition, range), playerMan); + position.InRange(IoCManager.Resolve().GetComponent(session.AttachedEntity.Value).MapPosition, range), playerMan); } /// @@ -165,7 +165,7 @@ namespace Robust.Shared.Player public Filter RemoveByVisibility(uint flag) { return RemoveWhere(session => - session.AttachedEntity == default + session.AttachedEntity == null || !IoCManager.Resolve().TryGetComponent(session.AttachedEntity, out SharedEyeComponent? eye) || (eye.VisibilityMask & flag) == 0); } @@ -204,8 +204,8 @@ namespace Robust.Shared.Player public Filter RemoveInRange(MapCoordinates position, float range) { return RemoveWhere(session => - session.AttachedEntity != default && - position.InRange(IoCManager.Resolve().GetComponent(session.AttachedEntity).MapPosition, range)); + session.AttachedEntity != null && + position.InRange(IoCManager.Resolve().GetComponent(session.AttachedEntity.Value).MapPosition, range)); } /// diff --git a/Robust.Shared/Players/ICommonSession.cs b/Robust.Shared/Players/ICommonSession.cs index 8f3062d9d3..b7fff9e3a8 100644 --- a/Robust.Shared/Players/ICommonSession.cs +++ b/Robust.Shared/Players/ICommonSession.cs @@ -18,7 +18,7 @@ namespace Robust.Shared.Players /// /// Entity UID that this session is represented by in the world, if any. /// - EntityUid AttachedEntity { get; } + EntityUid? AttachedEntity { get; } /// /// The UID of this session.