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.

66 lines
1.5KB

  1. using System;
  2. namespace Svelto.ECS.Internal
  3. {
  4. class NodeEngineWrapper<T> : SingleNodeEngine<T> where T : class, INode
  5. {
  6. INodeEngine<T> engine;
  7. public NodeEngineWrapper(INodeEngine<T> engine)
  8. {
  9. this.engine = engine;
  10. }
  11. protected override void Add(T node)
  12. {
  13. engine.Add((T)node);
  14. }
  15. protected override void Remove(T node)
  16. {
  17. engine.Remove((T)node);
  18. }
  19. }
  20. class NodeEngineWrapper<T, U>: SingleNodeEngine<T> where T : class, INode where U : class, INode
  21. {
  22. INodeEngine<T, U> engine;
  23. public NodeEngineWrapper(INodeEngine<T, U> engine)
  24. {
  25. this.engine = engine;
  26. }
  27. protected override void Add(T node)
  28. {
  29. engine.Add((T)node);
  30. }
  31. protected override void Remove(T node)
  32. {
  33. engine.Remove((T)node);
  34. }
  35. }
  36. class NodeEngineWrapper<T, U, V>: SingleNodeEngine<T> where T : class, INode
  37. where U : class, INode
  38. where V : class, INode
  39. {
  40. INodeEngine<T, U, V> engine;
  41. public NodeEngineWrapper(INodeEngine<T, U, V> engine)
  42. {
  43. this.engine = engine;
  44. }
  45. protected override void Add(T node)
  46. {
  47. engine.Add((T)node);
  48. }
  49. protected override void Remove(T node)
  50. {
  51. engine.Remove((T)node);
  52. }
  53. }
  54. }