Terraria v1.4.4.9
Terraria source code documentation
All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Events Macros
TempleShader.cs
Go to the documentation of this file.
1using System;
4
6
8{
9 private readonly Vector4 _backgroundColor = new Vector4(0.05f, 0.025f, 0f, 1f);
10
11 private readonly Vector4 _glowColor = Color.Orange.ToVector4();
12
13 [RgbProcessor(/*Could not decode attribute arguments.*/)]
14 private void ProcessHighDetail(RgbDevice device, Fragment fragment, EffectDetailLevel quality, float time)
15 {
16 for (int i = 0; i < fragment.Count; i++)
17 {
18 Vector2 canvasPositionOfIndex = fragment.GetCanvasPositionOfIndex(i);
19 Point gridPositionOfIndex = fragment.GetGridPositionOfIndex(i);
21 float num = (NoiseHelper.GetStaticNoise(gridPositionOfIndex.Y * 7) * 10f + time) % 10f - (canvasPositionOfIndex.X + 2f);
22 if (num > 0f)
23 {
24 float amount = Math.Max(0f, 1.2f - num);
25 if (num < 0.2f)
26 {
27 amount = num * 5f;
28 }
29 vector = Vector4.Lerp(vector, _glowColor, amount);
30 }
31 fragment.SetColor(i, vector);
32 }
33 }
34}
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
static float GetStaticNoise(int index)
void ProcessHighDetail(RgbDevice device, Fragment fragment, EffectDetailLevel quality, float time)
static Vector4 Lerp(Vector4 value1, Vector4 value2, float amount)
Definition Vector4.cs:277