示例#1
0
        public object Load(DataSourceBase ds, List <FormatParameter> parameters)
        {
            //Remember to set source stream to begining
            ds.Stream.Seek(0, SeekOrigin.Begin);

            var spriteSetBuilder = SpriteSetBuilder.NewSpriteSet();
            //spriteSetBuilder.SetSource(source);
            var sprReader = new SPRReader(spriteSetBuilder);

            return(sprReader.Read(ds.Stream));
        }
示例#2
0
        public static SpriteSetModel FromImageModel(IModelsProvider dataProvider, IDbSpriteAtlasFromImage entry)
        {
            var image = dataProvider.GetModel <Bitmap>(entry.DataRef);

            var spriteSetBuilder = SpriteSetBuilder.NewSpriteSet();

            for (int i = 0; i < entry.Sprites.Count; i++)
            {
                var spriteDef = entry.Sprites[i];

                var spriteBuilder = SpriteBuilder.NewSprite();
                spriteBuilder.SetIndex(i);
                spriteBuilder.SetSize(spriteDef.Width, spriteDef.Height);
                var cutout = new Rectangle(spriteDef.X, spriteDef.Y, spriteDef.Width, spriteDef.Height);
                var bytes  = BitmapHelper.ToBytes(image, cutout);
                spriteBuilder.SetData(bytes);

                spriteSetBuilder.AddSprite(spriteBuilder.Build());
            }


            return(spriteSetBuilder.Build());
        }
示例#3
0
        public object Load(DataSourceBase ds, List <FormatParameter> parameters)
        {
            var type = typeof((int, int));

            var n = type.Name;

            //Remember to set source stream to begining
            ds.Stream.Seek(0, SeekOrigin.Begin);

            var spriteSetBuilder = SpriteSetBuilder.NewSpriteSet();

            var spriteSizes = new List <(int, int)>();

            for (int i = 0; i < parameters.Count; i += 2)
            {
                var w = (int)parameters[i].Value;
                var h = (int)parameters[i + 1].Value;
                spriteSizes.Add((w, h));
            }

            var oddSprReader = new ODDSPRReader(spriteSetBuilder, spriteSizes.ToArray());

            return(oddSprReader.Read(ds.Stream));
        }
示例#4
0
 public SPRReader(SpriteSetBuilder builder)
 {
     Builder = builder;
 }