Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
HallowSurfaceShader.cs
Go to the documentation of this file.
1using System;
4
6
8{
9 private readonly Vector4 _skyColor = new Color(150, 220, 220).ToVector4();
10
11 private readonly Vector4 _groundColor = new Vector4(1f, 0.2f, 0.25f, 1f);
12
13 private readonly Vector4 _pinkFlowerColor = new Vector4(1f, 0.2f, 0.25f, 1f);
14
15 private readonly Vector4 _yellowFlowerColor = new Vector4(1f, 1f, 0f, 1f);
16
18
19 public override void Update(float elapsedTime)
20 {
21 _lightColor = Main.ColorOfTheSkies.ToVector4() * 0.75f + Vector4.One * 0.25f;
22 }
23
24 [RgbProcessor(/*Could not decode attribute arguments.*/)]
25 private void ProcessLowDetail(RgbDevice device, Fragment fragment, EffectDetailLevel quality, float time)
26 {
27 for (int i = 0; i < fragment.Count; i++)
28 {
29 Vector2 canvasPositionOfIndex = fragment.GetCanvasPositionOfIndex(i);
30 Vector4 vector = Vector4.Lerp(_skyColor, _groundColor, (float)Math.Sin(time + canvasPositionOfIndex.X) * 0.5f + 0.5f);
31 fragment.SetColor(i, vector);
32 }
33 }
34
35 [RgbProcessor(/*Could not decode attribute arguments.*/)]
36 private void ProcessHighDetail(RgbDevice device, Fragment fragment, EffectDetailLevel quality, float time)
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 }
55}
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
void ProcessHighDetail(RgbDevice device, Fragment fragment, EffectDetailLevel quality, float time)
void ProcessLowDetail(RgbDevice device, Fragment fragment, EffectDetailLevel quality, float time)
static float GetDynamicNoise(int index, float currentTime)
static Microsoft.Xna.Framework.Color ColorOfTheSkies
Definition Main.cs:2577
static Vector4 Lerp(Vector4 value1, Vector4 value2, float amount)
Definition Vector4.cs:277