namespace MoonTools.ECS; public abstract class Manipulator : EntityComponentReader { public Manipulator(World world) : base(world) { } protected Entity CreateEntity(string tag = "") => World.CreateEntity(tag); protected void Tag(Entity entity, string tag) => World.Tag(entity, tag); protected void Set(in Entity entity, in TComponent component) where TComponent : unmanaged => World.Set(entity, component); protected void Remove(in Entity entity) where TComponent : unmanaged => World.Remove(entity); protected void Relate(in Entity entityA, in Entity entityB, TRelationKind relationData) where TRelationKind : unmanaged => World.Relate(entityA, entityB, relationData); protected void Unrelate(in Entity entityA, in Entity entityB) where TRelationKind : unmanaged => World.Unrelate(entityA, entityB); protected void UnrelateAll(in Entity entity) where TRelationKind : unmanaged => World.UnrelateAll(entity); protected void Destroy(in Entity entity) => World.Destroy(entity); protected void Send(in TMessage message) where TMessage : unmanaged => World.Send(message); }