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}