Esempio n. 1
0
        public void BeginFrame(ref Gaf.Structures.GaFrameListItem entry, ref Gaf.Structures.GafFrameInfo data)
        {
            if (frameDepth > 0)
            {
                this.currentLayerInfo = data;

                var layerJson = new GafLayerJson
                {
                    OriginX           = data.OriginX,
                    OriginY           = data.OriginY,
                    TransparencyIndex = data.TransparencyIndex,
                    Unknown3          = data.Unknown3,
                };
                entries.Last().Frames.Last().Layers.Add(layerJson);
            }
            else
            {
                this.currentFrameInfo = data;

                var frameJson = new GafFrameJson
                {
                    Duration = entry.Duration,
                    Unknown3 = data.Unknown3,
                };
                if (data.LayerCount > 0)
                {
                    frameJson.Layers = new List <GafLayerJson>();
                }
                else
                {
                    frameJson.OriginX           = data.OriginX;
                    frameJson.OriginY           = data.OriginY;
                    frameJson.TransparencyIndex = data.TransparencyIndex;
                }
                entries.Last().Frames.Add(frameJson);
            }

            frameDepth += 1;
        }
Esempio n. 2
0
 private static IEnumerable <KeyValuePair <string, GafImageInfo> > GetImageInfos(string directoryName, GafFrameJson frame, Func <Color, byte> paletteLookup)
 {
     if (frame.ImageFileName != null)
     {
         var info = GetImageInfo(Path.Combine(directoryName, frame.ImageFileName), frame.TransparencyIndex.Value, paletteLookup);
         yield return(new KeyValuePair <string, GafImageInfo>(frame.ImageFileName, info));
     }
     else
     {
         foreach (var layer in frame.Layers)
         {
             var info = GetImageInfo(Path.Combine(directoryName, layer.ImageFileName), layer.TransparencyIndex, paletteLookup);
             yield return(new KeyValuePair <string, GafImageInfo>(layer.ImageFileName, info));
         }
     }
 }