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

◆ ProcessHighDetail()

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

Definition at line 34 of file PlanteraShader.cs.

35 {
36 for (int i = 0; i < fragment.Count; i++)
37 {
38 Point gridPositionOfIndex = fragment.GetGridPositionOfIndex(i);
39 Vector2 canvasPositionOfIndex = fragment.GetCanvasPositionOfIndex(i);
40 canvasPositionOfIndex.X -= 1.8f;
41 if (canvasPositionOfIndex.X < 0f)
42 {
43 canvasPositionOfIndex.X *= -1f;
44 gridPositionOfIndex.Y += 101;
45 }
46 float staticNoise = NoiseHelper.GetStaticNoise(gridPositionOfIndex.Y);
47 staticNoise = (staticNoise * 5f + time * 0.4f) % 5f;
48 float num = 1f;
49 if (staticNoise > 1f)
50 {
51 num = 1f - MathHelper.Clamp((staticNoise - 0.4f - 1f) / 0.4f, 0f, 1f);
52 staticNoise = 1f;
53 }
54 float num2 = staticNoise - canvasPositionOfIndex.X / 5f;
56 if (num2 > 0f)
57 {
58 float num3 = 1f;
59 if (num2 < 0.2f)
60 {
61 num3 = num2 / 0.2f;
62 }
63 vector = (((gridPositionOfIndex.X + 7 * gridPositionOfIndex.Y) % 5 != 0) ? Vector4.Lerp(_backgroundColor, _vineColor, num3 * num) : Vector4.Lerp(_backgroundColor, _bulbColor, num3 * num));
64 }
65 fragment.SetColor(i, vector);
66 }
67 }
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 Vector4 Lerp(Vector4 value1, Vector4 value2, float amount)
Definition Vector4.cs:277

References Terraria.GameContent.RGB.PlanteraShader._backgroundColor, Terraria.GameContent.RGB.PlanteraShader._bulbColor, Terraria.GameContent.RGB.PlanteraShader._vineColor, 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(), ReLogic.Peripherals.RGB.Fragment.SetColor(), Microsoft.Xna.Framework.Vector2.X, and Microsoft.Xna.Framework.Point.Y.