A game about forced loneliness, made by TACStudios
1using System;
2using System.Linq;
3using System.Reflection;
4using UnityEditor.ShaderGraph.Internal;
5using UnityEngine;
6using Object = UnityEngine.Object;
7using UnityEngine.UIElements;
8
9namespace UnityEditor.ShaderGraph.Drawing.Controls
10{
11 [AttributeUsage(AttributeTargets.Property)]
12 class DefaultControlAttribute : Attribute, IControlAttribute
13 {
14 public VisualElement InstantiateControl(AbstractMaterialNode node, PropertyInfo propertyInfo)
15 {
16 if (propertyInfo.PropertyType == typeof(Color))
17 return new ColorControlView(null, ColorMode.Default, node, propertyInfo);
18 if (typeof(Enum).IsAssignableFrom(propertyInfo.PropertyType))
19 return new EnumControlView(null, node, propertyInfo);
20 if (propertyInfo.PropertyType == typeof(Texture2D))
21 return new TextureControlView(null, node, propertyInfo);
22 if (propertyInfo.PropertyType == typeof(Texture2DArray))
23 return new TextureArrayControlView(null, node, propertyInfo);
24 if (propertyInfo.PropertyType == typeof(Texture3D))
25 return new Texture3DControlView(null, node, propertyInfo);
26 if (MultiFloatControlView.validTypes.Contains(propertyInfo.PropertyType))
27 return new MultiFloatControlView(null, "X", "Y", "Z", "W", node, propertyInfo);
28 if (typeof(Object).IsAssignableFrom(propertyInfo.PropertyType))
29 return new ObjectControlView(null, node, propertyInfo);
30 return null;
31 }
32 }
33}