using UnityEngine;
|
|
|
|
namespace AmplifyShaderEditor
|
|
{
|
|
public class NodeWireReferencesUtils
|
|
{
|
|
public WireReference InputPortReference = new WireReference();
|
|
public WireReference SwitchPortReference = new WireReference();
|
|
public WireReference OutputPortReference = new WireReference();
|
|
|
|
public Vector2 SnapPosition = Vector2.zero;
|
|
public bool SnapEnabled = false;
|
|
public WireReference SnapPort = new WireReference();
|
|
|
|
public bool ValidReferences()
|
|
{
|
|
return ( InputPortReference.IsValid || OutputPortReference.IsValid );
|
|
}
|
|
|
|
public void InvalidateReferences()
|
|
{
|
|
InputPortReference.Invalidate();
|
|
OutputPortReference.Invalidate();
|
|
SnapPort.Invalidate();
|
|
SnapEnabled = false;
|
|
}
|
|
|
|
|
|
public void SetOutputReference( int nodeId, int portId, WirePortDataType dataType, bool typeLocked )
|
|
{
|
|
if( InputPortReference.IsValid )
|
|
InputPortReference.Invalidate();
|
|
OutputPortReference.SetReference( nodeId, portId, dataType, typeLocked );
|
|
}
|
|
|
|
public void SetInputReference( int nodeId, int portId, WirePortDataType dataType, bool typeLocked )
|
|
{
|
|
if( OutputPortReference.IsValid )
|
|
OutputPortReference.Invalidate();
|
|
InputPortReference.SetReference( nodeId, portId, dataType, typeLocked );
|
|
}
|
|
|
|
public void ActivateSnap( Vector2 position, WirePort port )
|
|
{
|
|
SnapPort.SetReference( port );
|
|
SnapEnabled = true;
|
|
SnapPosition = position;
|
|
}
|
|
|
|
public void DeactivateSnap()
|
|
{
|
|
SnapEnabled = false;
|
|
SnapPort.Invalidate();
|
|
}
|
|
}
|
|
}
|