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