using Newtonsoft.Json; using RhythmBase.Components; namespace RhythmBase.Events { /// /// Represents a MaskRoom event in the RhythmBase system. /// public class MaskRoom : BaseEvent { /// /// Initializes a new instance of the class. /// public MaskRoom() { KeyColor = new PaletteColor(false); Type = EventType.MaskRoom; Tab = Tabs.Rooms; } /// /// Gets or sets the type of the mask. /// public MaskTypes MaskType { get; set; } /// /// Gets or sets the alpha mode. /// public AlphaModes AlphaMode { get; set; } /// /// Gets or sets the source room. /// public byte SourceRoom { get; set; } /// /// Gets or sets the list of image assets. /// public List Image { get; set; } = []; /// /// Gets or sets the frames per second. /// public uint Fps { get; set; } /// /// Gets or sets the key color. /// public PaletteColor KeyColor { get; set; } /// /// Gets or sets the color cutoff value. /// public int ColorCutoff { get; set; } /// /// Gets or sets the color feathering value. /// public int ColorFeathering { get; set; } /// /// Gets or sets the content mode. /// public ContentModes ContentMode { get; set; } /// /// Gets the event type. /// public override EventType Type { get; } /// /// Gets the tab type. /// public override Tabs Tab { get; } /// /// Gets the room associated with the event. /// [JsonIgnore] public RDRoom Room => new RDSingleRoom(checked((byte)Y)); /// /// Defines the types of masks available. /// public enum MaskTypes { /// /// Uses an image as the mask. /// Image, /// /// Uses a room as the mask. /// Room, /// /// Uses a color as the mask. /// Color, /// /// No mask is applied. /// None } /// /// Defines the alpha modes available. /// public enum AlphaModes { /// /// Normal alpha mode. /// Normal, /// /// Inverted alpha mode. /// Inverted } /// /// Defines the content modes available. /// public enum ContentModes { /// /// Scales the content to fill the area. /// ScaleToFill } } }