using Newtonsoft.Json; using RhythmBase.Components; using RhythmBase.Components.Easing; namespace RhythmBase.Events { /// /// Represents a new window dance event. /// public class NewWindowDance : BaseEvent, IEaseEvent { /// /// Initializes a new instance of the class. /// public NewWindowDance() { Amplitude = 0f; Type = EventType.NewWindowDance; Tab = Tabs.Actions; } /// /// Gets or sets the preset. /// public Presets Preset { get; set; } /// /// Gets or sets the same preset behavior. /// public SamePresetBehaviors SamePresetBehavior { get; set; } /// /// Gets or sets the position. /// [EaseProperty] [JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] public RDPointE Position { get; set; } /// /// Gets or sets the reference. /// public References Reference { get; set; } /// /// Gets or sets a value indicating whether to use a circle. /// public bool UseCircle { get; set; } /// /// Gets or sets the speed. /// [EaseProperty] public float Speed { get; set; } /// /// Gets or sets the amplitude. /// [EaseProperty] public float Amplitude { get; set; } /// /// Gets or sets the amplitude vector. /// [EaseProperty] [JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] public RDPointE AmplitudeVector { get; set; } /// /// Gets or sets the angle. /// [EaseProperty] [JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] public float? Angle { get; set; } /// /// Gets or sets the frequency. /// [EaseProperty] public float Frequency { get; set; } /// /// Gets or sets the period. /// [EaseProperty] public float Period { get; set; } /// /// Gets or sets the ease type. /// public EaseTypes EaseType { get; set; } /// /// Gets or sets the sub ease type. /// public EaseType SubEase { get; set; } /// /// Gets or sets the duration. /// [JsonProperty("easingDuration")] public float Duration { get; set; } /// /// Gets or sets the ease. /// public EaseType Ease { get; set; } /// /// Gets the event type. /// public override EventType Type { get; } /// /// Gets the tab. /// public override Tabs Tab { get; } /// /// Represents the presets. /// public enum Presets { /// /// Move preset. /// Move, /// /// Sway preset. /// Sway, /// /// Wrap preset. /// Wrap, /// /// Ellipse preset. /// Ellipse, /// /// Shake per preset. /// ShakePer } /// /// Represents the same preset behaviors. /// public enum SamePresetBehaviors { /// /// Reset behavior. /// Reset, /// /// Keep behavior. /// Keep } /// /// Represents the references. /// public enum References { /// /// Center reference. /// Center, /// /// Edge reference. /// Edge } /// /// Represents the ease types. /// public enum EaseTypes { /// /// Repeat ease type. /// Repeat, /// /// Mirror ease type. /// Mirror, } } }