using System;
namespace Unity.VisualScripting
{
[FuzzyOption(typeof(Expose))]
public class ExposeOption : UnitOption<Expose>
{
public ExposeOption() : base() { }
public ExposeOption(Expose unit) : base(unit)
{
sourceScriptGuids = UnitBase.GetScriptGuids(unit.type).ToHashSet();
}
public Type exposedType { get; private set; }
protected override string FavoriteKey()
{
return $"{exposedType.FullName}@expose";
}
protected override string Label(bool human)
{
return $"Expose {unit.type.SelectedName(human)}";
}
protected override bool ShowValueOutputsInFooter()
{
return false;
}
protected override void FillFromUnit()
{
exposedType = unit.type;
base.FillFromUnit();
}
public override void Deserialize(UnitOptionRow row)
{
base.Deserialize(row);
exposedType = Codebase.DeserializeType(row.tag1);
}
public override UnitOptionRow Serialize()
{
var row = base.Serialize();
row.tag1 = Codebase.SerializeType(exposedType);
return row;
}
}
}