using NewHorizons.External.Volumes;
using Newtonsoft.Json;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
namespace NewHorizons.External.Modules
{
[JsonObject]
public class VisorEffectModule
{
///
/// Add visor frost effect volumes to this planet. This is the ghost matter effect.
///
public FrostEffectVolumeInfo[] frostEffectVolumes;
///
/// Add visor rain effect volumes to this planet. You can see this on Giant's Deep.
///
public RainEffectVolumeInfo[] rainEffectVolumes;
[JsonObject]
public class FrostEffectVolumeInfo : PriorityVolumeInfo
{
///
/// The rate at which the frost effect will get stronger
///
[DefaultValue(0.5f)]
public float frostRate = 0.5f;
///
/// The maximum strength of frost this volume can give
///
[Range(0f, 1f)]
[DefaultValue(0.91f)]
public float maxFrost = 0.91f;
}
[JsonObject]
public class RainEffectVolumeInfo : PriorityVolumeInfo
{
///
/// The rate at which the rain droplet effect will happen
///
[DefaultValue(0.1f)]
public float dropletRate = 10f;
///
/// The rate at which the rain streak effect will happen
///
[DefaultValue(1f)]
public float streakRate = 1f;
}
}
}