A game about forced loneliness, made by TACStudios
1using System;
2using System.Collections.Generic;
3using UnityEditor.ShaderGraph.Drawing;
4using UnityEditor.ShaderGraph.Serialization;
5using UnityEngine;
6using UnityEngine.UIElements;
7
8namespace UnityEditor.ShaderGraph
9{
10
11 [Serializable]
12 internal abstract class AbstractShaderGraphDataExtension : JsonObject
13 {
14 internal virtual int paddingIdentationFactor => 15;
15
16 internal abstract string displayName { get; }
17
18 internal abstract void OnPropertiesGUI(VisualElement context, Action onChange, Action<string> registerUndo, GraphData owner);
19
20 internal static List<AbstractShaderGraphDataExtension> ValidExtensions()
21 {
22 var result = new List<AbstractShaderGraphDataExtension>();
23 foreach (var type in TypeCache.GetTypesDerivedFrom(typeof(AbstractShaderGraphDataExtension)))
24 {
25 if (type.IsGenericType || type == typeof(MultiJsonInternal.UnknownGraphDataExtension))
26 continue;
27
28 var subData = (AbstractShaderGraphDataExtension)Activator.CreateInstance(type);
29 result.Add(subData);
30 }
31 return result;
32 }
33 }
34}