using Newtonsoft.Json; using RhythmBase.Components; using RhythmBase.Components.Easing; namespace RhythmBase.Events { /// /// Represents an event to move a room with easing properties. /// [JsonObject(ItemNullValueHandling = NullValueHandling.Ignore)] public class MoveRoom : BaseEvent, IEaseEvent { /// /// Initializes a new instance of the class. /// public MoveRoom() { Type = EventType.MoveRoom; Tab = Tabs.Rooms; } /// /// Gets or sets the position of the room. /// [EaseProperty] public RDPointE? RoomPosition { get; set; } /// /// Gets or sets the scale of the room. /// [EaseProperty] public RDSizeE? Scale { get; set; } /// /// Gets or sets the angle of the room. /// [EaseProperty] public RDExpression? Angle { get; set; } /// /// Gets or sets the pivot point of the room. /// [EaseProperty] public RDPointE? Pivot { get; set; } /// /// Gets or sets the duration of the move event. /// public float Duration { get; set; } /// /// Gets or sets the easing type of the move event. /// public EaseType Ease { get; set; } /// /// Gets the type of the event. /// public override EventType Type { get; } /// /// Gets the tab associated with the event. /// public override Tabs Tab { get; } /// /// Gets the room associated with the event. /// [JsonIgnore] public RDRoom Rooms => new RDSingleRoom(checked((byte)Y)); } }