using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using NewHorizons.Utility;
using Newtonsoft.Json;
namespace NewHorizons.External.Modules.VariableSize
{
[JsonObject]
public class StarModule : VariableSizeModule
{
///
/// Colour of the star at the end of its life.
///
public MColor endTint;
///
/// Should this star explode after 22 minutes?
///
[DefaultValue(true)] public bool goSupernova = true;
///
/// Should we add a star controller to this body? If you want clouds to work on a binary brown dwarf system, set this to false.
///
[DefaultValue(true)] public bool hasStarController = true;
///
/// The default sun has its own atmosphere that is different from regular planets. If you want that, set this to
/// `true`.
///
[DefaultValue(true)] public bool hasAtmosphere = true;
///
/// Colour of the light given off. Defaults to yellowish.
///
public MColor lightTint;
///
/// Radius of the star.
///
[DefaultValue(2000f)] [Range(0f, double.MaxValue)]
public float size = 2000f;
///
/// Relative strength of the light compared to the sun.
///
[DefaultValue(1f)] [Range(0f, double.MaxValue)]
public float solarLuminosity = 1f;
///
/// The tint of the supernova this star creates when it dies.
///
public MColor supernovaTint;
///
/// Colour of the star.
///
public MColor tint;
///
/// Path to the texture to put as the star ramp. Optional.
///
public string starRampTexture;
///
/// Path to the texture to put as the star ramp while it is collapsing. Optional.
///
public string starCollapseRampTexture;
///
/// How far the light from the star can reach.
///
[DefaultValue(50000f)] [Range(0f, double.MaxValue)]
public float lightRadius = 50000f;
}
}