Files
TheGame/scripts/LoadGameMenu.cs
Björn Blomberg 61b03c5801 Add initial project files and implement core game features
- Created README.md with project description and setup instructions
- Added project configuration files (TheGame.csproj, TheGame.sln, project.godot)
- Implemented main game scenes (MainMenu.tscn, Game.tscn, LoadGameMenu.tscn)
- Developed game logic in C# scripts (Game.cs, MainMenu.cs, LoadGameMenu.cs, PauseMenu.cs, SaveManager.cs)
- Introduced save/load functionality and timer display
- Included icon.svg for game branding
2025-10-16 10:50:04 +02:00

73 lines
2.3 KiB
C#

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>("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");
}
}
}