A game about forced loneliness, made by TACStudios
1using System;
2
3namespace Unity.VisualScripting
4{
5 [FuzzyOption(typeof(Expose))]
6 public class ExposeOption : UnitOption<Expose>
7 {
8 public ExposeOption() : base() { }
9
10 public ExposeOption(Expose unit) : base(unit)
11 {
12 sourceScriptGuids = UnitBase.GetScriptGuids(unit.type).ToHashSet();
13 }
14
15 public Type exposedType { get; private set; }
16
17 protected override string FavoriteKey()
18 {
19 return $"{exposedType.FullName}@expose";
20 }
21
22 protected override string Label(bool human)
23 {
24 return $"Expose {unit.type.SelectedName(human)}";
25 }
26
27 protected override bool ShowValueOutputsInFooter()
28 {
29 return false;
30 }
31
32 protected override void FillFromUnit()
33 {
34 exposedType = unit.type;
35
36 base.FillFromUnit();
37 }
38
39 public override void Deserialize(UnitOptionRow row)
40 {
41 base.Deserialize(row);
42
43 exposedType = Codebase.DeserializeType(row.tag1);
44 }
45
46 public override UnitOptionRow Serialize()
47 {
48 var row = base.Serialize();
49
50 row.tag1 = Codebase.SerializeType(exposedType);
51
52 return row;
53 }
54 }
55}