public override Task Run(Command command) { var dialog = new OpenFileDialog(); dialog.InitialDirectory = $"{Environment.CurrentDirectory}\\Content"; dialog.Filter = $"Animation Files(*.bmp, *.jpg, *.png *{Animation}) | *.bmp; *.jpg; *.png; *{Animation};"; if (dialog.ShowDialog() == true) { var repository = new JsonAnimationRepository($"{Environment.CurrentDirectory}\\Content"); if (dialog.FileName.EndsWith(Animation)) { repository.LoadByPath(dialog.FileName) .Done(settings => shell.OpenDocument(new AnimationStripViewModel(dialog.FileName, settings, path => new JsonAnimationRepository(path))), ex => { var res = Xceed.Wpf.Toolkit.MessageBox.Show(ex.Message); }); } else { var defaultSettings = new AnimationStripSettings(32, 32, 0, 0, GetRandomName(repository.Exists, 1), 0.02d, false, null); shell.OpenDocument(new AnimationStripViewModel(dialog.FileName, defaultSettings, path => new JsonAnimationRepository(path))); } } return(TaskUtility.Completed); }
private async void Save(AnimationStripSettings settings, Action <AnimationStripSettings> saveCallback) { var saveBuffer = new BufferBlock <System.Action>(); AddToSaveQueue(saveBuffer, () => saveSettings?.Invoke(settings, saveCallback)); await SaveAsync(saveBuffer); }
public IPromise Save(AnimationStripSettings settings) { try { Save(settings, settings.Name); } catch (Exception ex) { return(Promise.Rejected(ex)); } return(Promise.Resolved()); }
private void CropAndSave(AnimationStripSettings settings, Action <AnimationStripSettings> saveCallback) { int noOfFrames = (settings.LastFrame - settings.StartFrame) + 1; var newData = GetAnimationSubtexture(settings.Image, noOfFrames); saveCallback(new AnimationStripSettings( settings.FrameWidth, settings.FrameHeight, settings.FrameWidth * (noOfFrames), settings.FrameHeight, settings.Name, settings.FrameDelay, settings.Loop, newData, 0, noOfFrames - 1)); }
public AnimationStripViewModel(string path, AnimationStripSettings settings, Func <string, IAnimationRepository> repository) { this.repository = repository; this.settings = settings; Path = path; frameWidth = settings.FrameWidth; frameHeight = settings.FrameHeight; frameDelay = settings.FrameDelay * 1000; lastFrame = settings.LastFrame; firstFrame = settings.StartFrame; name = settings.Name; DisplayName = $"{name}{Extensions.Animation}"; FilePath = Path; FileName = DisplayName; SetupInspector(); }
public void Invalidate(AnimationStripSettings settings, Action <AnimationStripSettings> saveCallback) { animation = new AnimationStrip(settings); var analyzer = new AnimationStripAnalyzer(settings); frames = analyzer.Frames.ToList(); LoadFrameTexture(settings.FrameWidth, settings.FrameHeight); LoadSolidTexture(settings.FrameWidth, settings.FrameHeight); Width = analyzer.Width + margin; Height = analyzer.Height + margin; coordinates = new CoordinateViewer(graphicsDevice, MColor.Black, (int)Width, (int)Height); cameraHandler.UpdateViewport((int)Width, (int)Height); ReDraw(); if (saveCallback != null) { Save(settings, saveCallback); } }
public void AnimationRepository() { string json = null; animationRepository = new JsonAnimationRepository("path", (generatedJson, fileName) => json = generatedJson, fileName => json, () => new[] { "path" }); AnimationStripSettings settings = new AnimationStripSettings(10, 10, 0, 0, "test", 20d, true, null, 1, 10); AnimationStripSettings loadedSettings = default(AnimationStripSettings); animationRepository.ExecuteAsync(rep => rep.Save(settings)) .Then(() => animationRepository.LoadAll()) .Then(jsonSettings => loadedSettings = jsonSettings.First()); Assert.AreEqual(settings.Name, loadedSettings.Name); }
private void Save(AnimationStripSettings settings, string name) { var json = JsonConvert.SerializeObject(settings); fileWriter(json, name); }
private void SaveUnedited(AnimationStripSettings settings, Action <AnimationStripSettings> saveCallback) { saveCallback(settings); }
private void Save(AnimationStripSettings asettings, string path) { repository(path).Save(asettings); }