using System.Runtime.InteropServices; namespace Svelto.ECS { public class GenericEntityDescriptor:IEntityDescriptor where T : EntityView, new() { static GenericEntityDescriptor() { entityViewBuilders = new IEntityViewBuilder[] { new EntityViewBuilder() }; } public IEntityViewBuilder[] entityViewsToBuild { get { return entityViewBuilders; } } public static readonly IEntityViewBuilder[] entityViewBuilders; } public class GenericEntityDescriptor : IEntityDescriptor where T : EntityView, new() where U : EntityView, new() { static GenericEntityDescriptor() { entityViewBuilders = new IEntityViewBuilder[] {new EntityViewBuilder(), new EntityViewBuilder()}; } public IEntityViewBuilder[] entityViewsToBuild { get { return entityViewBuilders; } } public static readonly IEntityViewBuilder[] entityViewBuilders; } public class GenericEntityDescriptor : IEntityDescriptor where T : EntityView, new() where U : EntityView, new() where V : EntityView, new() { static GenericEntityDescriptor() { entityViewBuilders = new IEntityViewBuilder[] {new EntityViewBuilder(), new EntityViewBuilder(), new EntityViewBuilder()}; } public IEntityViewBuilder[] entityViewsToBuild { get { return entityViewBuilders; } } public static readonly IEntityViewBuilder[] entityViewBuilders; } public class GenericEntityDescriptor : IEntityDescriptor where T : EntityView, new() where U : EntityView, new() where V : EntityView, new() where W : EntityView, new() { static GenericEntityDescriptor() { entityViewBuilders = new IEntityViewBuilder[] {new EntityViewBuilder(), new EntityViewBuilder(), new EntityViewBuilder(), new EntityViewBuilder()}; } public IEntityViewBuilder[] entityViewsToBuild { get { return entityViewBuilders; } } public static readonly IEntityViewBuilder[] entityViewBuilders; } public class GenericEntityDescriptor : IEntityDescriptor where T : EntityView, new() where U : EntityView, new() where V : EntityView, new() where W : EntityView, new() where X : EntityView, new() { static GenericEntityDescriptor() { entityViewBuilders = new IEntityViewBuilder[] {new EntityViewBuilder(), new EntityViewBuilder(), new EntityViewBuilder(), new EntityViewBuilder(), new EntityViewBuilder()}; } public IEntityViewBuilder[] entityViewsToBuild { get { return entityViewBuilders; } } public static readonly IEntityViewBuilder[] entityViewBuilders; } public class GenericEntityDescriptor : IEntityDescriptor where T : EntityView, new() where U : EntityView, new() where V : EntityView, new() where W : EntityView, new() where X : EntityView, new() where Y : EntityView, new() { static GenericEntityDescriptor() { entityViewBuilders = new IEntityViewBuilder[] {new EntityViewBuilder(), new EntityViewBuilder(), new EntityViewBuilder(), new EntityViewBuilder(), new EntityViewBuilder(), new EntityViewBuilder()}; } public IEntityViewBuilder[] entityViewsToBuild { get { return entityViewBuilders; } } public static readonly IEntityViewBuilder[] entityViewBuilders; } }