A game about forced loneliness, made by TACStudios
1using UnityEditor.Graphing;
2
3namespace UnityEditor.ShaderGraph
4{
5 [Title("Input", "Geometry", "Instance ID")]
6 class InstanceIDNode : AbstractMaterialNode, IMayRequireInstanceID
7 {
8 private const int kOutputSlotId = 0;
9 private const string kOutputSlotName = "Out";
10
11 public override bool hasPreview => false;
12
13 public InstanceIDNode()
14 {
15 name = "Instance ID";
16 UpdateNodeAfterDeserialization();
17 }
18
19 public sealed override void UpdateNodeAfterDeserialization()
20 {
21 AddSlot(new Vector1MaterialSlot(kOutputSlotId, kOutputSlotName, kOutputSlotName, SlotType.Output, (int)0, ShaderStageCapability.All));
22 RemoveSlotsNameNotMatching(new[] { kOutputSlotId });
23 }
24
25 public override string GetVariableNameForSlot(int slotId)
26 {
27 return string.Format("IN.{0}", ShaderGeneratorNames.InstanceID);
28 }
29
30 public bool RequiresInstanceID(ShaderStageCapability stageCapability)
31 {
32 return true;
33 }
34 }
35}