diff options
author | chai <chaifix@163.com> | 2022-03-10 14:07:40 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2022-03-10 14:07:40 +0800 |
commit | 22891bf59032ba88262824255a706d652031384b (patch) | |
tree | 7595439ba9966c9402d37e37cee5e8cf098757d5 /Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/NodeUsageRegister.cs | |
parent | 8b04ea73e540067f83870b61d89db4868fea5e8a (diff) |
* move folder
Diffstat (limited to 'Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/NodeUsageRegister.cs')
-rw-r--r-- | Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/NodeUsageRegister.cs | 203 |
1 files changed, 0 insertions, 203 deletions
diff --git a/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/NodeUsageRegister.cs b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/NodeUsageRegister.cs deleted file mode 100644 index 944ce812..00000000 --- a/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/NodeUsageRegister.cs +++ /dev/null @@ -1,203 +0,0 @@ -using System; -using UnityEngine; -using UnityEditor; -using System.Collections.Generic; - -namespace AmplifyShaderEditor -{ - [Serializable] public class UsageListSamplerNodes : NodeUsageRegister<SamplerNode> { } - [Serializable] public class UsageListFloatIntNodes : NodeUsageRegister<PropertyNode> { } - [Serializable] public class UsageListTexturePropertyNodes : NodeUsageRegister<TexturePropertyNode> { } - [Serializable] public class UsageListTextureArrayNodes : NodeUsageRegister<TextureArrayNode> { } - [Serializable] public class UsageListPropertyNodes : NodeUsageRegister<PropertyNode> { } - [Serializable] public class UsageListScreenColorNodes : NodeUsageRegister<ScreenColorNode> { } - [Serializable] public class UsageListRegisterLocalVarNodes : NodeUsageRegister<RegisterLocalVarNode> { } - [Serializable] public class UsageListFunctionInputNodes : NodeUsageRegister<FunctionInput> { } - [Serializable] public class UsageListFunctionNodes : NodeUsageRegister<FunctionNode> { } - [Serializable] public class UsageListFunctionOutputNodes : NodeUsageRegister<FunctionOutput> { } - [Serializable] public class UsageListFunctionSwitchNodes : NodeUsageRegister<FunctionSwitch> { } - [Serializable] public class UsageListFunctionSwitchCopyNodes : NodeUsageRegister<FunctionSwitch> { } - [Serializable] public class UsageListTemplateMultiPassMasterNodes : NodeUsageRegister<TemplateMultiPassMasterNode> { } - [Serializable] public class UsageListCustomExpressionsOnFunctionMode : NodeUsageRegister<CustomExpressionNode> { } - [Serializable] public class UsageListGlobalArrayNodes : NodeUsageRegister<GlobalArrayNode> { } - [Serializable] public class UsageListStaticSwitchNodes : NodeUsageRegister<StaticSwitch> { } - - [Serializable] - public class NodeUsageRegister<T> where T : ParentNode - { - public delegate void ReorderEvent(); - public event ReorderEvent OnReorderEventComplete; - - [SerializeField] - public bool ReorderOnChange = false; - - // Sampler Nodes registry - [SerializeField] - private List<T> m_nodes; - - [SerializeField] - private string[] m_nodesArr; - - [SerializeField] - private int[] m_nodeIDs; - - [SerializeField] - ParentGraph m_containerGraph; - - public NodeUsageRegister() - { - m_nodesArr = new string[ 0 ]; - m_nodeIDs = new int[ 0 ]; - m_nodes = new List<T>(); - } - - public void Destroy() - { - m_nodes.Clear(); - m_nodes = null; - m_nodesArr = null; - m_nodeIDs = null; - } - - public void Clear() - { - m_nodes.Clear(); - } - - public int AddNode( T node ) - { - if( node == null ) - return -1; - - if( !m_nodes.Contains( node ) ) - { - if( m_containerGraph != null ) - { - Undo.RegisterCompleteObjectUndo( m_containerGraph.ParentWindow, Constants.UndoRegisterNodeId ); - Undo.RegisterCompleteObjectUndo( m_containerGraph, Constants.UndoRegisterNodeId ); - } - m_nodes.Add( node ); - ReorderNodes(); - UpdateNodeArr(); - return m_nodes.Count - 1; - } - else if( node.UniqueId > -1 ) - { - UpdateNodeArr(); - } - - return -1; - } - - public bool HasNode( int uniqueId ) - { - return m_nodes.FindIndex( x => x.UniqueId == uniqueId ) > -1 ? true : false; - } - - public void RemoveNode( T node ) - { - if( node == null ) - return; - - if( m_nodes.Contains( node ) ) - { - if( m_containerGraph != null ) - { - Undo.RegisterCompleteObjectUndo( m_containerGraph.ParentWindow, Constants.UndoUnregisterNodeId ); - Undo.RegisterCompleteObjectUndo( m_containerGraph, Constants.UndoUnregisterNodeId ); - } - - m_nodes.Remove( node ); - ReorderNodes(); - UpdateNodeArr(); - } - } - - public void ReorderNodes() - { - if( ReorderOnChange ) - { - m_nodes.Sort( ( x, y ) => ( x.DataToArray.CompareTo( y.DataToArray ) ) ); - if( OnReorderEventComplete != null ) - { - OnReorderEventComplete(); - } - } - } - - public void UpdateNodeArr() - { - int nodeCount = m_nodes.Count; - if( nodeCount != m_nodesArr.Length ) - { - m_nodesArr = new string[ nodeCount ]; - m_nodeIDs = new int[ nodeCount ]; - } - - for( int i = 0; i < nodeCount; i++ ) - { - m_nodesArr[ i ] = m_nodes[ i ].DataToArray; - m_nodeIDs[ i ] = m_nodes[ i ].UniqueId; - } - } - - public T GetNode( int idx ) - { - if( idx > -1 && idx < m_nodes.Count ) - { - return m_nodes[ idx ]; - } - return null; - } - - public T GetNodeByUniqueId( int uniqueId ) - { - return m_nodes.Find( x => x.UniqueId == uniqueId ); - } - - public T GetNodeByDataToArray( string data ) - { - return m_nodes.Find( x => x.DataToArray.Equals( data )); - } - - public int GetNodeRegisterIdx( int uniqueId ) - { - return m_nodes.FindIndex( x => x.UniqueId == uniqueId ); - } - - public void UpdateDataOnNode( int uniqueId, string data ) - { - if( ReorderOnChange ) - { - ReorderNodes(); - UpdateNodeArr(); - } - else - { - int index = m_nodes.FindIndex( x => x.UniqueId == uniqueId ); - if( index > -1 ) - { - m_nodesArr[ index ] = data; - m_nodeIDs[ index ] = uniqueId; - } - } - } - - public void Dump() - { - string data = string.Empty; - - for( int i = 0; i < m_nodesArr.Length; i++ ) - { - data += m_nodesArr[ i ] + " " + m_nodeIDs[ i ] + '\n'; - } - Debug.Log( data ); - } - - public string[] NodesArr { get { return m_nodesArr; } } - public int[] NodeIds { get { return m_nodeIDs; } } - public List<T> NodesList { get { return m_nodes; } } - public int Count { get { return m_nodes.Count; } } - public ParentGraph ContainerGraph { get { return m_containerGraph; } set { m_containerGraph = value; } } - } -} |