using System; namespace Unity.VisualScripting { [FuzzyOption(typeof(Expose))] public class ExposeOption : UnitOption { 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; } } }