using Cryville.Common.ComponentModel; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.ComponentModel; namespace Cryville.Crtr.Config { public class RulesetConfig { public Generic generic = new(); public class Generic { [Category("basic")] [JsonProperty("skin")] public string Skin { get; set; } [Category("gameplay")] [JsonProperty("sound_offset")] [Step(0.04)] [Precision(1e-3)] public float SoundOffset { get; set; } [Category("deprecated")][Obsolete] [JsonProperty("scroll_velocity")][DefaultValue(1)] [LogarithmicScale][Step(0.5)][Precision(1e-1)] public float ScrollVelocity { get; set; } public Generic() { Skin = ""; SoundOffset = 0; ScrollVelocity = 1; } } public Dictionary configs = new(); public Dictionary inputs = new(); public class InputEntry { public string handler; public int type; } } }