// Made with Amplify Shader Editor
// Available at the Unity Asset Store - http://u3d.as/y3X 
Shader "MajorProject/ColorMask"
{
	Properties
	{
		_Albedo("Albedo", 2D) = "white" {}
		_Normal("Normal", 2D) = "bump" {}
		_Smoothness("Smoothness", 2D) = "black" {}
		_Mask("Mask", 2D) = "black" {}
		_NewColor("New Color", Color) = (1,1,1,1)
		_Multiplier("Multiplier", Range( 0 , 1)) = 0
		_RemapMin("Remap Min", Float) = 0
		_RemapMax("Remap Max", Float) = 1
		[Toggle(_OPACITYMASK_ON)] _OpacityMask("Opacity Mask", Float) = 0
		_Cutoff( "Mask Clip Value", Float ) = 0.5
		[HideInInspector] _texcoord( "", 2D ) = "white" {}
		[HideInInspector] __dirty( "", Int ) = 1
	}

	SubShader
	{
		Tags{ "RenderType" = "TransparentCutout"  "Queue" = "AlphaTest+0" }
		Cull Back
		CGPROGRAM
		#pragma target 3.5
		#pragma shader_feature _OPACITYMASK_ON
		#pragma surface surf Standard keepalpha addshadow fullforwardshadows 
		struct Input
		{
			float2 uv_texcoord;
		};

		uniform sampler2D _Normal;
		uniform float4 _Normal_ST;
		uniform sampler2D _Albedo;
		uniform float4 _Albedo_ST;
		uniform float4 _NewColor;
		uniform sampler2D _Mask;
		uniform float4 _Mask_ST;
		uniform float _Multiplier;
		uniform float _RemapMin;
		uniform float _RemapMax;
		uniform sampler2D _Smoothness;
		uniform float4 _Smoothness_ST;
		uniform float _Cutoff = 0.5;

		void surf( Input i , inout SurfaceOutputStandard o )
		{
			float2 uv_Normal = i.uv_texcoord * _Normal_ST.xy + _Normal_ST.zw;
			o.Normal = UnpackNormal( tex2D( _Normal, uv_Normal ) );
			float2 uv_Albedo = i.uv_texcoord * _Albedo_ST.xy + _Albedo_ST.zw;
			float2 uv_Mask = i.uv_texcoord * _Mask_ST.xy + _Mask_ST.zw;
			float4 tex2DNode40 = tex2D( _Mask, uv_Mask );
			float GreyScale57 = tex2DNode40.g;
			float Mask56 = tex2DNode40.r;
			float Gradient58 = tex2DNode40.b;
			float clampResult49 = clamp( ( Mask56 * ( Gradient58 + (_RemapMin + (_Multiplier - 0.0) * (_RemapMax - _RemapMin) / (1.0 - 0.0)) ) ) , 0.0 , 1.0 );
			float4 lerpResult37 = lerp( tex2D( _Albedo, uv_Albedo ) , ( _NewColor * GreyScale57 ) , clampResult49);
			o.Albedo = lerpResult37.rgb;
			float2 uv_Smoothness = i.uv_texcoord * _Smoothness_ST.xy + _Smoothness_ST.zw;
			o.Smoothness = tex2D( _Smoothness, uv_Smoothness ).r;
			o.Alpha = 1;
			#ifdef _OPACITYMASK_ON
				float staticSwitch62 = Mask56;
			#else
				float staticSwitch62 = 1.0;
			#endif
			clip( staticSwitch62 - _Cutoff );
		}

		ENDCG
	}
	Fallback "Diffuse"
	CustomEditor "ASEMaterialInspector"
}
/*ASEBEGIN
Version=16301
-1913;41;1906;904;2697.262;385.5416;1.738442;True;True
Node;AmplifyShaderEditor.SamplerNode;40;-3308.219,121.9752;Float;True;Property;_Mask;Mask;3;0;Create;True;0;0;False;0;None;e7d9151c9febbf644bde373c46578f65;True;0;False;black;Auto;False;Object;-1;Auto;Texture2D;6;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.RangedFloatNode;66;-2319.11,529.9472;Float;False;Property;_RemapMin;Remap Min;6;0;Create;True;0;0;False;0;0;0;0;0;0;1;FLOAT;0
Node;AmplifyShaderEditor.RangedFloatNode;67;-2317.577,621.9814;Float;False;Property;_RemapMax;Remap Max;7;0;Create;True;0;0;False;0;1;1;0;0;0;1;FLOAT;0
Node;AmplifyShaderEditor.RangedFloatNode;17;-2420.317,447.0833;Float;False;Property;_Multiplier;Multiplier;5;0;Create;True;0;0;False;0;0;0;0;1;0;1;FLOAT;0
Node;AmplifyShaderEditor.RegisterLocalVarNode;58;-2932.687,259.9786;Float;False;Gradient;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.RegisterLocalVarNode;56;-2929.621,75.90977;Float;False;Mask;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.GetLocalVarNode;61;-2093.632,353.5475;Float;False;58;Gradient;1;0;OBJECT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.TFHCRemapNode;53;-2103.26,450.3091;Float;False;5;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;3;FLOAT;0;False;4;FLOAT;1;False;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleAddOpNode;47;-1852.525,396.3673;Float;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.RegisterLocalVarNode;57;-2932.687,163.3426;Float;False;GreyScale;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.GetLocalVarNode;59;-1927.977,144.9355;Float;False;56;Mask;1;0;OBJECT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.GetLocalVarNode;60;-1464.73,-192.5235;Float;False;57;GreyScale;1;0;OBJECT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.ColorNode;23;-1481.814,-381.4917;Float;False;Property;_NewColor;New Color;4;0;Create;True;0;0;False;0;1,1,1,1;1,0,0.5997324,1;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;44;-1654.714,30.30221;Float;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.ClampOpNode;49;-1475.303,6.989078;Float;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;1;FLOAT;0
Node;AmplifyShaderEditor.GetLocalVarNode;65;-868.0339,539.1504;Float;False;56;Mask;1;0;OBJECT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.RangedFloatNode;64;-832.7534,387.294;Float;False;Constant;_White;White;9;0;Create;True;0;0;False;0;1;0;0;0;0;1;FLOAT;0
Node;AmplifyShaderEditor.SamplerNode;1;-896.2167,-467.1677;Float;True;Property;_Albedo;Albedo;0;0;Create;True;0;0;False;0;None;7f1bb6af05d718f48af775047bd04b4f;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;6;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;38;-1105.531,-227.9056;Float;False;2;2;0;COLOR;0,0,0,0;False;1;FLOAT;0;False;1;COLOR;0
Node;AmplifyShaderEditor.SamplerNode;2;-540.3304,-42.06005;Float;True;Property;_Normal;Normal;1;0;Create;True;0;0;False;0;None;5553ee8a4e29ebe4db63964308557f7e;True;0;True;bump;Auto;True;Object;-1;Auto;Texture2D;6;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;5;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.LerpOp;37;-414.3218,-176.3671;Float;False;3;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;2;FLOAT;0;False;1;COLOR;0
Node;AmplifyShaderEditor.SamplerNode;3;-537.3937,163.1603;Float;True;Property;_Smoothness;Smoothness;2;0;Create;True;0;0;False;0;None;71b48a5f1f9284144afd3ecc727acec1;True;0;False;black;Auto;False;Object;-1;Auto;Texture2D;6;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.StaticSwitch;62;-496.8282,433.3114;Float;False;Property;_OpacityMask;Opacity Mask;8;0;Create;True;0;0;False;0;0;0;0;True;;Toggle;2;Key0;Key1;9;1;FLOAT;0;False;0;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;4;FLOAT;0;False;5;FLOAT;0;False;6;FLOAT;0;False;7;FLOAT;0;False;8;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.StandardSurfaceOutputNode;0;12.78892,-25.57785;Float;False;True;3;Float;ASEMaterialInspector;0;0;Standard;MajorProject/ColorMask;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;Back;0;False;-1;0;False;-1;False;0;False;-1;0;False;-1;False;0;Masked;0.5;True;True;0;False;TransparentCutout;;AlphaTest;All;True;True;True;True;True;True;True;True;True;True;True;True;True;True;True;True;True;0;False;-1;False;0;False;-1;255;False;-1;255;False;-1;0;False;-1;0;False;-1;0;False;-1;0;False;-1;0;False;-1;0;False;-1;0;False;-1;0;False;-1;False;2;15;10;25;False;0.5;True;0;0;False;-1;0;False;-1;0;0;False;-1;0;False;-1;0;False;-1;0;False;-1;0;False;0;0,0,0,0;VertexOffset;True;False;Cylindrical;False;Relative;0;;9;-1;-1;-1;0;False;0;0;False;-1;-1;0;False;-1;0;0;0;False;0.1;False;-1;0;False;-1;16;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;2;FLOAT3;0,0,0;False;3;FLOAT;0;False;4;FLOAT;0;False;5;FLOAT;0;False;6;FLOAT3;0,0,0;False;7;FLOAT3;0,0,0;False;8;FLOAT;0;False;9;FLOAT;0;False;10;FLOAT;0;False;13;FLOAT3;0,0,0;False;11;FLOAT3;0,0,0;False;12;FLOAT3;0,0,0;False;14;FLOAT4;0,0,0,0;False;15;FLOAT3;0,0,0;False;0
WireConnection;58;0;40;3
WireConnection;56;0;40;1
WireConnection;53;0;17;0
WireConnection;53;3;66;0
WireConnection;53;4;67;0
WireConnection;47;0;61;0
WireConnection;47;1;53;0
WireConnection;57;0;40;2
WireConnection;44;0;59;0
WireConnection;44;1;47;0
WireConnection;49;0;44;0
WireConnection;38;0;23;0
WireConnection;38;1;60;0
WireConnection;37;0;1;0
WireConnection;37;1;38;0
WireConnection;37;2;49;0
WireConnection;62;1;64;0
WireConnection;62;0;65;0
WireConnection;0;0;37;0
WireConnection;0;1;2;0
WireConnection;0;4;3;0
WireConnection;0;10;62;0
ASEEND*/
//CHKSM=E703D98EAA5182A09A8F04184916C8E4E717C59A