Inline Deleted

This commit is contained in:
Vera Aguilera Puerto
2021-12-03 11:30:03 +01:00
parent 149707a566
commit b2035543e2
60 changed files with 94 additions and 79 deletions

View File

@@ -40,7 +40,7 @@ namespace Content.Client.AI
var deletedEntities = new List<IEntity>(0); var deletedEntities = new List<IEntity>(0);
foreach (var (entity, panel) in _aiBoxes) foreach (var (entity, panel) in _aiBoxes)
{ {
if (entity.Deleted) if ((!IoCManager.Resolve<IEntityManager>().EntityExists(entity.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(entity.Uid).EntityLifeStage) >= EntityLifeStage.Deleted)
{ {
deletedEntities.Add(entity); deletedEntities.Add(entity);
continue; continue;

View File

@@ -116,7 +116,7 @@ namespace Content.Client.Chat.UI
Modulate = Color.White; Modulate = Color.White;
} }
if (_senderEntity.Deleted || _timeLeft <= 0) if ((!IoCManager.Resolve<IEntityManager>().EntityExists(_senderEntity.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(_senderEntity.Uid).EntityLifeStage) >= EntityLifeStage.Deleted || _timeLeft <= 0)
{ {
// Timer spawn to prevent concurrent modification exception. // Timer spawn to prevent concurrent modification exception.
Timer.Spawn(0, Die); Timer.Spawn(0, Die);

View File

@@ -2,6 +2,7 @@ using Content.Client.Stylesheets;
using Robust.Client.GameObjects; using Robust.Client.GameObjects;
using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.Controls;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Maths; using Robust.Shared.Maths;
namespace Content.Client.ContextMenu.UI namespace Content.Client.ContextMenu.UI
@@ -57,7 +58,7 @@ namespace Content.Client.ContextMenu.UI
/// </summary> /// </summary>
public void UpdateEntity(IEntity? entity = null) public void UpdateEntity(IEntity? entity = null)
{ {
if (Entity != null && !Entity.Deleted) if (Entity != null && !((!IoCManager.Resolve<IEntityManager>().EntityExists(Entity.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(Entity.Uid).EntityLifeStage) >= EntityLifeStage.Deleted))
entity ??= Entity; entity ??= Entity;
EntityIcon.Sprite = entity?.GetComponentOrNull<ISpriteComponent>(); EntityIcon.Sprite = entity?.GetComponentOrNull<ISpriteComponent>();

View File

@@ -184,7 +184,7 @@ namespace Content.Client.ContextMenu.UI
foreach (var entity in Elements.Keys.ToList()) foreach (var entity in Elements.Keys.ToList())
{ {
if (entity.Deleted || !ignoreFov && !_examineSystem.CanExamine(player, entity)) if ((!IoCManager.Resolve<IEntityManager>().EntityExists(entity.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(entity.Uid).EntityLifeStage) >= EntityLifeStage.Deleted || !ignoreFov && !_examineSystem.CanExamine(player, entity))
RemoveEntity(entity); RemoveEntity(entity);
} }
} }
@@ -335,7 +335,7 @@ namespace Content.Client.ContextMenu.UI
if (entityElement.Entity != null) if (entityElement.Entity != null)
{ {
if (!entityElement.Entity.Deleted) if (!((!IoCManager.Resolve<IEntityManager>().EntityExists(entityElement.Entity.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(entityElement.Entity.Uid).EntityLifeStage) >= EntityLifeStage.Deleted))
return entityElement.Entity; return entityElement.Entity;
continue; continue;
} }

View File

@@ -51,7 +51,7 @@ namespace Content.Client.DoAfter
var currentTime = _gameTiming.CurTime; var currentTime = _gameTiming.CurTime;
// Can't see any I guess? // Can't see any I guess?
if (_attachedEntity == null || _attachedEntity.Deleted) if (_attachedEntity == null || (!IoCManager.Resolve<IEntityManager>().EntityExists(_attachedEntity.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(_attachedEntity.Uid).EntityLifeStage) >= EntityLifeStage.Deleted)
return; return;
var viewbox = _eyeManager.GetWorldViewport().Enlarged(2.0f); var viewbox = _eyeManager.GetWorldViewport().Enlarged(2.0f);

View File

@@ -176,7 +176,7 @@ namespace Content.Client.DragDrop
private bool OnBeginDrag() private bool OnBeginDrag()
{ {
if (_dragDropHelper.Dragged == null || _dragDropHelper.Dragged.Deleted) if (_dragDropHelper.Dragged == null || (!IoCManager.Resolve<IEntityManager>().EntityExists(_dragDropHelper.Dragged.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(_dragDropHelper.Dragged.Uid).EntityLifeStage) >= EntityLifeStage.Deleted)
{ {
// something happened to the clicked entity or we moved the mouse off the target so // something happened to the clicked entity or we moved the mouse off the target so
// we shouldn't replay the original click // we shouldn't replay the original click
@@ -213,7 +213,7 @@ namespace Content.Client.DragDrop
private bool OnContinueDrag(float frameTime) private bool OnContinueDrag(float frameTime)
{ {
if (_dragDropHelper.Dragged == null || _dragDropHelper.Dragged.Deleted) if (_dragDropHelper.Dragged == null || (!IoCManager.Resolve<IEntityManager>().EntityExists(_dragDropHelper.Dragged.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(_dragDropHelper.Dragged.Uid).EntityLifeStage) >= EntityLifeStage.Deleted)
{ {
return false; return false;
} }
@@ -352,9 +352,9 @@ namespace Content.Client.DragDrop
private void HighlightTargets() private void HighlightTargets()
{ {
if (_dragDropHelper.Dragged == null || if (_dragDropHelper.Dragged == null ||
_dragDropHelper.Dragged.Deleted || (!IoCManager.Resolve<IEntityManager>().EntityExists(_dragDropHelper.Dragged.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(_dragDropHelper.Dragged.Uid).EntityLifeStage) >= EntityLifeStage.Deleted ||
_dragShadow == null || _dragShadow == null ||
_dragShadow.Deleted) (!IoCManager.Resolve<IEntityManager>().EntityExists(_dragShadow.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(_dragShadow.Uid).EntityLifeStage) >= EntityLifeStage.Deleted)
{ {
Logger.Warning("Programming error. Can't highlight drag and drop targets, not currently " + Logger.Warning("Programming error. Can't highlight drag and drop targets, not currently " +
"dragging anything or dragged entity / shadow was deleted."); "dragging anything or dragged entity / shadow was deleted.");

View File

@@ -151,7 +151,7 @@ namespace Content.Client.Entry
/// </summary> /// </summary>
public static void DetachPlayerFromEntity(EntityDetachedEventArgs eventArgs) public static void DetachPlayerFromEntity(EntityDetachedEventArgs eventArgs)
{ {
if (!eventArgs.OldEntity.Deleted) if (!((!IoCManager.Resolve<IEntityManager>().EntityExists(eventArgs.OldEntity.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(eventArgs.OldEntity.Uid).EntityLifeStage) >= EntityLifeStage.Deleted))
{ {
eventArgs.OldEntity.RemoveComponent<CharacterInterfaceComponent>(); eventArgs.OldEntity.RemoveComponent<CharacterInterfaceComponent>();
} }

View File

@@ -72,7 +72,7 @@ namespace Content.Client.HealthOverlay
return; return;
} }
if (_attachedEntity == null || _attachedEntity.Deleted) if (_attachedEntity == null || (!IoCManager.Resolve<IEntityManager>().EntityExists(_attachedEntity.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(_attachedEntity.Uid).EntityLifeStage) >= EntityLifeStage.Deleted)
{ {
return; return;
} }

View File

@@ -72,7 +72,7 @@ namespace Content.Client.HealthOverlay.UI
private void MoreFrameUpdate(FrameEventArgs args) private void MoreFrameUpdate(FrameEventArgs args)
{ {
if (Entity.Deleted) if ((!IoCManager.Resolve<IEntityManager>().EntityExists(Entity.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(Entity.Uid).EntityLifeStage) >= EntityLifeStage.Deleted)
{ {
return; return;
} }
@@ -138,7 +138,7 @@ namespace Content.Client.HealthOverlay.UI
MoreFrameUpdate(args); MoreFrameUpdate(args);
if (Entity.Deleted || if ((!IoCManager.Resolve<IEntityManager>().EntityExists(Entity.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(Entity.Uid).EntityLifeStage) >= EntityLifeStage.Deleted ||
_eyeManager.CurrentMap != Entity.Transform.MapID) _eyeManager.CurrentMap != Entity.Transform.MapID)
{ {
Visible = false; Visible = false;

View File

@@ -104,7 +104,7 @@ namespace Content.Client.Items.Managers
} }
if (entity == null || if (entity == null ||
entity.Deleted || (!IoCManager.Resolve<IEntityManager>().EntityExists(entity.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(entity.Uid).EntityLifeStage) >= EntityLifeStage.Deleted ||
!entity.TryGetComponent(out ItemCooldownComponent? cooldown) || !entity.TryGetComponent(out ItemCooldownComponent? cooldown) ||
!cooldown.CooldownStart.HasValue || !cooldown.CooldownStart.HasValue ||
!cooldown.CooldownEnd.HasValue) !cooldown.CooldownEnd.HasValue)

View File

@@ -115,7 +115,7 @@ namespace Content.Client.Kitchen.UI
return; return;
} }
if (entity.Deleted) if ((!IoCManager.Resolve<IEntityManager>().EntityExists(entity.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(entity.Uid).EntityLifeStage) >= EntityLifeStage.Deleted)
{ {
continue; continue;
} }

View File

@@ -132,7 +132,7 @@ namespace Content.Client.Viewport
return; return;
} }
if (_lastHoveredEntity != null && !_lastHoveredEntity.Deleted && if (_lastHoveredEntity != null && !((!IoCManager.Resolve<IEntityManager>().EntityExists(_lastHoveredEntity.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(_lastHoveredEntity.Uid).EntityLifeStage) >= EntityLifeStage.Deleted) &&
_lastHoveredEntity.TryGetComponent(out outline)) _lastHoveredEntity.TryGetComponent(out outline))
{ {
outline.OnMouseLeave(); outline.OnMouseLeave();

View File

@@ -51,7 +51,7 @@ namespace Content.Client.Weapons.Melee
return; return;
} }
if (!attacker.Deleted) if (!((!IoCManager.Resolve<IEntityManager>().EntityExists(attacker.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(attacker.Uid).EntityLifeStage) >= EntityLifeStage.Deleted))
{ {
var lunge = attacker.EnsureComponent<MeleeLungeComponent>(); var lunge = attacker.EnsureComponent<MeleeLungeComponent>();
lunge.SetData(msg.Angle); lunge.SetData(msg.Angle);
@@ -88,7 +88,7 @@ namespace Content.Client.Weapons.Melee
foreach (var uid in msg.Hits) foreach (var uid in msg.Hits)
{ {
if (!EntityManager.TryGetEntity(uid, out var hitEntity) || hitEntity.Deleted) if (!EntityManager.TryGetEntity(uid, out var hitEntity) || (!IoCManager.Resolve<IEntityManager>().EntityExists(hitEntity.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(hitEntity.Uid).EntityLifeStage) >= EntityLifeStage.Deleted)
{ {
continue; continue;
} }

View File

@@ -6,6 +6,7 @@ using Content.Shared.Coordinates;
using Content.Shared.FixedPoint; using Content.Shared.FixedPoint;
using NUnit.Framework; using NUnit.Framework;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Map; using Robust.Shared.Map;
using Robust.Shared.Timing; using Robust.Shared.Timing;
@@ -156,7 +157,7 @@ namespace Content.IntegrationTests.Tests.Fluids
Assert.True(puddle.Owner.Paused); Assert.True(puddle.Owner.Paused);
// Check that the puddle still exists // Check that the puddle still exists
Assert.False(puddle.Owner.Deleted); Assert.False((!IoCManager.Resolve<IEntityManager>().EntityExists(puddle.Owner.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(puddle.Owner.Uid).EntityLifeStage) >= EntityLifeStage.Deleted);
}); });
// Unpause the map // Unpause the map
@@ -170,7 +171,7 @@ namespace Content.IntegrationTests.Tests.Fluids
Assert.False(puddle.Owner.Paused); Assert.False(puddle.Owner.Paused);
// Check that the puddle still exists // Check that the puddle still exists
Assert.False(puddle.Owner.Deleted); Assert.False((!IoCManager.Resolve<IEntityManager>().EntityExists(puddle.Owner.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(puddle.Owner.Uid).EntityLifeStage) >= EntityLifeStage.Deleted);
}); });
// Wait enough time for it to evaporate // Wait enough time for it to evaporate

View File

@@ -51,7 +51,7 @@ namespace Content.Server.AI.EntitySystems
foreach (var message in _queuedMobStateMessages) foreach (var message in _queuedMobStateMessages)
{ {
// TODO: Need to generecise this but that will be part of a larger cleanup later anyway. // TODO: Need to generecise this but that will be part of a larger cleanup later anyway.
if (message.Entity.Deleted || if ((!IoCManager.Resolve<IEntityManager>().EntityExists(message.Entity.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(message.Entity.Uid).EntityLifeStage) >= EntityLifeStage.Deleted ||
!message.Entity.TryGetComponent(out UtilityAi? controller)) !message.Entity.TryGetComponent(out UtilityAi? controller))
{ {
continue; continue;

View File

@@ -22,7 +22,7 @@ namespace Content.Server.AI.Operators.Inventory
public override Outcome Execute(float frameTime) public override Outcome Execute(float frameTime)
{ {
if (_target.Deleted || if ((!IoCManager.Resolve<IEntityManager>().EntityExists(_target.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(_target.Uid).EntityLifeStage) >= EntityLifeStage.Deleted ||
!_target.HasComponent<ItemComponent>() || !_target.HasComponent<ItemComponent>() ||
_target.IsInContainer() || _target.IsInContainer() ||
!_owner.InRangeUnobstructed(_target, popup: true)) !_owner.InRangeUnobstructed(_target, popup: true))

View File

@@ -30,7 +30,7 @@ namespace Content.Server.AI.Operators.Nutrition
} }
// TODO: Also have this check storage a la backpack etc. // TODO: Also have this check storage a la backpack etc.
if (_target.Deleted || if ((!IoCManager.Resolve<IEntityManager>().EntityExists(_target.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(_target.Uid).EntityLifeStage) >= EntityLifeStage.Deleted ||
!_owner.TryGetComponent(out HandsComponent? handsComponent) || !_owner.TryGetComponent(out HandsComponent? handsComponent) ||
!_target.TryGetComponent(out ItemComponent? itemComponent)) !_target.TryGetComponent(out ItemComponent? itemComponent))
{ {

View File

@@ -29,7 +29,7 @@ namespace Content.Server.AI.Operators.Nutrition
} }
// TODO: Also have this check storage a la backpack etc. // TODO: Also have this check storage a la backpack etc.
if (_target.Deleted || if ((!IoCManager.Resolve<IEntityManager>().EntityExists(_target.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(_target.Uid).EntityLifeStage) >= EntityLifeStage.Deleted ||
!_owner.TryGetComponent(out HandsComponent? handsComponent) || !_owner.TryGetComponent(out HandsComponent? handsComponent) ||
!_target.TryGetComponent(out ItemComponent? itemComponent)) !_target.TryGetComponent(out ItemComponent? itemComponent))
{ {
@@ -57,7 +57,7 @@ namespace Content.Server.AI.Operators.Nutrition
return Outcome.Failed; return Outcome.Failed;
} }
if (_target.Deleted || if ((!IoCManager.Resolve<IEntityManager>().EntityExists(_target.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(_target.Uid).EntityLifeStage) >= EntityLifeStage.Deleted ||
foodComponent.UsesRemaining == 0 || foodComponent.UsesRemaining == 0 ||
_owner.TryGetComponent(out HungerComponent? hungerComponent) && _owner.TryGetComponent(out HungerComponent? hungerComponent) &&
hungerComponent.CurrentHunger >= hungerComponent.HungerThresholds[HungerThreshold.Okay]) hungerComponent.CurrentHunger >= hungerComponent.HungerThresholds[HungerThreshold.Okay])

View File

@@ -265,7 +265,7 @@ namespace Content.Server.AI.Pathfinding
/// <param name="entity"></param> /// <param name="entity"></param>
private void HandleEntityAdd(IEntity entity) private void HandleEntityAdd(IEntity entity)
{ {
if (entity.Deleted || if ((!IoCManager.Resolve<IEntityManager>().EntityExists(entity.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(entity.Uid).EntityLifeStage) >= EntityLifeStage.Deleted ||
_lastKnownPositions.ContainsKey(entity) || _lastKnownPositions.ContainsKey(entity) ||
!entity.TryGetComponent(out IPhysBody? physics) || !entity.TryGetComponent(out IPhysBody? physics) ||
!PathfindingNode.IsRelevant(entity, physics)) !PathfindingNode.IsRelevant(entity, physics))
@@ -305,7 +305,7 @@ namespace Content.Server.AI.Pathfinding
private void HandleEntityMove(MoveEvent moveEvent) private void HandleEntityMove(MoveEvent moveEvent)
{ {
// If we've moved to space or the likes then remove us. // If we've moved to space or the likes then remove us.
if (moveEvent.Sender.Deleted || if ((!IoCManager.Resolve<IEntityManager>().EntityExists(moveEvent.Sender.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(moveEvent.Sender.Uid).EntityLifeStage) >= EntityLifeStage.Deleted ||
!moveEvent.Sender.TryGetComponent(out IPhysBody? physics) || !moveEvent.Sender.TryGetComponent(out IPhysBody? physics) ||
!PathfindingNode.IsRelevant(moveEvent.Sender, physics) || !PathfindingNode.IsRelevant(moveEvent.Sender, physics) ||
moveEvent.NewPosition.GetGridId(EntityManager) == GridId.Invalid) moveEvent.NewPosition.GetGridId(EntityManager) == GridId.Invalid)

View File

@@ -248,7 +248,7 @@ namespace Content.Server.AI.Steering
private SteeringStatus Steer(IEntity entity, IAiSteeringRequest steeringRequest, float frameTime) private SteeringStatus Steer(IEntity entity, IAiSteeringRequest steeringRequest, float frameTime)
{ {
// Main optimisation to be done below is the redundant calls and adding more variables // Main optimisation to be done below is the redundant calls and adding more variables
if (entity.Deleted || if ((!IoCManager.Resolve<IEntityManager>().EntityExists(entity.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(entity.Uid).EntityLifeStage) >= EntityLifeStage.Deleted ||
!entity.TryGetComponent(out AiControllerComponent? controller) || !entity.TryGetComponent(out AiControllerComponent? controller) ||
!EntitySystem.Get<ActionBlockerSystem>().CanMove(entity.Uid) || !EntitySystem.Get<ActionBlockerSystem>().CanMove(entity.Uid) ||
!entity.Transform.GridID.IsValid()) !entity.Transform.GridID.IsValid())
@@ -258,7 +258,7 @@ namespace Content.Server.AI.Steering
var entitySteering = steeringRequest as EntityTargetSteeringRequest; var entitySteering = steeringRequest as EntityTargetSteeringRequest;
if (entitySteering != null && entitySteering.Target.Deleted) if (entitySteering != null && (!IoCManager.Resolve<IEntityManager>().EntityExists(entitySteering.Target.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(entitySteering.Target.Uid).EntityLifeStage) >= EntityLifeStage.Deleted)
{ {
controller.VelocityDir = Vector2.Zero; controller.VelocityDir = Vector2.Zero;
return SteeringStatus.NoPath; return SteeringStatus.NoPath;
@@ -660,7 +660,7 @@ namespace Content.Server.AI.Steering
// err for now we'll just assume the first entity is the center and just add a vector for it // err for now we'll just assume the first entity is the center and just add a vector for it
//Pathfinding updates are deferred so this may not be done yet. //Pathfinding updates are deferred so this may not be done yet.
if (physicsEntity.Deleted) continue; if ((!IoCManager.Resolve<IEntityManager>().EntityExists(physicsEntity.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(physicsEntity.Uid).EntityLifeStage) >= EntityLifeStage.Deleted) continue;
// if we're moving in the same direction then ignore // if we're moving in the same direction then ignore
// So if 2 entities are moving towards each other and both detect a collision they'll both move in the same direction // So if 2 entities are moving towards each other and both detect a collision they'll both move in the same direction

View File

@@ -1,6 +1,8 @@
using Content.Server.AI.WorldState; using Content.Server.AI.WorldState;
using Content.Server.AI.WorldState.States; using Content.Server.AI.WorldState.States;
using Content.Shared.Damage; using Content.Shared.Damage;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
namespace Content.Server.AI.Utility.Considerations.Combat namespace Content.Server.AI.Utility.Considerations.Combat
{ {
@@ -10,7 +12,7 @@ namespace Content.Server.AI.Utility.Considerations.Combat
{ {
var target = context.GetState<TargetEntityState>().GetValue(); var target = context.GetState<TargetEntityState>().GetValue();
if (target == null || target.Deleted || !target.TryGetComponent(out DamageableComponent? damageableComponent)) if (target == null || (!IoCManager.Resolve<IEntityManager>().EntityExists(target.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(target.Uid).EntityLifeStage) >= EntityLifeStage.Deleted || !target.TryGetComponent(out DamageableComponent? damageableComponent))
{ {
return 0.0f; return 0.0f;
} }

View File

@@ -1,5 +1,7 @@
using Content.Server.AI.WorldState; using Content.Server.AI.WorldState;
using Content.Server.AI.WorldState.States; using Content.Server.AI.WorldState.States;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
namespace Content.Server.AI.Utility.Considerations.Movement namespace Content.Server.AI.Utility.Considerations.Movement
{ {
@@ -9,7 +11,7 @@ namespace Content.Server.AI.Utility.Considerations.Movement
{ {
var self = context.GetState<SelfState>().GetValue(); var self = context.GetState<SelfState>().GetValue();
var target = context.GetState<TargetEntityState>().GetValue(); var target = context.GetState<TargetEntityState>().GetValue();
if (target == null || target.Deleted || target.Transform.GridID != self?.Transform.GridID) if (target == null || (!IoCManager.Resolve<IEntityManager>().EntityExists(target.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(target.Uid).EntityLifeStage) >= EntityLifeStage.Deleted || target.Transform.GridID != self?.Transform.GridID)
{ {
return 0.0f; return 0.0f;
} }

View File

@@ -3,6 +3,7 @@ using Content.Server.AI.WorldState.States;
using Content.Server.Chemistry.EntitySystems; using Content.Server.Chemistry.EntitySystems;
using Content.Server.Nutrition.Components; using Content.Server.Nutrition.Components;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
namespace Content.Server.AI.Utility.Considerations.Nutrition.Drink namespace Content.Server.AI.Utility.Considerations.Nutrition.Drink
{ {
@@ -13,7 +14,7 @@ namespace Content.Server.AI.Utility.Considerations.Nutrition.Drink
var target = context.GetState<TargetEntityState>().GetValue(); var target = context.GetState<TargetEntityState>().GetValue();
if (target == null if (target == null
|| target.Deleted || (!IoCManager.Resolve<IEntityManager>().EntityExists(target.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(target.Uid).EntityLifeStage) >= EntityLifeStage.Deleted
|| !EntitySystem.Get<SolutionContainerSystem>().TryGetSolution(target.Uid, DrinkComponent.DefaultSolutionName, out var drink)) || !EntitySystem.Get<SolutionContainerSystem>().TryGetSolution(target.Uid, DrinkComponent.DefaultSolutionName, out var drink))
{ {
return 0.0f; return 0.0f;

View File

@@ -3,6 +3,7 @@ using Content.Server.AI.WorldState.States;
using Content.Server.Chemistry.EntitySystems; using Content.Server.Chemistry.EntitySystems;
using Content.Server.Nutrition.Components; using Content.Server.Nutrition.Components;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
namespace Content.Server.AI.Utility.Considerations.Nutrition.Food namespace Content.Server.AI.Utility.Considerations.Nutrition.Food
{ {
@@ -12,7 +13,7 @@ namespace Content.Server.AI.Utility.Considerations.Nutrition.Food
{ {
var target = context.GetState<TargetEntityState>().GetValue(); var target = context.GetState<TargetEntityState>().GetValue();
if (target == null || target.Deleted || !target.TryGetComponent<FoodComponent>(out var foodComp) || if (target == null || (!IoCManager.Resolve<IEntityManager>().EntityExists(target.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(target.Uid).EntityLifeStage) >= EntityLifeStage.Deleted || !target.TryGetComponent<FoodComponent>(out var foodComp) ||
!EntitySystem.Get<SolutionContainerSystem>().TryGetSolution(target.Uid, foodComp.SolutionName, out var food)) !EntitySystem.Get<SolutionContainerSystem>().TryGetSolution(target.Uid, foodComp.SolutionName, out var food))
{ {
return 0.0f; return 0.0f;

View File

@@ -2,6 +2,7 @@ using System.Collections.Generic;
using Content.Server.Hands.Components; using Content.Server.Hands.Components;
using JetBrains.Annotations; using JetBrains.Annotations;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
namespace Content.Server.AI.WorldState.States.Inventory namespace Content.Server.AI.WorldState.States.Inventory
{ {
@@ -16,7 +17,7 @@ namespace Content.Server.AI.WorldState.States.Inventory
{ {
foreach (var item in handsComponent.GetAllHeldItems()) foreach (var item in handsComponent.GetAllHeldItems())
{ {
if (item.Owner.Deleted) if ((!IoCManager.Resolve<IEntityManager>().EntityExists(item.Owner.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(item.Owner.Uid).EntityLifeStage) >= EntityLifeStage.Deleted)
continue; continue;
yield return item.Owner; yield return item.Owner;

View File

@@ -19,6 +19,7 @@ using Robust.Server.Player;
using Robust.Shared.Audio; using Robust.Shared.Audio;
using Robust.Shared.Containers; using Robust.Shared.Containers;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Localization; using Robust.Shared.Localization;
using Robust.Shared.Player; using Robust.Shared.Player;
using Robust.Shared.Serialization.Manager.Attributes; using Robust.Shared.Serialization.Manager.Attributes;
@@ -229,7 +230,7 @@ namespace Content.Server.Atmos.Components
private InternalsComponent? GetInternalsComponent(IEntity? owner = null) private InternalsComponent? GetInternalsComponent(IEntity? owner = null)
{ {
if (Owner.Deleted) return null; if ((!IoCManager.Resolve<IEntityManager>().EntityExists(Owner.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(Owner.Uid).EntityLifeStage) >= EntityLifeStage.Deleted) return null;
if (owner != null) return owner.GetComponentOrNull<InternalsComponent>(); if (owner != null) return owner.GetComponentOrNull<InternalsComponent>();
return Owner.TryGetContainer(out var container) return Owner.TryGetContainer(out var container)
? container.Owner.GetComponentOrNull<InternalsComponent>() ? container.Owner.GetComponentOrNull<InternalsComponent>()

View File

@@ -421,7 +421,7 @@ namespace Content.Server.Botany.Components
public bool DoHarvest(IEntity user) public bool DoHarvest(IEntity user)
{ {
if (Seed == null || user.Deleted || !EntitySystem.Get<ActionBlockerSystem>().CanInteract(user.Uid)) if (Seed == null || (!IoCManager.Resolve<IEntityManager>().EntityExists(user.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(user.Uid).EntityLifeStage) >= EntityLifeStage.Deleted || !EntitySystem.Get<ActionBlockerSystem>().CanInteract(user.Uid))
return false; return false;
if (Harvest && !Dead) if (Harvest && !Dead)
@@ -651,7 +651,7 @@ namespace Content.Server.Botany.Components
var user = eventArgs.User; var user = eventArgs.User;
var usingItem = eventArgs.Using; var usingItem = eventArgs.Using;
if (usingItem.Deleted || !EntitySystem.Get<ActionBlockerSystem>().CanInteract(user.Uid)) if ((!IoCManager.Resolve<IEntityManager>().EntityExists(usingItem.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(usingItem.Uid).EntityLifeStage) >= EntityLifeStage.Deleted || !EntitySystem.Get<ActionBlockerSystem>().CanInteract(user.Uid))
return false; return false;
if (usingItem.TryGetComponent(out SeedComponent? seeds)) if (usingItem.TryGetComponent(out SeedComponent? seeds))

View File

@@ -87,14 +87,14 @@ namespace Content.Server.Cargo.Components
spriteComponent.LayerSetState(0, "idle"); spriteComponent.LayerSetState(0, "idle");
Owner.SpawnTimer((int) (TeleportDelay * 1000), () => Owner.SpawnTimer((int) (TeleportDelay * 1000), () =>
{ {
if (!Deleted && !Owner.Deleted && _currentState == CargoTelepadState.Charging && _teleportQueue.Count > 0) if (!Deleted && !((!IoCManager.Resolve<IEntityManager>().EntityExists(Owner.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(Owner.Uid).EntityLifeStage) >= EntityLifeStage.Deleted) && _currentState == CargoTelepadState.Charging && _teleportQueue.Count > 0)
{ {
_currentState = CargoTelepadState.Teleporting; _currentState = CargoTelepadState.Teleporting;
if (Owner.TryGetComponent<SpriteComponent>(out var spriteComponent) && spriteComponent.LayerCount > 0) if (Owner.TryGetComponent<SpriteComponent>(out var spriteComponent) && spriteComponent.LayerCount > 0)
spriteComponent.LayerSetState(0, "beam"); spriteComponent.LayerSetState(0, "beam");
Owner.SpawnTimer((int) (TeleportDuration * 1000), () => Owner.SpawnTimer((int) (TeleportDuration * 1000), () =>
{ {
if (!Deleted && !Owner.Deleted && _currentState == CargoTelepadState.Teleporting && _teleportQueue.Count > 0) if (!Deleted && !((!IoCManager.Resolve<IEntityManager>().EntityExists(Owner.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(Owner.Uid).EntityLifeStage) >= EntityLifeStage.Deleted) && _currentState == CargoTelepadState.Teleporting && _teleportQueue.Count > 0)
{ {
SoundSystem.Play(Filter.Pvs(Owner), _teleportSound.GetSound(), Owner, AudioParams.Default.WithVolume(-8f)); SoundSystem.Play(Filter.Pvs(Owner), _teleportSound.GetSound(), Owner, AudioParams.Default.WithVolume(-8f));
SpawnProduct(_teleportQueue[0]); SpawnProduct(_teleportQueue[0]);

View File

@@ -68,7 +68,7 @@ namespace Content.Server.Chemistry.Components
protected override void OnKill() protected override void OnKill()
{ {
if (Owner.Deleted) if ((!IoCManager.Resolve<IEntityManager>().EntityExists(Owner.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(Owner.Uid).EntityLifeStage) >= EntityLifeStage.Deleted)
return; return;
if (Owner.TryGetComponent(out AppearanceComponent? appearance)) if (Owner.TryGetComponent(out AppearanceComponent? appearance))
{ {

View File

@@ -6,6 +6,7 @@ using Content.Shared.Chemistry.Reagent;
using Content.Shared.FixedPoint; using Content.Shared.FixedPoint;
using Content.Shared.Smoking; using Content.Shared.Smoking;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
namespace Content.Server.Chemistry.Components namespace Content.Server.Chemistry.Components
{ {
@@ -55,7 +56,7 @@ namespace Content.Server.Chemistry.Components
protected override void OnKill() protected override void OnKill()
{ {
if (Owner.Deleted) if ((!IoCManager.Resolve<IEntityManager>().EntityExists(Owner.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(Owner.Uid).EntityLifeStage) >= EntityLifeStage.Deleted)
return; return;
Owner.Delete(); Owner.Delete();
} }

View File

@@ -134,7 +134,7 @@ namespace Content.Server.Conveyor
//todo uuuhhh cache this //todo uuuhhh cache this
foreach (var entity in _entityLookup.GetEntitiesIntersecting(comp.Owner, flags: LookupFlags.Approximate)) foreach (var entity in _entityLookup.GetEntitiesIntersecting(comp.Owner, flags: LookupFlags.Approximate))
{ {
if (entity.Deleted) if ((!IoCManager.Resolve<IEntityManager>().EntityExists(entity.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(entity.Uid).EntityLifeStage) >= EntityLifeStage.Deleted)
{ {
continue; continue;
} }

View File

@@ -6,6 +6,7 @@ using Content.Shared.Interaction;
using Content.Shared.Interaction.Helpers; using Content.Shared.Interaction.Helpers;
using JetBrains.Annotations; using JetBrains.Annotations;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
namespace Content.Server.Engineering.EntitySystems namespace Content.Server.Engineering.EntitySystems
{ {
@@ -40,7 +41,7 @@ namespace Content.Server.Engineering.EntitySystems
component.TokenSource.Cancel(); component.TokenSource.Cancel();
} }
if (component.Deleted || component.Owner.Deleted) if (component.Deleted || (!IoCManager.Resolve<IEntityManager>().EntityExists(component.Owner.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(component.Owner.Uid).EntityLifeStage) >= EntityLifeStage.Deleted)
return; return;
var entity = EntityManager.SpawnEntity(component.Prototype, component.Owner.Transform.Coordinates); var entity = EntityManager.SpawnEntity(component.Prototype, component.Owner.Transform.Coordinates);

View File

@@ -57,7 +57,7 @@ namespace Content.Server.Engineering.EntitySystems
return; return;
} }
if (component.Deleted || component.Owner.Deleted) if (component.Deleted || (!IoCManager.Resolve<IEntityManager>().EntityExists(component.Owner.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(component.Owner.Uid).EntityLifeStage) >= EntityLifeStage.Deleted)
return; return;
if (component.Owner.TryGetComponent<SharedStackComponent>(out var stackComp) if (component.Owner.TryGetComponent<SharedStackComponent>(out var stackComp)
@@ -68,7 +68,7 @@ namespace Content.Server.Engineering.EntitySystems
EntityManager.SpawnEntity(component.Prototype, args.ClickLocation.SnapToGrid(grid)); EntityManager.SpawnEntity(component.Prototype, args.ClickLocation.SnapToGrid(grid));
if (component.RemoveOnInteract && stackComp == null && !component.Owner.Deleted) if (component.RemoveOnInteract && stackComp == null && !((!IoCManager.Resolve<IEntityManager>().EntityExists(component.Owner.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(component.Owner.Uid).EntityLifeStage) >= EntityLifeStage.Deleted))
component.Owner.Delete(); component.Owner.Delete();
} }
} }

View File

@@ -93,7 +93,7 @@ namespace Content.Server.Explosion.Components
return false; return false;
Owner.SpawnTimer((int) (_delay * 1000), () => Owner.SpawnTimer((int) (_delay * 1000), () =>
{ {
if (Owner.Deleted) if ((!IoCManager.Resolve<IEntityManager>().EntityExists(Owner.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(Owner.Uid).EntityLifeStage) >= EntityLifeStage.Deleted)
return; return;
_countDown = true; _countDown = true;
var random = IoCManager.Resolve<IRobustRandom>(); var random = IoCManager.Resolve<IRobustRandom>();
@@ -116,7 +116,7 @@ namespace Content.Server.Explosion.Components
grenade.SpawnTimer(delay, () => grenade.SpawnTimer(delay, () =>
{ {
if (grenade.Deleted) if ((!IoCManager.Resolve<IEntityManager>().EntityExists(grenade.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(grenade.Uid).EntityLifeStage) >= EntityLifeStage.Deleted)
return; return;
EntitySystem.Get<TriggerSystem>().Trigger(grenade, eventArgs.User); EntitySystem.Get<TriggerSystem>().Trigger(grenade, eventArgs.User);

View File

@@ -13,7 +13,7 @@ namespace Content.Server.Explosion.Components
void IExAct.OnExplosion(ExplosionEventArgs eventArgs) void IExAct.OnExplosion(ExplosionEventArgs eventArgs)
{ {
if (Owner.Deleted) if ((!IoCManager.Resolve<IEntityManager>().EntityExists(Owner.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(Owner.Uid).EntityLifeStage) >= EntityLifeStage.Deleted)
return; return;
var sourceLocation = eventArgs.Source; var sourceLocation = eventArgs.Source;

View File

@@ -130,7 +130,7 @@ namespace Content.Server.Explosion.EntitySystems
// and splitted into two lists based on if they are Impassable or not // and splitted into two lists based on if they are Impassable or not
foreach (var entity in entitiesInRange) foreach (var entity in entitiesInRange)
{ {
if (entity.Deleted || entity.IsInContainer()) if ((!IoCManager.Resolve<IEntityManager>().EntityExists(entity.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(entity.Uid).EntityLifeStage) >= EntityLifeStage.Deleted || entity.IsInContainer())
{ {
continue; continue;
} }

View File

@@ -132,7 +132,7 @@ namespace Content.Server.Explosion.EntitySystems
Timer.Spawn(delay, () => Timer.Spawn(delay, () =>
{ {
if (triggered.Deleted) return; if ((!IoCManager.Resolve<IEntityManager>().EntityExists(triggered.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(triggered.Uid).EntityLifeStage) >= EntityLifeStage.Deleted) return;
Trigger(triggered, user); Trigger(triggered, user);
}); });
} }

View File

@@ -10,6 +10,7 @@ using Content.Shared.Popups;
using Content.Shared.Sound; using Content.Shared.Sound;
using Robust.Shared.Audio; using Robust.Shared.Audio;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Localization; using Robust.Shared.Localization;
using Robust.Shared.Player; using Robust.Shared.Player;
using Robust.Shared.Serialization.Manager.Attributes; using Robust.Shared.Serialization.Manager.Attributes;
@@ -86,7 +87,7 @@ namespace Content.Server.Fluids.Components
_currentlyUsing.Remove(eventArgs.Using.Uid); _currentlyUsing.Remove(eventArgs.Using.Uid);
if (result == DoAfterStatus.Cancelled || if (result == DoAfterStatus.Cancelled ||
Owner.Deleted || (!IoCManager.Resolve<IEntityManager>().EntityExists(Owner.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(Owner.Uid).EntityLifeStage) >= EntityLifeStage.Deleted ||
mopComponent.Deleted || mopComponent.Deleted ||
CurrentVolume <= 0 || CurrentVolume <= 0 ||
!Owner.InRangeUnobstructed(mopComponent.Owner)) !Owner.InRangeUnobstructed(mopComponent.Owner))

View File

@@ -11,6 +11,7 @@ using Content.Shared.Popups;
using Content.Shared.Sound; using Content.Shared.Sound;
using Robust.Shared.Audio; using Robust.Shared.Audio;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Localization; using Robust.Shared.Localization;
using Robust.Shared.Player; using Robust.Shared.Player;
using Robust.Shared.Serialization.Manager.Attributes; using Robust.Shared.Serialization.Manager.Attributes;
@@ -127,7 +128,7 @@ namespace Content.Server.Fluids.Components
Mopping = false; Mopping = false;
if (result == DoAfterStatus.Cancelled || if (result == DoAfterStatus.Cancelled ||
Owner.Deleted || (!IoCManager.Resolve<IEntityManager>().EntityExists(Owner.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(Owner.Uid).EntityLifeStage) >= EntityLifeStage.Deleted ||
puddleComponent.Deleted) puddleComponent.Deleted)
return false; return false;

View File

@@ -61,7 +61,7 @@ namespace Content.Server.Fluids.EntitySystems
private void UpdateVisuals(EntityUid uid, PuddleComponent puddleComponent) private void UpdateVisuals(EntityUid uid, PuddleComponent puddleComponent)
{ {
if (puddleComponent.Owner.Deleted || EmptyHolder(uid, puddleComponent) || if ((!IoCManager.Resolve<IEntityManager>().EntityExists(puddleComponent.Owner.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(puddleComponent.Owner.Uid).EntityLifeStage) >= EntityLifeStage.Deleted || EmptyHolder(uid, puddleComponent) ||
!EntityManager.TryGetComponent<AppearanceComponent>(uid, out var appearanceComponent)) !EntityManager.TryGetComponent<AppearanceComponent>(uid, out var appearanceComponent))
{ {
return; return;

View File

@@ -181,7 +181,7 @@ namespace Content.Server.Ghost
private void DeleteEntity(EntityUid uid) private void DeleteEntity(EntityUid uid)
{ {
if (!EntityManager.TryGetEntity(uid, out var entity) if (!EntityManager.TryGetEntity(uid, out var entity)
|| entity.Deleted || (!IoCManager.Resolve<IEntityManager>().EntityExists(entity.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(entity.Uid).EntityLifeStage) >= EntityLifeStage.Deleted
|| (!IoCManager.Resolve<IEntityManager>().EntityExists(entity.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(entity.Uid).EntityLifeStage) == EntityLifeStage.Terminating) || (!IoCManager.Resolve<IEntityManager>().EntityExists(entity.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(entity.Uid).EntityLifeStage) == EntityLifeStage.Terminating)
return; return;

View File

@@ -124,7 +124,7 @@ namespace Content.Server.Inventory.Components
} }
var containedEntity = _slotContainers[slot].ContainedEntity; var containedEntity = _slotContainers[slot].ContainedEntity;
if (containedEntity?.Deleted == true) if ((containedEntity != null ? (!IoCManager.Resolve<IEntityManager>().EntityExists(containedEntity.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(containedEntity.Uid).EntityLifeStage) >= EntityLifeStage.Deleted : null) == true)
{ {
_slotContainers.Remove(slot); _slotContainers.Remove(slot);
containedEntity = null; containedEntity = null;

View File

@@ -16,7 +16,7 @@ namespace Content.Server.Inventory
var user = inventory.Owner; var user = inventory.Owner;
// Let's do nothing if the owner of the inventory has been deleted. // Let's do nothing if the owner of the inventory has been deleted.
if (user.Deleted) if ((!IoCManager.Resolve<IEntityManager>().EntityExists(user.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(user.Uid).EntityLifeStage) >= EntityLifeStage.Deleted)
return false; return false;
// If we don't have that slot or there's already an item there, we do nothing. // If we don't have that slot or there's already an item there, we do nothing.

View File

@@ -80,7 +80,7 @@ namespace Content.Server.Light.Components
public void OnUpdate(float frameTime) public void OnUpdate(float frameTime)
{ {
if (Owner.Deleted || !Owner.TryGetComponent(out BatteryComponent? battery) || Owner.Paused) if ((!IoCManager.Resolve<IEntityManager>().EntityExists(Owner.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(Owner.Uid).EntityLifeStage) >= EntityLifeStage.Deleted || !Owner.TryGetComponent(out BatteryComponent? battery) || Owner.Paused)
{ {
return; return;
} }

View File

@@ -105,7 +105,7 @@ namespace Content.Server.Morgue.Components
_cremateCancelToken = new CancellationTokenSource(); _cremateCancelToken = new CancellationTokenSource();
Owner.SpawnTimer(_burnMilis, () => Owner.SpawnTimer(_burnMilis, () =>
{ {
if (Owner.Deleted) if ((!IoCManager.Resolve<IEntityManager>().EntityExists(Owner.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(Owner.Uid).EntityLifeStage) >= EntityLifeStage.Deleted)
return; return;
Appearance?.SetData(CrematoriumVisuals.Burning, false); Appearance?.SetData(CrematoriumVisuals.Burning, false);

View File

@@ -1,5 +1,6 @@
using Content.Shared.Interaction; using Content.Shared.Interaction;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.ViewVariables; using Robust.Shared.ViewVariables;
namespace Content.Server.Morgue.Components namespace Content.Server.Morgue.Components
@@ -15,7 +16,7 @@ namespace Content.Server.Morgue.Components
void IActivate.Activate(ActivateEventArgs eventArgs) void IActivate.Activate(ActivateEventArgs eventArgs)
{ {
if (Morgue != null && !Morgue.Deleted && Morgue.TryGetComponent<MorgueEntityStorageComponent>(out var comp)) if (Morgue != null && !((!IoCManager.Resolve<IEntityManager>().EntityExists(Morgue.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(Morgue.Uid).EntityLifeStage) >= EntityLifeStage.Deleted) && Morgue.TryGetComponent<MorgueEntityStorageComponent>(out var comp))
{ {
comp.Activate(new ActivateEventArgs(eventArgs.User, Morgue)); comp.Activate(new ActivateEventArgs(eventArgs.User, Morgue));
} }

View File

@@ -224,7 +224,7 @@ namespace Content.Server.PneumaticCannon
if (!comp.Owner.TryGetComponent<ServerStorageComponent>(out var storage)) if (!comp.Owner.TryGetComponent<ServerStorageComponent>(out var storage))
return; return;
if (data.User.Deleted) if ((!IoCManager.Resolve<IEntityManager>().EntityExists(data.User.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(data.User.Uid).EntityLifeStage) >= EntityLifeStage.Deleted)
return; return;
if (storage.StoredEntities == null) return; if (storage.StoredEntities == null) return;

View File

@@ -96,7 +96,7 @@ namespace Content.Server.Projectiles.Components
Owner.SpawnTimer((int) _deathTime.TotalMilliseconds, () => Owner.SpawnTimer((int) _deathTime.TotalMilliseconds, () =>
{ {
if (!Owner.Deleted) if (!((!IoCManager.Resolve<IEntityManager>().EntityExists(Owner.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(Owner.Uid).EntityLifeStage) >= EntityLifeStage.Deleted))
{ {
Owner.Delete(); Owner.Delete();
} }

View File

@@ -39,7 +39,7 @@ namespace Content.Server.Projectiles
var coordinates = args.OtherFixture.Body.Owner.Transform.Coordinates; var coordinates = args.OtherFixture.Body.Owner.Transform.Coordinates;
var playerFilter = Filter.Pvs(coordinates); var playerFilter = Filter.Pvs(coordinates);
if (!otherEntity.Deleted && component.SoundHitSpecies != null && if (!((!IoCManager.Resolve<IEntityManager>().EntityExists(otherEntity.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(otherEntity.Uid).EntityLifeStage) >= EntityLifeStage.Deleted) && component.SoundHitSpecies != null &&
otherEntity.HasComponent<SharedBodyComponent>()) otherEntity.HasComponent<SharedBodyComponent>())
{ {
SoundSystem.Play(playerFilter, component.SoundHitSpecies.GetSound(), coordinates); SoundSystem.Play(playerFilter, component.SoundHitSpecies.GetSound(), coordinates);
@@ -52,7 +52,7 @@ namespace Content.Server.Projectiles
SoundSystem.Play(playerFilter, soundHit, coordinates); SoundSystem.Play(playerFilter, soundHit, coordinates);
} }
if (!otherEntity.Deleted) if (!((!IoCManager.Resolve<IEntityManager>().EntityExists(otherEntity.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(otherEntity.Uid).EntityLifeStage) >= EntityLifeStage.Deleted))
{ {
var dmg = _damageableSystem.TryChangeDamage(otherEntity.Uid, component.Damage); var dmg = _damageableSystem.TryChangeDamage(otherEntity.Uid, component.Damage);
component.DamagedEntity = true; component.DamagedEntity = true;
@@ -63,7 +63,7 @@ namespace Content.Server.Projectiles
} }
// Damaging it can delete it // Damaging it can delete it
if (!otherEntity.Deleted && otherEntity.TryGetComponent(out CameraRecoilComponent? recoilComponent)) if (!((!IoCManager.Resolve<IEntityManager>().EntityExists(otherEntity.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(otherEntity.Uid).EntityLifeStage) >= EntityLifeStage.Deleted) && otherEntity.TryGetComponent(out CameraRecoilComponent? recoilComponent))
{ {
var direction = args.OurFixture.Body.LinearVelocity.Normalized; var direction = args.OurFixture.Body.LinearVelocity.Normalized;
recoilComponent.Kick(direction); recoilComponent.Kick(direction);

View File

@@ -108,7 +108,7 @@ namespace Content.Server.Radiation
public void Update(float frameTime) public void Update(float frameTime)
{ {
if (!Decay || Owner.Deleted) if (!Decay || (!IoCManager.Resolve<IEntityManager>().EntityExists(Owner.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(Owner.Uid).EntityLifeStage) >= EntityLifeStage.Deleted)
return; return;
if (_duration <= 0f) if (_duration <= 0f)

View File

@@ -32,12 +32,12 @@ namespace Content.Server.Radiation
comp.Update(RadiationCooldown); comp.Update(RadiationCooldown);
var ent = comp.Owner; var ent = comp.Owner;
if (ent.Deleted) continue; if ((!IoCManager.Resolve<IEntityManager>().EntityExists(ent.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(ent.Uid).EntityLifeStage) >= EntityLifeStage.Deleted) continue;
foreach (var entity in _lookup.GetEntitiesInRange(ent.Transform.Coordinates, comp.Range)) foreach (var entity in _lookup.GetEntitiesInRange(ent.Transform.Coordinates, comp.Range))
{ {
// For now at least still need this because it uses a list internally then returns and this may be deleted before we get to it. // For now at least still need this because it uses a list internally then returns and this may be deleted before we get to it.
if (entity.Deleted) continue; if ((!IoCManager.Resolve<IEntityManager>().EntityExists(entity.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(entity.Uid).EntityLifeStage) >= EntityLifeStage.Deleted) continue;
// Note: Radiation is liable for a refactor (stinky Sloth coding a basic version when he did StationEvents) // Note: Radiation is liable for a refactor (stinky Sloth coding a basic version when he did StationEvents)
// so this ToArray doesn't really matter. // so this ToArray doesn't really matter.

View File

@@ -61,7 +61,7 @@ namespace Content.Server.Spawners.Components
return; return;
} }
if(!Owner.Deleted) if(!((!IoCManager.Resolve<IEntityManager>().EntityExists(Owner.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(Owner.Uid).EntityLifeStage) >= EntityLifeStage.Deleted))
IoCManager.Resolve<IEntityManager>().SpawnEntity(_robustRandom.Pick(Prototypes), Owner.Transform.Coordinates); IoCManager.Resolve<IEntityManager>().SpawnEntity(_robustRandom.Pick(Prototypes), Owner.Transform.Coordinates);
} }

View File

@@ -47,7 +47,7 @@ namespace Content.Server.Spawners.Components
return; return;
} }
if(!Owner.Deleted) if(!((!IoCManager.Resolve<IEntityManager>().EntityExists(Owner.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(Owner.Uid).EntityLifeStage) >= EntityLifeStage.Deleted))
{ {
var random = IoCManager.Resolve<IRobustRandom>(); var random = IoCManager.Resolve<IRobustRandom>();

View File

@@ -123,7 +123,7 @@ namespace Content.Server.StationEvents.Events
if (!_foundTile || if (!_foundTile ||
_targetGrid == null || _targetGrid == null ||
_targetGrid.Deleted || (!IoCManager.Resolve<IEntityManager>().EntityExists(_targetGrid.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(_targetGrid.Uid).EntityLifeStage) >= EntityLifeStage.Deleted ||
!atmosphereSystem.IsSimulatedGrid(_targetGrid.Transform.GridID)) !atmosphereSystem.IsSimulatedGrid(_targetGrid.Transform.GridID))
{ {
Running = false; Running = false;
@@ -156,7 +156,7 @@ namespace Content.Server.StationEvents.Events
{ {
if (!_foundTile || if (!_foundTile ||
_targetGrid == null || _targetGrid == null ||
_targetGrid.Deleted || (!IoCManager.Resolve<IEntityManager>().EntityExists(_targetGrid.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(_targetGrid.Uid).EntityLifeStage) >= EntityLifeStage.Deleted ||
!atmosphereSystem.IsSimulatedGrid(_targetGrid.Transform.GridID)) !atmosphereSystem.IsSimulatedGrid(_targetGrid.Transform.GridID))
{ {
return; return;

View File

@@ -53,7 +53,7 @@ namespace Content.Server.StationEvents.Events
{ {
foreach (var entity in _powered) foreach (var entity in _powered)
{ {
if (entity.Deleted) continue; if ((!IoCManager.Resolve<IEntityManager>().EntityExists(entity.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(entity.Uid).EntityLifeStage) >= EntityLifeStage.Deleted) continue;
if (entity.TryGetComponent(out ApcPowerReceiverComponent? powerReceiverComponent)) if (entity.TryGetComponent(out ApcPowerReceiverComponent? powerReceiverComponent))
{ {

View File

@@ -33,7 +33,7 @@ namespace Content.Server.Throwing
/// <param name="pushbackRatio">The ratio of impulse applied to the thrower</param> /// <param name="pushbackRatio">The ratio of impulse applied to the thrower</param>
internal static void TryThrow(this IEntity entity, Vector2 direction, float strength = 1.0f, IEntity? user = null, float pushbackRatio = 1.0f) internal static void TryThrow(this IEntity entity, Vector2 direction, float strength = 1.0f, IEntity? user = null, float pushbackRatio = 1.0f)
{ {
if (entity.Deleted || if ((!IoCManager.Resolve<IEntityManager>().EntityExists(entity.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(entity.Uid).EntityLifeStage) >= EntityLifeStage.Deleted ||
strength <= 0f || strength <= 0f ||
!entity.TryGetComponent(out PhysicsComponent? physicsComponent)) !entity.TryGetComponent(out PhysicsComponent? physicsComponent))
{ {

View File

@@ -269,7 +269,7 @@ namespace Content.Server.Weapon.Melee
var hitBloodstreams = new List<BloodstreamComponent>(); var hitBloodstreams = new List<BloodstreamComponent>();
foreach (var entity in args.HitEntities) foreach (var entity in args.HitEntities)
{ {
if (entity.Deleted) if ((!IoCManager.Resolve<IEntityManager>().EntityExists(entity.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(entity.Uid).EntityLifeStage) >= EntityLifeStage.Deleted)
continue; continue;
if (entity.TryGetComponent<BloodstreamComponent>(out var bloodstream)) if (entity.TryGetComponent<BloodstreamComponent>(out var bloodstream))

View File

@@ -62,7 +62,7 @@ namespace Content.Shared.Nutrition.EntitySystems
private void OnCreamPiedHitBy(EntityUid uid, CreamPiedComponent creamPied, ThrowHitByEvent args) private void OnCreamPiedHitBy(EntityUid uid, CreamPiedComponent creamPied, ThrowHitByEvent args)
{ {
if (args.Thrown.Deleted || !args.Thrown.TryGetComponent(out CreamPieComponent? creamPie)) return; if ((!IoCManager.Resolve<IEntityManager>().EntityExists(args.Thrown.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(args.Thrown.Uid).EntityLifeStage) >= EntityLifeStage.Deleted || !args.Thrown.TryGetComponent(out CreamPieComponent? creamPie)) return;
SetCreamPied(uid, creamPied, true); SetCreamPied(uid, creamPied, true);

View File

@@ -165,7 +165,7 @@ namespace Content.Shared.Pulling
// The pulled object may have already been deleted. // The pulled object may have already been deleted.
// TODO: Work out why. Monkey + meat spike is a good test for this, // TODO: Work out why. Monkey + meat spike is a good test for this,
// assuming you're still pulling the monkey when it gets gibbed. // assuming you're still pulling the monkey when it gets gibbed.
if (pulled.Deleted) if ((!IoCManager.Resolve<IEntityManager>().EntityExists(pulled.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(pulled.Uid).EntityLifeStage) >= EntityLifeStage.Deleted)
{ {
return; return;
} }

View File

@@ -113,7 +113,7 @@ namespace Content.Shared.Throwing
public void LandComponent(ThrownItemComponent thrownItem) public void LandComponent(ThrownItemComponent thrownItem)
{ {
if (thrownItem.Deleted || thrownItem.Owner.Deleted || _containerSystem.IsEntityInContainer(thrownItem.Owner.Uid)) return; if (thrownItem.Deleted || (!IoCManager.Resolve<IEntityManager>().EntityExists(thrownItem.Owner.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(thrownItem.Owner.Uid).EntityLifeStage) >= EntityLifeStage.Deleted || _containerSystem.IsEntityInContainer(thrownItem.Owner.Uid)) return;
var landing = thrownItem.Owner; var landing = thrownItem.Owner;