A game about forced loneliness, made by TACStudios
1namespace Unity.VisualScripting
2{
3 /// <summary>
4 /// Triggers the transition in the parent state graph.
5 /// </summary>
6 [UnitSurtitle("State")]
7 [UnitCategory("Nesting")]
8 [UnitShortTitle("Trigger Transition")]
9 [TypeIcon(typeof(IStateTransition))]
10 public sealed class TriggerStateTransition : Unit
11 {
12 /// <summary>
13 /// The moment at which the parent state transition should be triggered.
14 /// </summary>
15 [DoNotSerialize]
16 [PortLabelHidden]
17 public ControlInput trigger { get; private set; }
18
19 protected override void Definition()
20 {
21 trigger = ControlInput(nameof(trigger), Trigger);
22 }
23
24 private ControlOutput Trigger(Flow flow)
25 {
26 var stateTransition = flow.stack.GetParent<INesterStateTransition>();
27
28 flow.stack.ExitParentElement();
29
30 stateTransition.Branch(flow);
31
32 return null;
33 }
34 }
35}