namespace Svelto.ECS { public abstract class GenericEntityDescriptor:IEntityDescriptor where T : IEntityStruct, new() { static GenericEntityDescriptor() { EntityBuilders = new IEntityBuilder[] { new EntityBuilder() }; } public IEntityBuilder[] entitiesToBuild { get { return EntityBuilders; } } static readonly IEntityBuilder[] EntityBuilders; } public abstract class GenericEntityDescriptor : IEntityDescriptor where T : IEntityStruct, new() where U : IEntityStruct, new() { static GenericEntityDescriptor() { EntityBuilders = new IEntityBuilder[] {new EntityBuilder(), new EntityBuilder()}; } public IEntityBuilder[] entitiesToBuild { get { return EntityBuilders; } } static readonly IEntityBuilder[] EntityBuilders; } public abstract class GenericEntityDescriptor : IEntityDescriptor where T : IEntityStruct, new() where U : IEntityStruct, new() where V : IEntityStruct, new() { static GenericEntityDescriptor() { EntityBuilders = new IEntityBuilder[] {new EntityBuilder(), new EntityBuilder(), new EntityBuilder()}; } public IEntityBuilder[] entitiesToBuild { get { return EntityBuilders; } } static readonly IEntityBuilder[] EntityBuilders; } public abstract class GenericEntityDescriptor : IEntityDescriptor where T : IEntityStruct, new() where U : IEntityStruct, new() where V : IEntityStruct, new() where W : IEntityStruct, new() { static GenericEntityDescriptor() { EntityBuilders = new IEntityBuilder[] {new EntityBuilder(), new EntityBuilder(), new EntityBuilder(), new EntityBuilder()}; } public IEntityBuilder[] entitiesToBuild { get { return EntityBuilders; } } static readonly IEntityBuilder[] EntityBuilders; } public abstract class GenericEntityDescriptor : IEntityDescriptor where T : IEntityStruct, new() where U : IEntityStruct, new() where V : IEntityStruct, new() where W : IEntityStruct, new() where X : IEntityStruct, new() { static GenericEntityDescriptor() { EntityBuilders = new IEntityBuilder[] {new EntityBuilder(), new EntityBuilder(), new EntityBuilder(), new EntityBuilder(), new EntityBuilder()}; } public IEntityBuilder[] entitiesToBuild { get { return EntityBuilders; } } static readonly IEntityBuilder[] EntityBuilders; } public abstract class GenericEntityDescriptor : IEntityDescriptor where T : IEntityStruct, new() where U : IEntityStruct, new() where V : IEntityStruct, new() where W : IEntityStruct, new() where X : IEntityStruct, new() where Y : IEntityStruct, new() { static GenericEntityDescriptor() { EntityBuilders = new IEntityBuilder[] {new EntityBuilder(), new EntityBuilder(), new EntityBuilder(), new EntityBuilder(), new EntityBuilder(), new EntityBuilder()}; } public IEntityBuilder[] entitiesToBuild { get { return EntityBuilders; } } static readonly IEntityBuilder[] EntityBuilders; } }