using NewHorizons.Utility; using System.ComponentModel; using Newtonsoft.Json; namespace NewHorizons.External.Props { [JsonObject] public class ScatterInfo { /// /// Relative filepath to an asset-bundle /// public string assetBundle; /// /// Number of props to scatter /// public int count; /// /// Offset this prop once it is placed /// public MVector3 offset; /// /// Either the path in the scene hierarchy of the item to copy or the path to the object in the supplied asset bundle /// public string path; /// /// Rotate this prop once it is placed /// public MVector3 rotation; /// /// Scale this prop once it is placed /// [DefaultValue(1f)] public float scale = 1f; /// /// Scale each axis of the prop. Overrides `scale`. /// public MVector3 stretch; /// /// The number used as entropy for scattering the props /// public int seed; /// /// The lowest height that these object will be placed at (only relevant if there's a heightmap) /// public float? minHeight; /// /// The highest height that these objects will be placed at (only relevant if there's a heightmap) /// public float? maxHeight; /// /// Should we try to prevent overlap between the scattered details? True by default. If it's affecting load times turn it off. /// [DefaultValue(true)] public bool preventOverlap = true; /// /// Should this detail stay loaded even if you're outside the sector (good for very large props) /// public bool keepLoaded; } }