using Sandbox;
///
/// Hidden class. addon code should only ever access DirectPlayback.
///
internal sealed class SceneObjectDirectPlayback : AnimGraphDirectPlayback
{
readonly SceneModel Target;
public SceneObjectDirectPlayback( SceneModel sceneObject )
{
Target = sceneObject;
}
public override float StartTime { set => Target.animNative.DirectPlayback_SetSequenceStartTime( value ); }
public override float TimeNormalized => Target.animNative.DirectPlayback_GetSequenceCycle();
public override float Duration => Target.animNative.DirectPlayback_GetSequenceDuration();
public override float Time => TimeNormalized * Duration;
public override string Name => Target.animNative.DirectPlayback_GetSequence();
[Obsolete]
public override int AnimationCount => Target.Model != null ? Target.Model.AnimationCount : 0;
[Obsolete]
public override IEnumerable Animations => Target.Model is null ? Enumerable.Empty() : Target.Model.AnimationNames;
public override IReadOnlyList Sequences => Target.Model is null ? Array.Empty() : Target.Model.SequenceNames;
public override void Play( string name )
{
Target.animNative.DirectPlayback_PlaySequence( name );
}
public override void Play( string name, Vector3 target, float heading, float interpTime )
{
Target.animNative.DirectPlayback_PlaySequence( name, target, heading, interpTime );
}
public override void Cancel()
{
Target.animNative.DirectPlayback_CancelSequence();
}
}