Exemple #1
0
 private void BackupIntervalToggle(Configuration.BACKUP_INTERVAL interval, String text)
 {
     if (GUILayout.Toggle(SAVE.configuration.backupInterval == interval, " " + text))
     {
         SAVE.configuration.backupInterval = interval;
     }
 }
Exemple #2
0
            public void CallbackGameSaved(Game game)
            {
                String    name = HighLogic.SaveFolder;
                BackupSet set  = GetBackupSetForName(name);

                if (set == null)
                {
                    set = new BackupSet(name, SAVE_ROOT + "/" + name);
                    backupSets.Add(set);
                    SortBackupSets();
                    CreateBackupSetNameArray();
                }
                //
                if (SAVE.configuration.disabled)
                {
                    Log.Info("backup disabled");
                    return;
                }
                TimeSpan elapsed = DateTime.Now - set.time;

                //
                if (elapsed.Seconds <= 0)
                {
                    Log.Info("backup already done");
                    return;
                }

                Configuration.BACKUP_INTERVAL interval = SAVE.configuration.backupInterval;
                BackupJob job = BackupJob.NO_JOB;

                switch (interval)
                {
                case Configuration.BACKUP_INTERVAL.EACH_SAVE:
                    job = BackupGame(set);
                    break;

                case Configuration.BACKUP_INTERVAL.ONCE_IN_10_MINUTES:
                    if (elapsed.TotalMinutes >= 10)
                    {
                        job = BackupGame(set);
                    }
                    break;

                case Configuration.BACKUP_INTERVAL.ONCE_IN_30_MINUTES:
                    if (elapsed.TotalMinutes >= 30)
                    {
                        job = BackupGame(set);
                    }
                    break;

                case Configuration.BACKUP_INTERVAL.ONCE_PER_HOUR:
                    if (elapsed.TotalHours >= 1)
                    {
                        job = BackupGame(set);
                    }
                    break;

                case Configuration.BACKUP_INTERVAL.ONCE_IN_2_HOURS:
                    if (elapsed.TotalHours >= 2)
                    {
                        job = BackupGame(set);
                    }
                    break;

                case Configuration.BACKUP_INTERVAL.ONCE_IN_4_HOURS:
                    if (elapsed.TotalHours >= 4)
                    {
                        job = BackupGame(set);
                    }
                    break;

                case Configuration.BACKUP_INTERVAL.ONCE_PER_DAY:
                    if (elapsed.TotalDays >= 1)
                    {
                        job = BackupGame(set);
                    }
                    break;

                case Configuration.BACKUP_INTERVAL.ONCE_PER_WEEK:
                    if (elapsed.TotalDays >= 7)
                    {
                        job = BackupGame(set);
                    }
                    break;

                case Configuration.BACKUP_INTERVAL.CUSTOM:
                    if (elapsed.Minutes >= SAVE.configuration.customBackupInterval)
                    {
                        job = BackupGame(set);
                    }
                    break;

                case Configuration.BACKUP_INTERVAL.ON_QUIT:
                    Log.Detail("backups are done every quit");
                    break;

                default:
                    Log.Error("invalid backup interval ignored; backup is done each save");
                    job = BackupGame(set);
                    break;
                }
                // wait for job to complete, to avoid concurrency problems
                WaitUntilBackupJobCompleted(job);
            }