123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336 |
- // 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;
- }
- }
- }
|