using Babushka.scripts.CSharp.Common.SceneManagement; using Godot; namespace Babushka.scripts.CSharp.Common; public partial class SceneTransition : Node { [Export] private string[] _sceneNamesToLoad; [Export] private int _sceneIndex; [Export] private bool _unloadSelf = true; public void LoadScene() { LoadSceneAtIndex(0); } public void LoadSceneAtIndex(int index) { string sceneName = _sceneNamesToLoad[index]; SceneTransitionThreaded.Instance.ChangeSceneToFile(sceneName); UnloadAfterDelay(); } private async void UnloadAfterDelay() { await ToSignal(GetTree().CreateTimer(1.0f), "timeout"); // 1.0f seconds if (_unloadSelf) { QueueFree(); } } public void Quit() { GetTree().Quit(); } }