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

◆ ProcessHighDetail()

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

Definition at line 34 of file CavernShader.cs.

35 {
36 time *= _speed * 0.5f;
37 float num = time % 1f;
38 bool num2 = time % 2f > 1f;
39 Vector4 vector = (num2 ? _frontColor : _backColor);
41 num *= 1.2f;
42 for (int i = 0; i < fragment.Count; i++)
43 {
44 float staticNoise = NoiseHelper.GetStaticNoise(fragment.GetCanvasPositionOfIndex(i) * 0.5f + new Vector2(0f, time * 0.5f));
45 Vector4 vector2 = vector;
46 staticNoise += num;
47 if (staticNoise > 0.999f)
48 {
49 float amount = MathHelper.Clamp((staticNoise - 0.999f) / 0.2f, 0f, 1f);
50 vector2 = Vector4.Lerp(vector2, value, amount);
51 }
52 fragment.SetColor(i, vector2);
53 }
54 }
static float Clamp(float value, float min, float max)
Definition MathHelper.cs:46
void SetColor(int index, Vector4 color)
Definition Fragment.cs:97
Vector2 GetCanvasPositionOfIndex(int index)
Definition Fragment.cs:75
static Vector4 Lerp(Vector4 value1, Vector4 value2, float amount)
Definition Vector4.cs:277

References Terraria.GameContent.RGB.CavernShader._backColor, Terraria.GameContent.RGB.CavernShader._frontColor, Terraria.GameContent.RGB.CavernShader._speed, Microsoft.Xna.Framework.MathHelper.Clamp(), ReLogic.Peripherals.RGB.Fragment.Count, ReLogic.Peripherals.RGB.Fragment.GetCanvasPositionOfIndex(), Terraria.GameContent.RGB.NoiseHelper.GetStaticNoise(), Microsoft.Xna.Framework.Vector4.Lerp(), ReLogic.Peripherals.RGB.Fragment.SetColor(), and System.value.