using Svelto.ECS.Internal; namespace Svelto.ECS { public abstract class GenericEntityDescriptor: IEntityDescriptor where T : struct, _IInternalEntityComponent { static readonly IComponentBuilder[] _componentBuilders; static GenericEntityDescriptor() { _componentBuilders = new IComponentBuilder[] { new ComponentBuilder() }; } public IComponentBuilder[] componentsToBuild => _componentBuilders; } public abstract class GenericEntityDescriptor: IEntityDescriptor where T : struct, _IInternalEntityComponent where U : struct, _IInternalEntityComponent { 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, _IInternalEntityComponent where U : struct, _IInternalEntityComponent where V : struct, _IInternalEntityComponent { 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, _IInternalEntityComponent where U : struct, _IInternalEntityComponent where V : struct, _IInternalEntityComponent where W : struct, _IInternalEntityComponent { 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, _IInternalEntityComponent where U : struct, _IInternalEntityComponent where V : struct, _IInternalEntityComponent where W : struct, _IInternalEntityComponent where X : struct, _IInternalEntityComponent { 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, _IInternalEntityComponent where U : struct, _IInternalEntityComponent where V : struct, _IInternalEntityComponent where W : struct, _IInternalEntityComponent where X : struct, _IInternalEntityComponent where Y : struct, _IInternalEntityComponent { 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; } }