Mirror of Svelto.ECS because we're a fan of it
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

32 lines
1.4KB

  1. namespace Svelto.ECS
  2. {
  3. public interface IEntityFactory
  4. {
  5. void BuildEntity<T>(int entityID, object[] implementors = null) where T:IEntityDescriptor, new();
  6. void BuildEntity(int entityID, EntityDescriptorInfo entityDescriptor, object[] implementors = null);
  7. void BuildMetaEntity<T>(int metaEntityID, object[] implementors = null) where T:IEntityDescriptor, new();
  8. void BuildEntityInGroup<T>(int entityID, int groupID, object[] implementors = null) where T:IEntityDescriptor, new();
  9. void BuildEntityInGroup(int entityID, int groupID, EntityDescriptorInfo entityDescriptor, object[] implementors = null);
  10. }
  11. public interface IEntityFunctions
  12. {
  13. void RemoveEntity(int entityID, IRemoveEntityComponent template);
  14. void RemoveEntity<T>(int entityID) where T:IEntityDescriptor, new();
  15. void RemoveMetaEntity<T>(int metaEntityID) where T:IEntityDescriptor, new();
  16. void RemoveEntityFromGroup<T>(int entityID, int groupID) where T:IEntityDescriptor, new();
  17. #if EXPERIMENTAL
  18. void SetEntityActiveState<T>(int entityID, bool state) where T:IEntityDescriptor, new();
  19. void SetMetaEntityActiveState<T>(int metaEntityID, bool state) where T:IEntityDescriptor, new();
  20. void SetEntityInGroupActiveState<T>(int entityID, int group, bool state) where T:IEntityDescriptor, new();
  21. #endif
  22. }
  23. }