A game about forced loneliness, made by TACStudios
1using System;
2using System.Text.RegularExpressions;
3using UnityEditor.ShaderGraph.Drawing.Controls;
4using UnityEngine;
5using UnityEditor.Graphing;
6using System.Collections.Generic;
7using System.Linq;
8using UnityEditor.ShaderGraph.Internal;
9
10namespace UnityEditor.ShaderGraph
11{
12 using PopupList = UnityEditor.ShaderGraph.Drawing.Controls.PopupList;
13 abstract class GeometryNode : AbstractMaterialNode
14 {
15 public GeometryNode()
16 {
17 m_PreviewMode = PreviewMode.Preview3D;
18 }
19
20 public virtual List<CoordinateSpace> validSpaces => new List<CoordinateSpace> { CoordinateSpace.Object, CoordinateSpace.View, CoordinateSpace.World, CoordinateSpace.Tangent };
21
22 [SerializeField]
23 private CoordinateSpace m_Space = CoordinateSpace.World;
24
25 [PopupControl("Space")]
26 public PopupList spacePopup
27 {
28 get
29 {
30 var names = validSpaces.Select(cs => cs.ToString().PascalToLabel()).ToArray();
31 return new PopupList(names, (int)m_Space);
32 }
33 set
34 {
35 if (m_Space == (CoordinateSpace)value.selectedEntry)
36 return;
37
38 m_Space = (CoordinateSpace)value.selectedEntry;
39 Dirty(ModificationScope.Graph);
40 }
41 }
42 public CoordinateSpace space => m_Space;
43
44 public override bool hasPreview
45 {
46 get { return true; }
47 }
48 }
49}