A game about forced loneliness, made by TACStudios
1#if PACKAGE_INPUT_SYSTEM_EXISTS
2using System;
3using JetBrains.Annotations;
4using Unity.VisualScripting.InputSystem;
5
6namespace Unity.VisualScripting
7{
8 [Widget(typeof(OnInputSystemEvent)), UsedImplicitly]
9 public class InputSystemWidget : UnitWidget<OnInputSystemEvent>
10 {
11 public InputSystemWidget(FlowCanvas canvas, OnInputSystemEvent unit) : base(canvas, unit)
12 {
13 inputActionInspectorConstructor = metadata => new InputActionInspector(metadata, reference, unit);
14 }
15
16 protected override NodeColorMix baseColor => NodeColor.Green;
17
18 private InputActionInspector nameInspector;
19
20 private Func<Metadata, InputActionInspector> inputActionInspectorConstructor;
21
22 public override Inspector GetPortInspector(IUnitPort port, Metadata metadata)
23 {
24 if (port == unit.InputAction)
25 {
26 InspectorProvider.instance.Renew(ref nameInspector, metadata, inputActionInspectorConstructor);
27 return nameInspector;
28 }
29
30 return base.GetPortInspector(port, metadata);
31 }
32 }
33
34 [Descriptor(typeof(OnInputSystemEvent)), UsedImplicitly]
35 public class OnInputSystemButtonDescriptor : UnitDescriptor<OnInputSystemEvent>
36 {
37 public OnInputSystemButtonDescriptor(OnInputSystemEvent unit) : base(unit) {}
38
39 protected override void DefinedPort(IUnitPort port, UnitPortDescription description)
40 {
41 base.DefinedPort(port, description);
42
43 if (port == unit.Target)
44 description.summary =
45 "A player input component used to list available actions and find the referenced InputAction";
46 if (port == unit.InputAction)
47 description.summary =
48 "An input action, either from the linked player input component or directly connected";
49 }
50 }
51}
52#endif