using Newtonsoft.Json; using RhythmBase.Components; using RhythmBase.Components.Easing; namespace RhythmBase.Events { /// /// Represents an event to move the camera. /// [JsonObject(ItemNullValueHandling = NullValueHandling.Ignore)] public class MoveCamera : BaseEvent, IEaseEvent, IRoomEvent { /// /// Initializes a new instance of the class. /// public MoveCamera() { Rooms = new RDRoom(true, new byte[1]); Type = EventType.MoveCamera; Tab = Tabs.Actions; } /// /// Gets or sets the rooms associated with the event. /// public RDRoom Rooms { get; set; } /// /// Gets or sets the camera position. /// [EaseProperty] public RDPointE? CameraPosition { get; set; } /// /// Gets or sets the zoom level. /// [EaseProperty] public int? Zoom { get; set; } /// /// Gets or sets the angle of the camera. /// [EaseProperty] public RDExpression? Angle { get; set; } /// /// Gets or sets the duration of the event. /// public float Duration { get; set; } /// /// Gets or sets the easing type of the 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; } } }