using Sandbox; /// /// Hidden class. addon code should only ever access AnimationSequence. /// internal sealed class SceneObjectAnimationSequence : AnimationSequence { readonly SceneModel Target; public SceneObjectAnimationSequence( SceneModel sceneObject ) { Target = sceneObject; } public override float Duration => Target.animNative.GetSequenceDuration(); public override bool IsFinished => Target.animNative.IsSequenceFinished(); public override string Name { get => Target.animNative.GetSequence(); set => Target.animNative.SetSequence( value ); } public override float TimeNormalized { get => Target.animNative.GetSequenceCycle(); set => Target.animNative.SetSequenceCycle( value ); } public override float Time { get => TimeNormalized * Duration; set => TimeNormalized = value / Duration; } internal override bool Looping { set => Target.animNative.SetSequenceLooping( value ); } internal override bool Blending { set => Target.animNative.SetSequenceBlending( value ); } public override IReadOnlyList SequenceNames => Target.Model.SequenceNames; }