EntityFactory.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. namespace Model
  2. {
  3. public static class EntityFactory
  4. {
  5. public static T Create<T>() where T : Disposer
  6. {
  7. T disposer = ObjectPool.Instance.Fetch<T>();
  8. EventSystem.Instance.Awake(disposer);
  9. return disposer;
  10. }
  11. public static T Create<T, A>(A a) where T : Disposer
  12. {
  13. T disposer = ObjectPool.Instance.Fetch<T>();
  14. EventSystem.Instance.Awake(disposer, a);
  15. return disposer;
  16. }
  17. public static T Create<T, A, B>(A a, B b) where T : Disposer
  18. {
  19. T disposer = ObjectPool.Instance.Fetch<T>();
  20. EventSystem.Instance.Awake(disposer, a, b);
  21. return disposer;
  22. }
  23. public static T Create<T, A, B, C>(A a, B b, C c) where T : Disposer
  24. {
  25. T disposer = ObjectPool.Instance.Fetch<T>();
  26. EventSystem.Instance.Awake(disposer, a, b, c);
  27. return disposer;
  28. }
  29. public static T CreateWithId<T>(long id) where T : Disposer
  30. {
  31. T disposer = ObjectPool.Instance.Fetch<T>();
  32. disposer.Id = id;
  33. EventSystem.Instance.Awake(disposer);
  34. return disposer;
  35. }
  36. public static T CreateWithId<T, A>(long id, A a) where T : Disposer
  37. {
  38. T disposer = ObjectPool.Instance.Fetch<T>();
  39. disposer.Id = id;
  40. EventSystem.Instance.Awake(disposer, a);
  41. return disposer;
  42. }
  43. public static T CreateWithId<T, A, B>(long id, A a, B b) where T : Disposer
  44. {
  45. T disposer = ObjectPool.Instance.Fetch<T>();
  46. disposer.Id = id;
  47. EventSystem.Instance.Awake(disposer, a, b);
  48. return disposer;
  49. }
  50. public static T CreateWithId<T, A, B, C>(long id, A a, B b, C c) where T : Disposer
  51. {
  52. T disposer = ObjectPool.Instance.Fetch<T>();
  53. disposer.Id = id;
  54. EventSystem.Instance.Awake(disposer, a, b, c);
  55. return disposer;
  56. }
  57. }
  58. }