| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 | //// Amplify Shader Editor - Visual Shader Editing Tool//// Copyright (c) Amplify Creations, Lda <info@amplify.pt>//using UnityEngine;//using UnityEditor;//using System;//namespace AmplifyShaderEditor//{//	[Serializable]//	[NodeAttributes( "[Old]Texture Coordinates", "Surface Data", "Texture UV coordinates set", null, KeyCode.U, false )]//	public sealed class UVCoordsParentNode : ParentNode//	{//		private const string TilingStr = "Tiling";//		[SerializeField]//		private int m_textureCoordChannel = 0;//		[SerializeField]//		private int m_textureCoordSet = 0;//		[SerializeField]//		private Vector2 m_tiling = new Vector2( 1, 1 );		//		protected override void CommonInit( int uniqueId )//		{//			base.CommonInit( uniqueId );//			AddOutputVectorPorts( WirePortDataType.FLOAT2, Constants.EmptyPortValue );//			m_textLabelWidth = 75;//		}//		public override void DrawProperties()//		{//			base.DrawProperties();//			int newChannel = EditorGUILayoutIntPopup( Constants.AvailableUVChannelLabel, m_textureCoordChannel, Constants.AvailableUVChannelsStr, Constants.AvailableUVChannels );//			if ( newChannel != m_textureCoordChannel )//			{//				if ( UIUtils.IsChannelAvailable( newChannel ) )//				{//					UIUtils.ShowMessage( "Attempting to use an unoccupied used texture channel" );//				}//				else//				{//					m_textureCoordChannel = newChannel;//				}//			}//			else if ( m_textureCoordChannel > -1 && UIUtils.IsChannelAvailable( m_textureCoordChannel ) )//			{//				UIUtils.ShowMessage( "Texture Channel " + m_textureCoordChannel + " is unavailable for TextureCoordinate node" );//				m_textureCoordChannel = -1;//			}//			m_textureCoordSet = EditorGUILayoutIntPopup( Constants.AvailableUVSetsLabel, m_textureCoordSet, Constants.AvailableUVSetsStr, Constants.AvailableUVSets );//			m_tiling = EditorGUILayoutVector2Field( TilingStr, m_tiling );//		}//		public override void Draw( DrawInfo drawInfo )//		{//			base.Draw( drawInfo );//			if ( m_isVisible )//			{//				m_propertyDrawPos.x = m_globalPosition.x + Constants.FLOAT_WIDTH_SPACING;//				m_propertyDrawPos.y = m_outputPorts[ 1 ].Position.y;//				m_propertyDrawPos.width = 2.7f * drawInfo.InvertedZoom * Constants.FLOAT_DRAW_WIDTH_FIELD_SIZE;//				m_propertyDrawPos.height = drawInfo.InvertedZoom * Constants.FLOAT_DRAW_HEIGHT_FIELD_SIZE;//				m_propertyDrawPos.y = m_outputPorts[ 1 ].Position.y;//				UIUtils.DrawFloat( this, ref m_propertyDrawPos, ref m_tiling.x );//				m_propertyDrawPos.y = m_outputPorts[ 2 ].Position.y;//				UIUtils.DrawFloat( this, ref m_propertyDrawPos, ref m_tiling.y );//			}//		}//		public override void ReadFromString( ref string[] nodeParams )//		{//			base.ReadFromString( ref nodeParams );//			m_textureCoordChannel = Convert.ToInt32( GetCurrentParam( ref nodeParams ) );//			m_tiling.x = Convert.ToSingle( GetCurrentParam( ref nodeParams ) );//			m_tiling.y = Convert.ToSingle( GetCurrentParam( ref nodeParams ) );//		}//		public override void WriteToString( ref string nodeInfo, ref string connectionsInfo )//		{//			base.WriteToString( ref nodeInfo, ref connectionsInfo );//			IOUtils.AddFieldValueToString( ref nodeInfo, m_textureCoordChannel );//			IOUtils.AddFieldValueToString( ref nodeInfo, m_tiling.x );//			IOUtils.AddFieldValueToString( ref nodeInfo, m_tiling.y );//		}//		public override string GenerateShaderForOutput( int outputId, ref MasterNodeDataCollector dataCollector, bool ignoreLocalVar )//		{//			string uvChannelDeclaration = IOUtils.GetUVChannelDeclaration( UIUtils.GetChannelName( m_textureCoordChannel ), m_textureCoordChannel, m_textureCoordSet );//			dataCollector.AddToInput( UniqueId, uvChannelDeclaration, true );//			if ( dataCollector.GetChannelUsage( m_textureCoordChannel ) != TextureChannelUsage.Used )//				dataCollector.SetChannelUsage( m_textureCoordChannel, TextureChannelUsage.Required );//			string uvTileStr = string.Empty;//			switch ( outputId )//			{//				case 0: { uvTileStr = "float2( " + m_tiling.x + " , " + m_tiling.y + " )"; } break;//				case 1: { uvTileStr = m_tiling.x.ToString(); } break;//				case 2: { uvTileStr = m_tiling.y.ToString(); } break;//			}//			string uvChannelName = IOUtils.GetUVChannelName( UIUtils.GetChannelName( m_textureCoordChannel ), m_textureCoordSet );//			return ( uvTileStr + "*" + GetOutputVectorItem( 0, outputId, Constants.InputVarStr + "." + uvChannelName ) );//		}//	}//}
 |