Ejemplo n.º 1
0
        public bool TryParseSprite(Stream stream, string filename, out ISpriteFrame[] frames, out TypeDictionary metadata)
        {
            if (!filename.EndsWith(".mapd"))
            {
                metadata = null;
                frames   = null;
                return(false);
            }

            frames   = new Mapd(stream as SegmentStream).Layers.Select(layer => new MapdSpriteFrame(layer)).ToArray();
            metadata = null;

            return(true);
        }
Ejemplo n.º 2
0
        public bool TryParseSprite(Stream stream, string filename, out ISpriteFrame[]?frames, out TypeDictionary?metadata)
        {
            metadata = null;

            if (!filename.EndsWith(".mapd") || stream is not SegmentStream segmentStream)
            {
                frames = null;

                return(false);
            }

            // This is damn ugly, but MAPD uses offsets from LVL start.
            segmentStream.BaseStream.Position = segmentStream.BaseOffset;
            frames = new Mapd(segmentStream.BaseStream).Layers.Select(layer => new MapdSpriteFrame(layer) as ISpriteFrame).ToArray();

            return(true);
        }