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
}
}
}