ComponentFactory.cs 940 B

12345678910111213141516171819202122232425262728293031323334353637
  1. namespace Model
  2. {
  3. public static class ComponentFactory
  4. {
  5. public static T Create<T>(Entity entity) where T : Component
  6. {
  7. T disposer = Game.ObjectPool.Fetch<T>();
  8. disposer.Parent = entity;
  9. Game.EventSystem.Awake(disposer);
  10. return disposer;
  11. }
  12. public static T Create<T, A>(Entity entity, A a) where T : Component
  13. {
  14. T disposer = Game.ObjectPool.Fetch<T>();
  15. disposer.Parent = entity;
  16. Game.EventSystem.Awake(disposer, a);
  17. return disposer;
  18. }
  19. public static T Create<T, A, B>(Entity entity, A a, B b) where T : Component
  20. {
  21. T disposer = Game.ObjectPool.Fetch<T>();
  22. disposer.Parent = entity;
  23. Game.EventSystem.Awake(disposer, a, b);
  24. return disposer;
  25. }
  26. public static T Create<T, A, B, C>(Entity entity, A a, B b, C c) where T : Component
  27. {
  28. T disposer = Game.ObjectPool.Fetch<T>();
  29. disposer.Parent = entity;
  30. Game.EventSystem.Awake(disposer, a, b, c);
  31. return disposer;
  32. }
  33. }
  34. }