using System; using System.IO; using UnityEngine; namespace UnityEditor.U2D.Aseprite { [Flags] internal enum UserDataFlags { HasText = 1, HasColor = 2 } /// /// Parsed representation of an Aseprite UserData chunk. /// public class UserDataChunk : BaseChunk { public override ChunkTypes chunkType => ChunkTypes.UserData; /// /// Text data. /// public string text { get; private set; } /// /// Color data. /// public Color32 color { get; private set; } internal UserDataChunk(uint chunkSize) : base(chunkSize) { } protected override void InternalRead(BinaryReader reader) { var flag = (UserDataFlags) reader.ReadUInt32(); if ((flag & UserDataFlags.HasText) != 0) text = AsepriteUtilities.ReadString(reader); if ((flag & UserDataFlags.HasColor) != 0) { var red = reader.ReadByte(); var green = reader.ReadByte(); var blue = reader.ReadByte(); var alpha = reader.ReadByte(); color = new Color32(red, green, blue, alpha); } } } }