#region using System.ComponentModel; using System.ComponentModel.DataAnnotations; using NewHorizons.Utility; using Newtonsoft.Json; #endregion namespace NewHorizons.External.Modules { [JsonObject] public class SignalModule { /// /// List of signals to add (Why did xen do it like this) /// public SignalInfo[] signals; [JsonObject] public class SignalInfo { /// /// Name of an existing AudioClip in the game that will player over the signal. /// public string audioClip; /// /// Relative filepath to the .wav file to use as the audio. Mutually exclusive with audioClip. /// public string audioFilePath; /// /// How close the player must get to the signal to detect it. This is when you get the "Unknown Signal Detected" /// notification. /// [Range(0f, double.MaxValue)] public float detectionRadius; /// /// The frequency ID of the signal. The built-in game values are `Default`, `Traveler`, `Quantum`, `EscapePod`, /// `Statue`, `WarpCore`, `HideAndSeek`, and `Radio`. You can also put a custom value. /// public string frequency; /// /// How close the player must get to the signal to identify it. This is when you learn its name. /// [DefaultValue(10f)] [Range(0f, double.MaxValue)] public float identificationRadius = 10f; /// /// Only set to `true` if you are putting this signal inside a cloaking field. /// public bool insideCloak; /// /// The unique ID of the signal. /// public string name; /// /// `false` if the player can hear the signal without equipping the signal-scope. /// [DefaultValue(true)] public bool onlyAudibleToScope = true; /// /// Position of the signal's source /// public MVector3 position; /// /// A ship log fact to reveal when the signal is identified. /// [DefaultValue("")] public string reveals = ""; /// /// Radius of the sphere giving off the signal. /// [DefaultValue(1f)] public float sourceRadius = 1f; } } }