Exemplo n.º 1
0
 public void LoadSavedState()
 {
     Debug.Log($"Loading json: {jsonGameState}");
     ClearField();
     if (jsonGameState == "{}")
     {
         var defaultJson = Resources.Load <TextAsset>("default_game").text;
         GameSerialized.Create(defaultJson).Deserialize();
     }
     else
     {
         GameSerialized.Create(jsonGameState).Deserialize();
     }
 }
Exemplo n.º 2
0
    public static GameSerialized Create()
    {
        var result = new GameSerialized
        {
            NodeBlocks    = new List <NodeBlockSerialized>(),
            RootBlocks    = new List <RootBlockSerialized>(),
            Binds         = new List <BindSerialized>(),
            SoundsPlayers = new List <SoundsPlayerSerialized>(),
        };

        foreach (var block in FieldMatrix.GetAllAsList())
        {
            switch (block)
            {
            case NodeBlock nodeBlock:
            {
                if (NodeBlockSerialized.Create(nodeBlock, out var t))
                {
                    result.NodeBlocks.Add(t);
                }
                break;
            }

            case RootBlock rootBlock:
            {
                if (RootBlockSerialized.Create(rootBlock, out var t))
                {
                    result.RootBlocks.Add(t);
                }
                break;
            }
            }
        }
        foreach (var bind in BindMatrix.GetAllAsList())
        {
            if (BindSerialized.Create(bind, out var t))
            {
                result.Binds.Add(t);
            }
        }
        foreach (var root in Roots.Root.Values)
        {
            if (SoundsPlayerSerialized.Create(root.block.soundsPlayer, root.block.rootId, out var t))
            {
                result.SoundsPlayers.Add(t);
            }
        }
        return(result);
    }
Exemplo n.º 3
0
 void Update()
 {
     if (Input.GetKeyDown(KeyCode.T))
     {
         GameManager.Instance.LoadSavedState();
     }
     if (Input.GetKeyDown(KeyCode.C))
     {
         GameManager.Instance.ClearField();
     }
     if (Input.GetKeyDown(KeyCode.S))
     {
         GameManager.Instance.SaveGameToFile();
     }
     if (Input.GetKeyDown(KeyCode.L))
     {
         GameManager.Instance.LoadGameFromFile();
     }
     if (Input.GetKeyDown(KeyCode.D))
     {
         Debug.Log(GameSerialized.Create().ToJson());
     }
 }
Exemplo n.º 4
0
 public void SaveState()
 {
     jsonGameState = GameSerialized.Create().ToJson();
     Debug.Log($"Save state: {jsonGameState}");
 }