private void AddAnimation() { if (lst_Dirs.SelectedItems.Count == 0) { return; } foreach (var item in lst_Dirs.SelectedItems) { var name = (string)item; var ani = new Model.Animation(); asset.Atlas.Animations.Add(ani); ani.Name = name; var files = System.IO.Directory.GetFiles(project.MakeAbsolutePath(name)); var filesList = new List <string>(files); filesList.Sort((a, b) => { var aname = System.IO.Path.GetFileNameWithoutExtension(a); var bname = System.IO.Path.GetFileNameWithoutExtension(b); if (int.TryParse(aname, out int anum) && int.TryParse(bname, out int bnum)) { return(anum.CompareTo(bnum)); } return(string.Compare(aname, bname)); }); foreach (var file in filesList) { var filename = System.IO.Path.GetFileName(file); ani.Frames.Add(name + "/" + filename); } lst_Animations.Items.Add(name); } RefreshList(); }
private Bitmap MakeAtlas(int index, bool useSetting) { var asset = project.Assets[index]; if (asset.Atlas == null) { asset.Atlas = new Model.Atlas(); } if (useSetting) { return(asset.Atlas.GenerateSpriteSheetImage( project.MakeAbsolutePath(asset.Path), Decimal.ToInt32(numSpritePadding.Value), checkSpriteAtlasNPOT.Checked, checkSpriteAtlasCopyBorder.Checked)); } else { return(asset.Atlas.GenerateSpriteSheetImage( project.MakeAbsolutePath(asset.Path), 0, true, false)); } }
public void SetData(Model.Project project, Model.Asset asset) { if (project == null || asset == null) { Close(); return; } this.project = project; this.asset = asset; string rootpath = project.MakeAbsolutePath(asset.Path); List <string> dirs = GetLastDirs(rootpath, rootpath); this.dirs = dirs; lst_Frames.LargeImageList = new ImageList(); foreach (Model.Sprite sprite in asset.Atlas.Sprites) { lst_Frames.LargeImageList.Images.Add(sprite.ImageName, sprite.Image); } RefreshList(); }