#if TOOLS #nullable enable using Godot; using System; using System.Linq; namespace GodotInk; [Tool] public partial class InkDock : VBoxContainer { private static readonly StringName CHOICE_INDEX_META = "Index"; private Button loadButton = null!; private Button startButton = null!; private Button stopButton = null!; private Button clearButton = null!; private Label storyNameLabel = null!; private VBoxContainer storyText = null!; private VBoxContainer storyChoices = null!; private ScrollContainer scroll = null!; private EditorFileDialog fileDialog = null!; private string storyPath = ""; private InkStory? story; private bool storyStarted; private string backupSave = ""; public override void _Ready() { base._Ready(); CustomMinimumSize = new Vector2(0.0f, 228.0f); // Initialize file dialog. fileDialog = new() { FileMode = EditorFileDialog.FileModeEnum.OpenFile, Access = EditorFileDialog.AccessEnum.Resources, }; fileDialog.AddFilter("*.ink", "Ink Stories"); fileDialog.FileSelected += LoadStory; AddChild(fileDialog); // Initialize top. loadButton = GetNode