A game about forced loneliness, made by TACStudios
1using System; 2 3namespace Unity.VisualScripting 4{ 5 [FuzzyOption(typeof(CreateStruct))] 6 public class CreateStructOption : UnitOption<CreateStruct> 7 { 8 public CreateStructOption() : base() { } 9 10 public CreateStructOption(CreateStruct unit) : base(unit) { } 11 12 public Type structType { get; private set; } 13 14 protected override void FillFromUnit() 15 { 16 structType = unit.type; 17 base.FillFromUnit(); 18 } 19 20 protected override string Label(bool human) 21 { 22 if (human) 23 { 24 return $"Create {structType.HumanName()} ()"; 25 } 26 else 27 { 28 return $"new {structType.CSharpName()} ()"; 29 } 30 } 31 32 protected override string Haystack(bool human) 33 { 34 if (human) 35 { 36 return $"{structType.HumanName()}: Create {structType.HumanName()}"; 37 } 38 else 39 { 40 return $"new {structType.CSharpName()}"; 41 } 42 } 43 44 public override string SearchResultLabel(string query) 45 { 46 return base.SearchResultLabel(query) + " ()"; 47 } 48 49 protected override int Order() 50 { 51 return 0; 52 } 53 54 protected override string FavoriteKey() 55 { 56 return $"{structType.FullName}@create"; 57 } 58 59 public override void Deserialize(UnitOptionRow row) 60 { 61 base.Deserialize(row); 62 63 structType = Codebase.DeserializeType(row.tag1); 64 } 65 66 public override UnitOptionRow Serialize() 67 { 68 var row = base.Serialize(); 69 70 row.tag1 = Codebase.SerializeType(structType); 71 72 return row; 73 } 74 } 75}