diff options
Diffstat (limited to 'Assets/AmplifyShaderEditor/Plugins/Editor/Nodes/CustomNode.cs')
-rw-r--r-- | Assets/AmplifyShaderEditor/Plugins/Editor/Nodes/CustomNode.cs | 183 |
1 files changed, 0 insertions, 183 deletions
diff --git a/Assets/AmplifyShaderEditor/Plugins/Editor/Nodes/CustomNode.cs b/Assets/AmplifyShaderEditor/Plugins/Editor/Nodes/CustomNode.cs deleted file mode 100644 index bffd2b4f..00000000 --- a/Assets/AmplifyShaderEditor/Plugins/Editor/Nodes/CustomNode.cs +++ /dev/null @@ -1,183 +0,0 @@ -// Amplify Shader Editor - Visual Shader Editing Tool -// Copyright (c) Amplify Creations, Lda <info@amplify.pt> - -using System; -using System.Collections.Generic; -using UnityEngine; - -namespace AmplifyShaderEditor -{ - [Serializable] - public class CustomNodeOutputData - { - public string expression; - public string name; - public List<CustomNodeInputData> inputData; - - public CustomNodeOutputData( string newName, string newExpression ) - { - name = newName; - expression = newExpression; - inputData = new List<CustomNodeInputData>(); - } - public void Destroy() - { - inputData.Clear(); - inputData = null; - } - - public override string ToString() - { - string result = "name: " + name + " outputExpression: " + expression + '\n'; - for ( int i = 0; i < inputData.Count; i++ ) - { - result += inputData[ i ].ToString() + '\n'; - } - return result; - } - } - - [Serializable] - public class CustomNodeInputData - { - public int index; - public int length; - public string name; - public CustomNodeInputData( int newIndex, int newLength, string newName ) - { - index = newIndex; - length = newLength; - name = newName; - - } - - public override string ToString() - { - return "index: " + index + " length: " + length + " name: " + name; - } - } - - [Serializable] - public class CustomNode : ParentNode - { - [SerializeField] - private List<string> m_includes; - - [SerializeField] - private List<CustomNodeOutputData> m_outputData; - - protected override void CommonInit( int uniqueId ) - { - base.CommonInit( uniqueId ); - m_outputData = new List<CustomNodeOutputData>(); - } - - public void AddIncludes( string newInclude ) - { - m_includes.Add( newInclude ); - } - - protected void AddOutputsFromString( string outputName, string output ) - { - AddOutputPort( WirePortDataType.OBJECT, outputName ); - - CustomNodeOutputData currOutputData = new CustomNodeOutputData( outputName, output ); - - - // Get existing input nodes so we can test for duplicates - Dictionary<string, InputPort> existingPorts = InputPortsDict; - - // Create dictionary to prevent duplicates when dealing with expresssions with multiple occurences of an input - Dictionary<string, string> inputDuplicatePrevention = new Dictionary<string, string>(); - - - // Get all inputs on the expression and save their info - int[] indexes = output.AllIndexesOf( Constants.CNIP ); - for ( int i = 0; i < indexes.Length; i++ ) - { - string name = output.Substring( indexes[ i ], Constants.CNIP.Length + 1 ); - currOutputData.inputData.Add( new CustomNodeInputData( indexes[ i ], Constants.CNIP.Length + 1, name ) ); - - if ( !inputDuplicatePrevention.ContainsKey( name ) && !existingPorts.ContainsKey( name ) ) - { - inputDuplicatePrevention.Add( name, name ); - AddInputPort( WirePortDataType.OBJECT, false, name ); - } - } - - inputDuplicatePrevention.Clear(); - inputDuplicatePrevention = null; - - existingPorts.Clear(); - existingPorts = null; - - m_outputData.Add( currOutputData ); - - } - - public override string GenerateShaderForOutput( int outputId, ref MasterNodeDataCollector dataCollector, bool ignoreLocalvar ) - { - base.GenerateShaderForOutput( outputId, ref dataCollector, ignoreLocalvar ); - if ( outputId < m_outputData.Count ) - { - Dictionary<string, InputPort> inputs = InputPortsDict; - - string value = m_outputData[ outputId ].expression; - for ( int i = 0; i < m_outputData[ outputId ].inputData.Count; i++ ) - { - if ( inputs.ContainsKey( m_outputData[ outputId ].inputData[ i ].name ) ) - { - InputPort inputPort = inputs[ m_outputData[ outputId ].inputData[ i ].name ]; - if ( inputPort != null ) - { - string inputValue = inputPort.GenerateShaderForOutput( ref dataCollector, WirePortDataType.OBJECT, ignoreLocalvar ); - value = value.Replace( m_outputData[ outputId ].inputData[ i ].name, inputValue ); - } - else - { - UIUtils.ShowMessage( UniqueId, m_outputData[ outputId ].inputData[ i ].name + " invalid on the inputs list", MessageSeverity.Error ); - return string.Empty; - } - } - else - { - UIUtils.ShowMessage( UniqueId, m_outputData[ outputId ].inputData[ i ].name + " Not found on the inputs list", MessageSeverity.Error ); - return string.Empty; - } - } - return value; - - } - - return string.Empty; - } - public void DumpOutputData() - { - for ( int i = 0; i < m_outputData.Count; i++ ) - { - Debug.Log( m_outputData[ i ] ); - } - } - - public override void Destroy() - { - base.Destroy(); - - if ( m_outputData != null ) - { - for ( int i = 0; i < m_outputData.Count; i++ ) - { - m_outputData[ i ].Destroy(); - } - m_outputData.Clear(); - m_outputData = null; - } - if ( m_includes != null ) - { - m_includes.Clear(); - m_includes = null; - } - } - - } -} |