using NewHorizons.Utility; using Newtonsoft.Json; using Newtonsoft.Json.Converters; using System; using System.Collections.Generic; using System.ComponentModel; using System.Runtime.Serialization; using System.Linq; using System.Text; using System.Threading.Tasks; using NewHorizons.External.Props; namespace NewHorizons.External.Modules { [JsonConverter(typeof(StringEnumConverter))] public enum VinePrefabType { [EnumMember(Value = @"none")] None = 0, [EnumMember(Value = @"hub")] Hub = 1, [EnumMember(Value = @"cluster")] Cluster = 2, [EnumMember(Value = @"smallNest")] SmallNest = 3, [EnumMember(Value = @"exitOnly")] ExitOnly = 4 } [JsonObject] public class BrambleModule { /// /// Defining this value will make this body a bramble dimension. Leave it null to not do that. /// public BrambleDimensionInfo dimension; /// /// Place nodes/seeds that take you to other bramble dimensions /// public BrambleNodeInfo[] nodes; [JsonObject] public class BrambleDimensionInfo { /// /// The color of the fog inside this dimension. /// Leave blank for the default grayish color: (84, 83, 73) /// public MColor fogTint; /// /// The density of the fog inside this dimension. The default is 6. /// [DefaultValue(6f)] public float fogDensity = 6f; /// /// The name of the *node* that the player is taken to when exiting this dimension. /// public string linksTo; /// /// The internal radius (in meters) of the dimension. /// The default is 750 for the Hub, Escape Pod, and Angler Nest dimensions, and 500 for the others. /// [DefaultValue(750f)] public float radius = 750f; /// /// The dimension the vines will be copied from. /// Only a handful are available due to batched colliders. /// [DefaultValue("hub")] public VinePrefabType vinePrefab = VinePrefabType.Hub; /// /// An array of integers from 0-5. By default, all entrances are allowed. To force this dimension to warp players in from only one point (like the anglerfish nest dimension in the base game) set this value to [3], [5], or similar. Values of 0-5 only. /// public int[] allowedEntrances; } } }