AstridAnimatorProcessor.cs 888 B

123456789101112131415161718192021222324
  1. using System.IO;
  2. using System.Linq;
  3. using Microsoft.Xna.Framework.Content.Pipeline;
  4. namespace MonoGame.Extended.Content.Pipeline.Animations
  5. {
  6. [ContentProcessor(DisplayName = "Astrid Animator Processor - MonoGame.Extended")]
  7. public class AstridAnimatorProcessor :
  8. ContentProcessor<ContentImporterResult<AstridAnimatorFile>, AstridAnimatorProcessorResult>
  9. {
  10. public override AstridAnimatorProcessorResult Process(ContentImporterResult<AstridAnimatorFile> input,
  11. ContentProcessorContext context)
  12. {
  13. var data = input.Data;
  14. var directory = Path.GetDirectoryName(input.FilePath);
  15. var frames = data.Animations
  16. .SelectMany(i => i.Frames)
  17. .OrderBy(f => f)
  18. .Distinct();
  19. return new AstridAnimatorProcessorResult(directory, data, frames);
  20. }
  21. }
  22. }