Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
VineShader.cs
Go to the documentation of this file.
3
5
6public class VineShader : ChromaShader
7{
8 private readonly Vector4 _backgroundColor = new Color(46, 17, 6).ToVector4();
9
10 private readonly Vector4 _vineColor = Color.Green.ToVector4();
11
12 [RgbProcessor(/*Could not decode attribute arguments.*/)]
13 private void ProcessLowDetail(RgbDevice device, Fragment fragment, EffectDetailLevel quality, float time)
14 {
15 for (int i = 0; i < fragment.Count; i++)
16 {
17 fragment.GetCanvasPositionOfIndex(i);
18 fragment.SetColor(i, _backgroundColor);
19 }
20 }
21
22 [RgbProcessor(/*Could not decode attribute arguments.*/)]
23 private void ProcessHighDetail(RgbDevice device, Fragment fragment, EffectDetailLevel quality, float time)
24 {
25 for (int i = 0; i < fragment.Count; i++)
26 {
27 Point gridPositionOfIndex = fragment.GetGridPositionOfIndex(i);
28 Vector2 canvasPositionOfIndex = fragment.GetCanvasPositionOfIndex(i);
29 float staticNoise = NoiseHelper.GetStaticNoise(gridPositionOfIndex.X);
30 staticNoise = (staticNoise * 10f + time * 0.4f) % 10f;
31 float num = 1f;
32 if (staticNoise > 1f)
33 {
34 num = 1f - MathHelper.Clamp((staticNoise - 0.4f - 1f) / 0.4f, 0f, 1f);
35 staticNoise = 1f;
36 }
37 float num2 = staticNoise - canvasPositionOfIndex.Y / 1f;
39 if (num2 > 0f)
40 {
41 float num3 = 1f;
42 if (num2 < 0.2f)
43 {
44 num3 = num2 / 0.2f;
45 }
46 vector = Vector4.Lerp(_backgroundColor, _vineColor, num3 * num);
47 }
48 fragment.SetColor(i, vector);
49 }
50 }
51}
static float Clamp(float value, float min, float max)
Definition MathHelper.cs:46
Point GetGridPositionOfIndex(int index)
Definition Fragment.cs:81
void SetColor(int index, Vector4 color)
Definition Fragment.cs:97
Vector2 GetCanvasPositionOfIndex(int index)
Definition Fragment.cs:75
static float GetStaticNoise(int index)
void ProcessLowDetail(RgbDevice device, Fragment fragment, EffectDetailLevel quality, float time)
Definition VineShader.cs:13
void ProcessHighDetail(RgbDevice device, Fragment fragment, EffectDetailLevel quality, float time)
Definition VineShader.cs:23
static Vector4 Lerp(Vector4 value1, Vector4 value2, float amount)
Definition Vector4.cs:277