Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        private async void Save(AnimationStripSettings settings, Action <AnimationStripSettings> saveCallback)
        {
            var saveBuffer = new BufferBlock <System.Action>();

            AddToSaveQueue(saveBuffer, () => saveSettings?.Invoke(settings, saveCallback));
            await SaveAsync(saveBuffer);
        }
Ejemplo n.º 3
0
 public IPromise Save(AnimationStripSettings settings)
 {
     try
     {
         Save(settings, settings.Name);
     }
     catch (Exception ex)
     {
         return(Promise.Rejected(ex));
     }
     return(Promise.Resolved());
 }
Ejemplo n.º 4
0
        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));
        }
Ejemplo n.º 5
0
        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();
        }
Ejemplo n.º 6
0
        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);
            }
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        private void Save(AnimationStripSettings settings, string name)
        {
            var json = JsonConvert.SerializeObject(settings);

            fileWriter(json, name);
        }
Ejemplo n.º 9
0
 private void SaveUnedited(AnimationStripSettings settings, Action <AnimationStripSettings> saveCallback)
 {
     saveCallback(settings);
 }
Ejemplo n.º 10
0
 private void Save(AnimationStripSettings asettings, string path)
 {
     repository(path).Save(asettings);
 }