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