GameComponentCollectionExtensions.cs 696 B

123456789101112131415161718192021222324
  1. using System;
  2. using Microsoft.Xna.Framework;
  3. namespace MonoGame.Extended
  4. {
  5. public static class GameComponentCollectionExtensions
  6. {
  7. public static T Add<T>(this GameComponentCollection collection)
  8. where T : IGameComponent, new()
  9. {
  10. var gameComponent = new T();
  11. collection.Add(gameComponent);
  12. return gameComponent;
  13. }
  14. public static T Add<T>(this GameComponentCollection collection, Func<T> createGameComponent)
  15. where T : IGameComponent
  16. {
  17. var gameComponent = createGameComponent();
  18. collection.Add(gameComponent);
  19. return gameComponent;
  20. }
  21. }
  22. }