Global Game Jam 2023
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

521 lines
31 KiB

  1. // Made with Amplify Shader Editor
  2. // Available at the Unity Asset Store - http://u3d.as/y3X
  3. Shader "EMD/S_RainWindow"
  4. {
  5. Properties
  6. {
  7. _RainMask("RainMask", 2D) = "white" {}
  8. _Streak_Tiling("Streak_Tiling", Vector) = (1,1,0,0)
  9. _Tint("Tint", Color) = (0.0235849,0.4647454,1,0)
  10. _Streak_Speed("Streak_Speed", Range( 0 , 3)) = 0.3
  11. _Distort_Scale("Distort_Scale", Range( 0 , 10)) = 1
  12. _Distort_Amount("Distort_Amount", Range( 0 , 1)) = 1
  13. _Normal_Power("Normal_Power", Float) = 1
  14. _Splotch_Scale("Splotch_Scale", Float) = 5
  15. _Splotch_Speed("Splotch_Speed", Range( 0 , 1.5)) = 1
  16. _Splotch_Power("Splotch_Power", Range( 0 , 1)) = 1
  17. [Toggle(_OPACITYMASKTOGGLE_ON)] _OpacityMaskToggle("OpacityMaskToggle", Float) = 1
  18. _Opacity_Amount("Opacity_Amount", Range( 0 , 1)) = 1
  19. [HideInInspector] _texcoord( "", 2D ) = "white" {}
  20. [HideInInspector] __dirty( "", Int ) = 1
  21. }
  22. SubShader
  23. {
  24. Tags{ "RenderType" = "Transparent" "Queue" = "Transparent+0" "IgnoreProjector" = "True" }
  25. Cull Back
  26. CGINCLUDE
  27. #include "UnityShaderVariables.cginc"
  28. #include "UnityPBSLighting.cginc"
  29. #include "Lighting.cginc"
  30. #pragma target 3.0
  31. #pragma shader_feature_local _OPACITYMASKTOGGLE_ON
  32. #ifdef UNITY_PASS_SHADOWCASTER
  33. #undef INTERNAL_DATA
  34. #undef WorldReflectionVector
  35. #undef WorldNormalVector
  36. #define INTERNAL_DATA half3 internalSurfaceTtoW0; half3 internalSurfaceTtoW1; half3 internalSurfaceTtoW2;
  37. #define WorldReflectionVector(data,normal) reflect (data.worldRefl, half3(dot(data.internalSurfaceTtoW0,normal), dot(data.internalSurfaceTtoW1,normal), dot(data.internalSurfaceTtoW2,normal)))
  38. #define WorldNormalVector(data,normal) half3(dot(data.internalSurfaceTtoW0,normal), dot(data.internalSurfaceTtoW1,normal), dot(data.internalSurfaceTtoW2,normal))
  39. #endif
  40. struct Input
  41. {
  42. float3 worldPos;
  43. float3 worldNormal;
  44. INTERNAL_DATA
  45. float2 uv_texcoord;
  46. };
  47. uniform sampler2D _RainMask;
  48. uniform float _Streak_Speed;
  49. uniform float2 _Streak_Tiling;
  50. uniform float _Distort_Scale;
  51. uniform float _Distort_Amount;
  52. uniform float _Splotch_Speed;
  53. uniform float _Splotch_Scale;
  54. uniform float _Splotch_Power;
  55. uniform float _Normal_Power;
  56. uniform float4 _Tint;
  57. uniform float _Opacity_Amount;
  58. float3 mod2D289( float3 x ) { return x - floor( x * ( 1.0 / 289.0 ) ) * 289.0; }
  59. float2 mod2D289( float2 x ) { return x - floor( x * ( 1.0 / 289.0 ) ) * 289.0; }
  60. float3 permute( float3 x ) { return mod2D289( ( ( x * 34.0 ) + 1.0 ) * x ); }
  61. float snoise( float2 v )
  62. {
  63. const float4 C = float4( 0.211324865405187, 0.366025403784439, -0.577350269189626, 0.024390243902439 );
  64. float2 i = floor( v + dot( v, C.yy ) );
  65. float2 x0 = v - i + dot( i, C.xx );
  66. float2 i1;
  67. i1 = ( x0.x > x0.y ) ? float2( 1.0, 0.0 ) : float2( 0.0, 1.0 );
  68. float4 x12 = x0.xyxy + C.xxzz;
  69. x12.xy -= i1;
  70. i = mod2D289( i );
  71. float3 p = permute( permute( i.y + float3( 0.0, i1.y, 1.0 ) ) + i.x + float3( 0.0, i1.x, 1.0 ) );
  72. float3 m = max( 0.5 - float3( dot( x0, x0 ), dot( x12.xy, x12.xy ), dot( x12.zw, x12.zw ) ), 0.0 );
  73. m = m * m;
  74. m = m * m;
  75. float3 x = 2.0 * frac( p * C.www ) - 1.0;
  76. float3 h = abs( x ) - 0.5;
  77. float3 ox = floor( x + 0.5 );
  78. float3 a0 = x - ox;
  79. m *= 1.79284291400159 - 0.85373472095314 * ( a0 * a0 + h * h );
  80. float3 g;
  81. g.x = a0.x * x0.x + h.x * x0.y;
  82. g.yz = a0.yz * x12.xz + h.yz * x12.yw;
  83. return 130.0 * dot( m, g );
  84. }
  85. float3 PerturbNormal107_g1( float3 surf_pos, float3 surf_norm, float height, float scale )
  86. {
  87. // "Bump Mapping Unparametrized Surfaces on the GPU" by Morten S. Mikkelsen
  88. float3 vSigmaS = ddx( surf_pos );
  89. float3 vSigmaT = ddy( surf_pos );
  90. float3 vN = surf_norm;
  91. float3 vR1 = cross( vSigmaT , vN );
  92. float3 vR2 = cross( vN , vSigmaS );
  93. float fDet = dot( vSigmaS , vR1 );
  94. float dBs = ddx( height );
  95. float dBt = ddy( height );
  96. float3 vSurfGrad = scale * 0.05 * sign( fDet ) * ( dBs * vR1 + dBt * vR2 );
  97. return normalize ( abs( fDet ) * vN - vSurfGrad );
  98. }
  99. float2 voronoihash89( float2 p )
  100. {
  101. p = float2( dot( p, float2( 127.1, 311.7 ) ), dot( p, float2( 269.5, 183.3 ) ) );
  102. return frac( sin( p ) *43758.5453);
  103. }
  104. float voronoi89( float2 v, float time, inout float2 id, inout float2 mr, float smoothness, inout float2 smoothId )
  105. {
  106. float2 n = floor( v );
  107. float2 f = frac( v );
  108. float F1 = 8.0;
  109. float F2 = 8.0; float2 mg = 0;
  110. for ( int j = -1; j <= 1; j++ )
  111. {
  112. for ( int i = -1; i <= 1; i++ )
  113. {
  114. float2 g = float2( i, j );
  115. float2 o = voronoihash89( n + g );
  116. o = ( sin( time + o * 6.2831 ) * 0.5 + 0.5 ); float2 r = f - g - o;
  117. float d = 0.5 * dot( r, r );
  118. if( d<F1 ) {
  119. F2 = F1;
  120. F1 = d; mg = g; mr = r; id = o;
  121. } else if( d<F2 ) {
  122. F2 = d;
  123. }
  124. }
  125. }
  126. return F1;
  127. }
  128. float3 PerturbNormal107_g2( float3 surf_pos, float3 surf_norm, float height, float scale )
  129. {
  130. // "Bump Mapping Unparametrized Surfaces on the GPU" by Morten S. Mikkelsen
  131. float3 vSigmaS = ddx( surf_pos );
  132. float3 vSigmaT = ddy( surf_pos );
  133. float3 vN = surf_norm;
  134. float3 vR1 = cross( vSigmaT , vN );
  135. float3 vR2 = cross( vN , vSigmaS );
  136. float fDet = dot( vSigmaS , vR1 );
  137. float dBs = ddx( height );
  138. float dBt = ddy( height );
  139. float3 vSurfGrad = scale * 0.05 * sign( fDet ) * ( dBs * vR1 + dBt * vR2 );
  140. return normalize ( abs( fDet ) * vN - vSurfGrad );
  141. }
  142. void surf( Input i , inout SurfaceOutputStandard o )
  143. {
  144. float3 ase_worldPos = i.worldPos;
  145. float3 surf_pos107_g2 = ase_worldPos;
  146. float3 ase_worldNormal = WorldNormalVector( i, float3( 0, 0, 1 ) );
  147. float3 surf_norm107_g2 = ase_worldNormal;
  148. float temp_output_29_0 = ( _Time.y * _Streak_Speed );
  149. float3 ase_vertex3Pos = mul( unity_WorldToObject, float4( i.worldPos , 1 ) );
  150. float4 transform34 = mul(unity_ObjectToWorld,float4( ase_vertex3Pos , 0.0 ));
  151. float4 appendResult35 = (float4(transform34.z , transform34.y , 0.0 , 0.0));
  152. float3 surf_pos107_g1 = ase_worldPos;
  153. float3 surf_norm107_g1 = ase_worldNormal;
  154. float2 uv_TexCoord45 = i.uv_texcoord * float2( 5,5 );
  155. float simplePerlin2D47 = snoise( uv_TexCoord45*_Distort_Scale );
  156. simplePerlin2D47 = simplePerlin2D47*0.5 + 0.5;
  157. float height107_g1 = simplePerlin2D47;
  158. float scale107_g1 = 1.0;
  159. float3 localPerturbNormal107_g1 = PerturbNormal107_g1( surf_pos107_g1 , surf_norm107_g1 , height107_g1 , scale107_g1 );
  160. float3 ase_worldTangent = WorldNormalVector( i, float3( 1, 0, 0 ) );
  161. float3 ase_worldBitangent = WorldNormalVector( i, float3( 0, 1, 0 ) );
  162. float3x3 ase_worldToTangent = float3x3( ase_worldTangent, ase_worldBitangent, ase_worldNormal );
  163. float3 worldToTangentDir42_g1 = mul( ase_worldToTangent, localPerturbNormal107_g1);
  164. float2 Distortion58 = ( (worldToTangentDir42_g1).xy * _Distort_Amount );
  165. float2 panner32 = ( temp_output_29_0 * float2( 0,1 ) + ( ( appendResult35 * float4( _Streak_Tiling, 0.0 , 0.0 ) ) + float4( Distortion58, 0.0 , 0.0 ) ).xy);
  166. float3 temp_cast_4 = (0.5).xxx;
  167. float3 break11 = ( abs( ase_worldNormal ) - temp_cast_4 );
  168. float XMask14 = break11.x;
  169. float lerpResult38 = lerp( 0.0 , tex2D( _RainMask, panner32 ).r , XMask14);
  170. float4 transform20 = mul(unity_ObjectToWorld,float4( ase_vertex3Pos , 0.0 ));
  171. float4 appendResult21 = (float4(transform20.x , transform20.y , 0.0 , 0.0));
  172. float2 panner26 = ( temp_output_29_0 * float2( 0,1 ) + ( ( float4( _Streak_Tiling, 0.0 , 0.0 ) * appendResult21 ) + float4( Distortion58, 0.0 , 0.0 ) ).xy);
  173. float ZMask16 = break11.z;
  174. float lerpResult30 = lerp( 0.0 , tex2D( _RainMask, panner26 ).r , ZMask16);
  175. float Streaks24 = saturate( ( lerpResult38 + lerpResult30 ) );
  176. float2 temp_cast_9 = (_Splotch_Speed).xx;
  177. float time89 = ( _Time.y * 0.2 );
  178. float2 voronoiSmoothId0 = 0;
  179. float2 coords89 = i.uv_texcoord * _Splotch_Scale;
  180. float2 id89 = 0;
  181. float2 uv89 = 0;
  182. float fade89 = 0.5;
  183. float voroi89 = 0;
  184. float rest89 = 0;
  185. for( int it89 = 0; it89 <2; it89++ ){
  186. voroi89 += fade89 * voronoi89( coords89, time89, id89, uv89, 0,voronoiSmoothId0 );
  187. rest89 += fade89;
  188. coords89 *= 2;
  189. fade89 *= 0.5;
  190. }//Voronoi89
  191. voroi89 /= rest89;
  192. float2 panner98 = ( 1.0 * _Time.y * temp_cast_9 + ( step( voroi89 , 0.1 ) * id89 ));
  193. float YMask15 = ( 0.5 + ase_worldNormal.y );
  194. float Splotches104 = ( ( ( tex2D( _RainMask, panner98 ).g * step( voroi89 , 0.02 ) ) * _Splotch_Power ) * YMask15 );
  195. float StreakNSplotch116 = saturate( ( Streaks24 + Splotches104 ) );
  196. float height107_g2 = ( StreakNSplotch116 * _Normal_Power );
  197. float scale107_g2 = 1.0;
  198. float3 localPerturbNormal107_g2 = PerturbNormal107_g2( surf_pos107_g2 , surf_norm107_g2 , height107_g2 , scale107_g2 );
  199. float3 worldToTangentDir42_g2 = mul( ase_worldToTangent, localPerturbNormal107_g2);
  200. float3 StreaksNormal81 = worldToTangentDir42_g2;
  201. o.Normal = StreaksNormal81;
  202. float4 color135 = IsGammaSpace() ? float4(0.4150943,0.4150943,0.4150943,0) : float4(0.1436938,0.1436938,0.1436938,0);
  203. float4 color132 = IsGammaSpace() ? float4(0.9528302,0.9528302,0.9528302,0) : float4(0.8960326,0.8960326,0.8960326,0);
  204. float4 lerpResult133 = lerp( color135 , color132 , StreakNSplotch116);
  205. float4 lerpResult160 = lerp( _Tint , lerpResult133 , ( 1.0 - StreakNSplotch116 ));
  206. float4 Albedo142 = lerpResult160;
  207. o.Albedo = Albedo142.rgb;
  208. o.Smoothness = (0);
  209. #ifdef _OPACITYMASKTOGGLE_ON
  210. float staticSwitch154 = StreakNSplotch116;
  211. #else
  212. float staticSwitch154 = 1.0;
  213. #endif
  214. float Opacity157 = ( staticSwitch154 * _Opacity_Amount );
  215. o.Alpha = Opacity157;
  216. }
  217. ENDCG
  218. CGPROGRAM
  219. #pragma surface surf Standard alpha:fade keepalpha fullforwardshadows
  220. ENDCG
  221. Pass
  222. {
  223. Name "ShadowCaster"
  224. Tags{ "LightMode" = "ShadowCaster" }
  225. ZWrite On
  226. CGPROGRAM
  227. #pragma vertex vert
  228. #pragma fragment frag
  229. #pragma target 3.0
  230. #pragma multi_compile_shadowcaster
  231. #pragma multi_compile UNITY_PASS_SHADOWCASTER
  232. #pragma skip_variants FOG_LINEAR FOG_EXP FOG_EXP2
  233. #include "HLSLSupport.cginc"
  234. #if ( SHADER_API_D3D11 || SHADER_API_GLCORE || SHADER_API_GLES || SHADER_API_GLES3 || SHADER_API_METAL || SHADER_API_VULKAN )
  235. #define CAN_SKIP_VPOS
  236. #endif
  237. #include "UnityCG.cginc"
  238. #include "Lighting.cginc"
  239. #include "UnityPBSLighting.cginc"
  240. sampler3D _DitherMaskLOD;
  241. struct v2f
  242. {
  243. V2F_SHADOW_CASTER;
  244. float2 customPack1 : TEXCOORD1;
  245. float4 tSpace0 : TEXCOORD2;
  246. float4 tSpace1 : TEXCOORD3;
  247. float4 tSpace2 : TEXCOORD4;
  248. UNITY_VERTEX_INPUT_INSTANCE_ID
  249. UNITY_VERTEX_OUTPUT_STEREO
  250. };
  251. v2f vert( appdata_full v )
  252. {
  253. v2f o;
  254. UNITY_SETUP_INSTANCE_ID( v );
  255. UNITY_INITIALIZE_OUTPUT( v2f, o );
  256. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO( o );
  257. UNITY_TRANSFER_INSTANCE_ID( v, o );
  258. Input customInputData;
  259. float3 worldPos = mul( unity_ObjectToWorld, v.vertex ).xyz;
  260. half3 worldNormal = UnityObjectToWorldNormal( v.normal );
  261. half3 worldTangent = UnityObjectToWorldDir( v.tangent.xyz );
  262. half tangentSign = v.tangent.w * unity_WorldTransformParams.w;
  263. half3 worldBinormal = cross( worldNormal, worldTangent ) * tangentSign;
  264. o.tSpace0 = float4( worldTangent.x, worldBinormal.x, worldNormal.x, worldPos.x );
  265. o.tSpace1 = float4( worldTangent.y, worldBinormal.y, worldNormal.y, worldPos.y );
  266. o.tSpace2 = float4( worldTangent.z, worldBinormal.z, worldNormal.z, worldPos.z );
  267. o.customPack1.xy = customInputData.uv_texcoord;
  268. o.customPack1.xy = v.texcoord;
  269. TRANSFER_SHADOW_CASTER_NORMALOFFSET( o )
  270. return o;
  271. }
  272. half4 frag( v2f IN
  273. #if !defined( CAN_SKIP_VPOS )
  274. , UNITY_VPOS_TYPE vpos : VPOS
  275. #endif
  276. ) : SV_Target
  277. {
  278. UNITY_SETUP_INSTANCE_ID( IN );
  279. Input surfIN;
  280. UNITY_INITIALIZE_OUTPUT( Input, surfIN );
  281. surfIN.uv_texcoord = IN.customPack1.xy;
  282. float3 worldPos = float3( IN.tSpace0.w, IN.tSpace1.w, IN.tSpace2.w );
  283. half3 worldViewDir = normalize( UnityWorldSpaceViewDir( worldPos ) );
  284. surfIN.worldPos = worldPos;
  285. surfIN.worldNormal = float3( IN.tSpace0.z, IN.tSpace1.z, IN.tSpace2.z );
  286. surfIN.internalSurfaceTtoW0 = IN.tSpace0.xyz;
  287. surfIN.internalSurfaceTtoW1 = IN.tSpace1.xyz;
  288. surfIN.internalSurfaceTtoW2 = IN.tSpace2.xyz;
  289. SurfaceOutputStandard o;
  290. UNITY_INITIALIZE_OUTPUT( SurfaceOutputStandard, o )
  291. surf( surfIN, o );
  292. #if defined( CAN_SKIP_VPOS )
  293. float2 vpos = IN.pos;
  294. #endif
  295. half alphaRef = tex3D( _DitherMaskLOD, float3( vpos.xy * 0.25, o.Alpha * 0.9375 ) ).a;
  296. clip( alphaRef - 0.01 );
  297. SHADOW_CASTER_FRAGMENT( IN )
  298. }
  299. ENDCG
  300. }
  301. }
  302. Fallback "Diffuse"
  303. CustomEditor "ASEMaterialInspector"
  304. }
  305. /*ASEBEGIN
  306. Version=18909
  307. 609;81;1445;983;5681.581;3125.376;4.664331;True;False
  308. Node;AmplifyShaderEditor.CommentaryNode;70;-3395.69,-1861.825;Inherit;False;2390.233;748.5861;;8;47;48;69;45;68;67;58;87;Distortion;1,1,1,1;0;0
  309. Node;AmplifyShaderEditor.RangedFloatNode;48;-3210.355,-1422.78;Float;False;Property;_Distort_Scale;Distort_Scale;4;0;Create;True;0;0;0;False;0;False;1;1;0;10;0;1;FLOAT;0
  310. Node;AmplifyShaderEditor.TextureCoordinatesNode;45;-3345.69,-1741.591;Inherit;True;0;-1;2;3;2;SAMPLER2D;;False;0;FLOAT2;5,5;False;1;FLOAT2;0,0;False;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  311. Node;AmplifyShaderEditor.NoiseGeneratorNode;47;-3019.579,-1664.464;Inherit;True;Simplex2D;True;False;2;0;FLOAT2;0,0;False;1;FLOAT;1;False;1;FLOAT;0
  312. Node;AmplifyShaderEditor.CommentaryNode;106;-4447.251,1923.238;Inherit;False;3413.453;885.6622;;18;92;86;90;104;107;108;102;100;103;95;97;98;99;96;94;89;85;91;Splotches;1,1,1,1;0;0
  313. Node;AmplifyShaderEditor.CommentaryNode;44;-4571.943,-988.7247;Inherit;False;3577.049;1123.68;;26;43;23;28;24;40;38;30;39;1;31;37;26;32;29;74;73;27;22;72;36;21;35;20;34;18;33;StreaksUV;1,1,1,1;0;0
  314. Node;AmplifyShaderEditor.FunctionNode;87;-2606.22,-1549.938;Inherit;True;Normal From Height;-1;;1;1942fe2c5f1a1f94881a33d532e4afeb;0;2;20;FLOAT;1;False;110;FLOAT;1;False;2;FLOAT3;40;FLOAT3;0
  315. Node;AmplifyShaderEditor.CommentaryNode;17;-2529.876,343.5883;Inherit;False;1504.512;860.4473;;11;11;10;9;15;16;14;41;42;109;110;111;Masks;1,1,1,1;0;0
  316. Node;AmplifyShaderEditor.PosVertexDataNode;33;-4533.052,-906.4913;Inherit;True;0;0;5;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  317. Node;AmplifyShaderEditor.ComponentMaskNode;67;-2025.674,-1522.354;Inherit;True;True;True;False;False;1;0;FLOAT3;0,0,0;False;1;FLOAT2;0
  318. Node;AmplifyShaderEditor.RangedFloatNode;92;-4388.251,2517.263;Inherit;False;Constant;_Splotch_Spasm;Splotch_Spasm;8;0;Create;True;0;0;0;False;0;False;0.2;2;0;0;0;1;FLOAT;0
  319. Node;AmplifyShaderEditor.PosVertexDataNode;18;-4533.558,-141.7278;Inherit;True;0;0;5;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  320. Node;AmplifyShaderEditor.RangedFloatNode;69;-1990.891,-1630.458;Float;False;Property;_Distort_Amount;Distort_Amount;5;0;Create;True;0;0;0;False;0;False;1;0;0;1;0;1;FLOAT;0
  321. Node;AmplifyShaderEditor.SimpleTimeNode;90;-4397.251,2241.263;Inherit;True;1;0;FLOAT;1;False;1;FLOAT;0
  322. Node;AmplifyShaderEditor.TextureCoordinatesNode;85;-4090.148,2147.123;Inherit;True;0;-1;2;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  323. Node;AmplifyShaderEditor.RangedFloatNode;86;-4076.148,2579.123;Float;False;Property;_Splotch_Scale;Splotch_Scale;7;0;Create;True;0;0;0;False;0;False;5;0;0;0;0;1;FLOAT;0
  324. Node;AmplifyShaderEditor.ObjectToWorldTransfNode;20;-4271.67,-140.8872;Inherit;True;1;0;FLOAT4;0,0,0,1;False;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  325. Node;AmplifyShaderEditor.ObjectToWorldTransfNode;34;-4264.921,-905.6503;Inherit;True;1;0;FLOAT4;0,0,0,1;False;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  326. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;91;-4073.252,2420.263;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  327. Node;AmplifyShaderEditor.WorldNormalVector;9;-2514.302,586.0745;Inherit;True;False;1;0;FLOAT3;0,0,1;False;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3
  328. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;68;-1730.113,-1547.305;Inherit;True;2;2;0;FLOAT2;0,0;False;1;FLOAT;0;False;1;FLOAT2;0
  329. Node;AmplifyShaderEditor.AbsOpNode;10;-2238.57,589.0151;Inherit;True;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0
  330. Node;AmplifyShaderEditor.DynamicAppendNode;21;-3970.804,-147.5381;Inherit;True;FLOAT4;4;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT4;0
  331. Node;AmplifyShaderEditor.VoronoiNode;89;-3757.052,2259.263;Inherit;True;0;0;1;0;2;False;1;False;False;False;4;0;FLOAT2;0,0;False;1;FLOAT;0;False;2;FLOAT;1;False;3;FLOAT;0;False;3;FLOAT;0;FLOAT2;1;FLOAT2;2
  332. Node;AmplifyShaderEditor.DynamicAppendNode;35;-3954.407,-907.9733;Inherit;True;FLOAT4;4;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT4;0
  333. Node;AmplifyShaderEditor.RangedFloatNode;42;-2109.428,894.1066;Float;False;Constant;_MaskMath;MaskMath;4;0;Create;True;0;0;0;False;0;False;0.5;0.5;0;0;0;1;FLOAT;0
  334. Node;AmplifyShaderEditor.RegisterLocalVarNode;58;-1247.974,-1553.684;Float;True;Distortion;-1;True;1;0;FLOAT2;0,0;False;1;FLOAT2;0
  335. Node;AmplifyShaderEditor.Vector2Node;23;-3929.678,-513.267;Float;False;Property;_Streak_Tiling;Streak_Tiling;1;0;Create;True;0;0;0;False;0;False;1,1;1,1;0;3;FLOAT2;0;FLOAT;1;FLOAT;2
  336. Node;AmplifyShaderEditor.GetLocalVarNode;72;-3561.396,-496.0008;Inherit;False;58;Distortion;1;0;OBJECT;0;False;1;FLOAT2;0
  337. Node;AmplifyShaderEditor.SimpleSubtractOpNode;41;-2031.129,674.0588;Inherit;False;2;0;FLOAT3;0,0,0;False;1;FLOAT;0;False;1;FLOAT3;0
  338. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;36;-3695.3,-902.3002;Inherit;True;2;2;0;FLOAT4;0,0,0,0;False;1;FLOAT2;0,0;False;1;FLOAT4;0
  339. Node;AmplifyShaderEditor.SimpleTimeNode;27;-3209.244,-573.0606;Inherit;False;1;0;FLOAT;1;False;1;FLOAT;0
  340. Node;AmplifyShaderEditor.StepOpNode;94;-3246.231,2042.221;Inherit;True;2;0;FLOAT;0;False;1;FLOAT;0.1;False;1;FLOAT;0
  341. Node;AmplifyShaderEditor.RangedFloatNode;28;-3280.492,-417.4105;Float;False;Property;_Streak_Speed;Streak_Speed;3;0;Create;True;0;0;0;False;0;False;0.3;0.3;0;3;0;1;FLOAT;0
  342. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;22;-3700.363,-148.5822;Inherit;True;2;2;0;FLOAT2;0,0;False;1;FLOAT4;0,0,0,0;False;1;FLOAT4;0
  343. Node;AmplifyShaderEditor.RangedFloatNode;99;-2900.792,1989.238;Inherit;True;Property;_Splotch_Speed;Splotch_Speed;8;0;Create;True;0;0;0;False;0;False;1;0;0;1.5;0;1;FLOAT;0
  344. Node;AmplifyShaderEditor.BreakToComponentsNode;11;-1637.031,584.8383;Inherit;True;FLOAT3;1;0;FLOAT3;0,0,0;False;16;FLOAT;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT;5;FLOAT;6;FLOAT;7;FLOAT;8;FLOAT;9;FLOAT;10;FLOAT;11;FLOAT;12;FLOAT;13;FLOAT;14;FLOAT;15
  345. Node;AmplifyShaderEditor.WireNode;110;-2278.7,939.8511;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
  346. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;96;-2830.47,2255.477;Inherit;True;2;2;0;FLOAT;0;False;1;FLOAT2;0,0;False;1;FLOAT2;0
  347. Node;AmplifyShaderEditor.SimpleAddOpNode;74;-3177.354,-146.3266;Inherit;False;2;2;0;FLOAT4;0,0,0,0;False;1;FLOAT2;0,0;False;1;FLOAT4;0
  348. Node;AmplifyShaderEditor.SimpleAddOpNode;73;-3154.517,-895.4008;Inherit;False;2;2;0;FLOAT4;0,0,0,0;False;1;FLOAT2;0,0;False;1;FLOAT4;0
  349. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;29;-2984.39,-512.163;Inherit;True;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  350. Node;AmplifyShaderEditor.PannerNode;98;-2556.545,2114.505;Inherit;False;3;0;FLOAT2;0,0;False;2;FLOAT2;0,0;False;1;FLOAT;1;False;1;FLOAT2;0
  351. Node;AmplifyShaderEditor.RegisterLocalVarNode;16;-1379.652,630.4948;Float;True;ZMask;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
  352. Node;AmplifyShaderEditor.PannerNode;26;-2796.165,-139.4308;Inherit;True;3;0;FLOAT2;0,0;False;2;FLOAT2;0,1;False;1;FLOAT;1;False;1;FLOAT2;0
  353. Node;AmplifyShaderEditor.PannerNode;32;-2806.197,-879.8537;Inherit;True;3;0;FLOAT2;0,0;False;2;FLOAT2;0,1;False;1;FLOAT;1;False;1;FLOAT2;0
  354. Node;AmplifyShaderEditor.WireNode;109;-2205.958,1000.161;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
  355. Node;AmplifyShaderEditor.RegisterLocalVarNode;14;-1383.649,394.5897;Float;True;XMask;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
  356. Node;AmplifyShaderEditor.SimpleAddOpNode;111;-1819.414,955.2085;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  357. Node;AmplifyShaderEditor.GetLocalVarNode;39;-2403.309,-706.0734;Inherit;False;14;XMask;1;0;OBJECT;0;False;1;FLOAT;0
  358. Node;AmplifyShaderEditor.GetLocalVarNode;31;-2422.888,-234.1172;Inherit;False;16;ZMask;1;0;OBJECT;0;False;1;FLOAT;0
  359. Node;AmplifyShaderEditor.SamplerNode;37;-2510.185,-926.0292;Inherit;True;Property;_TextureSample1;Texture Sample 1;0;0;Create;True;0;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;False;Instance;1;Auto;Texture2D;8;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;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  360. Node;AmplifyShaderEditor.SamplerNode;97;-2338.706,2076.123;Inherit;True;Property;_TextureSample0;Texture Sample 0;0;0;Create;True;0;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;False;Instance;1;Auto;Texture2D;8;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;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  361. Node;AmplifyShaderEditor.StepOpNode;95;-3244.231,2437.221;Inherit;True;2;0;FLOAT;0;False;1;FLOAT;0.02;False;1;FLOAT;0
  362. Node;AmplifyShaderEditor.SamplerNode;1;-2530.749,-124.1018;Inherit;True;Property;_RainMask;RainMask;0;0;Create;True;0;0;0;False;0;False;-1;df482fb7407968c48a13c3ef5498e169;df482fb7407968c48a13c3ef5498e169;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;8;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;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  363. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;100;-1977.734,2268.723;Inherit;True;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  364. Node;AmplifyShaderEditor.RegisterLocalVarNode;15;-1381.153,951.0601;Float;True;YMask;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
  365. Node;AmplifyShaderEditor.LerpOp;38;-2180.975,-826.0803;Inherit;True;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0
  366. Node;AmplifyShaderEditor.LerpOp;30;-2173.375,-224.2239;Inherit;True;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0
  367. Node;AmplifyShaderEditor.RangedFloatNode;103;-2003.647,2651.57;Inherit;False;Property;_Splotch_Power;Splotch_Power;9;0;Create;True;0;0;0;False;0;False;1;0;0;1;0;1;FLOAT;0
  368. Node;AmplifyShaderEditor.GetLocalVarNode;108;-1738.507,2153.819;Inherit;False;15;YMask;1;0;OBJECT;;False;1;FLOAT;0
  369. Node;AmplifyShaderEditor.SimpleAddOpNode;40;-1783.426,-531.5915;Inherit;True;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  370. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;102;-1676.648,2483.57;Inherit;True;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  371. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;107;-1502.171,2160.981;Inherit;True;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  372. Node;AmplifyShaderEditor.SaturateNode;43;-1515.676,-532.0923;Inherit;True;1;0;FLOAT;0;False;1;FLOAT;0
  373. Node;AmplifyShaderEditor.CommentaryNode;117;-719.0375,-1165.553;Inherit;False;890.2755;400.4261;;5;112;113;114;115;116;Combining -> StreakNSplotches;1,1,1,1;0;0
  374. Node;AmplifyShaderEditor.RegisterLocalVarNode;104;-1338.648,2409.57;Inherit;True;Splotches;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
  375. Node;AmplifyShaderEditor.RegisterLocalVarNode;24;-1197.104,-495.3581;Float;False;Streaks;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
  376. Node;AmplifyShaderEditor.GetLocalVarNode;112;-669.0375,-1115.553;Inherit;False;24;Streaks;1;0;OBJECT;;False;1;FLOAT;0
  377. Node;AmplifyShaderEditor.GetLocalVarNode;113;-648.762,-944.1273;Inherit;False;104;Splotches;1;0;OBJECT;;False;1;FLOAT;0
  378. Node;AmplifyShaderEditor.SimpleAddOpNode;114;-416.762,-1017.127;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  379. Node;AmplifyShaderEditor.SaturateNode;115;-267.7621,-1019.127;Inherit;True;1;0;FLOAT;0;False;1;FLOAT;0
  380. Node;AmplifyShaderEditor.CommentaryNode;158;-281.1639,-470.8122;Inherit;False;1527.3;411.4998;;6;154;171;173;157;156;155;Opacity;1,1,1,1;0;0
  381. Node;AmplifyShaderEditor.CommentaryNode;83;-2584.314,1391.641;Inherit;False;1560.912;411.3195;;5;81;88;76;77;75;StreaksNormal;1,1,1,1;0;0
  382. Node;AmplifyShaderEditor.CommentaryNode;145;-2513.378,-2843.053;Inherit;False;1685.433;668.8965;;8;142;161;160;133;141;144;135;132;Tint;1,1,1,1;0;0
  383. Node;AmplifyShaderEditor.RegisterLocalVarNode;116;-55.76227,-1002.127;Inherit;False;StreakNSplotch;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
  384. Node;AmplifyShaderEditor.ColorNode;132;-2451.378,-2581.933;Inherit;False;Constant;_Color0;Color 0;11;0;Create;True;0;0;0;False;0;False;0.9528302,0.9528302,0.9528302,0;0,0,0,0;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  385. Node;AmplifyShaderEditor.ColorNode;135;-2463.378,-2767.933;Inherit;False;Constant;_Color1;Color 1;11;0;Create;True;0;0;0;False;0;False;0.4150943,0.4150943,0.4150943,0;0,0,0,0;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  386. Node;AmplifyShaderEditor.GetLocalVarNode;144;-2390.955,-2340.28;Inherit;False;116;StreakNSplotch;1;0;OBJECT;;False;1;FLOAT;0
  387. Node;AmplifyShaderEditor.GetLocalVarNode;75;-2534.314,1441.641;Inherit;False;116;StreakNSplotch;1;0;OBJECT;0;False;1;FLOAT;0
  388. Node;AmplifyShaderEditor.RangedFloatNode;77;-2521.305,1659.63;Float;False;Property;_Normal_Power;Normal_Power;6;0;Create;True;0;0;0;False;0;False;1;1;0;0;0;1;FLOAT;0
  389. Node;AmplifyShaderEditor.GetLocalVarNode;155;-231.1639,-303.8122;Inherit;False;116;StreakNSplotch;1;0;OBJECT;;False;1;FLOAT;0
  390. Node;AmplifyShaderEditor.RangedFloatNode;156;-175.1639,-420.8122;Inherit;False;Constant;_Float1;Float 1;13;0;Create;True;0;0;0;False;0;False;1;0;0;0;0;1;FLOAT;0
  391. Node;AmplifyShaderEditor.StaticSwitch;154;123.636,-293.1122;Inherit;True;Property;_OpacityMaskToggle;OpacityMaskToggle;10;0;Create;True;0;0;0;False;0;False;0;1;1;True;;Toggle;2;Key0;Key1;Create;True;True;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
  392. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;76;-2256.305,1551.63;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  393. Node;AmplifyShaderEditor.RangedFloatNode;171;408.0039,-407.594;Inherit;False;Property;_Opacity_Amount;Opacity_Amount;11;0;Create;True;0;0;0;False;0;False;1;1;0;1;0;1;FLOAT;0
  394. Node;AmplifyShaderEditor.ColorNode;141;-2070.194,-2793.053;Inherit;False;Property;_Tint;Tint;2;0;Create;True;0;0;0;False;0;False;0.0235849,0.4647454,1,0;0.0235849,0.4647454,1,0;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  395. Node;AmplifyShaderEditor.OneMinusNode;161;-2117.097,-2318.03;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
  396. Node;AmplifyShaderEditor.LerpOp;133;-2083.377,-2591.933;Inherit;True;3;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;2;FLOAT;0;False;1;COLOR;0
  397. Node;AmplifyShaderEditor.LerpOp;160;-1778.897,-2692.13;Inherit;True;3;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;2;FLOAT;0;False;1;COLOR;0
  398. Node;AmplifyShaderEditor.FunctionNode;88;-1844.958,1552.37;Inherit;False;Normal From Height;-1;;2;1942fe2c5f1a1f94881a33d532e4afeb;0;2;20;FLOAT;0;False;110;FLOAT;1;False;2;FLOAT3;40;FLOAT3;0
  399. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;173;740.0039,-282.594;Inherit;True;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  400. Node;AmplifyShaderEditor.RegisterLocalVarNode;81;-1273.005,1551.202;Float;False;StreaksNormal;-1;True;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0
  401. Node;AmplifyShaderEditor.RegisterLocalVarNode;157;1002.836,-302.8122;Inherit;False;Opacity;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
  402. Node;AmplifyShaderEditor.RegisterLocalVarNode;142;-1081.449,-2619.719;Inherit;False;Albedo;-1;True;1;0;COLOR;0,0,0,0;False;1;COLOR;0
  403. Node;AmplifyShaderEditor.GetLocalVarNode;82;781.0571,-951.9244;Inherit;False;81;StreaksNormal;1;0;OBJECT;0;False;1;FLOAT3;0
  404. Node;AmplifyShaderEditor.GetLocalVarNode;143;789.1217,-1042.851;Inherit;False;142;Albedo;1;0;OBJECT;;False;1;COLOR;0
  405. Node;AmplifyShaderEditor.GetLocalVarNode;159;592.495,-642.4875;Inherit;False;157;Opacity;1;0;OBJECT;;False;1;FLOAT;0
  406. Node;AmplifyShaderEditor.GetLocalVarNode;166;606.0959,-869.5304;Inherit;False;-1;;1;0;OBJECT;;False;1;FLOAT;0
  407. Node;AmplifyShaderEditor.StandardSurfaceOutputNode;0;1079.026,-1010.494;Float;False;True;-1;2;ASEMaterialInspector;0;0;Standard;EMD/S_RainWindow;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;False;False;False;False;False;False;Back;0;False;-1;0;False;-1;False;0;False;-1;0;False;-1;False;0;Transparent;0.5;True;True;0;False;Transparent;;Transparent;All;16;all;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;2;5;False;-1;10;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;;-1;-1;-1;-1;0;False;0;0;False;-1;-1;0;False;-1;0;0;0;False;0.1;False;-1;0;False;-1;False;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
  408. WireConnection;47;0;45;0
  409. WireConnection;47;1;48;0
  410. WireConnection;87;20;47;0
  411. WireConnection;67;0;87;40
  412. WireConnection;20;0;18;0
  413. WireConnection;34;0;33;0
  414. WireConnection;91;0;90;0
  415. WireConnection;91;1;92;0
  416. WireConnection;68;0;67;0
  417. WireConnection;68;1;69;0
  418. WireConnection;10;0;9;0
  419. WireConnection;21;0;20;1
  420. WireConnection;21;1;20;2
  421. WireConnection;89;0;85;0
  422. WireConnection;89;1;91;0
  423. WireConnection;89;2;86;0
  424. WireConnection;35;0;34;3
  425. WireConnection;35;1;34;2
  426. WireConnection;58;0;68;0
  427. WireConnection;41;0;10;0
  428. WireConnection;41;1;42;0
  429. WireConnection;36;0;35;0
  430. WireConnection;36;1;23;0
  431. WireConnection;94;0;89;0
  432. WireConnection;22;0;23;0
  433. WireConnection;22;1;21;0
  434. WireConnection;11;0;41;0
  435. WireConnection;110;0;9;2
  436. WireConnection;96;0;94;0
  437. WireConnection;96;1;89;1
  438. WireConnection;74;0;22;0
  439. WireConnection;74;1;72;0
  440. WireConnection;73;0;36;0
  441. WireConnection;73;1;72;0
  442. WireConnection;29;0;27;0
  443. WireConnection;29;1;28;0
  444. WireConnection;98;0;96;0
  445. WireConnection;98;2;99;0
  446. WireConnection;16;0;11;2
  447. WireConnection;26;0;74;0
  448. WireConnection;26;1;29;0
  449. WireConnection;32;0;73;0
  450. WireConnection;32;1;29;0
  451. WireConnection;109;0;110;0
  452. WireConnection;14;0;11;0
  453. WireConnection;111;0;42;0
  454. WireConnection;111;1;109;0
  455. WireConnection;37;1;32;0
  456. WireConnection;97;1;98;0
  457. WireConnection;95;0;89;0
  458. WireConnection;1;1;26;0
  459. WireConnection;100;0;97;2
  460. WireConnection;100;1;95;0
  461. WireConnection;15;0;111;0
  462. WireConnection;38;1;37;1
  463. WireConnection;38;2;39;0
  464. WireConnection;30;1;1;1
  465. WireConnection;30;2;31;0
  466. WireConnection;40;0;38;0
  467. WireConnection;40;1;30;0
  468. WireConnection;102;0;100;0
  469. WireConnection;102;1;103;0
  470. WireConnection;107;0;102;0
  471. WireConnection;107;1;108;0
  472. WireConnection;43;0;40;0
  473. WireConnection;104;0;107;0
  474. WireConnection;24;0;43;0
  475. WireConnection;114;0;112;0
  476. WireConnection;114;1;113;0
  477. WireConnection;115;0;114;0
  478. WireConnection;116;0;115;0
  479. WireConnection;154;1;156;0
  480. WireConnection;154;0;155;0
  481. WireConnection;76;0;75;0
  482. WireConnection;76;1;77;0
  483. WireConnection;161;0;144;0
  484. WireConnection;133;0;135;0
  485. WireConnection;133;1;132;0
  486. WireConnection;133;2;144;0
  487. WireConnection;160;0;141;0
  488. WireConnection;160;1;133;0
  489. WireConnection;160;2;161;0
  490. WireConnection;88;20;76;0
  491. WireConnection;173;0;154;0
  492. WireConnection;173;1;171;0
  493. WireConnection;81;0;88;40
  494. WireConnection;157;0;173;0
  495. WireConnection;142;0;160;0
  496. WireConnection;0;0;143;0
  497. WireConnection;0;1;82;0
  498. WireConnection;0;4;166;0
  499. WireConnection;0;9;159;0
  500. ASEEND*/
  501. //CHKSM=397884781D2B79F7B8F3224FE61ADF9919BAC594