A game about forced loneliness, made by TACStudios
1using System.Collections.Generic;
2using System.Linq;
3
4namespace Unity.VisualScripting
5{
6 [InitializeAfterPlugins]
7 public static class UnitBaseStateExtensions
8 {
9 static UnitBaseStateExtensions()
10 {
11 UnitBase.staticUnitsExtensions.Add(GetStaticOptions);
12 UnitBase.dynamicUnitsExtensions.Add(GetDynamicOptions);
13 UnitBase.contextualUnitsExtensions.Add(GetContextualOptions);
14 }
15
16 private static IEnumerable<IUnitOption> GetStaticOptions()
17 {
18 yield return StateUnit.WithStart().Option();
19 }
20
21 private static IEnumerable<IUnitOption> GetDynamicOptions()
22 {
23 var stateMacros = UnityAPI.Await(() => AssetUtility.GetAllAssetsOfType<StateGraphAsset>().ToArray());
24
25 foreach (var stateUnit in stateMacros.Select(statemacro => new StateUnit(statemacro)))
26 {
27 yield return stateUnit.Option();
28 }
29 }
30
31 private static IEnumerable<IUnitOption> GetContextualOptions(GraphReference reference)
32 {
33 yield break;
34 }
35 }
36}