// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. using osu.Framework.Graphics; using osu.Framework.Graphics.Transforms; using osu.Game.Storyboards.Drawables; namespace osu.Game.Storyboards.Commands { public interface IStoryboardCommand { /// /// The start time of the storyboard command. /// double StartTime { get; } /// /// The end time of the storyboard command. /// double EndTime { get; } /// /// The name of the property affected by this storyboard command. /// Used to apply initial property values based on the list of commands given in . /// string PropertyName { get; } /// /// Sets the value of the corresponding property in to the start value of this command. /// /// /// Parameter commands (e.g. / / ) only apply the start value if they have zero duration, i.e. take "permanent" effect regardless of time. /// /// The target drawable. void ApplyInitialValue(TDrawable d) where TDrawable : Drawable, IFlippable, IVectorScalable; /// /// Applies the transforms described by this storyboard command to the target drawable. /// /// The target drawable. /// The sequence of transforms applied to the target drawable. TransformSequence ApplyTransforms(TDrawable d) where TDrawable : Drawable, IFlippable, IVectorScalable; } }