using System; namespace MoonTools.ECS; public abstract class System : Manipulator { protected System(World world) : base(world) { } public abstract void Update(TimeSpan delta); protected ReadOnlySpan ReadMessages() where T : unmanaged => World.ReadMessages(); protected T ReadMessage() where T : unmanaged => World.ReadMessage(); protected bool SomeMessage() where T : unmanaged => World.SomeMessage(); protected void Send(T message) where T : unmanaged => World.Send(message); }