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);
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);
continue;

View File

@@ -116,7 +116,7 @@ namespace Content.Client.Chat.UI
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(0, Die);

View File

@@ -2,6 +2,7 @@ using Content.Client.Stylesheets;
using Robust.Client.GameObjects;
using Robust.Client.UserInterface.Controls;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Maths;
namespace Content.Client.ContextMenu.UI
@@ -57,7 +58,7 @@ namespace Content.Client.ContextMenu.UI
/// </summary>
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;
EntityIcon.Sprite = entity?.GetComponentOrNull<ISpriteComponent>();

View File

@@ -184,7 +184,7 @@ namespace Content.Client.ContextMenu.UI
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);
}
}
@@ -335,7 +335,7 @@ namespace Content.Client.ContextMenu.UI
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;
continue;
}

View File

@@ -51,7 +51,7 @@ namespace Content.Client.DoAfter
var currentTime = _gameTiming.CurTime;
// 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;
var viewbox = _eyeManager.GetWorldViewport().Enlarged(2.0f);

View File

@@ -176,7 +176,7 @@ namespace Content.Client.DragDrop
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
// we shouldn't replay the original click
@@ -213,7 +213,7 @@ namespace Content.Client.DragDrop
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;
}
@@ -352,9 +352,9 @@ namespace Content.Client.DragDrop
private void HighlightTargets()
{
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.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 " +
"dragging anything or dragged entity / shadow was deleted.");

View File

@@ -151,7 +151,7 @@ namespace Content.Client.Entry
/// </summary>
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>();
}

View File

@@ -72,7 +72,7 @@ namespace Content.Client.HealthOverlay
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;
}

View File

@@ -72,7 +72,7 @@ namespace Content.Client.HealthOverlay.UI
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;
}
@@ -138,7 +138,7 @@ namespace Content.Client.HealthOverlay.UI
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)
{
Visible = false;

View File

@@ -104,7 +104,7 @@ namespace Content.Client.Items.Managers
}
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) ||
!cooldown.CooldownStart.HasValue ||
!cooldown.CooldownEnd.HasValue)

View File

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

View File

@@ -132,7 +132,7 @@ namespace Content.Client.Viewport
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))
{
outline.OnMouseLeave();

View File

@@ -51,7 +51,7 @@ namespace Content.Client.Weapons.Melee
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>();
lunge.SetData(msg.Angle);
@@ -88,7 +88,7 @@ namespace Content.Client.Weapons.Melee
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;
}

View File

@@ -6,6 +6,7 @@ using Content.Shared.Coordinates;
using Content.Shared.FixedPoint;
using NUnit.Framework;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Map;
using Robust.Shared.Timing;
@@ -156,7 +157,7 @@ namespace Content.IntegrationTests.Tests.Fluids
Assert.True(puddle.Owner.Paused);
// 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
@@ -170,7 +171,7 @@ namespace Content.IntegrationTests.Tests.Fluids
Assert.False(puddle.Owner.Paused);
// 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

View File

@@ -51,7 +51,7 @@ namespace Content.Server.AI.EntitySystems
foreach (var message in _queuedMobStateMessages)
{
// 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))
{
continue;

View File

@@ -22,7 +22,7 @@ namespace Content.Server.AI.Operators.Inventory
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.IsInContainer() ||
!_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.
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) ||
!_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.
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) ||
!_target.TryGetComponent(out ItemComponent? itemComponent))
{
@@ -57,7 +57,7 @@ namespace Content.Server.AI.Operators.Nutrition
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 ||
_owner.TryGetComponent(out HungerComponent? hungerComponent) &&
hungerComponent.CurrentHunger >= hungerComponent.HungerThresholds[HungerThreshold.Okay])

View File

@@ -265,7 +265,7 @@ namespace Content.Server.AI.Pathfinding
/// <param name="entity"></param>
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) ||
!entity.TryGetComponent(out IPhysBody? physics) ||
!PathfindingNode.IsRelevant(entity, physics))
@@ -305,7 +305,7 @@ namespace Content.Server.AI.Pathfinding
private void HandleEntityMove(MoveEvent moveEvent)
{
// 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) ||
!PathfindingNode.IsRelevant(moveEvent.Sender, physics) ||
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)
{
// 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) ||
!EntitySystem.Get<ActionBlockerSystem>().CanMove(entity.Uid) ||
!entity.Transform.GridID.IsValid())
@@ -258,7 +258,7 @@ namespace Content.Server.AI.Steering
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;
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
//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
// 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.States;
using Content.Shared.Damage;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
namespace Content.Server.AI.Utility.Considerations.Combat
{
@@ -10,7 +12,7 @@ namespace Content.Server.AI.Utility.Considerations.Combat
{
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;
}

View File

@@ -1,5 +1,7 @@
using Content.Server.AI.WorldState;
using Content.Server.AI.WorldState.States;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
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 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;
}

View File

@@ -3,6 +3,7 @@ using Content.Server.AI.WorldState.States;
using Content.Server.Chemistry.EntitySystems;
using Content.Server.Nutrition.Components;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
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();
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))
{
return 0.0f;

View File

@@ -3,6 +3,7 @@ using Content.Server.AI.WorldState.States;
using Content.Server.Chemistry.EntitySystems;
using Content.Server.Nutrition.Components;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
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();
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))
{
return 0.0f;

View File

@@ -2,6 +2,7 @@ using System.Collections.Generic;
using Content.Server.Hands.Components;
using JetBrains.Annotations;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
namespace Content.Server.AI.WorldState.States.Inventory
{
@@ -16,7 +17,7 @@ namespace Content.Server.AI.WorldState.States.Inventory
{
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;
yield return item.Owner;

View File

@@ -19,6 +19,7 @@ using Robust.Server.Player;
using Robust.Shared.Audio;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Localization;
using Robust.Shared.Player;
using Robust.Shared.Serialization.Manager.Attributes;
@@ -229,7 +230,7 @@ namespace Content.Server.Atmos.Components
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>();
return Owner.TryGetContainer(out var container)
? container.Owner.GetComponentOrNull<InternalsComponent>()

View File

@@ -421,7 +421,7 @@ namespace Content.Server.Botany.Components
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;
if (Harvest && !Dead)
@@ -651,7 +651,7 @@ namespace Content.Server.Botany.Components
var user = eventArgs.User;
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;
if (usingItem.TryGetComponent(out SeedComponent? seeds))

View File

@@ -87,14 +87,14 @@ namespace Content.Server.Cargo.Components
spriteComponent.LayerSetState(0, "idle");
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;
if (Owner.TryGetComponent<SpriteComponent>(out var spriteComponent) && spriteComponent.LayerCount > 0)
spriteComponent.LayerSetState(0, "beam");
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));
SpawnProduct(_teleportQueue[0]);

View File

@@ -68,7 +68,7 @@ namespace Content.Server.Chemistry.Components
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;
if (Owner.TryGetComponent(out AppearanceComponent? appearance))
{

View File

@@ -6,6 +6,7 @@ using Content.Shared.Chemistry.Reagent;
using Content.Shared.FixedPoint;
using Content.Shared.Smoking;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
namespace Content.Server.Chemistry.Components
{
@@ -55,7 +56,7 @@ namespace Content.Server.Chemistry.Components
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;
Owner.Delete();
}

View File

@@ -134,7 +134,7 @@ namespace Content.Server.Conveyor
//todo uuuhhh cache this
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;
}

View File

@@ -6,6 +6,7 @@ using Content.Shared.Interaction;
using Content.Shared.Interaction.Helpers;
using JetBrains.Annotations;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
namespace Content.Server.Engineering.EntitySystems
{
@@ -40,7 +41,7 @@ namespace Content.Server.Engineering.EntitySystems
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;
var entity = EntityManager.SpawnEntity(component.Prototype, component.Owner.Transform.Coordinates);

View File

@@ -57,7 +57,7 @@ namespace Content.Server.Engineering.EntitySystems
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;
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));
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();
}
}

View File

@@ -93,7 +93,7 @@ namespace Content.Server.Explosion.Components
return false;
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;
_countDown = true;
var random = IoCManager.Resolve<IRobustRandom>();
@@ -116,7 +116,7 @@ namespace Content.Server.Explosion.Components
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;
EntitySystem.Get<TriggerSystem>().Trigger(grenade, eventArgs.User);

View File

@@ -13,7 +13,7 @@ namespace Content.Server.Explosion.Components
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;
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
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;
}

View File

@@ -132,7 +132,7 @@ namespace Content.Server.Explosion.EntitySystems
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);
});
}

View File

@@ -10,6 +10,7 @@ using Content.Shared.Popups;
using Content.Shared.Sound;
using Robust.Shared.Audio;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Localization;
using Robust.Shared.Player;
using Robust.Shared.Serialization.Manager.Attributes;
@@ -86,7 +87,7 @@ namespace Content.Server.Fluids.Components
_currentlyUsing.Remove(eventArgs.Using.Uid);
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 ||
CurrentVolume <= 0 ||
!Owner.InRangeUnobstructed(mopComponent.Owner))

View File

@@ -11,6 +11,7 @@ using Content.Shared.Popups;
using Content.Shared.Sound;
using Robust.Shared.Audio;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Localization;
using Robust.Shared.Player;
using Robust.Shared.Serialization.Manager.Attributes;
@@ -127,7 +128,7 @@ namespace Content.Server.Fluids.Components
Mopping = false;
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)
return false;

View File

@@ -61,7 +61,7 @@ namespace Content.Server.Fluids.EntitySystems
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))
{
return;

View File

@@ -181,7 +181,7 @@ namespace Content.Server.Ghost
private void DeleteEntity(EntityUid uid)
{
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)
return;

View File

@@ -124,7 +124,7 @@ namespace Content.Server.Inventory.Components
}
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);
containedEntity = null;

View File

@@ -16,7 +16,7 @@ namespace Content.Server.Inventory
var user = inventory.Owner;
// 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;
// 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)
{
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;
}

View File

@@ -105,7 +105,7 @@ namespace Content.Server.Morgue.Components
_cremateCancelToken = new CancellationTokenSource();
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;
Appearance?.SetData(CrematoriumVisuals.Burning, false);

View File

@@ -1,5 +1,6 @@
using Content.Shared.Interaction;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.ViewVariables;
namespace Content.Server.Morgue.Components
@@ -15,7 +16,7 @@ namespace Content.Server.Morgue.Components
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));
}

View File

@@ -224,7 +224,7 @@ namespace Content.Server.PneumaticCannon
if (!comp.Owner.TryGetComponent<ServerStorageComponent>(out var storage))
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;
if (storage.StoredEntities == null) return;

View File

@@ -96,7 +96,7 @@ namespace Content.Server.Projectiles.Components
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();
}

View File

@@ -39,7 +39,7 @@ namespace Content.Server.Projectiles
var coordinates = args.OtherFixture.Body.Owner.Transform.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>())
{
SoundSystem.Play(playerFilter, component.SoundHitSpecies.GetSound(), coordinates);
@@ -52,7 +52,7 @@ namespace Content.Server.Projectiles
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);
component.DamagedEntity = true;
@@ -63,7 +63,7 @@ namespace Content.Server.Projectiles
}
// 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;
recoilComponent.Kick(direction);

View File

@@ -108,7 +108,7 @@ namespace Content.Server.Radiation
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;
if (_duration <= 0f)

View File

@@ -32,12 +32,12 @@ namespace Content.Server.Radiation
comp.Update(RadiationCooldown);
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))
{
// 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)
// so this ToArray doesn't really matter.

View File

@@ -61,7 +61,7 @@ namespace Content.Server.Spawners.Components
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);
}

View File

@@ -47,7 +47,7 @@ namespace Content.Server.Spawners.Components
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>();

View File

@@ -123,7 +123,7 @@ namespace Content.Server.StationEvents.Events
if (!_foundTile ||
_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))
{
Running = false;
@@ -156,7 +156,7 @@ namespace Content.Server.StationEvents.Events
{
if (!_foundTile ||
_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))
{
return;

View File

@@ -53,7 +53,7 @@ namespace Content.Server.StationEvents.Events
{
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))
{

View File

@@ -33,7 +33,7 @@ namespace Content.Server.Throwing
/// <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)
{
if (entity.Deleted ||
if ((!IoCManager.Resolve<IEntityManager>().EntityExists(entity.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(entity.Uid).EntityLifeStage) >= EntityLifeStage.Deleted ||
strength <= 0f ||
!entity.TryGetComponent(out PhysicsComponent? physicsComponent))
{

View File

@@ -269,7 +269,7 @@ namespace Content.Server.Weapon.Melee
var hitBloodstreams = new List<BloodstreamComponent>();
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;
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)
{
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);

View File

@@ -165,7 +165,7 @@ namespace Content.Shared.Pulling
// The pulled object may have already been deleted.
// TODO: Work out why. Monkey + meat spike is a good test for this,
// 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;
}

View File

@@ -113,7 +113,7 @@ namespace Content.Shared.Throwing
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;