- Implemented LocalizationManager for handling multiple languages. - Updated LoadGameMenu, MainMenu, PauseMenu, and SettingsMenu to support localization. - Added InstanceSelectionMenu for selecting game instances. - Refactored SaveManager to handle new SaveInstance structure. - Created SaveDialog for saving games with user-defined names. - Enhanced SaveData to manage multiple save instances. - Added error handling and logging for save/load operations. - Updated UI elements to reflect localized text.
37 lines
1.1 KiB
C#
37 lines
1.1 KiB
C#
using Godot;
|
|
|
|
namespace TheGame
|
|
{
|
|
public static class GameState
|
|
{
|
|
public static float LoadedGameTime = -1;
|
|
public static GameSeed CurrentGameSeed = null;
|
|
public static SaveInstance LoadedInstance = null;
|
|
public static bool HasUnsavedProgress = false;
|
|
public static float LastSavedGameTime = 0;
|
|
|
|
public static void MarkProgressAsSaved(float gameTime)
|
|
{
|
|
LastSavedGameTime = gameTime;
|
|
HasUnsavedProgress = false;
|
|
}
|
|
|
|
public static void CheckUnsavedProgress(float currentGameTime)
|
|
{
|
|
// Om speltiden har ökat sedan senaste sparningen, markera som osparad
|
|
if (currentGameTime > LastSavedGameTime + 1.0f) // 1 sekund tolerans
|
|
{
|
|
HasUnsavedProgress = true;
|
|
}
|
|
}
|
|
|
|
public static void ResetGameState()
|
|
{
|
|
LoadedGameTime = -1;
|
|
CurrentGameSeed = null;
|
|
LoadedInstance = null;
|
|
HasUnsavedProgress = false;
|
|
LastSavedGameTime = 0;
|
|
}
|
|
}
|
|
} |