using System.ComponentModel; using Newtonsoft.Json; namespace NewHorizons.External.Props { [JsonObject] public class RemoteInfo { /// /// The unique remote id /// public string id; /// /// Icon that the will show on the stone, pedastal of the whiteboard, and pedastal of the platform. /// public string decalPath; /// /// Whiteboard that the stones can put text onto /// public WhiteboardInfo whiteboard; /// /// Camera platform that the stones can project to and from /// public PlatformInfo platform; /// /// Projection stones /// public StoneInfo[] stones; [JsonObject] public class WhiteboardInfo : GeneralPropInfo { /// /// The text for each stone /// public SharedNomaiTextInfo[] nomaiText; /// /// Disable the wall, leaving only the pedestal and text. /// public bool disableWall; [JsonObject] public class SharedNomaiTextInfo { /// /// The id of the stone this text will appear for /// public string id; /// /// Additional information about each arc in the text /// public NomaiTextArcInfo[] arcInfo; /// /// The random seed used to pick what the text arcs will look like. /// public int seed; // For randomizing arcs /// /// The location of this object. /// [DefaultValue("unspecified")] public NomaiTextInfo.NomaiTextLocation location = NomaiTextInfo.NomaiTextLocation.UNSPECIFIED; /// /// The relative path to the xml file for this object. /// public string xmlFile; /// /// An optional rename of this object /// public string rename; } } [JsonObject] public class PlatformInfo : GeneralPropInfo { /// /// A ship log fact to reveal when the platform is connected to. /// [DefaultValue("")] public string reveals = ""; /// /// Disable the structure, leaving only the pedestal. /// public bool disableStructure; /// /// Disable the pool that rises when you place a stone. /// public bool disablePool; } [JsonObject] public class StoneInfo : GeneralPropInfo { } } }