A game about forced loneliness, made by TACStudios
1using UnityEngine; 2using UnityEditor.Graphing; 3 4namespace UnityEditor.ShaderGraph 5{ 6 [Title("Input", "Basic", "Time")] 7 class TimeNode : AbstractMaterialNode, IMayRequireTime 8 { 9 private const string kOutputSlotName = "Time"; 10 private const string kOutputSlot1Name = "Sine Time"; 11 private const string kOutputSlot2Name = "Cosine Time"; 12 private const string kOutputSlot3Name = "Delta Time"; 13 private const string kOutputSlot4Name = "Smooth Delta"; 14 15 public const int OutputSlotId = 0; 16 public const int OutputSlot1Id = 1; 17 public const int OutputSlot2Id = 2; 18 public const int OutputSlot3Id = 3; 19 public const int OutputSlot4Id = 4; 20 21 public TimeNode() 22 { 23 name = "Time"; 24 UpdateNodeAfterDeserialization(); 25 } 26 27 public sealed override void UpdateNodeAfterDeserialization() 28 { 29 AddSlot(new Vector1MaterialSlot(OutputSlotId, kOutputSlotName, kOutputSlotName, SlotType.Output, 0)); 30 AddSlot(new Vector1MaterialSlot(OutputSlot1Id, kOutputSlot1Name, kOutputSlot1Name, SlotType.Output, 0)); 31 AddSlot(new Vector1MaterialSlot(OutputSlot2Id, kOutputSlot2Name, kOutputSlot2Name, SlotType.Output, 0)); 32 AddSlot(new Vector1MaterialSlot(OutputSlot3Id, kOutputSlot3Name, kOutputSlot3Name, SlotType.Output, 0)); 33 AddSlot(new Vector1MaterialSlot(OutputSlot4Id, kOutputSlot4Name, kOutputSlot4Name, SlotType.Output, 0)); 34 RemoveSlotsNameNotMatching(validSlots); 35 } 36 37 protected int[] validSlots 38 { 39 get { return new[] { OutputSlotId, OutputSlot1Id, OutputSlot2Id, OutputSlot3Id, OutputSlot4Id }; } 40 } 41 42 public override string GetVariableNameForSlot(int slotId) 43 { 44 switch (slotId) 45 { 46 case OutputSlot1Id: 47 return "IN.TimeParameters.y"; 48 case OutputSlot2Id: 49 return "IN.TimeParameters.z"; 50 case OutputSlot3Id: 51 return "unity_DeltaTime.x"; 52 case OutputSlot4Id: 53 return "unity_DeltaTime.z"; 54 default: 55 return "IN.TimeParameters.x"; 56 } 57 } 58 59 public bool RequiresTime() 60 { 61 return true; 62 } 63 } 64}