using Newtonsoft.Json; using RhythmBase.Components; using RhythmBase.Components.Easing; namespace RhythmBase.Events { /// /// Represents an event to move a row with various properties such as position, scale, angle, and pivot. /// [JsonObject(ItemNullValueHandling = NullValueHandling.Ignore)] public class MoveRow : BaseRowAnimation, IEaseEvent { /// /// Initializes a new instance of the class. /// public MoveRow() { Type = EventType.MoveRow; Tab = Tabs.Actions; } /// /// Gets or sets a value indicating whether a custom position is used. /// public bool CustomPosition { get; set; } /// /// Gets or sets the target of the move row event. /// public Targets Target { get; set; } /// /// Gets or sets the row position. /// [EaseProperty] public RDPointE? RowPosition { get; set; } /// /// Gets or sets the scale. /// [EaseProperty] public RDSizeE? Scale { get; set; } /// /// Gets or sets the angle. /// [EaseProperty] public RDExpression? Angle { get; set; } /// /// Gets or sets the pivot. /// [EaseProperty] public float? Pivot { get; set; } /// /// Gets or sets the duration of the move row event. /// public float Duration { get; set; } /// /// Gets or sets the easing type of the move row event. /// public EaseType Ease { get; set; } /// /// Gets the type of the event. /// public override EventType Type { get; } /// /// Gets the tab of the event. /// public override Tabs Tab { get; } /// /// Specifies the targets for the move row event. /// public enum Targets { /// /// Target the whole row. /// WholeRow, /// /// Target the heart. /// Heart, /// /// Target the character. /// Character } } }