public partial class LoadSaveMenu : MarginContainer { const string SAVES_FOLDER = "user://saves/"; [Export] public FileDialog LoadFileDialog { get; set; } [Export] public FileDialog SaveFileDialog { get; set; } [Export] public Label Filename { get; set; } [Export] public Label LastSaved { get; set; } public override void _EnterTree() { DirAccess.MakeDirAbsolute(SAVES_FOLDER); LoadFileDialog.RootSubfolder = SAVES_FOLDER; SaveFileDialog.RootSubfolder = SAVES_FOLDER; } public void OnLoadPressed() { LoadFileDialog.Popup(); } public void OnOverwriteSavePressed() { OnSaveFileDialogSelected(Filename.Text); } public void OnCreateSavePressed() { SaveFileDialog.Popup(); } public void OnLoadFileDialogSelected(string path) { Game.LocalWorkshop.LoadFromFile(path); Filename.Text = path; var time = FileAccess.GetModifiedTime(path); var date = DateTimeOffset.FromUnixTimeSeconds((long)time).LocalDateTime; LastSaved.Text = date.ToString("yyyy-MM-dd HH:mm:ss"); } public void OnSaveFileDialogSelected(string path) { Game.LocalWorkshop.SaveToFile(path); Filename.Text = path; LastSaved.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); } }