summaryrefslogtreecommitdiff
path: root/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes')
-rw-r--r--Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleAddOpNode.cs58
-rw-r--r--Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleAddOpNode.cs.meta12
-rw-r--r--Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleDivideOpNode.cs45
-rw-r--r--Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleDivideOpNode.cs.meta12
-rw-r--r--Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleMaxOpNode.cs24
-rw-r--r--Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleMaxOpNode.cs.meta12
-rw-r--r--Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleMinOpNode.cs24
-rw-r--r--Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleMinOpNode.cs.meta12
-rw-r--r--Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleMultiplyOpNode.cs175
-rw-r--r--Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleMultiplyOpNode.cs.meta12
-rw-r--r--Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleRemainderNode.cs62
-rw-r--r--Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleRemainderNode.cs.meta12
-rw-r--r--Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleSubtractOpNode.cs39
-rw-r--r--Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleSubtractOpNode.cs.meta12
14 files changed, 511 insertions, 0 deletions
diff --git a/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleAddOpNode.cs b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleAddOpNode.cs
new file mode 100644
index 00000000..463528fd
--- /dev/null
+++ b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleAddOpNode.cs
@@ -0,0 +1,58 @@
+// Amplify Shader Editor - Visual Shader Editing Tool
+// Copyright (c) Amplify Creations, Lda <info@amplify.pt>
+
+using UnityEngine;
+using UnityEditor;
+using System;
+
+namespace AmplifyShaderEditor
+{
+ [Serializable]
+ [NodeAttributes( "Add", "Math Operators", "Addition of two or more values ( A + B + .. )", null, KeyCode.A )]
+ public sealed class SimpleAddOpNode : DynamicTypeNode
+ {
+ private int m_cachedPropertyId = -1;
+
+ protected override void CommonInit( int uniqueId )
+ {
+ m_dynamicRestrictions = new WirePortDataType[]
+ {
+ WirePortDataType.OBJECT,
+ WirePortDataType.FLOAT,
+ WirePortDataType.FLOAT2,
+ WirePortDataType.FLOAT3,
+ WirePortDataType.FLOAT4,
+ WirePortDataType.COLOR,
+ WirePortDataType.FLOAT3x3,
+ WirePortDataType.FLOAT4x4,
+ WirePortDataType.INT
+ };
+
+ base.CommonInit( uniqueId );
+ m_extensibleInputPorts = true;
+ m_previewShaderGUID = "9eb150cbc752cbc458a0a37984b9934a";
+ }
+
+ public override void SetPreviewInputs()
+ {
+ base.SetPreviewInputs();
+
+ if ( m_cachedPropertyId == -1 )
+ m_cachedPropertyId = Shader.PropertyToID( "_Count" );
+
+ PreviewMaterial.SetInt( m_cachedPropertyId, m_inputPorts.Count);
+ }
+
+ public override string BuildResults( int outputId, ref MasterNodeDataCollector dataCollector, bool ignoreLocalvar )
+ {
+ base.BuildResults( outputId, ref dataCollector, ignoreLocalvar );
+ string result = "( " + m_extensibleInputResults[ 0 ];
+ for ( int i = 1; i < m_extensibleInputResults.Count; i++ )
+ {
+ result += " + " + m_extensibleInputResults[ i ];
+ }
+ result += " )";
+ return result;
+ }
+ }
+}
diff --git a/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleAddOpNode.cs.meta b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleAddOpNode.cs.meta
new file mode 100644
index 00000000..c3660959
--- /dev/null
+++ b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleAddOpNode.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 6ca9162ab6c708f40bbc21f0c22909fa
+timeCreated: 1481126956
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleDivideOpNode.cs b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleDivideOpNode.cs
new file mode 100644
index 00000000..0cafeb3c
--- /dev/null
+++ b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleDivideOpNode.cs
@@ -0,0 +1,45 @@
+// Amplify Shader Editor - Visual Shader Editing Tool
+// Copyright (c) Amplify Creations, Lda <info@amplify.pt>
+
+using UnityEngine;
+using System;
+
+namespace AmplifyShaderEditor
+{
+ [Serializable]
+ [NodeAttributes( "Divide", "Math Operators", "Division of two values ( A / B )", null, KeyCode.D )]
+ public sealed class SimpleDivideOpNode : DynamicTypeNode
+ {
+ protected override void CommonInit( int uniqueId )
+ {
+ m_dynamicRestrictions = new WirePortDataType[]
+ {
+ WirePortDataType.OBJECT,
+ WirePortDataType.FLOAT,
+ WirePortDataType.FLOAT2,
+ WirePortDataType.FLOAT3,
+ WirePortDataType.FLOAT4,
+ WirePortDataType.COLOR,
+ WirePortDataType.FLOAT3x3,
+ WirePortDataType.FLOAT4x4,
+ WirePortDataType.INT
+ };
+
+ base.CommonInit( uniqueId );
+ m_allowMatrixCheck = true;
+ m_previewShaderGUID = "409f06d00d1094849b0834c52791fa72";
+ }
+
+ public override string BuildResults( int outputId, ref MasterNodeDataCollector dataCollector, bool ignoreLocalvar )
+ {
+ SetExtensibleInputData( outputId, ref dataCollector, ignoreLocalvar );
+ string result = "( " + m_extensibleInputResults[ 0 ];
+ for ( int i = 1; i < m_extensibleInputResults.Count; i++ )
+ {
+ result += " / " + m_extensibleInputResults[ i ];
+ }
+ result += " )";
+ return result;
+ }
+ }
+}
diff --git a/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleDivideOpNode.cs.meta b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleDivideOpNode.cs.meta
new file mode 100644
index 00000000..98e759a8
--- /dev/null
+++ b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleDivideOpNode.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: e80e305761a1e6c4898e401a64b17f84
+timeCreated: 1481126960
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleMaxOpNode.cs b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleMaxOpNode.cs
new file mode 100644
index 00000000..fdb3c8ce
--- /dev/null
+++ b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleMaxOpNode.cs
@@ -0,0 +1,24 @@
+// Amplify Shader Editor - Visual Shader Editing Tool
+// Copyright (c) Amplify Creations, Lda <info@amplify.pt>
+
+using System;
+
+namespace AmplifyShaderEditor
+{
+ [Serializable]
+ [NodeAttributes( "Max", "Math Operators", "Maximum of two scalars or each respective component of two vectors" )]
+ public sealed class SimpleMaxOpNode : DynamicTypeNode
+ {
+ protected override void CommonInit( int uniqueId )
+ {
+ base.CommonInit( uniqueId );
+ m_previewShaderGUID = "79d7f2a11092ac84a95ef6823b34adf2";
+ }
+
+ public override string BuildResults( int outputId, ref MasterNodeDataCollector dataCollector, bool ignoreLocalvar )
+ {
+ base.BuildResults( outputId, ref dataCollector, ignoreLocalvar );
+ return "max( " + m_inputA + " , " + m_inputB + " )";
+ }
+ }
+}
diff --git a/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleMaxOpNode.cs.meta b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleMaxOpNode.cs.meta
new file mode 100644
index 00000000..fe8023a1
--- /dev/null
+++ b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleMaxOpNode.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 4ea5a2904ca58164086eeb8ef3084ed2
+timeCreated: 1481126955
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleMinOpNode.cs b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleMinOpNode.cs
new file mode 100644
index 00000000..4b24eb3c
--- /dev/null
+++ b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleMinOpNode.cs
@@ -0,0 +1,24 @@
+// Amplify Shader Editor - Visual Shader Editing Tool
+// Copyright (c) Amplify Creations, Lda <info@amplify.pt>
+
+using System;
+
+namespace AmplifyShaderEditor
+{
+ [Serializable]
+ [NodeAttributes( "Min", "Math Operators", "Minimum of two scalars or each respective component of two vectors" )]
+ public sealed class SimpleMinOpNode : DynamicTypeNode
+ {
+ protected override void CommonInit( int uniqueId )
+ {
+ base.CommonInit( uniqueId );
+ m_previewShaderGUID = "d6033298044f0f14aa9932ca46e58ce6";
+ }
+
+ public override string BuildResults( int outputId, ref MasterNodeDataCollector dataCollector, bool ignoreLocalvar )
+ {
+ base.BuildResults( outputId, ref dataCollector, ignoreLocalvar );
+ return "min( " + m_inputA + " , " + m_inputB + " )";
+ }
+ }
+}
diff --git a/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleMinOpNode.cs.meta b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleMinOpNode.cs.meta
new file mode 100644
index 00000000..a92e3e5f
--- /dev/null
+++ b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleMinOpNode.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 1b19c8479d7a7a9458a6f556bf6545d5
+timeCreated: 1481126954
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleMultiplyOpNode.cs b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleMultiplyOpNode.cs
new file mode 100644
index 00000000..4a41a775
--- /dev/null
+++ b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleMultiplyOpNode.cs
@@ -0,0 +1,175 @@
+// Amplify Shader Editor - Visual Shader Editing Tool
+// Copyright (c) Amplify Creations, Lda <info@amplify.pt>
+
+using UnityEngine;
+using System;
+
+namespace AmplifyShaderEditor
+{
+ [Serializable]
+ [NodeAttributes( "Multiply", "Math Operators", "Multiplication of two or more values ( A * B * .. )\nIt also handles Matrices multiplication", null, KeyCode.M )]
+ public sealed class SimpleMultiplyOpNode : DynamicTypeNode
+ {
+ protected override void CommonInit( int uniqueId )
+ {
+ m_dynamicRestrictions = new WirePortDataType[]
+ {
+ WirePortDataType.OBJECT,
+ WirePortDataType.FLOAT,
+ WirePortDataType.FLOAT2,
+ WirePortDataType.FLOAT3,
+ WirePortDataType.FLOAT4,
+ WirePortDataType.COLOR,
+ WirePortDataType.FLOAT3x3,
+ WirePortDataType.FLOAT4x4,
+ WirePortDataType.INT
+ };
+
+ base.CommonInit( uniqueId );
+ m_extensibleInputPorts = true;
+ m_vectorMatrixOps = true;
+ m_previewShaderGUID = "1ba1e43e86415ff4bbdf4d81dfcf035b";
+ }
+
+ public override void SetPreviewInputs()
+ {
+ base.SetPreviewInputs();
+
+ int count = 0;
+ int inputCount = m_inputPorts.Count;
+ for( int i = 2; i < inputCount; i++ )
+ {
+ count++;
+ if( !m_inputPorts[ i ].IsConnected )
+ PreviewMaterial.SetTexture( ( "_" + Convert.ToChar( i + 65 ) ), UnityEditor.EditorGUIUtility.whiteTexture );
+ }
+
+ m_previewMaterialPassId = count;
+ }
+
+ public override string BuildResults( int outputId, ref MasterNodeDataCollector dataCollector, bool ignoreLocalvar )
+ {
+ if( m_inputPorts[ 0 ].DataType == WirePortDataType.FLOAT3x3 ||
+ m_inputPorts[ 0 ].DataType == WirePortDataType.FLOAT4x4 ||
+ m_inputPorts[ 1 ].DataType == WirePortDataType.FLOAT3x3 ||
+ m_inputPorts[ 1 ].DataType == WirePortDataType.FLOAT4x4 )
+ {
+ m_inputA = m_inputPorts[ 0 ].GeneratePortInstructions( ref dataCollector );
+ m_inputB = m_inputPorts[ 1 ].GeneratePortInstructions( ref dataCollector );
+
+
+ WirePortDataType autoCast = WirePortDataType.OBJECT;
+ // Check matrix on first input
+ if( m_inputPorts[ 0 ].DataType == WirePortDataType.FLOAT3x3 )
+ {
+ switch( m_inputPorts[ 1 ].DataType )
+ {
+ case WirePortDataType.OBJECT:
+ case WirePortDataType.FLOAT:
+ case WirePortDataType.INT:
+ case WirePortDataType.FLOAT2:
+ case WirePortDataType.FLOAT4:
+ case WirePortDataType.COLOR:
+ {
+ m_inputB = UIUtils.CastPortType( ref dataCollector, CurrentPrecisionType, new NodeCastInfo( UniqueId, outputId ), m_inputB, m_inputPorts[ 1 ].DataType, WirePortDataType.FLOAT3, m_inputB );
+ autoCast = WirePortDataType.FLOAT3;
+ }
+ break;
+ case WirePortDataType.FLOAT4x4:
+ {
+ m_inputA = UIUtils.CastPortType( ref dataCollector, CurrentPrecisionType, new NodeCastInfo( UniqueId, outputId ), m_inputA, m_inputPorts[ 0 ].DataType, WirePortDataType.FLOAT4x4, m_inputA );
+ }
+ break;
+ case WirePortDataType.FLOAT3:
+ case WirePortDataType.FLOAT3x3: break;
+ }
+ }
+
+ if( m_inputPorts[ 0 ].DataType == WirePortDataType.FLOAT4x4 )
+ {
+ switch( m_inputPorts[ 1 ].DataType )
+ {
+ case WirePortDataType.OBJECT:
+ case WirePortDataType.FLOAT:
+ case WirePortDataType.INT:
+ case WirePortDataType.FLOAT2:
+ case WirePortDataType.FLOAT3:
+ {
+ m_inputB = UIUtils.CastPortType( ref dataCollector, CurrentPrecisionType, new NodeCastInfo( UniqueId, outputId ), m_inputB, m_inputPorts[ 1 ].DataType, WirePortDataType.FLOAT4, m_inputB );
+ autoCast = WirePortDataType.FLOAT4;
+ }
+ break;
+ case WirePortDataType.FLOAT3x3:
+ {
+ m_inputB = UIUtils.CastPortType( ref dataCollector, CurrentPrecisionType, new NodeCastInfo( UniqueId, outputId ), m_inputB, m_inputPorts[ 1 ].DataType, WirePortDataType.FLOAT4x4, m_inputB );
+ }
+ break;
+ case WirePortDataType.FLOAT4x4:
+ case WirePortDataType.FLOAT4:
+ case WirePortDataType.COLOR: break;
+ }
+ }
+
+ // Check matrix on second input
+ if( m_inputPorts[ 1 ].DataType == WirePortDataType.FLOAT3x3 )
+ {
+ switch( m_inputPorts[ 0 ].DataType )
+ {
+ case WirePortDataType.OBJECT:
+ case WirePortDataType.FLOAT:
+ case WirePortDataType.INT:
+ case WirePortDataType.FLOAT2:
+ case WirePortDataType.FLOAT4:
+ case WirePortDataType.COLOR:
+ {
+ m_inputA = UIUtils.CastPortType( ref dataCollector, CurrentPrecisionType, new NodeCastInfo( UniqueId, outputId ), m_inputA, m_inputPorts[ 0 ].DataType, WirePortDataType.FLOAT3, m_inputA );
+ autoCast = WirePortDataType.FLOAT3;
+ }
+ break;
+ case WirePortDataType.FLOAT4x4:
+ case WirePortDataType.FLOAT3:
+ case WirePortDataType.FLOAT3x3: break;
+ }
+ }
+
+ if( m_inputPorts[ 1 ].DataType == WirePortDataType.FLOAT4x4 )
+ {
+ switch( m_inputPorts[ 0 ].DataType )
+ {
+ case WirePortDataType.OBJECT:
+ case WirePortDataType.FLOAT:
+ case WirePortDataType.INT:
+ case WirePortDataType.FLOAT2:
+ case WirePortDataType.FLOAT3:
+ {
+ m_inputA = UIUtils.CastPortType( ref dataCollector, CurrentPrecisionType, new NodeCastInfo( UniqueId, outputId ), m_inputA, m_inputPorts[ 0 ].DataType, WirePortDataType.FLOAT4, m_inputA );
+ autoCast = WirePortDataType.FLOAT4;
+ }
+ break;
+ case WirePortDataType.FLOAT3x3:
+ case WirePortDataType.FLOAT4x4:
+ case WirePortDataType.FLOAT4:
+ case WirePortDataType.COLOR: break;
+ }
+ }
+ string result = "mul( " + m_inputA + ", " + m_inputB + " )";
+ if( autoCast != WirePortDataType.OBJECT && autoCast != m_outputPorts[ 0 ].DataType )
+ {
+ result = UIUtils.CastPortType( ref dataCollector, CurrentPrecisionType, new NodeCastInfo( UniqueId, outputId ), result, autoCast, m_outputPorts[ 0 ].DataType, result );
+ }
+ return result;
+ }
+ else
+ {
+ base.BuildResults( outputId, ref dataCollector, ignoreLocalvar );
+ string result = "( " + m_extensibleInputResults[ 0 ];
+ for( int i = 1; i < m_extensibleInputResults.Count; i++ )
+ {
+ result += " * " + m_extensibleInputResults[ i ];
+ }
+ result += " )";
+ return result;
+ }
+ }
+ }
+}
diff --git a/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleMultiplyOpNode.cs.meta b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleMultiplyOpNode.cs.meta
new file mode 100644
index 00000000..0283ca77
--- /dev/null
+++ b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleMultiplyOpNode.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 647081578ac7f014d98090d36b5b1bc8
+timeCreated: 1481126956
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleRemainderNode.cs b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleRemainderNode.cs
new file mode 100644
index 00000000..64da4fdf
--- /dev/null
+++ b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleRemainderNode.cs
@@ -0,0 +1,62 @@
+// Amplify Shader Editor - Visual Shader Editing Tool
+// Copyright (c) Amplify Creations, Lda <info@amplify.pt>
+
+using System;
+
+namespace AmplifyShaderEditor
+{
+ [Serializable]
+ [NodeAttributes( "Remainder", "Math Operators", "Remainder between two int variables",tags:"modulo fmod" )]
+ public sealed class SimpleRemainderNode : DynamicTypeNode
+ {
+ private const string VertexFragRemainder = "( {0} % {1} )";
+ private const string SurfaceRemainder = "fmod( {0} , {1} )";
+
+ protected override void CommonInit( int uniqueId )
+ {
+ base.CommonInit( uniqueId );
+ m_useInternalPortData = true;
+ m_textLabelWidth = 35;
+ ChangeInputType( WirePortDataType.INT, false );
+ ChangeOutputType( WirePortDataType.INT, false );
+ m_useInternalPortData = true;
+ m_previewShaderGUID = "8fdfc429d6b191c4985c9531364c1a95";
+ }
+
+ public override string BuildResults( int outputId, ref MasterNodeDataCollector dataCollector, bool ignoreLocalvar )
+ {
+ if( m_outputPorts[ 0 ].IsLocalValue( dataCollector.PortCategory ) )
+ return m_outputPorts[ 0 ].LocalValue( dataCollector.PortCategory );
+
+ base.BuildResults( outputId, ref dataCollector, ignoreLocalvar );
+#if UNITY_2018_1_OR_NEWER
+ string opMode = VertexFragRemainder;
+#else
+ string opMode = dataCollector.IsTemplate ? VertexFragRemainder : SurfaceRemainder;
+#endif
+ string result = string.Empty;
+ switch( m_outputPorts[ 0 ].DataType )
+ {
+ case WirePortDataType.FLOAT:
+ case WirePortDataType.FLOAT2:
+ case WirePortDataType.FLOAT3:
+ case WirePortDataType.FLOAT4:
+ case WirePortDataType.INT:
+ case WirePortDataType.COLOR:
+ case WirePortDataType.OBJECT:
+ {
+ result = string.Format( opMode, m_inputA, m_inputB );
+ }
+ break;
+ case WirePortDataType.FLOAT3x3:
+ case WirePortDataType.FLOAT4x4:
+ {
+ result = UIUtils.InvalidParameter( this );
+ }
+ break;
+ }
+
+ return CreateOutputLocalVariable( 0, result, ref dataCollector );
+ }
+ }
+}
diff --git a/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleRemainderNode.cs.meta b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleRemainderNode.cs.meta
new file mode 100644
index 00000000..528ea33f
--- /dev/null
+++ b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleRemainderNode.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 5785c326a26d2ba4ab642fc2bdd41e9a
+timeCreated: 1481126955
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleSubtractOpNode.cs b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleSubtractOpNode.cs
new file mode 100644
index 00000000..eaabab20
--- /dev/null
+++ b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleSubtractOpNode.cs
@@ -0,0 +1,39 @@
+// Amplify Shader Editor - Visual Shader Editing Tool
+// Copyright (c) Amplify Creations, Lda <info@amplify.pt>
+
+using System;
+using UnityEngine;
+
+namespace AmplifyShaderEditor
+{
+ [Serializable]
+ [NodeAttributes( "Subtract", "Math Operators", "Subtraction of two values ( A - B )", null, UnityEngine.KeyCode.S )]
+ public sealed class SimpleSubtractOpNode : DynamicTypeNode
+ {
+ protected override void CommonInit( int uniqueId )
+ {
+ m_dynamicRestrictions = new WirePortDataType[]
+ {
+ WirePortDataType.OBJECT,
+ WirePortDataType.FLOAT,
+ WirePortDataType.FLOAT2,
+ WirePortDataType.FLOAT3,
+ WirePortDataType.FLOAT4,
+ WirePortDataType.COLOR,
+ WirePortDataType.FLOAT3x3,
+ WirePortDataType.FLOAT4x4,
+ WirePortDataType.INT
+ };
+
+ base.CommonInit( uniqueId );
+ m_allowMatrixCheck = true;
+ m_previewShaderGUID = "5725e8300be208449973f771ab6682f2";
+ }
+
+ public override string BuildResults( int outputId, ref MasterNodeDataCollector dataCollector, bool ignoreLocalvar )
+ {
+ base.BuildResults( outputId, ref dataCollector, ignoreLocalvar );
+ return "( " + m_inputA + " - " + m_inputB + " )";
+ }
+ }
+}
diff --git a/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleSubtractOpNode.cs.meta b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleSubtractOpNode.cs.meta
new file mode 100644
index 00000000..a550f19a
--- /dev/null
+++ b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/SimpleNodes/SimpleSubtractOpNode.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 204f935dafd0a984297e242583de1da5
+timeCreated: 1481126954
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant: