using NewHorizons.Utility; using System.ComponentModel; using System.Runtime.Serialization; using Newtonsoft.Json; using Newtonsoft.Json.Converters; namespace NewHorizons.External.Props { [JsonObject] public class NomaiTextInfo : GeneralPointPropInfo { [JsonConverter(typeof(StringEnumConverter))] public enum NomaiTextType { [EnumMember(Value = @"wall")] Wall = 0, [EnumMember(Value = @"scroll")] Scroll = 1, [EnumMember(Value = @"computer")] Computer = 2, [EnumMember(Value = @"cairn")] Cairn = 3, [EnumMember(Value = @"recorder")] Recorder = 4, [EnumMember(Value = @"preCrashRecorder")] PreCrashRecorder = 5, [EnumMember(Value = @"preCrashComputer")] PreCrashComputer = 6, [EnumMember(Value = @"trailmarker")] Trailmarker = 7, [EnumMember(Value = @"cairnVariant")] CairnVariant = 8, } [JsonConverter(typeof(StringEnumConverter))] public enum NomaiTextLocation { [EnumMember(Value = @"unspecified")] UNSPECIFIED = 0, [EnumMember(Value = @"a")] A = 1, [EnumMember(Value = @"b")] B = 2 } /// /// Additional information about each arc in the text /// public NomaiTextArcInfo[] arcInfo; /// /// The normal vector for this object. Used for writing on walls and positioning computers. /// public MVector3 normal; /// /// The euler angle rotation of this object. Not required if setting the normal. Computers and cairns will orient /// themselves to the surface of the planet automatically. /// public MVector3 rotation; /// /// The random seed used to pick what the text arcs will look like. /// public int seed; // For randomizing arcs /// /// The type of object this is. /// [DefaultValue("wall")] public NomaiTextType type = NomaiTextType.Wall; /// /// The location of this object. /// [DefaultValue("unspecified")] public NomaiTextLocation location = NomaiTextLocation.UNSPECIFIED; /// /// The relative path to the xml file for this object. /// public string xmlFile; } }