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; } } }