No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

UserDataChunk.cs 1.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using System;
  2. using System.IO;
  3. using UnityEngine;
  4. namespace UnityEditor.U2D.Aseprite
  5. {
  6. [Flags]
  7. internal enum UserDataFlags
  8. {
  9. HasText = 1,
  10. HasColor = 2
  11. }
  12. /// <summary>
  13. /// Parsed representation of an Aseprite UserData chunk.
  14. /// </summary>
  15. public class UserDataChunk : BaseChunk
  16. {
  17. public override ChunkTypes chunkType => ChunkTypes.UserData;
  18. /// <summary>
  19. /// Text data.
  20. /// </summary>
  21. public string text { get; private set; }
  22. /// <summary>
  23. /// Color data.
  24. /// </summary>
  25. public Color32 color { get; private set; }
  26. internal UserDataChunk(uint chunkSize) : base(chunkSize) { }
  27. protected override void InternalRead(BinaryReader reader)
  28. {
  29. var flag = (UserDataFlags)reader.ReadUInt32();
  30. if ((flag & UserDataFlags.HasText) != 0)
  31. text = AsepriteUtilities.ReadString(reader);
  32. if ((flag & UserDataFlags.HasColor) != 0)
  33. {
  34. var red = reader.ReadByte();
  35. var green = reader.ReadByte();
  36. var blue = reader.ReadByte();
  37. var alpha = reader.ReadByte();
  38. color = new Color32(red, green, blue, alpha);
  39. }
  40. }
  41. }
  42. }