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 .
///