private void OnNewWorld()
        {
            var persistentWorld = PersistentWorldManager.GetInstance().PersistentWorld;

            var nameWorldDialog = new Dialog_PersistentWorlds_NameWorld((name) =>
            {
                var worldDir = SaveFileUtils.Clone(persistentWorld.LoadSaver.GetWorldFolderPath(),
                                                   PersistentWorldLoadSaver.SaveDir + "/" + name);

                // Delete original world file.
                worldDir.GetFiles("*.pwf").Do(file => file.Delete());

                // Change original world name.
                persistentWorld.WorldData.Info.name = name;

                persistentWorld.LoadSaver =
                    new PersistentWorldLoadSaver(persistentWorld, worldDir.FullName);

                this.SaveWorld();

                this.LoadWorldsAsEntries();
            });

            Find.WindowStack.Add(nameWorldDialog);
        }
Пример #2
0
 private async Task ExportArtworkAsync()
 {
     if (this.HasArtwork)
     {
         await SaveFileUtils.SaveImageFileAsync("cover", this.Artwork.Value);
     }
 }
Пример #3
0
        public EditAlbumViewModel(Common.Database.Entities.Album album, IMetadataService metadataService, IDialogService dialogService, ICacheService cacheService)
        {
            this.Album           = album;
            this.metadataService = metadataService;
            this.dialogService   = dialogService;
            this.cacheService    = cacheService;

            this.artwork = new MetadataArtworkValue();

            this.LoadedCommand = new DelegateCommand(async() => await this.GetAlbumArtworkAsync());

            this.ExportArtworkCommand = new DelegateCommand(async() =>
            {
                if (HasArtwork)
                {
                    await SaveFileUtils.SaveImageFileAsync("cover", this.Artwork.Value);
                }
            });

            this.ChangeArtworkCommand = new DelegateCommand(async() =>
            {
                if (!await OpenFileUtils.OpenImageFileAsync(new Action <byte[]>(this.UpdateArtwork)))
                {
                    this.dialogService.ShowNotification(0xe711, 16, ResourceUtils.GetString("Language_Error"), ResourceUtils.GetString("Language_Error_Changing_Image"), ResourceUtils.GetString("Language_Ok"), true, ResourceUtils.GetString("Language_Log_File"));
                }
            });


            this.RemoveArtworkCommand   = new DelegateCommand(() => this.UpdateArtwork(null));
            this.DownloadArtworkCommand = new DelegateCommand(() => this.DownloadArtworkAsync(), () => this.album.AlbumArtist != Defaults.UnknownArtistText && this.Album.AlbumTitle != Defaults.UnknownAlbumText);
        }
Пример #4
0
        public EditTrackViewModel(IList <string> paths, IMetadataService metadataService, IDialogService dialogService)
        {
            this.multipleValuesText = "<" + ResourceUtils.GetString("Language_Multiple_Values") + ">";

            this.artists      = new MetadataValue();
            this.title        = new MetadataValue();
            this.album        = new MetadataValue();
            this.albumArtists = new MetadataValue();
            this.year         = new MetadataValue();
            this.trackNumber  = new MetadataValue();
            this.trackCount   = new MetadataValue();
            this.discNumber   = new MetadataValue();
            this.discCount    = new MetadataValue();
            this.genres       = new MetadataValue();
            this.grouping     = new MetadataValue();
            this.comment      = new MetadataValue();
            this.lyrics       = new MetadataValue();
            this.artwork      = new MetadataArtworkValue();

            this.paths           = paths;
            this.metadataService = metadataService;
            this.dialogService   = dialogService;

            this.HasMultipleArtwork = false;
            this.UpdateAlbumArtwork = false;

            this.LoadedCommand = new DelegateCommand(async() => await this.GetFilesMetadataAsync());

            this.NavigateCommand = new DelegateCommand <string>((index) => Navigate(index));

            this.ExportArtworkCommand = new DelegateCommand(async() =>
            {
                if (HasArtwork)
                {
                    await SaveFileUtils.SaveImageFileAsync("cover", this.Artwork.Value);
                }
            });

            this.ChangeArtworkCommand = new DelegateCommand(async() =>
            {
                if (!await OpenFileUtils.OpenImageFileAsync(new Action <byte[]>(this.UpdateArtwork)))
                {
                    this.dialogService.ShowNotification(
                        0xe711,
                        16,
                        ResourceUtils.GetString("Language_Error"),
                        ResourceUtils.GetString("Language_Error_Changing_Image"),
                        ResourceUtils.GetString("Language_Ok"),
                        true,
                        ResourceUtils.GetString("Language_Log_File"));
                }
            });

            this.RemoveArtworkCommand = new DelegateCommand(() => this.UpdateArtwork(null));

            this.Navigate("1"); // Make sure something is displayed when the screen is shown
        }
        private void LoadWorldsAsEntries()
        {
            this.worldEntries.Clear();

            new Thread(() =>
            {
                foreach (var entry in SaveFileUtils.LoadWorldEntries())
                {
                    this.worldEntries.Add(entry);
                }
            }).Start();
        }
        public ActionResult Upload()
        {
            try
            {
                Microsoft.AspNetCore.Http.IFormFile file = Request.Form.Files[0];

                return(Content(SaveFileUtils.SaveFile(file)));
            }
            catch (System.Exception e)
            {
                Console.WriteLine(e);

                return(StatusCode(500));
            }
        }
        private bool IsValidName(string s)
        {
            if (SaveFileUtils.WorldWithNameExists(s))
            {
                Messages.Message("FilUnderscore.PersistentRimWorlds.Save.WorldNameAlreadyUsed".Translate(),
                                 MessageTypeDefOf.RejectInput, false);

                return(false);
            }
            else if (!GenText.IsValidFilename(s) || GrammarResolver.ContainsSpecialChars(s))
            {
                // TODO: Invalid chars message.

                return(false);
            }

            return(true);
        }
        private void LoadPossibleConversions()
        {
            var names = new List <string>();

            worldEntries.Do(entry => names.Add(((WorldUI.WorldUIEntry)entry).Name));
            var namesArray = names.ToArray();

            foreach (var allSavedGameFile in GenFilePaths.AllSavedGameFiles)
            {
                if (SaveFileUtils.HasPossibleSameWorldName(namesArray, allSavedGameFile.FullName))
                {
                    continue;
                }

                saveGameEntries.Add(new WorldUI.SaveGameUIEntry(allSavedGameFile.FullName));
            }

            names.Clear();
        }
Пример #9
0
        public void SaveWorld(bool delete = false)
        {
            LongEventHandler.QueueLongEvent(delegate
            {
                this.SaveColony();

                this.ConvertCurrentGameWorldObjects();

                this.LoadSaver.SaveWorldData();

                this.ConvertToCurrentGameWorldObjects();

                if (!delete)
                {
                    return;
                }

                SaveFileUtils.DeleteFile(this.Colony.FileInfo.FullName);
                GenScene.GoToMainMenu();
            }, "FilUnderscore.PersistentRimWorlds.Saving.World", false, null);
        }
Пример #10
0
        public void TDD()    //Test Driver Development (Test-Treiber)
        {
            var mock = new SaveFileUtils();

            mock.Save(null);
        }
        private void DeleteWorld(string worldDir)
        {
            SaveFileUtils.DeleteDirectory(worldDir);

            this.LoadWorldsAsEntries();
        }