A game about forced loneliness, made by TACStudios
1namespace Unity.VisualScripting 2{ 3 [UnitOrder(105)] 4 public abstract class Modulo<T> : Unit 5 { 6 /// <summary> 7 /// The dividend (or numerator). 8 /// </summary> 9 [DoNotSerialize] 10 [PortLabel("A")] 11 public ValueInput dividend { get; private set; } 12 13 /// <summary> 14 /// The divisor (or denominator). 15 /// </summary> 16 [DoNotSerialize] 17 [PortLabel("B")] 18 public ValueInput divisor { get; private set; } 19 20 /// <summary> 21 /// The remainder of the division of dividend and divison (numerator / denominator). 22 /// </summary> 23 [DoNotSerialize] 24 [PortLabel("A % B")] 25 public ValueOutput remainder { get; private set; } 26 27 [DoNotSerialize] 28 protected virtual T defaultDivisor => default(T); 29 30 [DoNotSerialize] 31 protected virtual T defaultDividend => default(T); 32 33 protected override void Definition() 34 { 35 dividend = ValueInput(nameof(dividend), defaultDividend); 36 divisor = ValueInput(nameof(divisor), defaultDivisor); 37 remainder = ValueOutput(nameof(remainder), Operation).Predictable(); 38 39 Requirement(dividend, remainder); 40 Requirement(divisor, remainder); 41 } 42 43 public abstract T Operation(T divident, T divisor); 44 45 public T Operation(Flow flow) 46 { 47 return Operation(flow.GetValue<T>(dividend), flow.GetValue<T>(divisor)); 48 } 49 } 50}