public override void Execute(PackAnimationCommand command, TextWriter @out)
        {
            var spriteSheetConfig = _merger.MergeFor <ImageRgba32>
                                        (command.InputDirectory,
                                        new MergeOptions(
                                            command.InputFileParsingPattern,
                                            false,
                                            command.MaxWidth,
                                            command.MaxWidth,
                                            0, 0,
                                            string.IsNullOrWhiteSpace(command.PackedName) == false));

            var validator = new SpriteSheetConfigValidator(command.InputFileParsingPattern);

            if (validator.Validate(spriteSheetConfig) == false)
            {
                throw new AnimationFileNameNotMatchPatternException();
            }

            var    animationSheet = AnitationSpriteSheet.Create(spriteSheetConfig, command.InputFileParsingPattern);
            string sheetFileName  = DetermineSheetName(command, spriteSheetConfig);

            _persistor.Save(
                _serializer.SerializeToXmlString(animationSheet),
                spriteSheetConfig.Image,
                command.OutputDirectory,
                sheetFileName,
                command.ImageFileExtension);
        }
Beispiel #2
0
        protected override void Arrange()
        {
            aniamtionSpritesheet = new AnitationSpriteSheet();
            aniamtionSpritesheet.Add(new Animation("animationName1", 4)
                                     .Add(new Frame(0, 0, 0, 50, 50, 0, 0))
                                     .Add(new Frame(0, 50, 0, 50, 50, 0, 0))
                                     .Add(new Frame(0, 100, 0, 50, 50, 0, 0))
                                     .Add(new Frame(0, 150, 0, 50, 50, 0, 0)));
            aniamtionSpritesheet.Add(new Animation("animationName2", 4)
                                     .Add(new Frame(0, 0, 50, 50, 50, 0, 0))
                                     .Add(new Frame(0, 50, 50, 50, 50, 0, 0))
                                     .Add(new Frame(0, 100, 50, 50, 50, 0, 0))
                                     .Add(new Frame(0, 150, 50, 50, 50, 0, 0)));

            serializer = new Tools.Commons.Xml.XmlSerializer();
        }
Beispiel #3
0
 protected override void Act()
 => result = serializer.Deserialize <AnitationSpriteSheet>(SERIALIZED_XML_ANIMATIONS_SPRITESHEET);