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); }
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); }