private static void AddFrame <T>(SpriteSheetConfig <T> spriteSheetConfig, ImageDescriptor descriptor, Match mathes, Animation animation)
        {
            var frameNumber = mathes.Groups["framenumber"];

            animation.Add(new Frame(int.Parse(frameNumber.Value),
                                    descriptor.X, descriptor.Y, descriptor.Width,
                                    descriptor.Height, spriteSheetConfig.OffsetX,
                                    spriteSheetConfig.OffsetY));
        }
        private string DetermineSheetName(PackAnimationCommand command, SpriteSheetConfig <ImageRgba32> spriteSheetConfig)
        {
            var name = string.IsNullOrWhiteSpace(command.PackedName) ? spriteSheetConfig.Name : command.PackedName;

            if (string.IsNullOrEmpty(name))
            {
                name = $"Unknown{_time.Now().GetHashCode().ToString()}";
            }
            return(name);
        }
Example #3
0
        public static SpriteSheet Create <T>(SpriteSheetConfig <T> spriteSheetConfig)
        {
            var sheet = new SpriteSheet();

            foreach (var descriptor in spriteSheetConfig.Descriptors)
            {
                sheet.Add(new Item(descriptor.Name,
                                   descriptor.X, descriptor.Y,
                                   descriptor.Width, descriptor.Height,
                                   spriteSheetConfig.OffsetX, spriteSheetConfig.OffsetY));
            }

            return(sheet);
        }
        public static AnitationSpriteSheet Create <T>(SpriteSheetConfig <T> spriteSheetConfig, string namePattern)
        {
            var sheet = new AnitationSpriteSheet();

            foreach (var descriptor in spriteSheetConfig.Descriptors)
            {
                var mathes = Regex.Match(descriptor.Name, namePattern);

                var animationName = mathes.Groups["animationname"];
                var animation     = sheet.Animations.FirstOrDefault(x => x.Name == animationName.Value);
                if (animation != null)
                {
                    AddFrame(spriteSheetConfig, descriptor, mathes, animation);
                }
                else
                {
                    animation = new Animation(animationName.Value, 4);
                    AddFrame(spriteSheetConfig, descriptor, mathes, animation);
                    sheet.Add(animation);
                }
            }

            return(sheet);
        }
 protected override void Act()
 {
     result = merger.MergeFor <Images.ImageRgba32>("./TestData/Images/Same", options);
 }