Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
BlizzardShader.cs
Go to the documentation of this file.
3
5
7{
8 private readonly Vector4 _backColor = new Vector4(0.1f, 0.1f, 0.3f, 1f);
9
10 private readonly Vector4 _frontColor = new Vector4(1f, 1f, 1f, 1f);
11
12 private readonly float _timeScaleX;
13
14 private readonly float _timeScaleY;
15
16 public BlizzardShader(Vector4 frontColor, Vector4 backColor, float panSpeedX, float panSpeedY)
17 {
18 _frontColor = frontColor;
19 _backColor = backColor;
20 _timeScaleX = panSpeedX;
21 _timeScaleY = panSpeedY;
22 }
23
24 [RgbProcessor(/*Could not decode attribute arguments.*/)]
25 private void ProcessHighDetail(RgbDevice device, Fragment fragment, EffectDetailLevel quality, float time)
26 {
27 //IL_0000: Unknown result type (might be due to invalid IL or missing references)
28 if ((int)quality == 0)
29 {
30 time *= 0.25f;
31 }
32 for (int i = 0; i < fragment.Count; i++)
33 {
34 float staticNoise = NoiseHelper.GetStaticNoise(fragment.GetCanvasPositionOfIndex(i) * new Vector2(0.2f, 0.4f) + new Vector2(time * _timeScaleX, time * _timeScaleY));
35 Vector4 vector = Vector4.Lerp(_backColor, _frontColor, staticNoise * staticNoise);
36 fragment.SetColor(i, vector);
37 }
38 }
39}
void SetColor(int index, Vector4 color)
Definition Fragment.cs:97
Vector2 GetCanvasPositionOfIndex(int index)
Definition Fragment.cs:75
BlizzardShader(Vector4 frontColor, Vector4 backColor, float panSpeedX, float panSpeedY)
void ProcessHighDetail(RgbDevice device, Fragment fragment, EffectDetailLevel quality, float time)
static float GetStaticNoise(int index)
static Vector4 Lerp(Vector4 value1, Vector4 value2, float amount)
Definition Vector4.cs:277