// Amplify Shader Editor - Visual Shader Editing Tool // Copyright (c) Amplify Creations, Lda using System; namespace AmplifyShaderEditor { [Serializable] public class TemplateShaderPropertyData { public string PropertyInspectorName; public string PropertyName; public WirePortDataType PropertyDataType; public PropertyType PropertyType; public int Index; public string FullValue; public string ReplacementValueHelper; public string Identation; public bool IsMacro; public TemplateShaderPropertyData( int index, string fullValue, string identation, string propertyInspectorName, string propertyName, WirePortDataType propertyDataType, PropertyType propertyType, bool isMacro = false ) { Index = index; FullValue = fullValue; Identation = identation; PropertyInspectorName = string.IsNullOrEmpty( propertyInspectorName )?propertyName: propertyInspectorName; PropertyName = propertyName; PropertyDataType = propertyDataType; PropertyType = propertyType; int idx = FullValue.LastIndexOf( "=" ); ReplacementValueHelper = ( idx >= 0 ) ? FullValue.Substring( 0, idx + 1 ) +" ": FullValue + " = "; IsMacro = isMacro; } public string CreatePropertyForValue( string value ) { return value.Contains( PropertyName ) ? Identation + value : ReplacementValueHelper + value; } public override string ToString() { return string.Format( "{0}(\"{1}\", {2})", PropertyName, PropertyInspectorName,UIUtils.WirePortToCgType( PropertyDataType ) ); } } }