Casting EntityRef to Entity supports nullable

wip/source-generators
copygirl 1 year ago
parent ac8d8cea53
commit d24e517e7c
  1. 11
      src/gaemstone/ECS/EntityRef.cs

@ -59,7 +59,8 @@ public unsafe sealed class EntityRef
{ if (path?.IsAbsolute == true) throw new ArgumentException("path must not be absolute", nameof(path)); return path; }
public EntityRef? Parent => GetTarget(Universe.ChildOf);
public EntityRef? Parent
=> GetTarget(Universe.ChildOf);
public IEnumerable<EntityRef> GetChildren()
{
@ -163,9 +164,9 @@ public unsafe sealed class EntityRef
public static IdentifierRef operator &(EntityRef relation, Entity target) => IdentifierRef.Pair(relation, target);
public static IdentifierRef operator &(Entity relation, EntityRef target) => IdentifierRef.Pair(relation, target);
public static implicit operator Entity(EntityRef e) => e.Entity;
public static implicit operator ecs_entity_t(EntityRef e) => e.Entity.Value;
public static implicit operator Entity(EntityRef? e) => e?.Entity ?? default;
public static implicit operator ecs_entity_t(EntityRef? e) => e?.Entity.Value ?? default;
public static implicit operator Identifier(EntityRef e) => new(e.Entity.Value.Data);
public static implicit operator ecs_id_t(EntityRef e) => e.Entity.Value.Data;
public static implicit operator Identifier(EntityRef? e) => new(e?.Entity.Value.Data ?? default);
public static implicit operator ecs_id_t(EntityRef? e) => e?.Entity.Value.Data ?? default;
}

Loading…
Cancel
Save