using System; using UnityEngine; namespace Jovian.PopupSystem { /// /// Interface for popup show/hide animations. Each registered category gets its own instance /// to prevent state corruption during concurrent animations. Driven by float timers in /// , not coroutines. /// public interface IPopupAnimator { /// /// Begins a show animation on the given CanvasGroup. Typically fades alpha from 0 to 1. /// /// The CanvasGroup to animate. /// Animation duration in seconds. /// Callback invoked when the animation finishes. May be null. void Show(CanvasGroup canvasGroup, float duration, Action onComplete); /// /// Begins a hide animation on the given CanvasGroup. Typically fades alpha to 0. /// /// The CanvasGroup to animate. /// Animation duration in seconds. /// Callback invoked when the animation finishes. May be null. void Hide(CanvasGroup canvasGroup, float duration, Action onComplete); /// /// Advances the animation by deltaTime. Call every frame from . /// void Tick(float deltaTime); /// /// True if an animation is currently in progress. /// bool IsAnimating { get; } } }