Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
DungeonShader.cs
Go to the documentation of this file.
1using System;
4
6
8{
9 private readonly Vector4 _backgroundColor = new Color(5, 5, 5).ToVector4();
10
11 private readonly Vector4 _spiritTrailColor = new Color(6, 51, 222).ToVector4();
12
13 private readonly Vector4 _spiritColor = Color.White.ToVector4();
14
15 [RgbProcessor(/*Could not decode attribute arguments.*/)]
16 private void ProcessHighDetail(RgbDevice device, Fragment fragment, EffectDetailLevel quality, float time)
17 {
18 for (int i = 0; i < fragment.Count; i++)
19 {
20 Point gridPositionOfIndex = fragment.GetGridPositionOfIndex(i);
21 Vector2 canvasPositionOfIndex = fragment.GetCanvasPositionOfIndex(i);
22 float num = ((NoiseHelper.GetStaticNoise(gridPositionOfIndex.Y) * 10f + time) % 10f - (canvasPositionOfIndex.X + 2f)) * 0.5f;
24 if (num > 0f)
25 {
26 float num2 = Math.Max(0f, 1.2f - num);
27 float amount = MathHelper.Clamp(num2 * num2 * num2, 0f, 1f);
28 if (num < 0.2f)
29 {
30 num2 = num / 0.2f;
31 }
33 vector = Vector4.Lerp(vector, value, num2);
34 }
35 fragment.SetColor(i, vector);
36 }
37 }
38}
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 byte Max(byte val1, byte val2)
Definition Math.cs:738
void ProcessHighDetail(RgbDevice device, Fragment fragment, EffectDetailLevel quality, float time)
static float GetStaticNoise(int index)
static Vector4 Lerp(Vector4 value1, Vector4 value2, float amount)
Definition Vector4.cs:277