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

◆ ProcessHighDetail()

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

Definition at line 27 of file UndergroundMushroomShader.cs.

28 {
29 for (int i = 0; i < fragment.Count; i++)
30 {
31 Point gridPositionOfIndex = fragment.GetGridPositionOfIndex(i);
32 Vector2 canvasPositionOfIndex = fragment.GetCanvasPositionOfIndex(i);
34 float num = ((NoiseHelper.GetStaticNoise(gridPositionOfIndex.X) * 10f + time * 0.2f) % 10f - (1f - canvasPositionOfIndex.Y)) * 2f;
35 if (num > 0f)
36 {
37 float amount = Math.Max(0f, 1.5f - num);
38 if (num < 0.5f)
39 {
40 amount = num * 2f;
41 }
43 }
44 float staticNoise = NoiseHelper.GetStaticNoise(canvasPositionOfIndex * 0.3f + new Vector2(0f, time * 0.1f));
45 staticNoise = Math.Max(0f, 1f - staticNoise * (1f + (1f - canvasPositionOfIndex.Y) * 4f));
46 staticNoise *= Math.Max(0f, (canvasPositionOfIndex.Y - 0.3f) / 0.7f);
47 value = Vector4.Lerp(value, _edgeGlowColor, staticNoise);
48 fragment.SetColor(i, value);
49 }
50 }
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 Vector4 Lerp(Vector4 value1, Vector4 value2, float amount)
Definition Vector4.cs:277

References Terraria.GameContent.RGB.UndergroundMushroomShader._baseColor, Terraria.GameContent.RGB.UndergroundMushroomShader._edgeGlowColor, Terraria.GameContent.RGB.UndergroundMushroomShader._sporeColor, 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.value, Microsoft.Xna.Framework.Point.X, and Microsoft.Xna.Framework.Vector2.Y.