A game about forced loneliness, made by TACStudios
1using System.Collections.Generic;
2using System.Linq;
3using UnityEngine;
4
5namespace Unity.VisualScripting
6{
7 [Analyser(typeof(GraphInput))]
8 public class GraphInputAnalyser : UnitAnalyser<GraphInput>
9 {
10 public GraphInputAnalyser(GraphReference reference, GraphInput unit) : base(reference, unit) { }
11
12 protected override IEnumerable<Warning> Warnings()
13 {
14 foreach (var baseWarning in base.Warnings())
15 {
16 yield return baseWarning;
17 }
18
19 if (unit.graph != null)
20 {
21 foreach (var definitionWarning in UnitPortDefinitionUtility.Warnings(unit.graph, LinqUtility.Concat<IUnitPortDefinition>(unit.graph.controlInputDefinitions, unit.graph.valueInputDefinitions)))
22 {
23 yield return definitionWarning;
24 }
25
26 var inputs = unit.graph.units.Where(u => u is GraphInput).ToList();
27 if (inputs.Count > 1)
28 {
29 var firstInput = inputs[0];
30 if (unit != firstInput)
31 {
32 var graphName = string.IsNullOrEmpty(unit.graph.title) ? nameof(SubgraphUnit) : unit.graph.title;
33 Debug.LogWarning($"Only one Input node can be used and will execute in {graphName}.");
34 yield return Warning.Caution("Only one Input node can be used and will execute.");
35 }
36 }
37 }
38 }
39 }
40}