void OnGUI() { EditorGUI.LabelField(new Rect(offset, 5, position.width - offset * 2, 20), "Autosave Manager"); bool b = EditorGUI.ToggleLeft(new Rect(offset, 25, position.width - offset * 2, 20), "Enabled", Autosave.isEnabled); if (b != Autosave.isEnabled) { Autosave.enableAutoSaves(b); Autosave.savePrefs(); } b = EditorGUI.ToggleLeft(new Rect(offset, 45, position.width - offset * 2, 20), "Save Active Scene", Autosave.saveActiveScene); if (b != Autosave.saveActiveScene) { Autosave.saveActiveScene = b; Autosave.savePrefs(); } EditorGUI.LabelField(new Rect(offset, 65, position.width - offset * 2, 20), "Save Interval in Seconds"); double newSaveInterval = EditorGUI.DoubleField(new Rect(offset, 85, position.width - offset * 2, 20), Autosave.saveTimeIntervalsSeconds); if (newSaveInterval != Autosave.saveTimeIntervalsSeconds) { Autosave.changeAutoSaveInterval(newSaveInterval); Autosave.savePrefs(); } EditorGUI.LabelField(new Rect(offset, 105, position.width - offset * 2, 20), "Autosave Cycle Size"); int limit = EditorGUI.IntSlider(new Rect(offset, 125, position.width - offset * 2, 20), Autosave.autoSaveLimit, 1, 10); if (limit != Autosave.autoSaveLimit) { Autosave.autoSaveLimit = limit; Autosave.savePrefs(); } }
//this will always execute void Awake() { Instance = this; #if UNITY_EDITOR if (Game.Current == null) { bool isTutorial = SceneManager.GetActiveScene().buildIndex == 2; if (!isTutorial) { print("Starting new game for editor session"); var boughtMatter = new BoughtMatter(); boughtMatter.Set(RedHomestead.Simulation.Matter.Water, 1); boughtMatter.Set(RedHomestead.Simulation.Matter.Oxygen, 1); boughtMatter.Set(RedHomestead.Simulation.Matter.Hydrogen, 2); PersistentDataManager.StartNewGame(new RedHomestead.GameplayOptions.NewGameChoices() { PlayerName = "Ares", ChosenLocation = new RedHomestead.Geography.BaseLocation() { Region = RedHomestead.Geography.MarsRegion.meridiani_planum }, ChosenFinancing = RedHomestead.Economy.BackerFinancing.Government, BuyRover = true, ChosenPlayerTraining = RedHomestead.Perks.Perk.Athlete, RemainingFunds = 1000000, BoughtMatter = boughtMatter, BoughtCraftables = new System.Collections.Generic.Dictionary <RedHomestead.Crafting.Craftable, int>(), IsTutorial = isTutorial }); } } #endif }
public async Task Deleted_timer_can_reinitialize() { // Arrange bool callbackInvoked = false; var autosave = new Autosave <ComponentFixture>( new ComponentFixture(), () => { callbackInvoked = true; return(Task.FromResult(0)); }); autosave.AutoSaveFrequency = 2; await autosave.Initialize(); // Act await autosave.Delete(); await autosave.Initialize(); await Task.Delay(TimeSpan.FromSeconds(3)); // Assert Assert.IsTrue(callbackInvoked, "Autosave did not invoke the callback"); }
public void Null_callback_throws_exception() { // Act var autosave = new Autosave<object>(new object(), null); // Assert Assert.Fail(); }
public void Null_item_throws_exception() { // Act var autosave = new Autosave<object>(null, () => Task.FromResult(true)); // Assert Assert.Fail(); }
public void Null_callback_throws_exception() { // Act var autosave = new Autosave <object>(new object(), null); // Assert Assert.Fail(); }
public void Null_item_throws_exception() { // Act var autosave = new Autosave <object>(null, () => Task.FromResult(true)); // Assert Assert.Fail(); }
public void Is_not_running_when_created() { // Act var autosave = new Autosave<ComponentFixture>(new ComponentFixture(), () => Task.FromResult(0)); // Assert Assert.IsFalse(autosave.IsAutosaveRunning, "Autosave started running before being initialized"); }
public void Is_not_running_when_created() { // Act var autosave = new Autosave <ComponentFixture>(new ComponentFixture(), () => Task.FromResult(0)); // Assert Assert.IsFalse(autosave.IsAutosaveRunning, "Autosave started running before being initialized"); }
public async Task Initializing_a_disposed_autosave_throws_exception() { // Arrange var autosave = new Autosave <ComponentFixture>(new ComponentFixture(), () => Task.FromResult(0)); await autosave.Initialize(); // Act autosave.Dispose(); await autosave.Initialize(); }
public void Is_running_when_initialized() { // Arrange var autosave = new Autosave <ComponentFixture>(new ComponentFixture(), () => Task.FromResult(0)); // Act autosave.Initialize(); // Assert Assert.IsTrue(autosave.IsAutosaveRunning, "Autosave did not start running once initialized"); }
public void Is_running_when_initialized() { // Arrange var autosave = new Autosave<ComponentFixture>(new ComponentFixture(), () => Task.FromResult(0)); // Act autosave.Initialize(); // Assert Assert.IsTrue(autosave.IsAutosaveRunning, "Autosave did not start running once initialized"); }
public void Write(GenericStructure gs) { gs["ID"] = ID.ToString(CultureInfo.InvariantCulture); gs["Name"] = Name; gs["EngineID"] = Engine.ToString(); gs["BuildID"] = BuildID.ToString(CultureInfo.InvariantCulture); gs["SteamInstall"] = SteamInstall.ToString(CultureInfo.InvariantCulture); gs["WonGameDir"] = WonGameDir; gs["SteamGameDir"] = SteamGameDir; gs["ModDir"] = ModDir; gs["UseHDModels"] = UseHDModels.ToString(CultureInfo.InvariantCulture); gs["BaseDir"] = BaseDir; gs["Executable"] = Executable; gs["ExecutableParameters"] = ExecutableParameters; gs["MapDir"] = MapDir; gs["Autosave"] = Autosave.ToString(CultureInfo.InvariantCulture); gs["UseCustomAutosaveDir"] = UseCustomAutosaveDir.ToString(CultureInfo.InvariantCulture); gs["AutosaveDir"] = AutosaveDir; gs["AutosaveTime"] = AutosaveTime.ToString(CultureInfo.InvariantCulture); gs["AutosaveLimit"] = AutosaveLimit.ToString(CultureInfo.InvariantCulture); gs["AutosaveOnlyOnChanged"] = AutosaveOnlyOnChanged.ToString(CultureInfo.InvariantCulture); gs["AutosaveTriggerFileChange"] = AutosaveTriggerFileSave.ToString(CultureInfo.InvariantCulture); gs["DefaultPointEntity"] = DefaultPointEntity; gs["DefaultBrushEntity"] = DefaultBrushEntity; gs["DefaultTextureScale"] = DefaultTextureScale.ToString(CultureInfo.InvariantCulture); gs["DefaultLightmapScale"] = DefaultLightmapScale.ToString(CultureInfo.InvariantCulture); gs["IncludeFgdDirectoriesInEnvironment"] = IncludeFgdDirectoriesInEnvironment.ToString(CultureInfo.InvariantCulture); gs["OverrideMapSize"] = OverrideMapSize.ToString(CultureInfo.InvariantCulture); gs["OverrideMapSizeLow"] = OverrideMapSizeLow.ToString(CultureInfo.InvariantCulture); gs["OverrideMapSizeHigh"] = OverrideMapSizeHigh.ToString(CultureInfo.InvariantCulture); var additional = new GenericStructure("AdditionalPackages"); var i = 1; foreach (var add in AdditionalPackages) { additional.AddProperty(i.ToString(CultureInfo.InvariantCulture), add); i++; } gs.Children.Add(additional); gs["PackageBlacklist"] = (PackageBlacklist ?? "").Replace("\r", "").Replace('\n', ';'); gs["PackageWhitelist"] = (PackageWhitelist ?? "").Replace("\r", "").Replace('\n', ';'); var fgds = new GenericStructure("Fgds"); i = 1; foreach (var fgd in Fgds) { fgds.AddProperty(i.ToString(CultureInfo.InvariantCulture), fgd.Path); i++; } gs.Children.Add(fgds); }
public async Task Frequency_disables_autosave() { // Arrange var autosave = new Autosave<object>(new object(), () => Task.FromResult(true)); autosave.AutoSaveFrequency = 0; // Act await autosave.Initialize(); // Assert Assert.IsFalse(autosave.IsAutosaveRunning, "Autosave is running"); }
public async Task Delete_autosave_stops_running() { // Arrange var autosave = new Autosave <ComponentFixture>(new ComponentFixture(), () => Task.FromResult(0)); await autosave.Initialize(); // Act await autosave.Delete(); // Assert Assert.IsFalse(autosave.IsAutosaveRunning, "Autosave was not stopped when deleted."); }
public async Task Frequency_disables_autosave() { // Arrange var autosave = new Autosave <object>(new object(), () => Task.FromResult(true)); autosave.AutoSaveFrequency = 0; // Act await autosave.Initialize(); // Assert Assert.IsFalse(autosave.IsAutosaveRunning, "Autosave is running"); }
public async Task Frequency_enables_autosave() { // Arrange var autosave = new Autosave <object>(new object(), () => Task.FromResult(true)); // We don't test that the callback happens at this frequency; // that is covered by the EngineTimer tests. autosave.AutoSaveFrequency = 1; // Act await autosave.Initialize(); // Assert Assert.IsTrue(autosave.IsAutosaveRunning, "Autosave is not running"); }
public async Task Frequency_enables_autosave() { // Arrange var autosave = new Autosave<object>(new object(), () => Task.FromResult(true)); // We don't test that the callback happens at this frequency; // that is covered by the EngineTimer tests. autosave.AutoSaveFrequency = 1; // Act await autosave.Initialize(); // Assert Assert.IsTrue(autosave.IsAutosaveRunning, "Autosave is not running"); }
public async Task Delete_autosave_stops_running() { // Arrange var autosave = new Autosave<ComponentFixture>(new ComponentFixture(), () => Task.FromResult(0)); await autosave.Initialize(); // Act await autosave.Delete(); // Assert Assert.IsFalse(autosave.IsAutosaveRunning, "Autosave was not stopped when deleted."); }
public async Task Save_callback_invoked_when_running() { // Arrange bool callbackInvoked = false; var autosave = new Autosave<ComponentFixture>( new ComponentFixture(), () => { callbackInvoked = true; return Task.FromResult(0); }); autosave.AutoSaveFrequency = 2; // Act await autosave.Initialize(); await Task.Delay(TimeSpan.FromSeconds(3)); // Assert Assert.IsTrue(callbackInvoked, "Autosave did not invoke the callback"); }
internal void InvokeAutosave(SaveEventArgs e) { Autosave?.Invoke(this, e); }
static void Init() { windowInstance = (Autosave)EditorWindow.GetWindow(typeof(Autosave)); windowInstance.Show(); prefs = AssetDatabase.LoadAssetAtPath <AutosavePrefs>("Assets/Autosave/Resources/autosaveprefs.asset"); }
public async Task Initializing_a_disposed_autosave_throws_exception() { // Arrange var autosave = new Autosave<ComponentFixture>(new ComponentFixture(), () => Task.FromResult(0)); await autosave.Initialize(); // Act autosave.Dispose(); await autosave.Initialize(); }