using System;
using System.ComponentModel.DataAnnotations;
using NewHorizons.Utility;
using Newtonsoft.Json;
namespace NewHorizons.External.Modules
{
[JsonObject]
public class RingModule
{
///
/// Fluid type for sounds/effects when colliding with this ring.
///
public FluidType fluidType = FluidType.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;
}
}