private void BackupIntervalToggle(Configuration.BACKUP_INTERVAL interval, String text) { if (GUILayout.Toggle(SAVE.configuration.backupInterval == interval, " " + text)) { SAVE.configuration.backupInterval = interval; } }
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); }