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

◆ ProcessHighDetail()

void Terraria.GameContent.RGB.GolemShader.ProcessHighDetail ( RgbDevice device,
Fragment fragment,
EffectDetailLevel quality,
float time )
inlineprivate

Definition at line 35 of file GolemShader.cs.

36 {
37 float num = 0.5f + (float)Math.Sin(time * 3f) * 0.1f;
38 Vector2 vector = new Vector2(1.6f, 0.5f);
39 for (int i = 0; i < fragment.Count; i++)
40 {
41 Vector2 canvasPositionOfIndex = fragment.GetCanvasPositionOfIndex(i);
42 Point gridPositionOfIndex = fragment.GetGridPositionOfIndex(i);
43 Vector4 vector2 = _backgroundColor;
44 float num2 = (NoiseHelper.GetStaticNoise(gridPositionOfIndex.Y) * 10f + time * 2f) % 10f - Math.Abs(canvasPositionOfIndex.X - vector.X);
45 if (num2 > 0f)
46 {
47 float amount = Math.Max(0f, 1.2f - num2);
48 if (num2 < 0.2f)
49 {
50 amount = num2 * 5f;
51 }
52 vector2 = Vector4.Lerp(vector2, _glowColor, amount);
53 }
54 float num3 = (canvasPositionOfIndex - vector).Length();
55 if (num3 < num)
56 {
57 float amount2 = 1f - MathHelper.Clamp((num3 - num + 0.1f) / 0.1f, 0f, 1f);
58 vector2 = Vector4.Lerp(vector2, _coreColor, amount2);
59 }
60 fragment.SetColor(i, vector2);
61 }
62 }
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 double Abs(double value)
static double Sin(double a)
static byte Max(byte val1, byte val2)
Definition Math.cs:738
static Vector4 Lerp(Vector4 value1, Vector4 value2, float amount)
Definition Vector4.cs:277

References Terraria.GameContent.RGB.GolemShader._backgroundColor, Terraria.GameContent.RGB.GolemShader._coreColor, Terraria.GameContent.RGB.GolemShader._glowColor, System.Math.Abs(), Microsoft.Xna.Framework.MathHelper.Clamp(), 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(), System.Math.Sin(), Microsoft.Xna.Framework.Vector2.X, and Microsoft.Xna.Framework.Point.Y.