public Task RegisterComponentAsync(BaseSharperComponent component)
        {
            if (component.GetType() != typeof(T))
            {
                throw new SharperComponentMismatchException();
            }

            Components.Add((T)component);
            return(Task.CompletedTask);
        }
 /// <summary>
 /// Creates a new instance of <see cref="SharperComponentEventArgs"/>.
 /// </summary>
 /// <param name="component">The <see cref="BaseSharperComponent"/> associated with the event call.</param>
 public SharperComponentEventArgs(BaseSharperComponent component)
 {
     SharperComponent = component;
 }
 public bool EntityHasComponent(BaseSharperComponent component, SharperEntity entity)
 {
     return(Components.Find(c => c == component).Entity == entity);
 }