diff --git a/src/Arch/Core/Entity.cs b/src/Arch/Core/Entity.cs index dad7bbaa..06f8ffad 100644 --- a/src/Arch/Core/Entity.cs +++ b/src/Arch/Core/Entity.cs @@ -293,24 +293,7 @@ public EntityReference() Version = -1; } -#if PURE_ECS - - /// - /// Checks if the referenced is still valid and alife. - /// - /// The .. - /// True if its alive, otherwhise false. - public bool IsAlive(World world) - { - if (this == Null) - { - return false; - } - - var reference = world.Reference(Entity); - return this == reference; - } -#else +#if !PURE_ECS /// /// Checks if the referenced is still valid and alife. /// diff --git a/src/Arch/Core/World.cs b/src/Arch/Core/World.cs index db81f044..c3fce492 100644 --- a/src/Arch/Core/World.cs +++ b/src/Arch/Core/World.cs @@ -1421,6 +1421,24 @@ public void RemoveRange(Entity entity, Span types) public partial class World { + /// + /// Checks if the is alive and valid in this . + /// + /// The . + /// True if it exists and is alive, otherwise false. + [Pure] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public bool IsAlive(EntityReference entityReference) + { + if (entityReference == EntityReference.Null) + { + return false; + } + + var reference = Reference(entityReference.Entity); + return entityReference == reference; + } + /// /// Checks if the is alive in this . ///