using RhythmBase.Components; using RhythmBase.Components.Easing; namespace RhythmBase.Events { /// /// Represents an event to set the foreground in a room. /// public class SetForeground : BaseEvent, IEaseEvent, IRoomEvent { /// /// Initializes a new instance of the class. /// public SetForeground() { Rooms = new RDRoom(false, new byte[1]); Color = new PaletteColor(true); Type = EventType.SetForeground; Tab = Tabs.Actions; } /// /// Gets or sets the rooms associated with the event. /// public RDRoom Rooms { get; set; } /// /// Gets or sets the content mode for the event. /// public ContentModes ContentMode { get; set; } /// /// Gets or sets the tiling type for the event. /// public TilingTypes TilingType { get; set; } /// /// Gets or sets the color for the foreground. /// [EaseProperty] public PaletteColor Color { get; set; } /// /// Gets or sets the list of images for the foreground. /// public List Image { get; set; } = []; /// /// Gets or sets the frames per second for the foreground animation. /// public float Fps { get; set; } /// /// Gets or sets the horizontal scroll value. /// [EaseProperty] public float ScrollX { get; set; } /// /// Gets or sets the vertical scroll value. /// [EaseProperty] public float ScrollY { get; set; } /// /// Gets or sets the duration of the event. /// public float Duration { get; set; } /// /// Gets or sets the interval between frames. /// public float Interval { get; set; } /// /// Gets or sets the easing type for 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; } /// /// Returns a string that represents the current object. /// /// A string that represents the current object. public override string ToString() => base.ToString() + $" {Color},{string.Join(',', Image.Select(i => i.ToString()))}"; } }