A game about forced loneliness, made by TACStudios
1#if VISUAL_SCRIPT_INTERNAL
2using System;
3using System.Collections;
4using System.Collections.Generic;
5using System.Linq;
6using Unity.VisualScripting;
7using UnityEditor;
8using UnityEngine;
9
10public class FlowGraphUnitUISample : RuntimeFlowGraph
11{
12 [MenuItem("Tools/Visual Scripting/Internal/Create Node UI Samples", priority = LudiqProduct.DeveloperToolsMenuPriority + 403)]
13
14 public static void CreateUnitUISamples()
15 {
16 (new FlowGraphUnitUISample()).CreateGraphUISample();
17 }
18
19 private void CreateGraphUISample()
20 {
21 CreateGraph();
22
23 IEnumerable<Type> GetEventUnitTypes() => AppDomain.CurrentDomain.GetAssemblies().SelectMany(a => a.GetTypes().Where(t => typeof(IUnit).IsAssignableFrom(t))).Where(t => t.IsClass && !t.IsAbstract);
24
25 Vector2 position = Vector2.zero;
26
27 int index = 0;
28
29 foreach (var unitType in GetEventUnitTypes())
30 {
31 try
32 {
33 string name = unitType.Assembly.GetName().Name;
34 string space = unitType.FullName;
35
36 var unit = Activator.CreateInstance(name, space);
37
38 IUnit b = (IUnit)unit.Unwrap();
39
40 b.position = position;
41
42 if (index % 10 == 0)
43 {
44 position.x = 0;
45 position.y += 180;
46 }
47
48 position.x += 180;
49
50 AddUnit(b, position);
51
52 index++;
53 }
54 catch (Exception e)
55 {
56 Debug.LogException(e);
57 }
58 }
59 }
60}
61#endif