namespace Sandbox; /// /// For communicating with a Direct Playback Anim Node, which allows code to tell it to play a given sequence /// public abstract class AnimGraphDirectPlayback { /// /// Set the time at which the currently playing sequence should have had a cycle of zero. /// This will adjust the current cycle of the sequence to match. /// public abstract float StartTime { set; } /// /// Get the cycle of the currently playing sequence. Will return 0 if no sequence is playing. /// public abstract float TimeNormalized { get; } /// /// The duration of the currently playing sequence (seconds) /// public abstract float Duration { get; } /// /// The elapsed time of the currently playing animation sequence (seconds) /// public abstract float Time { get; } /// /// Returns the currently playing sequence. /// public abstract string Name { get; } /// /// Get the number of animations that can be used. /// [Obsolete( $"Use {nameof( Sequences )}" )] public abstract int AnimationCount { get; } /// /// Get the list of animations that can be used. /// [Obsolete( $"Use {nameof( Sequences )}" )] public abstract IEnumerable Animations { get; } /// /// Get the list of sequences that can be used. /// public abstract IReadOnlyList Sequences { get; } /// /// Play the given sequence until it ends, then blend back. /// Calling this function with a new sequence while another one is playing will immediately start blending from the old one to the new one. /// public abstract void Play( string name ); /// /// Same as the other Play function, but also sets a target position and heading for the sequence. /// Over interpTime seconds, the entity's root motion will be augmented to move it to target and rotate it to heading. /// public abstract void Play( string name, Vector3 target, float heading, float interpTime ); /// /// Stop playing the override sequence. /// public abstract void Cancel(); }