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

◆ ProcessHighDetail()

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

Definition at line 37 of file PirateInvasionShader.cs.

38 {
39 for (int i = 0; i < fragment.Count; i++)
40 {
41 Point gridPositionOfIndex = fragment.GetGridPositionOfIndex(i);
42 Vector2 canvasPositionOfIndex = fragment.GetCanvasPositionOfIndex(i);
43 gridPositionOfIndex.X /= 2;
44 float num = (NoiseHelper.GetStaticNoise(gridPositionOfIndex.X) * 40f + time * 1f) % 40f;
45 float amount = 0f;
46 float num2 = num - canvasPositionOfIndex.Y / 1.2f;
47 if (num > 1f)
48 {
49 float num3 = 1f - canvasPositionOfIndex.Y / 1.2f;
50 amount = (1f - Math.Min(1f, num2 - num3)) * (1f - Math.Min(1f, num3 / 1f));
51 }
53 if (num2 > 0f)
54 {
55 float amount2 = Math.Max(0f, 1.2f - num2 * 4f);
56 if (num2 < 0.1f)
57 {
58 amount2 = num2 / 0.1f;
59 }
60 vector = Vector4.Lerp(vector, _cannonBallColor, amount2);
61 vector = Vector4.Lerp(vector, _splashColor, amount);
62 }
63 if (canvasPositionOfIndex.Y > 0.8f)
64 {
65 vector = _waterColor;
66 }
67 fragment.SetColor(i, vector);
68 }
69 }
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 Min(byte val1, byte val2)
Definition Math.cs:912
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.PirateInvasionShader._backgroundColor, Terraria.GameContent.RGB.PirateInvasionShader._cannonBallColor, Terraria.GameContent.RGB.PirateInvasionShader._splashColor, Terraria.GameContent.RGB.PirateInvasionShader._waterColor, 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(), System.Math.Min(), ReLogic.Peripherals.RGB.Fragment.SetColor(), Microsoft.Xna.Framework.Point.X, and Microsoft.Xna.Framework.Vector2.Y.