A game about forced loneliness, made by TACStudios
1using System;
2using System.Text;
3using UnityEditor.Graphing;
4using UnityEditor.ShaderGraph.Drawing.Controls;
5using UnityEngine;
6
7namespace UnityEditor.ShaderGraph.Internal
8{
9 [Serializable]
10 [FormerName("UnityEditor.ShaderGraph.BooleanShaderProperty")]
11 [BlackboardInputInfo(20)]
12 public sealed class BooleanShaderProperty : AbstractShaderProperty<bool>
13 {
14 internal BooleanShaderProperty()
15 {
16 displayName = "Boolean";
17 }
18
19 public override PropertyType propertyType => PropertyType.Boolean;
20
21 internal override bool isExposable => true;
22 internal override bool isRenamable => true;
23
24 internal override string GetPropertyAsArgumentString(string precisionString)
25 {
26 return $"{concreteShaderValueType.ToShaderString(precisionString)} {referenceName}";
27 }
28
29 internal override void ForeachHLSLProperty(Action<HLSLProperty> action)
30 {
31 HLSLDeclaration decl = GetDefaultHLSLDeclaration();
32 action(new HLSLProperty(HLSLType._float, referenceName, decl, concretePrecision));
33 }
34
35 internal override string GetPropertyBlockString()
36 {
37 return $"{hideTagString}[ToggleUI]{referenceName}(\"{displayName}\", Float) = {(value == true ? 1 : 0)}";
38 }
39
40 internal override AbstractMaterialNode ToConcreteNode()
41 {
42 return new BooleanNode { value = new ToggleData(value) };
43 }
44
45 internal override PreviewProperty GetPreviewMaterialProperty()
46 {
47 return new PreviewProperty(propertyType)
48 {
49 name = referenceName,
50 booleanValue = value
51 };
52 }
53
54 internal override ShaderInput Copy()
55 {
56 return new BooleanShaderProperty()
57 {
58 displayName = displayName,
59 value = value,
60 };
61 }
62 }
63}