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.

61 lines
2.0KB

  1. using Svelto.ECS.Internal;
  2. #if ENGINE_PROFILER_ENABLED && UNITY_EDITOR
  3. using Svelto.ECS.Profiler;
  4. #endif
  5. namespace Svelto.ECS
  6. {
  7. public partial class EnginesRoot
  8. {
  9. class GenericEntityFunctions : IEntityFunctions
  10. {
  11. readonly DataStructures.WeakReference<EnginesRoot> _weakReference;
  12. internal GenericEntityFunctions(DataStructures.WeakReference<EnginesRoot> weakReference)
  13. {
  14. _weakReference = weakReference;
  15. }
  16. public void RemoveEntity(int entityID)
  17. {
  18. _weakReference.Target.MoveEntity(new EGID(entityID));
  19. }
  20. public void RemoveEntity(int entityID, int groupID)
  21. {
  22. _weakReference.Target.MoveEntity(new EGID(entityID, groupID));
  23. }
  24. public void RemoveEntity(EGID entityEGID)
  25. {
  26. _weakReference.Target.MoveEntity(entityEGID);
  27. }
  28. public void RemoveGroupAndEntities(int groupID)
  29. {
  30. _weakReference.Target.RemoveGroupAndEntitiesFromDB(groupID);
  31. }
  32. public void SwapEntityGroup(int entityID, int fromGroupID, int toGroupID)
  33. {
  34. _weakReference.Target.SwapEntityGroup(entityID, fromGroupID, toGroupID);
  35. }
  36. public void SwapEntityGroup(EGID id, int toGroupID = ExclusiveGroup.StandardEntitiesGroup)
  37. {
  38. _weakReference.Target.SwapEntityGroup(id.entityID, id.groupID, toGroupID);
  39. }
  40. public void SwapEntityGroup(int entityID, int toGroupID)
  41. {
  42. _weakReference.Target.SwapEntityGroup(entityID, ExclusiveGroup.StandardEntitiesGroup, toGroupID);
  43. }
  44. public EGID SwapFirstEntityGroup(int fromGroupID, int toGroupID)
  45. {
  46. return _weakReference.Target.SwapFirstEntityGroup( fromGroupID, toGroupID);
  47. }
  48. }
  49. }
  50. }