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.