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