Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ RedsVersion()

static void Terraria.GameContent.RGB.EmpressShader.RedsVersion ( Fragment fragment,
float time )
inlinestaticprivate

Definition at line 54 of file EmpressShader.cs.

55 {
56 time *= 3f;
57 for (int i = 0; i < fragment.Count; i++)
58 {
59 Point gridPositionOfIndex = fragment.GetGridPositionOfIndex(i);
60 Vector2 canvasPositionOfIndex = fragment.GetCanvasPositionOfIndex(i);
61 float num = (NoiseHelper.GetStaticNoise(gridPositionOfIndex.X) * 7f + time * 0.4f) % 7f - canvasPositionOfIndex.Y;
62 Vector4 vector = default(Vector4);
63 if (num > 0f)
64 {
65 float amount = Math.Max(0f, 1.4f - num);
66 if (num < 0.4f)
67 {
68 amount = num / 0.4f;
69 }
70 int num2 = (gridPositionOfIndex.X + _colors.Length + (int)(time / 6f)) % _colors.Length;
71 vector = Vector4.Lerp(vector, _colors[num2], amount);
72 }
73 fragment.SetColor(i, vector);
74 }
75 }
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 readonly Vector4[] _colors
static Vector4 Lerp(Vector4 value1, Vector4 value2, float amount)
Definition Vector4.cs:277

References Terraria.GameContent.RGB.EmpressShader._colors, ReLogic.Peripherals.RGB.Fragment.Count, ReLogic.Peripherals.RGB.Fragment.GetCanvasPositionOfIndex(), ReLogic.Peripherals.RGB.Fragment.GetGridPositionOfIndex(), Terraria.GameContent.RGB.NoiseHelper.GetStaticNoise(), Microsoft.Xna.Framework.Vector4.Lerp(), System.Math.Max(), ReLogic.Peripherals.RGB.Fragment.SetColor(), Microsoft.Xna.Framework.Point.X, and Microsoft.Xna.Framework.Vector2.Y.