Working pause menu

This commit is contained in:
2024-09-11 15:55:47 -07:00
parent 4d47a7586e
commit 149c8d9571
9 changed files with 1156 additions and 1115 deletions

View File

@@ -2,12 +2,13 @@ using Chickensoft.AutoInject;
using Chickensoft.GodotNodeInterfaces;
using Chickensoft.Introspection;
using Godot;
using System;
public interface IPauseMenu : IControl
{
void FadeIn();
void FadeOut();
event PauseMenu.TransitionCompletedEventHandler TransitionCompleted;
}
[Meta(typeof(IAutoNode))]
@@ -15,9 +16,20 @@ public partial class PauseMenu : Control, IPauseMenu
{
public override void _Notification(int what) => this.Notify(what);
[Signal]
public delegate void TransitionCompletedEventHandler();
[Node] public IAnimationPlayer AnimationPlayer { get; set; } = default!;
public void OnReady()
{
AnimationPlayer.AnimationFinished += OnAnimationFinished;
}
public void FadeIn() => AnimationPlayer.Play("fade_in");
public void FadeOut() => AnimationPlayer.Play("fade_out");
public void OnAnimationFinished(StringName name)
=> EmitSignal(SignalName.TransitionCompleted);
}