A game about forced loneliness, made by TACStudios
1using System.Collections.Generic;
2using System.Linq;
3
4namespace Unity.VisualScripting
5{
6 [UnitOrder(301)]
7 public abstract class Minimum<T> : MultiInputUnit<T>
8 {
9 /// <summary>
10 /// The minimum.
11 /// </summary>
12 [DoNotSerialize]
13 [PortLabelHidden]
14 public ValueOutput minimum { get; private set; }
15
16 protected override void Definition()
17 {
18 base.Definition();
19
20 minimum = ValueOutput(nameof(minimum), Operation).Predictable();
21
22 foreach (var multiInput in multiInputs)
23 {
24 Requirement(multiInput, minimum);
25 }
26 }
27
28 public abstract T Operation(T a, T b);
29 public abstract T Operation(IEnumerable<T> values);
30
31 public T Operation(Flow flow)
32 {
33 if (inputCount == 2)
34 {
35 return Operation(flow.GetValue<T>(multiInputs[0]), flow.GetValue<T>(multiInputs[1]));
36 }
37 else
38 {
39 return Operation(multiInputs.Select(flow.GetValue<T>));
40 }
41 }
42 }
43}