diff --git a/Scripts/UI/IntroScenePlayer.cs b/Scripts/UI/IntroScenePlayer.cs index e6886f48..d1694f9c 100644 --- a/Scripts/UI/IntroScenePlayer.cs +++ b/Scripts/UI/IntroScenePlayer.cs @@ -31,11 +31,11 @@ public partial class IntroScenePlayer : CanvasLayer private List _panels = new (); public TextureRect CurrentPanel => _panels[_currentPanelIndex]; - - private double _timer = 0f; private bool _running = false; + private bool _isEnding = false; + private void DeferredStartAnimation() { AnimationPlayer.Play("intro"); @@ -43,31 +43,9 @@ public partial class IntroScenePlayer : CanvasLayer public override void _Ready() { - _timer = 0; _running = StartRunning; DeferredStartAnimation(); - - return; - foreach (var image in Images) - { - var panel = new TextureRect(); - panel.Texture = image; - panel.ExpandMode = TextureRect.ExpandModeEnum.KeepSize; - panel.StretchMode = TextureRect.StretchModeEnum.KeepAspectCentered; - panel.Visible = false; - panel.SetModulate(new Color(panel.Modulate.R, panel.Modulate.G, panel.Modulate.B, 0f)); - - PanelsHolder.CallDeferred("add_child", panel); - - _panels.Add(panel); - } - - if (StartRunning) - { - Run(); - } - } public void Run() @@ -79,61 +57,18 @@ public partial class IntroScenePlayer : CanvasLayer public override void _Process(double delta) { - if (Input.IsAnythingPressed()) + if (!_isEnding && Input.IsAnythingPressed()) { Finished(); } - - if (!_running) return; - - _timer += delta; - - if (_timer >= TransitionTime) - { - _timer = 0; - NextPanel(); - } } - - public void NextPanel() - { - _currentPanelIndex++; - - if (_currentPanelIndex >= _panels.Count) - { - _running = false; - Finished(); - return; - } - - _running = false; - - _ = Transition(); - } - + private void Finished() { + if (_isEnding) return; + + _isEnding = true; GlobalState.Instance.GotoScene(NextSceneName); //GetTree().ChangeSceneToFile(NextSceneName); } - - private async Task Transition() - { - TextureRect previousPanel = _panels[_currentPanelIndex-1]; - - CurrentPanel.Visible = true; - - var tween = GetTree().CreateTween(); - tween.SetEase(Tween.EaseType.InOut); - tween.SetTrans(Tween.TransitionType.Linear); - tween.TweenProperty(previousPanel, "modulate:a", 0f, 1f); - - tween.TweenProperty(CurrentPanel, "modulate:a", 1f, 1f); - - await ToSignal(tween, "finished"); - - previousPanel.Visible = false; - - _running = true; - } } \ No newline at end of file