namespace Svelto.ECS { public interface IEntityFactory { void Preallocate(int size) where T : IEntityDescriptor, new(); void BuildEntity(int entityID, object[] implementors = null) where T:IEntityDescriptor, new(); void BuildEntity(int entityID, EntityDescriptorInfo entityDescriptor, object[] implementors = null); void BuildMetaEntity(int metaEntityID, object[] implementors = null) where T:IEntityDescriptor, new(); void BuildEntityInGroup(int entityID, int groupID, object[] implementors = null) where T:IEntityDescriptor, new(); void BuildEntityInGroup(int entityID, int groupID, EntityDescriptorInfo entityDescriptor, object[] implementors = null); } public interface IEntityFunctions { void RemoveEntity(int entityID, IRemoveEntityComponent template); void RemoveEntity(int entityID) where T:IEntityDescriptor, new(); void RemoveMetaEntity(int metaEntityID) where T:IEntityDescriptor, new(); void RemoveEntityFromGroup(int entityID, int groupID) where T:IEntityDescriptor, new(); } }