using System.ComponentModel.DataAnnotations; using System.Runtime.Serialization; using NewHorizons.External.SerializableData; using Newtonsoft.Json; using Newtonsoft.Json.Converters; namespace NewHorizons.External.Modules { [JsonObject] public class ProcGenModule { /// /// Scale height of the proc gen. /// [Range(0, double.MaxValue)] public float scale; /// /// Ground color, only applied if no texture or material is chosen. /// public MColor color; /// /// Can pick a preset material with a texture from the base game. Does not work with color. /// public Material material; /// /// Can use a custom texture. Does not work with material or color. /// public string texturePath; [JsonConverter(typeof(StringEnumConverter))] public enum Material { [EnumMember(Value = @"default")] Default = 0, [EnumMember(Value = @"ice")] Ice = 1, [EnumMember(Value = @"quantum")] Quantum = 2, [EnumMember(Value = @"rock")] Rock = 3 } } }