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