using System;
namespace AlicizaX
{
///
/// Generates a Unique ID that can be used to identify scripts when saving/loading script state.
///
[Serializable]
public sealed class UniqueID
{
public string Id;
public UniqueID()
{
GenerateIfEmpty();
}
///
/// Generate an ID only if it's missing.
///
public void GenerateIfEmpty()
{
if (!string.IsNullOrEmpty(Id))
return;
Generate();
}
///
/// Assign a new random ID and overwrite the previous.
///
public void Generate()
{
Id = GameHelper.GetGuid();
}
public static implicit operator string(UniqueID uniqueID)
{
return uniqueID.Id;
}
public override string ToString() => Id;
}
}