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

◆ ProcessHighDetail()

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

Definition at line 36 of file HallowSurfaceShader.cs.

37 {
38 Vector4 vector = _skyColor * _lightColor;
39 for (int i = 0; i < fragment.Count; i++)
40 {
41 Vector2 canvasPositionOfIndex = fragment.GetCanvasPositionOfIndex(i);
42 Point gridPositionOfIndex = fragment.GetGridPositionOfIndex(i);
43 float dynamicNoise = NoiseHelper.GetDynamicNoise(gridPositionOfIndex.X, gridPositionOfIndex.Y, time / 20f);
44 dynamicNoise = Math.Max(0f, 1f - dynamicNoise * 5f);
45 Vector4 value = vector;
46 value = (((gridPositionOfIndex.X * 100 + gridPositionOfIndex.Y) % 2 != 0) ? Vector4.Lerp(value, _pinkFlowerColor, dynamicNoise) : Vector4.Lerp(value, _yellowFlowerColor, dynamicNoise));
47 float num = (float)Math.Sin(canvasPositionOfIndex.X) * 0.3f + 0.7f;
48 if (canvasPositionOfIndex.Y > num)
49 {
51 }
52 fragment.SetColor(i, value);
53 }
54 }
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 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.HallowSurfaceShader._groundColor, Terraria.GameContent.RGB.HallowSurfaceShader._lightColor, Terraria.GameContent.RGB.HallowSurfaceShader._pinkFlowerColor, Terraria.GameContent.RGB.HallowSurfaceShader._skyColor, Terraria.GameContent.RGB.HallowSurfaceShader._yellowFlowerColor, ReLogic.Peripherals.RGB.Fragment.Count, ReLogic.Peripherals.RGB.Fragment.GetCanvasPositionOfIndex(), Terraria.GameContent.RGB.NoiseHelper.GetDynamicNoise(), ReLogic.Peripherals.RGB.Fragment.GetGridPositionOfIndex(), Microsoft.Xna.Framework.Vector4.Lerp(), System.Math.Max(), ReLogic.Peripherals.RGB.Fragment.SetColor(), System.Math.Sin(), System.value, Microsoft.Xna.Framework.Point.X, Microsoft.Xna.Framework.Vector2.X, Microsoft.Xna.Framework.Point.Y, and Microsoft.Xna.Framework.Vector2.Y.