public static void LoadGame(SceneTree tree) { string save = ""; try { if (!FileEncoder.SaveExists()) { return; } save = FileEncoder.Read(); } catch (Utils.WrongVersionException e) { ThoughtPopup.Instance.OpenCustomMessage(e.GetMessage() + "\n\n[url=~title]Back to the title screen[/url]"); var callback = Callback.ConnectOnce(ThoughtPopup.Instance, "popup_hide", () => tree.ChangeScene("res://Scenes/TitleScreen.tscn")); return; } var saveItems = Loader.LoadMany(save); GameData.Instance = (GameData)saveItems[0]; RNG.StartCycle((int)saveItems[1]); }
// Called when the node enters the scene tree for the first time. public override void _Ready() { GetNode <Label>("Version").Text += Global.GameVersion; SFXHandler.Instance.Change(GameData.GameState.None); GetNode <AnimationPlayer>("AnimationPlayer").Connect("animation_finished", this, nameof(OnSplashScreenFinish)); TitleScreenButtons genericTitleScreen = GetNode <TitleScreenButtons>("Menu/Menu buttons"); if (FileEncoder.SaveExists()) { genericTitleScreen.newGameConfirmationPath = new NodePath("../Confirmation"); } Callback.Connect(genericTitleScreen, nameof(TitleScreenButtons.NewGame), () => { FileEncoder.Delete(); GameData.Instance.Deck = CardData.DefaultDeck(); }); Callback.Connect(genericTitleScreen, nameof(TitleScreenButtons.LoadGame), () => Global.LoadGame(GetTree())); GameData.Instance.Deck = CardData.All(); }