namespace Svelto.ECS { public abstract class GenericEntityDescriptor : IEntityDescriptor where T : struct, IEntityComponent { internal static readonly IComponentBuilder[] _componentBuilders; static GenericEntityDescriptor() { _componentBuilders = new IComponentBuilder[] {new ComponentBuilder()}; } public IComponentBuilder[] componentsToBuild => _componentBuilders; } public abstract class GenericEntityDescriptor : IEntityDescriptor where T : struct, IEntityComponent where U : struct, IEntityComponent { internal static readonly IComponentBuilder[] _componentBuilders; static GenericEntityDescriptor() { _componentBuilders = new IComponentBuilder[] {new ComponentBuilder(), new ComponentBuilder()}; } public IComponentBuilder[] componentsToBuild => _componentBuilders; } public abstract class GenericEntityDescriptor : IEntityDescriptor where T : struct, IEntityComponent where U : struct, IEntityComponent where V : struct, IEntityComponent { internal static readonly IComponentBuilder[] _componentBuilders; static GenericEntityDescriptor() { _componentBuilders = new IComponentBuilder[] { new ComponentBuilder(), new ComponentBuilder(), new ComponentBuilder() }; } public IComponentBuilder[] componentsToBuild => _componentBuilders; } public abstract class GenericEntityDescriptor : IEntityDescriptor where T : struct, IEntityComponent where U : struct, IEntityComponent where V : struct, IEntityComponent where W : struct, IEntityComponent { static readonly IComponentBuilder[] _componentBuilders; static GenericEntityDescriptor() { _componentBuilders = new IComponentBuilder[] { new ComponentBuilder(), new ComponentBuilder(), new ComponentBuilder(), new ComponentBuilder() }; } public IComponentBuilder[] componentsToBuild => _componentBuilders; } public abstract class GenericEntityDescriptor : IEntityDescriptor where T : struct, IEntityComponent where U : struct, IEntityComponent where V : struct, IEntityComponent where W : struct, IEntityComponent where X : struct, IEntityComponent { static readonly IComponentBuilder[] _componentBuilders; static GenericEntityDescriptor() { _componentBuilders = new IComponentBuilder[] { new ComponentBuilder(), new ComponentBuilder(), new ComponentBuilder(), new ComponentBuilder(), new ComponentBuilder() }; } public IComponentBuilder[] componentsToBuild => _componentBuilders; } public abstract class GenericEntityDescriptor : IEntityDescriptor where T : struct, IEntityComponent where U : struct, IEntityComponent where V : struct, IEntityComponent where W : struct, IEntityComponent where X : struct, IEntityComponent where Y : struct, IEntityComponent { static readonly IComponentBuilder[] _componentBuilders; static GenericEntityDescriptor() { _componentBuilders = new IComponentBuilder[] { new ComponentBuilder(), new ComponentBuilder(), new ComponentBuilder(), new ComponentBuilder(), new ComponentBuilder(), new ComponentBuilder() }; } public IComponentBuilder[] componentsToBuild => _componentBuilders; } }