using NewHorizons.External.Modules.VariableSize; using NewHorizons.External.SerializableEnums; using Newtonsoft.Json; using System; using System.ComponentModel.DataAnnotations; namespace NewHorizons.External.Modules { [JsonObject] public class RingModule { /// /// Fluid type for sounds/effects when colliding with this ring. /// public NHFluidType fluidType = NHFluidType.None; /// /// Angle between the rings and the equatorial plane of the planet. /// public float inclination; /// /// Inner radius of the disk /// [Range(0, double.MaxValue)] public float innerRadius; /// /// Angle defining the point where the rings rise up from the planet's equatorial plane if inclination is nonzero. /// public float longitudeOfAscendingNode; /// /// Outer radius of the disk /// [Range(0, double.MaxValue)] public float outerRadius; /// /// Allows the rings to rotate. /// public float rotationSpeed; /// /// Relative filepath to the texture used for the rings. /// public string texture; /// /// Should this ring be unlit? /// public bool unlit; #region Obsolete [Obsolete("curve is deprecated, please use scaleCurve instead")] public TimeValuePair[] curve; #endregion /// /// Scale rings over time. Optional. Value between 0-1, time is in minutes. /// public TimeValuePair[] scaleCurve; /// /// Fade rings in/out over time. Optional. Value between 0-1, time is in minutes. /// public TimeValuePair[] opacityCurve; /// /// An optional rename of this object /// public string rename; } }