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

◆ ProcessLowDetail()

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

Definition at line 26 of file MartianMadnessShader.cs.

27 {
28 for (int i = 0; i < fragment.Count; i++)
29 {
30 Vector2 canvasPositionOfIndex = fragment.GetCanvasPositionOfIndex(i);
31 Point gridPositionOfIndex = fragment.GetGridPositionOfIndex(i);
32 float amount = (float)Math.Sin(time * 2f + canvasPositionOfIndex.X * 5f) * 0.5f + 0.5f;
33 int num = (gridPositionOfIndex.X + gridPositionOfIndex.Y) % 2;
34 if (num < 0)
35 {
36 num += 2;
37 }
38 Vector4 vector = ((num == 1) ? Vector4.Lerp(_glassColor, _beamColor, amount) : _metalColor);
39 fragment.SetColor(i, vector);
40 }
41 }
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 Sin(double a)
static Vector4 Lerp(Vector4 value1, Vector4 value2, float amount)
Definition Vector4.cs:277

References Terraria.GameContent.RGB.MartianMadnessShader._beamColor, Terraria.GameContent.RGB.MartianMadnessShader._glassColor, Terraria.GameContent.RGB.MartianMadnessShader._metalColor, ReLogic.Peripherals.RGB.Fragment.Count, ReLogic.Peripherals.RGB.Fragment.GetCanvasPositionOfIndex(), ReLogic.Peripherals.RGB.Fragment.GetGridPositionOfIndex(), Microsoft.Xna.Framework.Vector4.Lerp(), ReLogic.Peripherals.RGB.Fragment.SetColor(), System.Math.Sin(), Microsoft.Xna.Framework.Vector2.X, and Microsoft.Xna.Framework.Point.Y.

Referenced by Terraria.GameContent.RGB.MartianMadnessShader.ProcessHighDetail().