Esempio n. 1
0
        public void can_add_and_save_and_load_again()
        {
            using (var fs = new FileSystemTester())
            {
                var set = new FileMetadataCache();
                var store = new JsonStore();
                var filename = "file-change-set.json";

                var file = fs.Touch("file.txt");
                set.Add(file);

                fs.Write(filename, s => store.Save(s, set));

                var loadedSet = fs.Read(filename, store.Load<FileMetadataCache>);

                Assert.IsNotNull(loadedSet);
                Assert.AreEqual(1, loadedSet.Files.Count);

                var fileinfo = loadedSet.Files.ElementAt(0);

                Assert.AreEqual(file.Name, Path.GetFileName(fileinfo.FilePath));
                Assert.AreEqual(file.Length, fileinfo.Length);
                Assert.AreEqual(file.LastWriteTimeUtc, fileinfo.LastWriteTimeUtc);
            }
        }
Esempio n. 2
0
        public void can_save_and_load()
        {
            using(var fs = new FileSystemTester())
            {
                var set = new FileMetadataCache();
                var store = new JsonStore();
                var filename = "file-change-set.json";

                fs.Write(filename, s => store.Save(s, set));
                fs.Read(filename, store.Load<FileMetadataCache>);
            }
        }
Esempio n. 3
0
        public void modifiying_file_in_set_causes_has_changes_to_return_true()
        {
            using (var fs = new FileSystemTester())
            {
                var set = new FileMetadataCache();
                var store = new JsonStore();
                var filename = "file-change-set.json";

                var file = fs.Touch("file.txt");
                set.Add(file);

                fs.Write(filename, s => store.Save(s, set));

                var loadedSet = fs.Read(filename, store.Load<FileMetadataCache>);

                Assert.IsFalse(loadedSet.HasChanges());

                fs.Touch(file.FullName);

                Assert.IsTrue(loadedSet.HasChanges());
            }
        }
Esempio n. 4
0
    IEnumerator StatePlayerSelect()
    {
        if (debug)
        {
            Debug.Log("StatePlayerSelect");
        }

        // load panel
        var panelGo = Instantiate(playerSelectPanelPrefab, GetCanvas().gameObject.transform);

        yield return(null);      // wait a frame for panel initialization

        string selectedPlayer = "";
        bool   cancelled      = false;

        // create string event listener to listen for callback event from player select modal
        var listener = panelGo.AddComponent <StringEventListener>();

        listener.SetEvent(playerSelected);
        listener.Response.AddListener((msg) => { selectedPlayer = msg; });
        var geListener = panelGo.AddComponent <GameEventListener>();

        geListener.SetEvent(cancelSelected);
        geListener.Response.AddListener(() => { cancelled = true; });

        // get list of player save files, then serialize to a single string
        var    savedPlayerNames      = JsonStore.ListByTag(JsonStore.SaveTag.Player);
        string serializedPlayerNames = "";

        if (savedPlayerNames.Length > 0)
        {
            serializedPlayerNames = string.Join(":", savedPlayerNames);
        }

        // trigger event to ask for player to be selected
        wantPlayerSelect.Raise(serializedPlayerNames);

        // wait for player to be selected
        yield return(new WaitUntil(() => selectedPlayer != "" || cancelled));

        // clean up
        Destroy(panelGo);

        // go back to main menu if cancelled
        if (cancelled)
        {
            StartCoroutine(StateMainMenu());

            // otherwise, advance, based on game state
        }
        else
        {
            // if player is selected from existing saved players... load that player
            if (System.Array.Exists(savedPlayerNames, element => element == selectedPlayer))
            {
                var json = JsonStore.Load(JsonStore.SaveTag.Player, selectedPlayer);
                playerInfo = PlayerInfo.FromJson(json);

                // otherwise create and save new player record
            }
            else
            {
                playerInfo      = new PlayerInfo();
                playerInfo.name = selectedPlayer;
                JsonStore.Save(JsonStore.SaveTag.Player, selectedPlayer, playerInfo.ToJson());
            }

            // transition to match select
            StartCoroutine(StateMatchSelect());
        }
    }
Esempio n. 5
0
 public void Save()
 {
     JsonStore.Save(JsonStore.SaveTag.Score, matchID, ToJson());
 }
 public void Save()
 {
     JsonStore.Save(JsonStore.SaveTag.Player, name, ToJson());
 }