Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
KingSlimeShader.cs
Go to the documentation of this file.
1using System;
4
6
8{
9 private readonly Vector4 _slimeColor;
10
11 private readonly Vector4 _debrisColor;
12
13 public KingSlimeShader(Color slimeColor, Color debrisColor)
14 {
15 _slimeColor = slimeColor.ToVector4();
16 _debrisColor = debrisColor.ToVector4();
17 }
18
19 [RgbProcessor(/*Could not decode attribute arguments.*/)]
20 private void ProcessLowDetail(RgbDevice device, Fragment fragment, EffectDetailLevel quality, float time)
21 {
22 for (int i = 0; i < fragment.Count; i++)
23 {
24 float dynamicNoise = NoiseHelper.GetDynamicNoise(fragment.GetCanvasPositionOfIndex(i), time * 0.25f);
25 dynamicNoise = Math.Max(0f, 1f - dynamicNoise * 2f);
26 Vector4 vector = Vector4.Lerp(_slimeColor, _debrisColor, dynamicNoise);
27 fragment.SetColor(i, vector);
28 }
29 }
30
31 [RgbProcessor(/*Could not decode attribute arguments.*/)]
32 private void ProcessHighDetail(RgbDevice device, Fragment fragment, EffectDetailLevel quality, float time)
33 {
34 new Vector2(1.6f, 0.5f);
35 for (int i = 0; i < fragment.Count; i++)
36 {
37 Vector2 canvasPositionOfIndex = fragment.GetCanvasPositionOfIndex(i);
38 Vector4 slimeColor = _slimeColor;
39 float staticNoise = NoiseHelper.GetStaticNoise(canvasPositionOfIndex * 0.3f + new Vector2(0f, time * 0.1f));
40 staticNoise = Math.Max(0f, 1f - staticNoise * 3f);
41 staticNoise = (float)Math.Sqrt(staticNoise);
42 slimeColor = Vector4.Lerp(slimeColor, _debrisColor, staticNoise);
43 fragment.SetColor(i, slimeColor);
44 }
45 }
46}
void SetColor(int index, Vector4 color)
Definition Fragment.cs:97
Vector2 GetCanvasPositionOfIndex(int index)
Definition Fragment.cs:75
static double Sqrt(double d)
static byte Max(byte val1, byte val2)
Definition Math.cs:738
void ProcessHighDetail(RgbDevice device, Fragment fragment, EffectDetailLevel quality, float time)
KingSlimeShader(Color slimeColor, Color debrisColor)
void ProcessLowDetail(RgbDevice device, Fragment fragment, EffectDetailLevel quality, float time)
static float GetStaticNoise(int index)
static float GetDynamicNoise(int index, float currentTime)
static Vector4 Lerp(Vector4 value1, Vector4 value2, float amount)
Definition Vector4.cs:277