A game about forced loneliness, made by TACStudios
1using System;
2
3namespace Unity.VisualScripting
4{
5 [Descriptor(typeof(IUnitPort))]
6 public sealed class UnitPortDescriptor : IDescriptor
7 {
8 public UnitPortDescriptor(IUnitPort target)
9 {
10 Ensure.That(nameof(target)).IsNotNull(target);
11
12 this.target = target;
13
14 description.portType = target;
15 }
16
17 public IUnitPort target { get; }
18
19 object IDescriptor.target => target;
20
21 public UnitPortDescription description { get; private set; } = new UnitPortDescription();
22
23 IDescription IDescriptor.description => description;
24
25 public bool isDirty { get; set; } = true;
26
27 public void Validate()
28 {
29 if (isDirty)
30 {
31 isDirty = false;
32
33 description.fallbackLabel = target.key.Filter(symbols: false, punctuation: false).Prettify();
34
35 description.portType = target;
36
37 target.unit?.Descriptor<IUnitDescriptor>().DescribePort(target, description);
38
39 // No DescriptionAssignment is run, so we'll just always assume that the description changes.
40 DescriptorProvider.instance.TriggerDescriptionChange(target);
41 }
42 }
43 }
44}