using Newtonsoft.Json;
using System.ComponentModel;
namespace NewHorizons.External.Modules.Props.Quantum
{
[JsonObject]
public class QuantumGroupInfo
{
///
/// What type of group this is: does it define a list of states a single quantum object could take or a list of sockets one or more quantum objects could share?
///
public QuantumGroupType type;
///
/// A unique string used by props (that are marked as quantum) use to refer back to this group
///
public string id;
///
/// Only required if type is `sockets`. This lists all the possible locations for any props assigned to this group.
///
public QuantumSocketInfo[] sockets;
///
/// Optional. Only used if type is `states`. If this is true, then the first prop made part of this group will be used to construct a visibility box for an empty game object, which will be considered one of the states.
///
public bool hasEmptyState;
///
/// Optional. Only used if type is `states`. If this is true, then the states will be presented in order, rather than in a random order
///
public bool sequential;
///
/// Optional. Only used if type is `states` and `sequential` is true. If this is false, then after the last state has appeared, the object will no longer change state
///
[DefaultValue(true)] public bool loop = true;
}
}