using UnityEngine; using System.Collections.Generic; namespace FlashTools { public enum FlashAnimBlendMode { Normal, Layer, Multiply, Screen, Overlay, Hardlight, Lighten, Darken, Difference, Add, Subtract, Invert, Alpha, Erase } public enum FlashAnimLayerType { Normal, Guide, Guided, Mask, Masked, Folder } public enum FlashAnimLoopingType { Loop, PlayOnce, SingleFrame } public enum FlashAnimInstType { Bitmap, Symbol } public enum FlashAnimInstSymbolType { Graphic, MovieClip } [System.Serializable] public class FlashAnimBitmapData { public string Id = string.Empty; public Vector2 RealSize = Vector2.zero; public Rect SourceRect = new Rect(); public string ImageSource = string.Empty; } [System.Serializable] public class FlashAnimInstData { public FlashAnimInstType Type = FlashAnimInstType.Bitmap; public FlashAnimInstSymbolType SymbolType = FlashAnimInstSymbolType.Graphic; public FlashAnimBlendMode BlendMode = FlashAnimBlendMode.Normal; public string Asset = string.Empty; public bool Visible = true; public FlashAnimLoopingType LoopingType = FlashAnimLoopingType.SingleFrame; public int LoopingFirstFrame = 0; // TODO: color_mode, filters } [System.Serializable] public class FlashAnimElemData { public string Id = string.Empty; public Matrix4x4 Matrix = Matrix4x4.identity; public FlashAnimInstData Instance = null; } [System.Serializable] public class FlashAnimFrameData { public string Id = string.Empty; public List Elems = new List(); } [System.Serializable] public class FlashAnimLayerData { public string Id = string.Empty; public FlashAnimLayerType LayerType = FlashAnimLayerType.Normal; public List Frames = new List(); } [System.Serializable] public class FlashAnimSymbolData { public string Id = string.Empty; public List Layers = new List(); } [System.Serializable] public class FlashAnimLibraryData { public List Bitmaps = new List(); public List Symbols = new List(); } [System.Serializable] public class FlashAnimData { public Texture2D Atlas = null; public FlashAnimSymbolData Stage = new FlashAnimSymbolData(); public FlashAnimLibraryData Library = new FlashAnimLibraryData(); public List Strings = new List(); } public class FlashAnimAsset : ScriptableObject { public FlashAnimData Data = new FlashAnimData(); } }