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

◆ ProcessHighDetail()

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

Definition at line 38 of file WormShader.cs.

39 {
40 time *= 0.25f;
41 for (int i = 0; i < fragment.Count; i++)
42 {
43 Vector2 canvasPositionOfIndex = fragment.GetCanvasPositionOfIndex(i);
44 canvasPositionOfIndex.X -= time * 1.5f;
45 canvasPositionOfIndex.X %= 2f;
46 if (canvasPositionOfIndex.X < 0f)
47 {
48 canvasPositionOfIndex.X += 2f;
49 }
50 float num = (canvasPositionOfIndex - new Vector2(0.5f)).Length();
51 Vector4 vector = _skinColor;
52 if (num < 0.5f)
53 {
54 float num2 = MathHelper.Clamp((num - 0.5f + 0.2f) / 0.2f, 0f, 1f);
55 vector = Vector4.Lerp(vector, _eyeColor, 1f - num2);
56 if (num < 0.4f)
57 {
58 num2 = MathHelper.Clamp((num - 0.4f + 0.2f) / 0.2f, 0f, 1f);
59 vector = Vector4.Lerp(vector, _innerEyeColor, 1f - num2);
60 }
61 }
62 fragment.SetColor(i, vector);
63 }
64 }
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.WormShader._eyeColor, Terraria.GameContent.RGB.WormShader._innerEyeColor, Terraria.GameContent.RGB.WormShader._skinColor, Microsoft.Xna.Framework.MathHelper.Clamp(), ReLogic.Peripherals.RGB.Fragment.Count, ReLogic.Peripherals.RGB.Fragment.GetCanvasPositionOfIndex(), Microsoft.Xna.Framework.Vector4.Lerp(), ReLogic.Peripherals.RGB.Fragment.SetColor(), and Microsoft.Xna.Framework.Vector2.X.