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(); } }
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); }
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()); } }
public void SaveState() { jsonGameState = GameSerialized.Create().ToJson(); Debug.Log($"Save state: {jsonGameState}"); }