summaryrefslogtreecommitdiff
path: root/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Actions/ActionData.cs
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2020-10-23 13:08:43 +0800
committerchai <chaifix@163.com>2020-10-23 13:08:43 +0800
commitb82da95b5181ac8bbae38efb13e950d5e88a4caa (patch)
tree48a6f3269276484bbc7cfc95f0651f40a2176aa1 /Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Actions/ActionData.cs
parent917e9e0b320775634dc2e710f7deac74fd0822f0 (diff)
*移动amplify shader editor到third party目录
Diffstat (limited to 'Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Actions/ActionData.cs')
-rw-r--r--Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Actions/ActionData.cs336
1 files changed, 336 insertions, 0 deletions
diff --git a/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Actions/ActionData.cs b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Actions/ActionData.cs
new file mode 100644
index 00000000..67572b46
--- /dev/null
+++ b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Actions/ActionData.cs
@@ -0,0 +1,336 @@
+// Amplify Shader Editor - Visual Shader Editing Tool
+// Copyright (c) Amplify Creations, Lda <info@amplify.pt>
+
+
+using System;
+using UnityEngine;
+
+namespace AmplifyShaderEditor
+{
+ public class ActionData
+ {
+ public virtual void ExecuteForward() { }
+ public virtual void ExecuteReverse() { }
+ }
+
+ // NODES
+ // Create node
+ public class CreateNodeActionData : ActionData
+ {
+ private int m_nodeId;
+ private System.Type m_nodeType;
+ private Vector2 m_nodePos;
+
+ public CreateNodeActionData( ParentNode node )
+ {
+ m_nodeId = node.UniqueId;
+ m_nodePos = node.Vec2Position;
+ m_nodeType = node.GetType();
+ }
+
+
+ public CreateNodeActionData( int nodeId, System.Type nodeType, Vector2 nodePos )
+ {
+ m_nodeId = nodeId;
+ m_nodePos = nodePos;
+ m_nodeType = nodeType;
+ }
+
+ public override void ExecuteForward()
+ {
+ UIUtils.CreateNode( m_nodeType, false, m_nodePos, m_nodeId );
+ }
+
+ public override void ExecuteReverse()
+ {
+ UIUtils.DestroyNode( m_nodeId );
+ }
+
+ public override string ToString()
+ {
+ return "Create Node - Type: " + m_nodeType + " Node: " + m_nodeId + " Position: " + m_nodePos;
+ }
+ }
+
+ // Destroy node
+ public class DestroyNodeActionData : ActionData
+ {
+ private int m_nodeId;
+ private System.Type m_nodeType;
+ private Vector2 m_nodePos;
+
+ public DestroyNodeActionData( ParentNode node )
+ {
+ m_nodeId = node.UniqueId;
+ m_nodePos = node.Vec2Position;
+ m_nodeType = node.GetType();
+ }
+
+ public DestroyNodeActionData( int nodeId, System.Type nodeType, Vector2 nodePos )
+ {
+ m_nodeId = nodeId;
+ m_nodePos = nodePos;
+ m_nodeType = nodeType;
+ }
+
+ public override void ExecuteForward()
+ {
+ UIUtils.DestroyNode( m_nodeId );
+ }
+
+ public override void ExecuteReverse()
+ {
+ UIUtils.CreateNode( m_nodeType, false, m_nodePos, m_nodeId );
+ }
+
+ public override string ToString()
+ {
+ return "Destroy Node - Type: " + m_nodeType + " Node: " + m_nodeId + " Position: " + m_nodePos;
+ }
+ }
+
+ // Move node
+ public class MoveNodeActionData : ActionData
+ {
+ private int m_nodeId;
+ private Vector2 m_nodeInitalPos;
+ private Vector2 m_nodeFinalPos;
+
+ public MoveNodeActionData( int nodeId, Vector2 nodeInitialPos, Vector2 nodeFinalPos )
+ {
+ m_nodeId = nodeId;
+ m_nodeInitalPos = nodeInitialPos;
+ m_nodeFinalPos = nodeFinalPos;
+ }
+
+ public override void ExecuteForward()
+ {
+ ParentNode node = UIUtils.GetNode( m_nodeId );
+ if ( node != null )
+ node.Vec2Position = m_nodeFinalPos;
+ }
+
+ public override void ExecuteReverse()
+ {
+ ParentNode node = UIUtils.GetNode( m_nodeId );
+ if ( node != null )
+ node.Vec2Position = m_nodeInitalPos;
+ }
+
+ public override string ToString()
+ {
+ return "Move Node - Node: " + m_nodeId + " Initial Position: " + m_nodeInitalPos + " Final Position: " + m_nodeFinalPos;
+ }
+ }
+
+ // CONNECTIONS
+ // Create connection
+ public class CreateConnectionActionData : ActionData
+ {
+ private int m_inputNodeId;
+ private int m_inputPortId;
+
+ private int m_outputNodeId;
+ private int m_outputPortId;
+
+ public CreateConnectionActionData( int inputNodeId, int inputPortId, int outputNodeId, int outputPortId )
+ {
+ m_inputNodeId = inputNodeId;
+ m_inputPortId = inputPortId;
+ m_outputNodeId = outputNodeId;
+ m_outputPortId = outputPortId;
+ }
+
+ public override void ExecuteForward()
+ {
+ UIUtils.ConnectInputToOutput( m_inputNodeId, m_inputPortId, m_outputNodeId, m_outputPortId );
+ }
+
+ public override void ExecuteReverse()
+ {
+ UIUtils.DeleteConnection( true, m_inputNodeId, m_inputPortId, false, true );
+ }
+
+ public override string ToString()
+ {
+ return "Create Connection Node - Input Node: " + m_inputNodeId + " Input Port: " + m_inputPortId + " Output Node: " + m_outputNodeId + " Output Port: " + m_outputPortId;
+ }
+ }
+
+ // Destroy connection
+ public class DestroyConnectionActionData : ActionData
+ {
+ private int m_inputNodeId;
+ private int m_inputPortId;
+
+ private int m_outputNodeId;
+ private int m_outputPortId;
+
+ public DestroyConnectionActionData( int inputNodeId, int inputPortId, int outputNodeId, int outputPortId )
+ {
+ m_inputNodeId = inputNodeId;
+ m_inputPortId = inputPortId;
+ m_outputNodeId = outputNodeId;
+ m_outputPortId = outputPortId;
+ }
+
+ public override void ExecuteForward()
+ {
+ UIUtils.DeleteConnection( true, m_inputNodeId, m_inputPortId, false, true );
+ }
+
+ public override void ExecuteReverse()
+ {
+ UIUtils.ConnectInputToOutput( m_inputNodeId, m_inputPortId, m_outputNodeId, m_outputPortId );
+ }
+
+ public override string ToString()
+ {
+ return "Destroy Connection Node - Input Node: " + m_inputNodeId + " Input Port: " + m_inputPortId + " Output Node: " + m_outputNodeId + " Output Port: " + m_outputPortId;
+ }
+ }
+
+ // Move connection
+ public class MoveInputConnectionActionData : ActionData
+ {
+ private int m_oldInputNodeId;
+ private int m_oldInputNodePortId;
+
+ private int m_newInputNodeId;
+ private int m_newInputNodePortId;
+
+ private int m_outputNodeId;
+ private int m_outputPortId;
+
+ public MoveInputConnectionActionData( int oldInputNodeId, int oldInputPortId, int newInputNodeId, int newInputPortId, int outputNodeId, int outputPortId )
+ {
+ m_oldInputNodeId = oldInputNodeId;
+ m_oldInputNodePortId = oldInputPortId;
+
+ m_newInputNodeId = newInputNodeId;
+ m_newInputNodePortId = newInputPortId;
+
+ m_outputNodeId = outputNodeId;
+ m_outputPortId = outputPortId;
+ }
+
+ public override void ExecuteForward()
+ {
+ UIUtils.DeleteConnection( true, m_oldInputNodeId, m_oldInputNodePortId, false, true );
+ UIUtils.ConnectInputToOutput( m_newInputNodeId, m_newInputNodePortId, m_outputNodeId, m_outputPortId );
+ }
+
+ public override void ExecuteReverse()
+ {
+ base.ExecuteReverse();
+ UIUtils.DeleteConnection( true, m_newInputNodeId, m_newInputNodePortId, false, true );
+ UIUtils.ConnectInputToOutput( m_oldInputNodeId, m_oldInputNodePortId, m_outputNodeId, m_outputPortId );
+ }
+
+ public override string ToString()
+ {
+ return "Move Input Connection Node - Old Input Node: " + m_oldInputNodeId + " Old Input Port: " + m_oldInputNodePortId + " New Input Node: " + m_newInputNodeId + " New Input Port: " + m_newInputNodePortId + " Output Node: " + m_outputNodeId + " Output Port: " + m_outputPortId;
+ }
+ }
+
+ public class MoveOutputConnectionActionData : ActionData
+ {
+ private int m_inputNodeId;
+ private int m_inputPortId;
+
+ private int m_newOutputNodeId;
+ private int m_newOutputPortId;
+
+ private int m_oldOutputNodeId;
+ private int m_oldOutputPortId;
+
+ public MoveOutputConnectionActionData( int inputNodeId, int inputPortId, int newOutputNodeId, int newOutputPortId, int oldOutputNodeId, int oldOutputPortId )
+ {
+ m_inputNodeId = inputNodeId;
+ m_inputPortId = inputPortId;
+
+ m_newOutputNodeId = newOutputNodeId;
+ m_newOutputPortId = newOutputPortId;
+
+ m_oldOutputNodeId = oldOutputNodeId;
+ m_oldOutputPortId = oldOutputPortId;
+ }
+
+ public override void ExecuteForward()
+ {
+ UIUtils.DeleteConnection( false, m_oldOutputNodeId, m_oldOutputNodeId, false, true );
+ UIUtils.ConnectInputToOutput( m_inputNodeId, m_inputPortId, m_newOutputNodeId, m_newOutputPortId );
+ }
+
+ public override void ExecuteReverse()
+ {
+ base.ExecuteReverse();
+ UIUtils.DeleteConnection( false, m_newOutputNodeId, m_newOutputPortId, false, true );
+ UIUtils.ConnectInputToOutput( m_inputNodeId, m_inputPortId, m_oldOutputNodeId, m_oldOutputPortId );
+ }
+
+ public override string ToString()
+ {
+ return "Move Input Connection Node - Input Node: " + m_inputNodeId + " Input Port: " + m_inputPortId + " Old Output Node: " + m_oldOutputNodeId + " Old Output Port: " + m_oldOutputPortId + " New Output Node: " + m_newOutputNodeId + " New Output Port: " + m_newOutputPortId;
+ }
+ }
+
+ public class CreateNewGraphActionData : ActionData
+ {
+ private string m_name;
+
+ public CreateNewGraphActionData( string name )
+ {
+ m_name = name;
+ }
+
+ public override void ExecuteForward()
+ {
+ UIUtils.CreateNewGraph( m_name );
+ }
+ }
+
+ public class ChangeNodePropertiesActionData : ActionData
+ {
+ private string m_originalProperties;
+ private string m_newProperties;
+ private int m_nodeId;
+
+ public ChangeNodePropertiesActionData( ParentNode node, string originalProperties )
+ {
+ m_nodeId = node.UniqueId;
+ m_originalProperties = originalProperties;
+
+ m_newProperties = string.Empty;
+ string trash = string.Empty;
+ node.WriteToString( ref m_newProperties, ref trash );
+ }
+
+ public ChangeNodePropertiesActionData( int nodeId, string originalProperties )
+ {
+ m_nodeId = nodeId;
+ m_originalProperties = originalProperties;
+
+ m_newProperties = string.Empty;
+ string trash = string.Empty;
+ UIUtils.GetNode( nodeId ).WriteToString( ref m_newProperties, ref trash );
+ }
+
+ public override void ExecuteForward()
+ {
+ string[] properties = m_newProperties.Split( IOUtils.FIELD_SEPARATOR );
+ UIUtils.GetNode( m_nodeId ).ReadFromString( ref properties );
+ }
+
+ public override void ExecuteReverse()
+ {
+ string[] properties = m_originalProperties.Split( IOUtils.FIELD_SEPARATOR );
+ UIUtils.GetNode( m_nodeId ).ReadFromString( ref properties );
+ }
+
+ public override string ToString()
+ {
+ return "Change Node Propertie - Node: " + m_nodeId + "\nOriginal Properties:\n" + m_originalProperties + "\nNew Properties:\n" + m_newProperties;
+ }
+ }
+}