newlon/addons/pvzadventure/scripts/FileButton.cs

51 lines
No EOL
1 KiB
C#

using Godot;
#if TOOLS
[Tool]
public partial class FileButton : MenuButton
{
const int NEWFILE = 0;
const int OPENFILE = 1;
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 == OPENFILE)
{
dialog.PopupCentered();
dialog.FileMode = FileDialog.FileModeEnum.OpenFile;
}
}
private void OnFileSelected(string path)
{
editor.editedPath = path;
if (chosenOption == NEWFILE)
{
editor.Save();
editor.HardReload();
}
else if (chosenOption == OPENFILE)
{
editor.HardReload();
}
}
}
#endif