Ejemplo n.º 1
0
    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();
        }
    }
Ejemplo n.º 2
0
    //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");
        }
Ejemplo n.º 4
0
        public void Null_callback_throws_exception()
        {
            // Act
            var autosave = new Autosave<object>(new object(), null);

            // Assert
            Assert.Fail();
        }
Ejemplo n.º 5
0
        public void Null_item_throws_exception()
        {
            // Act
            var autosave = new Autosave<object>(null, () => Task.FromResult(true));

            // Assert
            Assert.Fail();
        }
Ejemplo n.º 6
0
        public void Null_callback_throws_exception()
        {
            // Act
            var autosave = new Autosave <object>(new object(), null);

            // Assert
            Assert.Fail();
        }
Ejemplo n.º 7
0
        public void Null_item_throws_exception()
        {
            // Act
            var autosave = new Autosave <object>(null, () => Task.FromResult(true));

            // Assert
            Assert.Fail();
        }
Ejemplo n.º 8
0
        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");
        }
Ejemplo n.º 12
0
        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");
        }
Ejemplo n.º 13
0
        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);
        }
Ejemplo n.º 14
0
        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.");
        }
Ejemplo n.º 16
0
        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");
        }
Ejemplo n.º 17
0
        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");
        }
Ejemplo n.º 18
0
        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");
        }
Ejemplo n.º 19
0
        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.");
        }
Ejemplo n.º 20
0
        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");
        }
Ejemplo n.º 21
0
 internal void InvokeAutosave(SaveEventArgs e)
 {
     Autosave?.Invoke(this, e);
 }
Ejemplo n.º 22
0
 static void Init()
 {
     windowInstance = (Autosave)EditorWindow.GetWindow(typeof(Autosave));
     windowInstance.Show();
     prefs = AssetDatabase.LoadAssetAtPath <AutosavePrefs>("Assets/Autosave/Resources/autosaveprefs.asset");
 }
Ejemplo n.º 23
0
        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();
        }