TextureRegionService.cs 842 B

123456789101112131415161718192021222324252627282930313233
  1. using System.Collections.Generic;
  2. using System.Linq;
  3. using MonoGame.Extended.Graphics;
  4. namespace MonoGame.Extended.Serialization.Json
  5. {
  6. public interface ITextureRegionService
  7. {
  8. Texture2DRegion GetTextureRegion(string name);
  9. }
  10. public class TextureRegionService : ITextureRegionService
  11. {
  12. public TextureRegionService()
  13. {
  14. TextureAtlases = new List<Texture2DAtlas>();
  15. }
  16. public IList<Texture2DAtlas> TextureAtlases { get; }
  17. public Texture2DRegion GetTextureRegion(string name)
  18. {
  19. foreach (Texture2DAtlas atlas in TextureAtlases)
  20. {
  21. if (atlas.TryGetRegion(name, out Texture2DRegion region))
  22. {
  23. return region;
  24. }
  25. }
  26. return null;
  27. }
  28. }
  29. }