newlon/addons/pvzadventure/scripts/FileButton.cs
2025-07-05 20:51:04 +05:00

53 lines
1.1 KiB
C#

using Godot;
[Tool]
public partial class FileButton : MenuButton
{
const int NEWFILE = 0;
const int SAVEFILE = 1;
const int OPENFILE = 2;
private AdventureEditor editor;
private FileDialog dialog;
private int chosenOption = -1;
public override void _Ready()
{
editor = (AdventureEditor)FindParent("AdventureEditor");
dialog = GetNode<FileDialog>("FileDialog");
GetPopup().IndexPressed += OnIndexPressed;
dialog.FileSelected += OnFileSelected;
}
private void OnIndexPressed(long index)
{
chosenOption = (int)index;
if (index == NEWFILE)
{
editor.editedResource = new AdventureLevelResource();
dialog.PopupCentered();
dialog.FileMode = FileDialog.FileModeEnum.SaveFile;
}
else if (index == SAVEFILE)
{
editor.Save();
}
else if (index == OPENFILE)
{
dialog.PopupCentered();
dialog.FileMode = FileDialog.FileModeEnum.OpenFile;
}
}
private void OnFileSelected(string path)
{
editor.editedPath = path;
if (chosenOption == NEWFILE)
{
editor.Save();
}
else if (chosenOption == OPENFILE)
{
editor.Reload();
}
}
}