using Godot; using System.Collections.Generic; namespace TheGame { public partial class LoadGameMenu : Control { private VBoxContainer _saveList; private SaveManager _saveManager; public override void _Ready() { _saveList = GetNode("VBoxContainer/ScrollContainer/SaveList"); _saveManager = new SaveManager(); PopulateSaveList(); } private void PopulateSaveList() { // Rensa tidigare innehåll foreach (Node child in _saveList.GetChildren()) { child.QueueFree(); } var savedGames = _saveManager.GetSavedGames(); if (savedGames.Count == 0) { var noSavesLabel = new Label(); noSavesLabel.Text = "No saved games found"; noSavesLabel.HorizontalAlignment = HorizontalAlignment.Center; _saveList.AddChild(noSavesLabel); return; } foreach (var saveData in savedGames) { var saveButton = new Button(); // Formatera tid för visning int hours = (int)(saveData.GameTime / 3600); int minutes = (int)((saveData.GameTime % 3600) / 60); int seconds = (int)(saveData.GameTime % 60); string timeText = $"{hours:D2}:{minutes:D2}:{seconds:D2}"; saveButton.Text = $"{saveData.SaveName}\nTime: {timeText}\nSaved: {saveData.SaveDate:yyyy-MM-dd HH:mm:ss}"; // Anslut knapp-händelse saveButton.Pressed += () => LoadSelectedGame(saveData); _saveList.AddChild(saveButton); } } private void LoadSelectedGame(SaveData saveData) { if (_saveManager.LoadGame(saveData)) { GetTree().ChangeSceneToFile("res://scenes/Game.tscn"); } else { GD.PrintErr("Failed to load selected game"); } } private void _on_back_button_pressed() { GetTree().ChangeSceneToFile("res://scenes/MainMenu.tscn"); } } }